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