Docs menuExtensions and language servers

DocsLanguages

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

FeatureHow to use it
Live errors and warningsSquiggles appear as you type, even before you save.
Hover informationRest the mouse on a name to see its type and documentation.
Go to definitionF12, or Ctrl+click a name, including into other files.
Fix with LamiedHover an error and send it to the assistant. See Fix with Lamied.
Type-checked AI editsThe assistant checks the files it edits for errors, and fixes what it broke.
Errors in contextErrors in open and recently changed files are included with your AI requests. See Using the AI assistant.

Install language support

  1. Open the Extensions view: the four-squares icon in the activity bar.
  2. Find your language. The search box filters by name, description or file extension.
  3. Click Install. A progress bar shows the download; Cancel stops it.
ExtensionInstalls
PythonPyright
TypeScript and JavaScripttypescript-language-server with TypeScript
Rustrust-analyzer
C and C++clangd
Gogopls, built with your own Go toolchain (Go must be installed)
JavaEclipse JDT LS (requires JDK 21 or newer)
Dart and FlutterLanguage server from your existing Dart or Flutter SDK
HTML, CSS/SCSS/Less, JSON/JSONCVS Code language servers (separate extensions)
YAMLyaml-language-server
Bash and Shellbash-language-server; ShellCheck on PATH enables shell lint diagnostics
PHPIntelephense; 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 .venv or venv, 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.

language-servers.json
{
  "python": { "command": "/opt/pylsp/bin/pylsp", "args": [] },
  "go": { "disabled": true }
}