The much needed refactor of this project that I was postponing for long enough. With this PR the LSP is actually usable for general purposes, although it is still pretty rough.
A non-exhaustive list of changes:
A better structure to model scopes, symbol resolution, and source code <-> module relationships.
A lot of bugfixes
Added a rename feature
Implemented cross-references in multiple files
All external interfaces are put behind a trait the same way I did it in taplo. It's not important yet, but will make porting the language server to various environments (e.g. WASM) a lot easier.
Temporarily removed semantic tokens feature, it's tied to the symbol resolution rework and I didn't want to implement it until that part is rock solid, and it's not that important anyway.
Temporarily disabled snapshots in tests as test-case seems to have broken them, and insta cannot reliably figure out an unique name for the snapshot files.
The much needed refactor of this project that I was postponing for long enough. With this PR the LSP is actually usable for general purposes, although it is still pretty rough.
A non-exhaustive list of changes:
rename
featuretest-case
seems to have broken them, andinsta
cannot reliably figure out an unique name for the snapshot files.