Skip to content

Latest commit

 

History

History
1046 lines (735 loc) · 69.3 KB

CHANGELOG.md

File metadata and controls

1046 lines (735 loc) · 69.3 KB

Unreleased

v0.21.3: 22 May 2024

Improvements

v0.21.2: 21 May 2024

Improvements

v0.21.1: 8 May 2024

Improvements

v0.21.0: 5 May 2024

Highlights

  • OTP incremental dialyzer is now the default dialyzing engine on OTP 26+. While slower than ElixirLS dialyzer it is much better at tracking module dependencies and should resolve issues with transient dialyzer warning that do not disappear on recompile. ElixirLS dialyzer is still available and incremental dialyzer can be disabled by config setting elixirLS.incrementalDialyzer
  • Experimental support for Code actions added. Two code actions are available: Replace unknown remote def, replace an unused variable with an underscore Samuel Heldak

Improvements

  • ElixirLS updated to v0.21.0
  • Debug test from Test UI now runs tests in trace mode to disable timeouts
  • New logo Kirills Reunovs

v0.20.0: 21 February 2024

Highlights

  • Selection ranges provider added. This provider handles expand/shrink selection editor commands in a semantic aware way
  • Completions, hover and signature help providers now are able to display @doc and other attributes data from the currently edited buffer
  • Hover provider now returns markdown with working links to hexdocs and erlang documentation. Support for ExDoc autolinking and erlang see tags has been added

Improvements

  • ElixirLS updated to v0.20.0
  • Quoted atoms and calls are now treated as unbalanced bracket scopes
  • Improved syntax highlighting of underscored typespecs and typespecs without parens. Previously those were matched as comment.unused.elixir, variable.other.readwrite.elixir, entity.name.function.call.local.elixir. A scope meta.type.definition.elixir has been introduced

Breaking changes and deprecations

  • Typespecs are now matched as entity.name.function.typespec.elixir. Previously those would match as comment.unused.elixir, variable.other.readwrite.elixir and entity.name.function.call.local.elixir

v0.19.0: 21 January 2024

Highlights

  • Test UI is now able to run multiple tests at once. This is made possible with running mix test command via debug adapter with a custom ExUnit formatter streaming test suite progress via DAP output events. Running multiple tests is supported on workspace folder, file, module, describe blocka and doctest level
  • On type parsing and diagnostics for phoenix .heex files
  • Workspace symbols provider has been reimplemented. Previously the workspace symbols index was build from all available symbols. To make it more focused and helpful now only symbols from the project are considered. This change made it much quicker and improved the quality of returned results. Fuzzy matching engine was also improved and made consistent with how complete provider works.

Improvements

  • ElixirLS updated to v0.19.0
  • Added highlighting of matching do|fn end pairs. This was added in v0.15.0 and reverted in v0.15.1. The previous attempt broke on do: and other atoms. This problem is now resolved with constant.language.symbol.elixir added to unbalanced scopes
  • Added highlighting of matching << >> pairs. This was added in v0.15.0 and reverted in v0.15.1. The previous attempt broke on bitwise operators. This problem is now resolved with keyword.operator.bitwise.elixir and keyword.operator.other.unbalanced.elixir added to unbalanced scopes
  • Tests are no longer run with with --raise flag
  • Test UI now renders separate doctests making it possible to run or debug them separately
  • Charlists are now classified as string.quoted.single.elixir instead of support.function.variable.quoted.single.elixir. The previous class was breaking brackets matching algorithm. VSCode treats strings as unbalanced scopes.

Fixes

  • Test UI is able to correctly run tests with file filter on Windows. This works around elixir-lang/elixir#13225
  • Test UI now finds tests of types other that test and doctest. Previously the filtering was too aggressive

Breaking changes and deprecations

  • Tests are now always run through debug adapter (with or without noDebug flag)
  • Charlists are now classified as string.quoted.single.elixir instead of support.function.variable.quoted.single.elixir. The previous class was breaking brackets matching algorithm. VSCode treats strings as unbalanced scopes.
  • ~>> <<~ operators are now classified as keyword.operator.other.unbalanced.elixir instead of keyword.operator.other.elixir

