Step 1 of 7

What a language server is

What a language server is

Completion, go-to-definition, rename, and the red squiggles that mark an error don’t come from the editor. Helix gets them by talking to a language server: a separate program that understands one language, keeps its own copy of your files, and answers questions over a wire protocol called LSP. Every editor that speaks LSP gets the same answers, which is why Helix can offer these features for dozens of languages without a plugin for each.

On a real machine you install a server (rust-analyzer, pyright, gopls) and Helix starts it the first time you open a matching file. The browser can’t start programs, so this site runs a small stand-in of its own: a scripted server that knows nothing about any real language and answers purely from the text of the buffer beside you. It only attaches on the steps of this lesson — everywhere else the editor runs without one, as it has so far.

A few commands talk about the connection itself:

  • :lsp-restart restarts the server for the current buffer
  • :lsp-stop stops it; :lsp-workspace-command lists what it offers

The checklist starts with a warm-up from lesson 17, then has you restart the server. The statusline notes that the old connection exited; the new one attaches without a word. Try the same command on any earlier lesson and it answers “LSP not defined for the current document” instead.

  1. Jump to line 8 Warm-up from lesson 17 — a line number at the : prompt.
  2. Restart the language server with :lsp-restart The statusline reports the old connection closing; the new one comes up silently.
Jump to line 8 Warm-up from lesson 17 — a line number at the : prompt.

Next: Restart the language server with :lsp-restart

Loading editor…