GitHub Copilot CLI currently understands your code the same way a grep script does. Without a language server, the agent extracts JAR files to temp directories, walks node_modules, and pattern-matches raw bytecode to reconstruct API signatures. It works until it doesn't: generics, overloads, and transitive types are invisible to text search.

The LSP Setup skill fixes this by automating installation and configuration of Language Server Protocol servers for Copilot CLI across 14 languages. The skill runs a seven-step workflow: it detects your OS via uname -s, pulls install commands from a curated reference file, and writes either a user-level config at ~/.copilot/lsp-config.json or a repo-level lsp.json. Once in place, the agent sends textDocument/definition requests and gets back exact source locations and fully resolved types instead of heuristic guesses.

The full post is worth reading for the configuration format details and the reference data structure in lsp-servers.md, which drives the entire lookup. If you work across multiple languages or maintain a shared repo, the precedence rules between user-level and repository-level config are the section to study.

[READ ORIGINAL →]