Skip to content

Latest commit

 

History

History
664 lines (503 loc) · 52.3 KB

CHANGELOG.md

File metadata and controls

664 lines (503 loc) · 52.3 KB

Unreleased

Deprecations

  • Minimum version of Elixir is now 1.11

v0.10.0: 10 June 2022

Improvements to debugger addapter:

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 :)