v0.18.1: 28 December 2023

Improvements

  • ElixirLS updated to v0.18.1
  • Syntax highlighting now correctly matches quoted remote calls (Mymod."4quo\"ted"() is valid elixir syntax)

v0.18.0: 22 December 2023

Highlights

  • Elixir 1.16 support
  • Diagnostics provider now returns related info with code positions. This feature works best with elixir 1.16 allowing for navigation to invalid syntax elements like mismatched brackets
  • On type parser has been improved and extended. It now keeps a cache of parsed AST and extracted document metadata. Most of the providers has been updated to reuse this metadata eliminating the need for on demand parsing. This should make completions, hover, etc more snappy. The previous implementation was particularly not efficient for completions provider that would parse the file twice for each request
  • Phoenix integration improved. Go To Definition can now navigate to controllers when inside a Phoenix scope. Complete suggestions in Phoenix.Router now return controllers and actionsGustavo Aguiar

Improvements

  • ElixirLS updated to v0.18.0
  • Added suggested configuration for eex files
  • Test UI will no longer look for test files in directories starting with .

Fixes

  • Syntax highlighting correctly matches ! and ? at the end of function calls. Preciously those was matched as source.elixir

Breaking changes and deprecations

  • Minimum vscode engine version is now 1.80.0
  • VSCode language client updated to v9.0.1 updating LSP compatibility to v3.17.5

v0.17.10: 19 November 2023

Improvements

v0.17.9: 13 November 2023

Improvements

  • ElixirLS updated to v0.17.9
  • Introduced sampling for most common telemetry data

v0.17.8: 6 November 2023

Improvements

v0.17.7: 6 November 2023

Improvements

v0.17.6: 2 November 2023

Improvements

v0.17.5: 31 October 2023

Improvements

v0.17.4: 30 October 2023

Improvements

v0.17.3: 24 October 2023

Improvements

  • ElixirLS updated to v0.17.3
  • Better sanitization of elixir stack traces in error reports

Fixes

  • Fixed crash when Test UI is not able to parse test file

v0.17.2: 23 October 2023

Improvements

Fixes

  • Grammar updated - fixed dot access matched as function call. This regression was introduced in v0.17.1
  • Grammar updated - fixed punctuation not matched in atoms and attributes. This regression was introduced in v0.17.0
  • Restart command refactored. Previously it would fail to restart a failed language server client

v0.17.1: 13 October 2023

Improvements

Fixes

  • Variables are no longer matched as punctuation in grammar
  • Restored function call matching in grammar
  • Consistently match modules. Previous rules matched them differently in defmodule

v0.17.0: 11 October 2023

Highlights

  • Syntax highlighting for Unicode identifiers. Elixir supports Unicode identifiers since v1.5 and now all ElixirLS features should work with them
  • When running a debug session from Test UI test result is now passed to the test controller and UI updates accordingly

Improvements

  • ElixirLS updated to v0.17.0
  • The extension is now bundled. This should improve startup time
  • defprotocol and defimpl are now treated as modules in grammar

Fixes

  • Task arguments are now correctly passed to debugger when starting debug session from Test UI. This bug made it impossible to debug a single test
  • Fixed race conditions in Test Controller. Previously if Test UI was loaded before the language server starts the extension would error and fail to get the list of tests in project
  • env from launch config is now correctly passed to debugger process in folderless setup (i.e. when launch config is bundled in workspace file)
  • Bogus syntax highlighting rules matching function calls removed

v0.16.0: 19 August 2023

Improvements

  • ElixirLS updated to v0.16.0
  • Migrated to pull based configuration retrieval and removed deprecated configuration sync. This addresses issues in recent VSCode versions when after restart the server would ignore client configuration.
  • Improved handling of language server uninitialized state. This should make Testing UI more stable.

Fixes

  • Fixed syntax highlighting with camelCase calls Milo Lee
  • Debug now starts in the correct workspace folder. Previously the debug controller incorrectly assumed there is only one workspace.

Deprecations and removals

  • << and >> bracket matching has been removed. It broke syntax highlighting in modules using <<< and >>> bitwise operators.

