Get Started
Language Specifics (In Progress)
This is a living document. If you notice something that isn’t captured here, please reach out on Discord
General Characteristics
Server Properties
- Some languages persist a cache to disk. Subsequent startups will be faster
- Each language is handled by its own independent process
- Requests are handled asynchronously
File Symbols
All languages use ast-grep
for file symbol extraction:
- Consistent < 50ms response time across languages and file sizes
- We control these rules, if you see something off, let us know
Language-Specific Characteristics
C/C++ (clangd)
Performance
- Long indexing time to startup
- Persists cache to disk
- Consistent memory usage (~100 MB)
- Fast request response
Known Issues
- May require restarting
lsproxy
to initialize cache files. We are working on this: Issue
Go (gopls)
Performance
- Long indexing time to startup
Known Issues
- …
Java (jdtls)
Performance
- Long indexing time to startup
- High memory baseline (500MB+)
- Persists cache to disk
Known Issues
- Cache is not saved to mounted directory, so is lost when container is removed
JavaScript/TypeScript (typescript-language-server)
Performance
- …
Known Issues
- …
PHP (phpactor)
Performance
- Long indexing time to startup
Known Issues
- …
Python (jedi-language-server)
Performance
- Quick startup
- Reference requests very slow on large repos
Known Issues
- …
Rust (rust-analyzer)
Performance
- …
Known Issues
- …