-
Update the Elixir grammar to the latest from Elixir LS. This update brings over ~2 years of improvements to Elixir LS' grammar to Lexical. Thanks to @probably-not!
Here's the list of improvements brought by this upgrade, gracefully provided by @lukaszsamson:
- unicode identifier support added
- unicode support in atoms
- reraise keyword
- correct list of operator atoms
- correct matching of defguard as function scope
- removed pre 1.0 keywords
- multiletter uppercase sigils
- corrected textmate scopes for variables
- function call matching
- improvements to @doc and friends
- Reverted markdown syntax highlighting in heredoc to maintain clearer separation between documentation and actual elixir code.
- Fixed an issue where syntax highlighting would break after single-line @doc annotations. Thanks @pdm-jd!
- Added syntax highlighting for markdown in
@doc,@moduledocand@typedocmodules attributes. Thanks to @SteffenDE for suggesting the solution and @Terbium-135 for implementing it.
- Fixed an issue with
do/endandfn/endbrackets whereendwould mistakenly be considered a closing bracket when used as a map or struct field.
- Added support for
do/endandfn/endas brackets for VSCode, enabling bracket colorization and bracket navigation features.
- Added the "Rebuild code search index" which instructs Lexical to rebuild the code search index for the current project.
- Added a notification after automatic installation of a new version of Lexical.
This notification can be disabled through the ǹew
lexical.notifyOnServerAutoUpdateconfiguration setting.
- Added default VS Code settings to better match Elixir's official style even when not using Lexical's formatting functionality
- Added the changelog to the extension bundle so it's readable directly from VsCode
- Added more logging to better expose the extension's startup process
- Updated all of the extension's dependencies. This should have no impact on users apart from a slightly smaller package.
- The
Restart Lexical's language servercommand now starts the language server if it isn't already running. Useful to quickly restart Lexical if initial start failed due to environment reasons, like an incompatible version of Erlang or Elixir. - Added the
projectDirconfiguration option which lets users specify a subdirectory in which Lexical should be started instead of the workspace root.
- Adds a note in the readme about lack of support for HEEx syntax highlighting and directs users to the Phoenix Framework extension instead.
- Lexical is now published to the Open VSX marketplace.
- New command
Restart Lexical's language server. Restarts the language server without having to reload VSCode entierely. - Updated the extension to be more descriptive. This should help Lexical come up higher in marketplace search results.
- When auto-installing a new release fails during certain key operations, Lexical can now fallback to an already installed version rather than failing outright and not starting.
- Fixed bad link to Lexical logo in README.
- Add a description to the extension's manifest.
- Lexical now has a logo!
- Added a few badges to the README for important links and project status.
- Updates the
lexical.server.releasePathOverrideconfiguration option to support specifying a path to the start script rather than a folder containing a Lexical release. - Grammar improvements that exclude brackets from being matched together when part of string or other similar non-structural context.
- Support installing and starting Lexical versions that use the new packaging structure. This change should be transparent for users but ensures compatibility with future releases of Lexical.
- Improve documentation on which versions of Elixir and Erlang are supported by Lexical.
- Send EEx and HEEx documents to Lexical as those are now supported.
- Fix incorrect command to publish extension in README.
- Improve documentation on which versions of Elixir and Erlang are supported by Lexical.
- Register Lexical for HEEx and Surface files as those are not supported.
- Use installed release version to add execute permission to launch scripts, fixing an issue where only Lexical version 0.0.1 would be able to start.
- Support for installating releases with semantic versions, rather than the older style of commit releases.
- Bundle extension with esbuild, making downloaded bundle much smaller.
- Documentation in README to explain features, installation, configuration, troubleshooting, etc.
- Ability to automatically download and install the latest release of Lexical on extension start.
- Configuration options:
lexical.server.releasePathOverride: Disables auto-install and manually provide a path to a build of Lexical.lexical.trace.server: Traces all LSP messages between VSCode and Lexical.
- Elixir grammar to provide syntax highlihting and other basic functionality.