v0.15.3: 7 July 2023

No changes since v0.15.2. 0.15.2 failed to publish to Open VSX

v0.15.2: 29 June 2023

Improvements

  • ElixirLS updated to v0.15.1 with support for OTP 26

v0.15.1: 22 June 2023

Fixes

  • Revert do end bracket matching. This introduced too many problems and the workarounds did not work for do:
  • Revert markdown highlighting in heredocs. text.html.markdown interferes with elixir grammar when a list (* or -) is present. Handling this would require a dedicated grammar for heredoc markdown.

v0.15.0: 20 June 2023

Improvements

  • ElixirLS updated to v0.15.0
  • Added support for elixir 1.15 multi-letter sigils
  • Added highlighting of matching do end pairs
  • Treat code in heredocs as markdown. This allows syntax highlighting and delegation to markdown language server in @moduledoc @doc and @typedocs
  • Highlight elixir code in ~L sigil
  • Improved handling of multi-root workspaces. Now language server is started in outermost workspace directories that contain mix.exs.
  • Pass env from launch configuration to debugger. This allows setting node name for remote debugging (e.g. "env": {"ELS_ELIXIR_OPTS": "--sname mynode"})

Fixes

  • Fixed not working syntax highlighting for defguard and reraise
  • Reverted changes adding syntax highlighting in .heex. This conflicted with Phoenix Framework extension
  • languageServerOverridePath is correctly handled in debugger
  • Consistently highlight @moduledoc @doc and @typedocs modifiers as documentation

Refactorings

  • The extension code has been split into smaller units
  • Test suite expanded
  • Test suite now passing on unix and windows

Breaking changes and deprecations

  • Removed highlighting of some pre elixir 1.0 operators (inlist, inbits, bc, lc, xor) that are not supported by the compiler
  • elixir 1.12 is no longer supported
  • Disabled ANSI colors in test output when run from Testing tab. VSCode test output does not support ANSI color markers

v0.14.7: 6 May 2023

Fixes

  • Refer to correct version in launch script

v0.14.6: 6 May 2023

Improvements

  • Mix.install is now running in quiet mode. Thanks to that git errors are no longer swallowed. This should make resolving problems easier.
  • TestUI Run test and Debug will now be default use a launch configuration named mix test if present in workspace Dave Purrington
  • Added option elixirLS.autoInsertRequiredAlias controlling if complete provider will auto insert aliases

Fixes

  • Fix crash when running tests via code lense
  • Fix crash in test discovery
  • Protocol consolidation is now turned off. This was causing problems in debugger

v0.14.5: 21 April 2023

Fixes

  • Include fixes for crashes from v0.14.5 of elixirLS
  • Explicitly set MIX_ENV to test in run/debug test commands

v0.14.4: 20 April 2023

Fixes

  • Fixed invalid encoding of messages with unicode strings. This should resolve issues when starting the server in in non-ASCII path

v0.14.3: 17 April 2023

Fixes

  • Fix compatibility with elixir 1.12 and 1.13

v0.14.2: 15 April 2023

Fixes

  • Correctly set release tag in Windows startup scripts
  • Make startup scripts not crash on Linux

v0.14.0: 14 April 2023

Highlights

  • Debugger can now be run directly from Test UI
  • The extension now uses Mix.install to manage elixir-ls versions. Thanks to that it will use a correct version build for the project's environment, OTP and elixir version.

Improvements

  • Test Code Lense integrated with Test UI Carl-Foster
  • Test UI properly respects projectDir setting
  • Improve rendering of defdelegate Vicente Merlo
  • It's now possible to disable auto build with autoBuild setting
  • Fixed handling of scoped settings in multiroot workspaces
  • Debugger respects MIX_TARGET

Refactorings

v0.13.0: 10 January 2023

Improvements

  • Allow to override default elixirLS release path in config Daniel Silva
  • VSCode task provider with common mix tasks e.g. clean, compile, get.deps, test

Deprecations and removals

  • HEEX syntax highlighting - turned out to break phoenix extension

v0.12.0: 8 November 2022

