- Integrate the AST into the LSP, this makes parsing and tokenizing the files much easier - Consolidate most of the symbol info tracking in `goalc` to a single map. Fixed some issues where the old map would never evict symbols when re-compiling files. There is still some more to cleanup, but this now can be used as an incrementally updated source-of-truth for the LSP - re-compile files when they are saved. Ideally this would be done everytime they are changed but that: - may be too aggressive - goalc doesn't compile incrementally yet so it likely would be a worse UX Features added, see https://github.com/open-goal/opengoal-vscode/issues/256 - Hover   - LSP Status fixed - Type Hierarchy  - Document Color  - Document Symbols  - Completions  --------- Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
Tree-sitter CLI
The Tree-sitter CLI allows you to develop, test, and use Tree-sitter grammars from the command line. It works on MacOS, Linux, and Windows.
Installation
You can install the tree-sitter-cli with cargo:
cargo install tree-sitter-cli
or with npm:
npm install tree-sitter-cli
You can also download a pre-built binary for your platform from the releases page.
Dependencies
The tree-sitter binary itself has no dependencies, but specific commands have dependencies that must be present at runtime:
- To generate a parser from a grammar, you must have
nodeon your PATH. - To run and test parsers, you must have a C and C++ compiler on your system.
Commands
-
generate- Thetree-sitter generatecommand will generate a Tree-sitter parser based on the grammar in the current working directory. See the documentation for more information. -
test- Thetree-sitter testcommand will run the unit tests for the Tree-sitter parser in the current working directory. See the documentation for more information. -
parse- Thetree-sitter parsecommand will parse a file (or list of files) using Tree-sitter parsers.