Language Server Protocol implementation for Racket. This project seeks to use DrRacket's public APIs to provide functionality that mimics DrRacket's code tools as closely as possible.
Install via the command line with raco pkg install racket-langserver
If you plan on using this package with Atom, you should install atom-ide-racket instead. This package will be installed automatically by the atom-ide-racket installer (although the Racket runtime should be installed prior to this).
- Hover (textDocument/hover)
- Jump to Definition (textDocument/definition)
- Find References (textDocument/references)
- Note: Currently only considers references within the current file.
- Document Highlight (textDocument/documentHighlight)
- Diagnostics (textDocument/publishDiagnostics)
- Document Outline (textDocument/documentSymbol)
- Code Formatting (textDocument/formatting & textDocument/rangeFormatting)
- Rename (textDocument/rename)
- Code completion (textDocument/completion)
It is useful to think of this project as a "headless mode" for DrRacket. Contributions to this project should seek to avoid re-implementing functionality that is already exposed through DrRacket's public API.
Currently, we do not support workspace-wide (or project-wide) methods because the underlying DrRacket code tools only operate on one file at a time. If multi-file code tools are a desirable feature, then they should be considered for inclusion into DrRacket proper before being implemented in this project.