Improvements:

  • Test UI support added
  • HEEX syntax highlighting Matthew Lehner
  • More extension activation events
  • Support for elixir 1.14 EEX comment syntax Brian Alexander
  • Custom command Trigger mix clean in language server

Fixes:

  • duplicated workspace modification subscription removed

See changes in ElixirLS

v0.11.0: 14 August 2022

Improvements:

  • Elixir 1.14 support
  • Document symbols now return non empty selection ranges. This fixes breadcrumbs behavior in vscode
  • Fixed dialyzer crash on OTP 25
  • Added support for mix formatter plugins (Dalibor Horinek)
  • Debugger now returns detailed info about ports, pids and function variables
  • Debugger completions now return detail field
  • Diagnostic positions now return column position returned by compiler (elixir 1.14+)
  • Diagnostic position fixed to never return invalid negative values
  • An exact do keyword completion is now preselected and more preferred over defoverridable
  • Fixed hexdocs links in hover for aliased modules and imported functions (Milo Lee)
  • Better module name suggestions in Phoenix live directory (Manos Emmanouilidis)

Deprecations

  • Minimum version of Elixir is now 1.11

v0.10.0: 10 June 2022

Improvements to debugger adapter:

Improvements to language server:

VSCode:

Houskeeping:

thanks Łukasz Samson, Thanabodee Charoenpiriyakij, Daniils Petrovs, Jason Axelson

v0.9.0: 4 December 2021

Improvements:

  • Elixir 1.13 support (thanks Łukasz Samson) #620
  • Fix formatting performance problems with .formatter.exs in subdirectories (thanks Jon Leighton) #609
  • Allow watching additional extensions via additionalWatchedExtensions (thanks Vanja Bucic) #569
  • Support for setting additional environment variables (thanks vacarsu) #622
  • Allow configuring debugExpressionTimeoutMs (thanks Jason Axelson) #613

Changes:

  • Default fetchDeps to false (thanks Jason Axelson) #633
    • fetchDeps causes some bad race conditions, especially with Elixir 1.13

Bug Fixes:

  • Add indentation following "do" completion (thanks AJ Foster) #606

Housekeeping:

VSCode:

v0.8.1: 1 September 2021

Improvements:

Housekeeping:

v0.8.0: 14 August 2021

Improvements:

Bug Fixes:

Housekeeping:

VSCode:

Deprecations

v0.7.0: 06 April 2021

Improvements:

  • Use fuzzy matching for function completion (thanks Po Chen) #491
    • For example: "valp" will match validate_password and "Enum.chub" will match Enum.chunk_by/2
    • Note: the plan is to extend this fuzzy matching to other types of completion in the future
  • Support auto-generating folding ranges (textDocument/foldingRange) (thanks billylanchantin) #492
  • Snippet variants with n-1 placeholders to use after pipe (thanks Leonardo Donelli) #501
  • Make launcher script more robust and support symlinks... more robustly (thanks Joshua Trees) #473
  • Add support for Elixir 1.12 (thanks Łukasz Samson) #523

Bug Fixes:

Housekeeping:

  • Improved support for OTP 24 (thanks Tom Crossland) #504
    • Note that OTP 24 isn't officially supported since it is not yet released
  • Add meta-test to ensure that all commands include the server instance id (thanks Jason Axelson) #507
  • Fix test flakiness by ensuring build is complete (thanks Łukasz Samson) #511

VSCode:

Deprecations Deprecate non-standard elixirDocument/macroExpansion command. It is being replaced with the expandMacro custom command. See #498 for details. It is planned to be fully removed in 0.8

v0.6.5: 9 February 2021

Bug Fixes:

Housekeeping:

v0.6.4: 2 February 2021

Bug Fixes:

v0.6.3: 30 January 2021

Improvements:

Bug Fixes:

Housekeeping:

VSCode:

v0.6.2: 15 November 2020

Improvements:

  • Add setup.bat support for windows (thanks E14) #374
  • Add a message when done fetching deps #380

Changes:

  • Remove query prefixes from workspace symbol search (the functionality is now longer supported by VSCode) (thanks Łukasz Samson) #396

