Table of Contents
Basamake 🔗
Basamake is a minimalistic Scala language server for everyday work. It connects your editor to one or more BSP build servers and gives you the essentials:
- Go to definition and find references for Scala and Java code
- Build diagnostics (errors, warnings) reported by your build tool
- Multiple build tools per workspace (sbt, Mill, scala-cli, deder, ...) — all discovered and routed automatically
- Cached indexes for dependency jars and JDK sources — fast startup and snappy navigation
- Hover and completion for Scala files, using the build target's presentation compiler
No rename refactoring, formatting, or workspace-wide symbol search. Just the tools needed to navigate, understand, and edit Scala code — fast and stable.
New here? Start with the Installation guide, then read How it works. Already set up? See the Configuration page.
Why Basamake? 🔗
- Snappy — BSP servers start lazily (nothing spawns at editor startup), dependency indexes are cached on disk and reused across sessions
- Stable — small surface area and a simple concurrency model, no heavy machinery
- Robust — workspaces with several build tools just work; crashed build servers don't leave orphan processes behind
- See Why Basamake? for the comparison with Metals and IntelliJ
Features 🔗
- go to definition, including into dependency jars and JDK sources
- find references
- type and documentation on hover for Scala files
- code completion for Scala files
- build diagnostics from BSP servers
- multiple BSP servers per workspace, lazily started
- indexing progress reported to the editor while the workspace index is built
Site map 🔗
- Installation — VS Code extension and BSP setup
- How it works — the main mechanisms, in short
- Navigation & indexing — how definitions and references are resolved
- Configuration —
.basamake/config.json - Why Basamake? — Basamake vs Metals and IntelliJ