A Language Server (LSP) for the Janet programming language.
The goal of this project is to provide an augmented editor/tooling experience for Janet, via a self-contained, Language Server Protocol-compliant language server (which is itself implemented in Janet!).
Current features include:
- Partial auto-completion based on defined symbols
- On-hover definition of symbols as returned by
(doc ,symbol)
- Inline compiler errors
Planned features include:
- Additional autocompletion support
- Jump to definition/implementation
- Find references from definition/implementation
- Refactoring helps
- Symbol renaming helps
Possible (but de-prioritized) features include:
- Syntax highlighting for Janet via semantic tokens
Desirable, but possibly more complicated/difficult features include:
- Stand-alone (i.e. non-Editor-dependent) usage via API/CLI
- Windows/MacOS support is mostly untested and, in the case of Windows, known to be somewhat glitchy. Contributions welcome here.
- The only editor integration currently tested against is Visual Studio Code.
- I've never written a language server before, so I don't really know what I'm doing. Help me, if you'd like!
Currently, the only editor tested and known working with Janet LSP is Visual Studio Code, which you can try/take advantage of by installing the Janet++ extension from the VS Code marketplace.
Other editors that implement LSP client protocols, either built-in or through editor extensions, include:
- Emacs
- vim/neovim
- Sublime Text
- Helix
- Kakoune
If you get Janet LSP working with any of these options, please let me know!
$ git clone https://github.com/CFiggers/janet-lsp
$ cd janet-lsp
$ jpm deps
$ jpm build
After running the commands above, the following command will copy the janet-lsp
binary to a location that can be executed via the command line.
$ jpm install
Issues and Pull Requests welcome.
This project is a hard fork from (with much appreciation to) JohnDoneth/janet-language-server, which is Copyright (c) 2022 JohnDoneth and contributors.