Bug Fixes:

  • Fix formatting on windows (thanks Po Chen) #375
  • Improve formatting speed (thanks Matt Baker) #390
  • Fix warnings and errors around starting wx (thanks Łukasz Samson) #388
    • This fixes an issue when running ElixirLS in VSCode remote dev containers

Housekeeping:

  • Add GitHub action to auto-publish releases (thanks Po Chen) #384
  • Spec compliance, race condition fixes, and more tests (thanks Łukasz Samson) #399

VSCode:

v0.6.1: 4 October 2020

VSCode:

  • Fix broken packaging (issue #145)

v0.6.0: 3 October 2020

Potentially breaking changes:

  • Do not format files that are not listed in inputs of .formatter.exs (thanks Tan Jay Jun) #315
  • Drop OTP 20 and Elixir 1.7.x support and set some version support guidelines (thanks Jason Axelson) PR #337

Improvements:

Bug Fixes:

  • Fix issue with formatting and deps handling (thanks Thanabodee Charoenpiriyakij) #345
    • This would manifest as ** (Mix.Error) Unknown dependency :ecto_sql given to :import_deps in the formatter configuration.
  • Fix formatting files in umbrella projects (thanks Drew Olson)#350
  • Fix callback suggesions (thanks Łukasz Samson) #359

House keeping:

Note: MIX_TARGET support was added in 0.5.0 but wasn't added to the changelog until later:

  • Support MIX_TARGET so the language server can have target specific contexts, like with Nerves (thanks Jon Carstens) #299

VSCode:

v0.5.0: 28 June 2020

Improvements:

  • Support completion of callback function definitions (thanks Marlus Saraiva) #265
  • Support WorkspaceSymbols (go to symbol in workspace) without dialyzer being enabled (thanks Jason Axelson) #263
  • Give more direct warnings when mix.exs cannot be found (thanks Jason Axelson) #297
  • Add completions for @moduledoc false and @doc false (thanks Jason Axelson) #288
  • Support MIX_TARGET so the language server can have target specific contexts, like with Nerves (thanks Jon Carstens) #299

Changes:

  • Major improvement/change: Improve autocomplete and signature help (thanks Marlus Saraiva) #273
    • Don't insert arguments when completing a function call (almost always had to be deleted)
    • Autocomplete triggers signature help
    • Don't insert a () around the function call if the formatter configuration does not require it
    • Further autocomplete refinements (thanks Marlus Saraiva) #300
  • No longer always return a static list of keywords for completion (thanks Jason Axelson) #259

Bug Fixes:

House keeping:

VSCode:

  • Support workspaces with multiple elixir projects (thanks Alessandro Tagliapietra) #70
    • Support per-folder configuration for many settings (makes the multi-workspace support more powerful) (thanks AJ Foster) #110
  • Improved support for phoenix templates (thanks Marlus Saraiva) #93
    • Shows errors in .eex and .leex files (instead of associated .ex file)
  • Improve syntax highlighting following pipes (thanks Dusty Pomerleau) #81
  • Make % a dedicated punctuation scope in elixir syntax file (thanks Dusty Pomerleau) #72
  • Migrate generated tasks.json to 2.0.0 syntax (thanks Dusty Pomerleau) #71
  • Improve development instructions (thanks Tan Jay Jun) #97
  • Activate extension whenever workspace contains elixir files (thanks Jason Axelson) #107
  • Make heredocs and most sigils auto-close when used with quotes and triple quotes (thanks Jarrod Davis) #101
  • Set a default for elixirLS.projectDir (thanks Łukasz Samson) #112
  • Support setting elixirLS.mixTarget to include target specific dependencies, like with Nerves (thanks Jon Carstens) #108

v0.4.0: 16 May 2020

Improvements:

Bug Fixes:

  • Dialyzer: Get beam file for preloaded modules. (thanks Łukasz Samson) #218
  • Warn when using the debugger on Elixir 1.10.0-1.10.2. (thanks Jason Axelson) #221
  • Don't return snippets to clients that don't declare snippetSupport for function completions (thanks Jeffrey Xiao) #223

VSCode:

  • Add basic support for .html.leex files for Phoenix LiveView (thanks oskarkook) #82
  • Add filetype and watcher for .html.leex files for Phoenix LiveView (thanks Byron Hambly) #83
  • Better phoenix templates support (thanks Marlus Saraiva) #93

VSCode potentially breaking changes:

  • Change language id to be lowercase kebab-case in accordance with VSCode guidelines. This also fixes an issue displaying the elixir logo for html.eex files. (thanks Matt Furden) #87
    • This changes the language id's EEx->eex and HTML (EEx)->html-eex
    • If you have customized your emmet configuration configuration then you need to update it:
    • Open VSCode and hit Ctrl+Shift+P or Cmd+Shift+P and type "Preference: Open Settings (JSON)"
    • Add or edit your emmet.includedLanguages to include the new Language Id:
"emmet.includeLanguages": {
  "html-eex": "html"
}

If you have eex file associations in your settings.json then remove them:

"files.associations": {
  "*.html.eex": "HTML (EEx)", // remove this
  "*.html.leex": "HTML (EEx)" // remove this
},

v0.3.3: 15 Apr 2020

Meta:

Improvements:

  • Return the type of function/macro in DocumentSymbols provider (e.g. def, defp, defmacro) (thanks Jason Axelson) #189
  • Return deprecated flag or completion tag on completion items for clints that declare deprecatedSupport or tagSupport in complete provider (thanks Łukasz Samson) #180

Bug Fixes:

  • Fix textDocument/documentSymbol on a non-fully initialized server (thanks Jason Axelson) #173
  • Don't return snippets to clients that don't declare snippetSupport for completions (thanks Jason Axelson) #177
  • Handle an exception that was raised in the DocumentSymbols provider (thanks Jason Axelson) #179
  • Fix support for environments (such as Docker Alpine linux) that do not have bash (thanks Cees de Groot) #190
  • Handle syntax errors without raising an exception (thanks Jason Axelson) #186 #192
  • Workspace symbols handle module unloading during compilation without bringing down the server (thanks Jason Axelson) #191

VSCode:

  • Change: Upgrade vscode-languageclient to 6.1.3 to support Language Server Protocol 3.15 (thanks Łukasz Samson) #64

v0.3.2: 28 Mar 2020

Improvements:

  • Bump ElixirSense
    • Fixes find all references doesn't work with argument defaults #150
    • Adds erlang edoc support elixir_sense #86
  • Improvements to complete provider (thanks to Łukasz Samson) #159
    • Better handling when file fails to parse
    • Remove no longer necessary workaround that prevented completing default @ (such as @doc or @external_resource)
    • Add more keywords
    • Trim spaces
  • Use lower compression level to speed up dialyzer manifest writing (thanks to hworld) #164

Bug Fixes:

  • Fix dialyzer errors not being reported for umbrella projects #149 (thanks hworld)
  • Fix dialyzer checking files that have not changed which gives a good speedup #165 (thanks hworld)

VSCode:

v0.3.1: 3 Mar 2020

Improvements:

Bug Fixes:

  • Fix the debugger #143
  • textDocumentSync save match spec (fixes error notice in vim-lsp) #144 (thanks N. G. Scheurich)

v0.3.0: 14 Feb 2020

Major Improvements:

  • Add workspaceSymbol support to quickly navigate to modules, functions, callbacks etc (thanks to Łukasz Samson) #110
  • Provide completions for protocol functions (thanks to Łukasz Samson) #83
  • Upgrade ElixirSense (thanks to Jason Axelson) #82
    • Main changes: return results by arity, return all type signatures, typespec and dialyzer fixes

Improvements:

  • Update dialyxir to 1.0.0-rc.7
  • Improvements to textDocument/documentSymbol, now DocumentSymbol is returned instead of the more simplistic SymbolInformation (thanks to Łukasz Samson and kent-medin) #76
  • Support asdf-vm in wrapper scripts (thanks to Cees de Groot) #78
  • Update startup message (thanks to Ahmed Hamdy) #85
  • Add didSave to server capabilities (thanks to Jonáš Trantina) #86

Potentially Breaking Changes:

  • language_server.sh and debugger.sh run bash instead of sh (this is expected to break very few setups, if any) #118

v0.2.28: 16 Nov 2019

VSCode:

v0.2.27: 14 Nov 2019

VSCode:

  • Fix missing comma issue in the language configuration #16
  • Add some basic configuration for HTML (EEx) files #14 (thanks @J3RN)
  • Fix exceptions raised when running on Erlang 20 and 21 #65

v0.2.26: 4 Sept 2019

  • Dialyxir new 1.0-rc formatting support
  • can_format/2 now case-insensitive (fixes formatting on Mac OS X)
  • defdelegate snippet is now syntactically correct (was previously missing a comma)
  • workspace/didChangeConfiguration handles null now (fixes eglot support)
  • Update elixir_sense
  • Watch LiveView .leex files
  • Change 'dialyzerFormat' default setting to "dialyxir_long"

v0.2.25: 23 May 2019

  • Fix compatibility with Elixir 1.9
  • Fix bug where Mix file is not reloaded on change if it had errors
  • Remove unnecessary empty parens from suggested specs
  • Add 'dialyzerFormat' setting to select which warning formatter to use. Options are "dialyzer" (default), "dialyxir_short", "dialyxir_long"
  • (VS Code) Support syntax highlighting in Phoenix LiveView (.leex) files, including ~L sigil (Thanks to @rrichardsonv)
  • (VS Code) Improved syntax highlighting and other automatic behavior (Thanks to @crbelaus)
  • Fix crash when yecc grammar file has conflicts
  • Dialyzer robustness improvements
  • When autocompleting a function name with cursor immediately prior to a (, don't insert additional parens and argument list

v0.2.24: 15 Oct 2018

  • Fix debugger crash in new versions of VS Code (Thanks to @martin-watts)
  • Minor improvements to logs and error messages

v0.2.23: 05 Aug 2018

  • Fix crashes caused by the new spec suggestions feature
  • Fix showing of @spec suggestions on newly opened files

v0.2.22: 03 Aug 2018

  • Fix crash in Dialyzer when stale-checking beam files takes too long
  • Fix documentation and arg names in suggestions for Elixir 1.7
  • Formatter response is now incremental instead of replacing the entire document text
  • New feature: Autocomplete suggestions for struct field names (Thanks to @msaraiva/elixir_sense)
  • New feature: Suggest @spec annotations using Dialyzer's inferred success typings. To turn it off, set elixirLS.suggestSpecs: false

v0.2.21: 13 Jul 2018

  • Print PATH to developer console if "elixir" command fails
  • Fix Dialyzer crash when some modules are undialyzable

v0.2.20: 13 Jul 2018

  • Skipped because I got my versions out of sync :/

v0.2.19: 06 Jul 2018

  • Fix compatibility issues with recent Elixir versions (1.7.0-dev) and Erlang OTP 21
  • Go-to-definition now works for variables (thanks to Elixir Sense)
  • Better error messages when server crashes or fails to launch

v0.2.18: 19 Mar 2018

  • Fix autocomplete bugs when typing in parentheses
  • Copy latest syntax highlighting from fr1zle/vscode-elixir
  • Handle subdirectories and import_deps in .formatter.exs. Requires the latest Elixir (1.6.5), which you can install via kiex with kiex install master prior to its release.

v0.2.17: 9 Mar 2018

  • New feature: Automatically fetch deps when compiling. Set elixirLS.fetchDeps to false to disable
  • New feature: Incremental text synchronization
  • Minor improvements to autocomplete and automatic block closing

v0.2.16: 7 Mar 2018

  • New feature: Smart automatic insertion of "end" when beginning a block. This replaces the autocomplete-based approach and fixes the very annoying completion of "->" with "end" when not appropriate
  • ** ACCEPT AUTOCOMPLETE SUGGESTIONS WITH TAB INSTEAD OF ENTER.** See readme for an explanation of why. You can change it back if you really want.
  • Change default settings to automatically trim trailing whitespace and add newline at end of file
  • Don't trigger autocomplete on "_" because you're usually just naming an unused variable

v0.2.15: 6 Mar 2018

  • Improve autocomplete and re-enable quickSuggestions by default

v0.2.14: 3 Mar 2018

  • Fix failures to launch in some projects

v0.2.13: 2 Mar 2018

  • New feature: Find references to modules and functions (Thanks to @mattbaker)
  • New feature: Find symbols in document (Thanks to @mattbaker)
  • Fix failure to launch if project prints anything to stdout in the mixfile

v0.2.12: 22 Feb 2018

  • Fix bug where Dialyzer warnings sometimes remain after being fixed
  • Override build directory to ".elixir_ls/build" as recommended by José Valim
  • Fix restart button in debugger

v0.2.11: 31 Jan 2018

  • Improve syntax highlighting (Thanks to @TeeSeal)

v0.2.10: 24 Jan 2018

  • Fix builds and related features on Windows

v0.2.9: 29 Nov 2017

  • Fix autocomplete not firing after "."

v0.2.8: 29 Nov 2017

  • Add auto-indentation rules (copied from fr1zle/vscode-elixir)
  • Disable editor.quickSuggestions by default so autocomplete suggestions are triggered automatically only when after a ".". This is nice because the language server irritatingly tries to auto-complete things like "do" or "else" if they come at the end of a line.
  • Add configuration option "mixEnv" to set the Mix environment used when compiling. It now defaults to "test" instead of "dev" to aid in TDD and to avoid interfering with the Phoenix dev server.
  • Add configuration option "projectDir" for when your Mix project is in a subdirectory instead of the workspace root.
  • Add debug launch configuration option "env" to set environment variables (including MIX_ENV)
  • Add debug launch configuration option "excludeModules" to avoid interpreting modules. This is important if for modules that contain NIFs which can't be debugged.

v0.2.7: 9 Nov 2017

  • Read formatter options from .formatter.exs in project root instead of including line length in extension config options

v0.2.6: 3 Nov 2017

  • Don't focus Output pane on errors because request handler errors are common and recoverable

v0.2.5: 3 Nov 2017

  • Improve error output in debugger and fix failures to launch debugger

v0.2.4: 25 Oct 2017

  • Package ElixirLS as .ez archives instead of escripts. This should make asdf installs work.
  • Fix debugger error logging when initialize fails
  • Fix timeouts when calling back into the language server with build or dialyzer results

v0.2.3: 24 Oct 2017

  • Fix failing debugger launch
  • Fix segfaults in OTP 20 caused by regexes precompiled in OTP 19

v0.2.2: 19 Oct 2017

  • Fix launch on Windows when there are spaces in the path

v0.2.1: 19 Oct 2017

  • Fix bug where deps are recompiled after every change
  • Update README
  • Update syntax highlighting (merged from fr1zle/vscode-elixir)

v0.2.0: 17 Oct 2017

  • Rewritten build system to make use of Elixir 1.6 compiler diagnostics
  • Code formatting in Elixir 1.6
  • Automatic dialyzer server in Erlang/OTP 20
  • Lots and lots of refactoring

v0.0.9: 23 Jun 2017

  • Revert to building with Erlang OTP 19.2 instead of 20.0. It seems that escripts built with 20.0 won't run on 19.2 runtimes.
  • Fix handling of Windows paths with non-default drive letter

v0.0.8: 23 Jun 2017

  • Enable setting breakpoints in Erlang modules

v0.0.7: 12 Jun 2017

  • Fix launching of debugger on OSX (when working directory is not set to the extension directory)
  • Fix launching of language server when Elixir is installed with "asdf" tool. (Fix in 0.0.6 didn't actually work)

v0.0.6: 12 Jun 2017

  • Handle Elixir installations that were done via the "asdf" tool

v0.0.5: 11 Jun 2017

  • Windows support

v0.0.4: 10 Jun 2017

  • Updated ElixirLS to package its apps as escripts and updated client to handle it. This should fix the error (Mix) Could not start application language_server: could not find application file: language_server.app. Windows, however, is still broken.
  • Began a changelog :)