github lexical-lsp/lexical v0.6.0

latest releases: v0.7.1, v0.7.0, v0.6.1...
5 months ago

After multiple people asked, both document and workspace symbols have been implemented.
Both make heavy use of our indexing infrastructure, which provides extremely fast and
accurate results.

We've also fixed a number of small inconsistencies and crashes in the indexer, making it more robust and accurate. I especially want to call out the fix that @lukad made, that improved indexing performance by 3600x on his large codebase.
When you update to this release, we strongly recommend re-indexing your project's source code by opening the project's mix.exs file and
running the Rebuild <your project>'s code search index code action.

In addition, we've improved support for completions in phoenix controllers, stopped completions inside strings and have changed how we sort completions. The new sorting scheme is a big improvement for usability, and sorts things by how "close" they are to what you're working on. Give it a shot, we think you'll like it.

I'd like to thank all our new contributors, and especially our core team of
@scottming, @zachallaun, @Moosieus and @blond. You've all gone above and beyond.

What's Changed

  • Added path tests by @scohen in #630
  • Added variable extractor and ability to customize which extractors run by @scohen in #621
  • Add Sublime Text instructions to docs by @distefam in #633
  • Refactor search store queries exact/2 and fuzzy/2 for simplicity by @scottming in #631
  • Create FUNDING.yml by @scohen in #634
  • Add a glossary by @zachallaun in #354
  • Add prefix search functionality to the search store by @scottming in #632
  • Implement callback completions by @Moosieus in #640
  • Fix do completing to defmodule in VSCode by @Moosieus in #642
  • Speed up indexing by not calling deps_dir for every file by @lukad in #646
  • Fixed bug where blocks weren't popped correctly by @scohen in #647
  • Fix crashing in unsaved vscode files by @Moosieus in #644
  • Upgrade dialyzer for Elixir 1.16 by @scottming in #650
  • Find references for variables by @scohen in #645
  • Add summaries to callable completions. by @Moosieus in #648
  • New completion sorting approach by @Moosieus in #653
  • Slimmed down representations of range and position by @scohen in #654
  • Fixed issue where function definitions were returning references by @scohen in #655
  • FIX: Invalid reads for requests that contain multi-byte characters by @scohen in #661
  • Document Symbols support by @scohen in #652
  • Use languageId field provided by LSP clients. by @Moosieus in #662
  • Extract module reference in function captures by @scottming in #663
  • Fix: Current module not identified in defimpl by @scohen in #665
  • Fix links on architecture page. by @Moosieus in #669
  • Patch DidOpen handler. by @Moosieus in #671
  • Added extractors for defimpl and defprotocol by @scohen in #666
  • Fixing crash when dealing with unicode files by @scohen in #672
  • Handled comments when resolving locations by @scohen in #670
  • Fix: Non-string test names crash exunit indexer by @scohen in #676
  • Granted write permissions by @scohen in #677
  • Fix: Function definition extractor chokes on macro functions by @scohen in #682
  • chore: update Nix workflow to not return error by @hauleth in #683
  • Added module attribute detection by @scohen in #679
  • Impl suggest behaviours by @scohen in #681
  • Log errors in Server.Transport.StdIO. by @Moosieus in #684
  • Support resolving Phoenix Controller modules. by @scottming in #659
  • Completions: Handled nil origin and full name by @scohen in #689
  • Fixed crash for in-progress module attributes by @scohen in #691
  • Fixed: Error while calculating block spans by @scohen in #687
  • For module definitions, use the Indexer version instead of ElixirSense by @scottming in #658
  • Fix disabling HEEx as-you-type compilation. by @Moosieus in #694
  • textDocument/definition: respond with nil result when not found by @zachallaun in #698
  • Ensure the index is ready before running GoToDefinition tests by @zachallaun in #700
  • Current modules can be nil by @scohen in #696
  • Stopped completions inside strings by @scohen in #692
  • Workspace symbols by @scohen in #674
  • Added def/defp to document symbols for functions by @scohen in #702
  • Fix: Module suggestion was incorrect for files with multiple periods by @scohen in #705
  • Added a changelog by @scohen in #706
  • Fallback to ElixirSense when unable to find any definitions with Indexer by @scottming in #707
  • chore: update FOD hash by @hauleth in #709
  • chore: update Nixpkgs by @hauleth in #714
  • Included non-deps symbols in fuzzy matcher by @scohen in #704
  • Added boost for matches directly following the last period by @scohen in #708

New Contributors

Full Changelog: v0.5.2...v0.6.0

Don't miss a new lexical release

NewReleases is sending notifications on new releases.