Extensions and language servers
Live errors, hover, go to definition, and type-checked AI edits.
Language servers give the editor a real understanding of your language: live errors and warnings as red and yellow squiggles, information on hover, and go to definition. They also let the AI assistant check its own edits for type errors before it tells you it's done.
What you get
| Feature | How to use it |
|---|---|
| Live errors and warnings | Squiggles appear as you type, even before you save. |
| Hover information | Rest the mouse on a name to see its type and documentation. |
| Go to definition | F12, or Ctrl+click a name, including into other files. |
| Fix with Lamied | Hover an error and send it to the assistant. See Fix with Lamied. |
| Type-checked AI edits | The assistant checks the files it edits for errors, and fixes what it broke. |
| Errors in context | Errors in open and recently changed files are included with your AI requests. See Using the AI assistant. |
Install language support
- Open the Extensions view: the four-squares icon in the activity bar.
- Find your language. The search box filters by name, description or file extension.
- Click Install. A progress bar shows the download; Cancel stops it.
| Extension | Installs |
|---|---|
| Python | Pyright |
| TypeScript and JavaScript | typescript-language-server with TypeScript |
| Rust | rust-analyzer |
| C and C++ | clangd |
| Go | gopls, built with your own Go toolchain (Go must be installed) |
| Java | Eclipse JDT LS (requires JDK 21 or newer) |
| Dart and Flutter | Language server from your existing Dart or Flutter SDK |
| HTML, CSS/SCSS/Less, JSON/JSONC | VS Code language servers (separate extensions) |
| YAML | yaml-language-server |
| Bash and Shell | bash-language-server; ShellCheck on PATH enables shell lint diagnostics |
| PHP | Intelephense; upstream premium features require a separate license |
Each card shows an approximate size before you install. Dart registers an existing SDK; uninstalling support does not remove that SDK.
Java checks JAVA_HOME, your PATH, and standard JDK installation folders. Dart uses DART_SDK, FLUTTER_ROOT, or your PATH. Run flutter doctor first if Flutter has not prepared its Dart SDK.
When you open a file whose language support isn't installed, Lamied offers Install, Show in Extensions or Don't ask again, once per language.
Each card's buttons follow its state:
- Installed: Disable or Uninstall. Uninstalling asks first, then stops the server and removes its files.
- Disabled: Enable or Uninstall. A disabled server never starts.
Turn language servers on for a workspace
Installing isn't quite enough: language servers are off for each workspace until you turn them on. Use the banner at the top of the Extensions view, or AI settings (⚙) → Editor → Language servers in this workspace. Lamied remembers the choice for that folder.
Without language servers, TypeScript and JavaScript still get the editor's built-in syntax checks. Project-wide type errors, like a missing import, need the language server.
Safe, verified installs
- Every download is pinned to a version tested with your Lamied release, and checked against the publisher's checksum. A mismatch is discarded.
- Downloads come only from npm, GitHub and Eclipse over HTTPS, and use your system's proxy settings.
- An install either completes fully or leaves the previous version in place, even if it's interrupted.
- No separate Node.js is needed. Lamied only uses what you install here, never language servers that happen to be on your computer.
- Python support uses your project's
.venvorvenv, so your installed packages resolve. TypeScript support prefers your project's own TypeScript version.
Use your own language server (advanced)
To use a server you've installed yourself, add it to language-servers.json in Lamied's settings folder. It shows as “Custom” in Extensions. The keys are typescript, python, go, rust, clangd, java, dart, html, css, json, yaml, bash and php.
{
"python": { "command": "/opt/pylsp/bin/pylsp", "args": [] },
"go": { "disabled": true }
}