0.2.0 (2026-10-20)
Features
- add compileOnType configuration (#819) (faffb9f), closes #795
- add configuration to autofetch dependencies (#750) (ee5aee2)
- add declaration support (#868) (3bf2f9c), closes #145
- add hex intelligence (#570) (ace9d05)
- add implementations support (#864) (a305f2d)
- add selection ranges (#900) (5ddce57)
- add signature help (#869) (ee243ef), closes #142
- allow multiple index writers with SQLite (#683) (02b0080)
- allow setting Elixir source directory (#568) (6e623d2)
- configure toolchain paths (#682) (b3f039e)
- defer code action execution (#761) (86fc69d)
- engine: expand engine builder error output (#659) (0cebb78)
- engine: find definition for functions defined by macro (#759) (fde8d85)
- engine: index defmacro/defmacrop definitions (#554) (ab84d7a)
- expert: allow setting file log level via configuration (#563) (eeb6628), closes #541
- expert: autodetect Elixir source (#779) (b2458b0)
- expert: fold anonymous functions (#881) (2f2fbf5)
- expert: fold consecutive comment lines (#743) (63dc1f3)
- expert: fold multiline bitstrings (#897) (6bbad8c)
- expert: support folding ranges (#649) (684d19a)
- fall back to other arities in go-to-definition when exact arity has no result (#728) (65ceece)
- implement call hierarchy (#891) (e32f706)
- make on-the-fly engine builds work offline (#739) (9e8c774)
- use compiler tracers for project indexing (#705) (ea1f104)
- use compiler tracers to index definitions (#799) (c95f6e6)
Bug Fixes
- bring back remote shell (#584) (f85c7a5)
- build a single engine for multiple projects using the same toolchain versions (#509) (7501e68)
- bump spitfire to v0.3.13 (#714) (899149e)
- ci: forward major/minor outputs from the release job (#950) (11993a8), closes #942
- clear stale diagnostics as you type (#878) (2afc03c)
- compile the engine with MIX_ENV=dev (#749) (aefdcaa)
- correctly pass Elixir source path config (#760) (762d145)
- deps: bump spitfire and deps with security advisories (#939) (5484274), closes #938
- diagnostics take a long time to update (#871) (f9c8099)
- don't connect to the epmd daemon (#553) (292ed7a)
- don't discard multiple diagnostics from file and project compilation (#841) (91b1f74)
- don't index build paths (#652) (e19117d)
- don't infinitely loop prompting to fetch dependencies if it fails (#548) (335c68b)
- don't load deps before the project is compiled (#839) (861c700)
- don't reverse text document params (#884) (01b9f4a)
- don't use token_metadata option when compiling (#845) (0f766d0)
- eager loading for large projects (#610) (81f324f)
- engine build crashes when changing tooling versions (#710) (2b307c9)
- engine: add project stack lock (#654) (d1cac1d)
- engine: analyzer gets confused with overlapping aliases (#816) (ff8e68f)
- engine: correct project path checks on Windows (#757) (03ff52c)
- engine: don't crash in EEx on hover (#666) (822e35e)
- engine: drop edit window to 100ms (#872) (05594aa)
- engine: fix interpreting words inside strings as identifiers (#579) (8926a03)
- engine: improve compatibility check messaging (#716) (fc0b737)
- engine: improve progress notifications (#803) (ecbaa7d)
- engine: increase build timeout duration, add batch uri reindex with debounce (#698) (ba07dcd)
- engine: keep ModuleStore alive across builds (#889) (8cada72)
- engine: preload deps and don't prune code paths (#768) (ccce6af)
- engine: resolve entity with correct arity in (h)eex (#663) (1fefc5c)
- engine: resolve formatter against project mix config (#834) (cbddc62)
- engine: respect formatter line length in Refactorex actions (#571) (f12c48a)
- engine: run formatter in Mix project context (#711) (99f2719)
- engine: set target when evaluating config diagnostics (#731) (ea7158c)
- engine: stop double applying alias suffix when prefix is aliased (#545) (9de53c2)
- engine: unify import lookup to correctly resolve local calls (#547) (728b76e)
- exclude debug applications with MIX_ENV=prod (#794) (21a488b), closes #786
- expert_credo: prevent infinite hang in with_stdin/2 (#372) (811578b)
- expert: add no-op handler for $/setTrace (#564) (4f425a2)
- expert: always scrub env vars (#703) (b501d67)
- expert: correct use translation (#767) (1519e99)
- expert: extend list of editors having VSCode completion bug (#736) (c0494e9)
- expert: fix Node.start for Elixir pre-1.19 (#720) (bbb466c)
- expert: force unicode encoding on IO (#852) (ee84f46)
- expert: log correct path when looking up executables (#675) (4dff00f)
- expert: remote shell command on Windows (#657) (ee2ab46)
- expert: remove release root entries from subprocess PATH (#699) (a101caa)
- expert: use document from request as fallback when document is not in the store (#693) (5daee68)
- find references imported by
use(#823) (e035c2c) - forge: handle bitstrings in interpolation (#865) (b979b9b), closes #256
- forge: monitor beam rewriting worker process (#370) (c8be4e9)
- forge: normalize Erlang release candidate versions (#639) (babcd42), closes #640
- forge: reset ASCII assumption on a new line (#687) (b59dd76), closes #623
- forge: use
project.root_urifor cache key inForge.Project.config(#575) (deb019b) - handle LSP supported invalid configuration values (#551) (e973cfc)
- hang at startup if .bashrc contains exec call (#527) (73b8d28)
- improve performance of formatting (#804) (63ae6eb)
- improve release overlays (#578) (3ee0a1b)
- improve startup time and module introspection (#604) (f0a788a)
- improve struct reference completion handling errors in struct completions (#774) (c5674bc)
- incorrect undefined protocol function diagnostic (#820) (77a6e74)
- index macro-generated definitions from compiler traces (#856) (d564f25)
- index project sources even when compile reports error (#809) (5039c10)
- make sure to return only Diagnostic.Result struct as diagnostics (#782) (c763351)
- nix: only expose the expert launcher (#899) (ef346b7), closes #429
- only index sibling beams when origin source file changes (#707) (03a56b5)
- only register watchers if the client advertises support for them (#907) (711cb75)
- port Refactorex into Forge (#747) (c27bf61)
- prevent formatter cache from forgetting the formatter for a path (#831) (8bc8afc)
- properly calculate callback completion line range (#846) (627309d), closes #785
- properly handle typespec errors; prevent diagnostics crash (#879) (eb0a7e4)
- read beam binary directly instead of using Module functions (#876) (d56e468)
- record module binary if module metata read fails (#874) (cf76479)
- refactorex: use field-level comparison for cursor detection (#642) (14e59a4)
- relax Hex connectivity timeout (#858) (423be25), closes #538
- release: ensure start_expert works if symlinked (#572) (c11f489)
- resolve the right formatter for each file (#880) (491f81f)
- rework workspace folders and project discovery (#566) (345aa34)
- schedule compiles for ready engines only (#762) (7dd317b)
- skip expanding non-grouped aliases (#898) (bdd5d81)
- skip regular files on engine clean (#613) (ce93691)
- stop calls to
IOand other writes to stdout from crashing Expert. (#824) (f76b96a) - stop checking dependency beam mtime (#890) (728cf1d)
- support erlang module aliases for rename remote function (#855) (0a5cd77)
- update nixpkgs, switch to beamPackages.overrideScope (#896) (5fbe174)
- use host resolution to check internet (#870) (eb0ac70)
Performance Improvements
- avoid forced warm-start compiles (#866) (81f13e6), closes #863
- compact entry blob ranges (#906) (d61a178)
- expert: fold code in one AST pass (#883) (212f383)
- expert: only retain definitions in indexer source_keys (#919) (1625f28)
- expert: optimize fuzzy scorer subject preprocessing (#944) (63cf9fb)
- expert: parallelize beam entry creation in worker tasks (#937) (73b0d1e)
- expert: stream entries on index refresh (#922) (f1104f2)
- expert: stream entries on index replacement (#920) (5f5824f)
- expert: use partial index for entries caller (#928) (439328e)
- expert: use range queries for sqlite prefix search (#935) (3e30770)
- indexer: cache application and available modules (#634) (9bc521d)
- indexer: only use relevant extractors when indexing deps (#641) (161f040)
- move indexer to the manager node (#905) (8d6007f)
- use beam metadata for dependencies (#670) (710c736)