racket-langserver is a 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.
A Racket runtime is a prerequisite, so before using racket-langserver, ensure that a Racket runtime is installed. You can install an from the official download page or install one from your package manager. Currently racket-langserver is compatible with Racket version 7.6 to 9.0.
You can use the atom-ide-racket package. The language server will be automatically installed when atom-ide-racket installs.
Use the Magic Racket extension.
First, install an LSP runtime for your editor.
Next, install the package via raco:
raco pkg install racket-langserver
Once it is installed, you can configure your editor to use a custom LSP client for Racket (and all installed module, e.g. Rhombus) files (usually .rkt), and set the command for the custom client to
racket -l racket-langserver
You may need to restart your LSP runtime or your editor for racket-langserver to start.
- 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)
- Code Formatting (textDocument/formatting & textDocument/rangeFormatting & textDocument/onTypeFormatting)
- Code Action (textDocument/codeAction)
- Signature Help (textDocument/signatureHelp)
- Rename (textDocument/rename & textDocument/prepareRename)
- Note: Currently only allows renaming symbols defined within the current file.
- Code completion (textDocument/completion)
- Document Outline (textDocument/documentSymbol)
See CONTRIBUTING.md.