Files
awesome-copilot/skills/lsp-setup/references/lsp-servers.md

9.5 KiB

Known LSP Servers for Copilot CLI

Reference data for the lsp-setup skill. Each section contains install commands per OS and a ready-to-use config snippet.

Config snippet format: Each snippet below shows the object to insert as a value under the top-level lspServers key. A complete config file looks like: { "lspServers": { <snippet here> } }. When adding multiple languages, merge their snippets as sibling keys under lspServers.


TypeScript / JavaScript

Server: typescript-language-server

Install

OS Command
Any npm install -g typescript typescript-language-server

Config snippet

{
  "typescript": {
    "command": "typescript-language-server",
    "args": ["--stdio"],
    "fileExtensions": {
      ".ts": "typescript",
      ".tsx": "typescriptreact",
      ".js": "javascript",
      ".jsx": "javascriptreact"
    }
  }
}

Java

Server: Eclipse JDT Language Server (jdtls)

Requires Java 21+ on JAVA_HOME or $PATH.

Install

OS Command
macOS brew install jdtls
Linux Check distro repos for jdtls or eclipse.jdt.ls; alternatively download from https://download.eclipse.org/jdtls/milestones/
Windows Download from https://download.eclipse.org/jdtls/milestones/ and add bin/ to PATH

On macOS with Homebrew, the binary is installed as jdtls on $PATH.

Config snippet

{
  "java": {
    "command": "jdtls",
    "args": [],
    "fileExtensions": {
      ".java": "java"
    }
  }
}

Note

: The jdtls wrapper script handles --stdio mode internally. If using a manual install, you may need to invoke the launcher jar directly — see the jdtls README for details.


Python

Server: pylsp (python-lsp-server)

Install

OS Command
Any pip install python-lsp-server
macOS brew install python-lsp-server

Config snippet

{
  "python": {
    "command": "pylsp",
    "args": [],
    "fileExtensions": {
      ".py": "python"
    }
  }
}

Alternative: Pyright

Server: pyright (via basedpyright or pyright)

OS Command
Any npm install -g pyright
Any pip install basedpyright (for basedpyright fork)
{
  "python": {
    "command": "pyright-langserver",
    "args": ["--stdio"],
    "fileExtensions": {
      ".py": "python"
    }
  }
}

Go

Server: gopls

Install

OS Command
Any go install golang.org/x/tools/gopls@latest
macOS brew install gopls

Config snippet

{
  "go": {
    "command": "gopls",
    "args": ["serve"],
    "fileExtensions": {
      ".go": "go"
    }
  }
}

Rust

Server: rust-analyzer

Install

OS Command
Any rustup component add rust-analyzer
macOS brew install rust-analyzer
Linux Distribution package or rustup
Windows rustup component add rust-analyzer or download from GitHub releases

Config snippet

{
  "rust": {
    "command": "rust-analyzer",
    "args": [],
    "fileExtensions": {
      ".rs": "rust"
    }
  }
}

C / C++

Server: clangd

Install

OS Command
macOS brew install llvm (clangd included) or Xcode command line tools
Linux apt install clangd / dnf install clang-tools-extra
Windows Download LLVM from https://releases.llvm.org/

Config snippet

{
  "cpp": {
    "command": "clangd",
    "args": ["--background-index"],
    "fileExtensions": {
      ".c": "c",
      ".h": "c",
      ".cpp": "cpp",
      ".cxx": "cpp",
      ".cc": "cpp",
      ".hpp": "cpp",
      ".hxx": "cpp"
    }
  }
}

C# (.NET)

Server: Roslyn Language Server (via dotnet dnx)

Requires the .NET SDK installed and on $PATH. The dotnet dnx command fetches and runs the roslyn-language-server package automatically.

Install

OS Command
Any .NET SDK required (dotnet on $PATH); no separate install needed

Config snippet

{
  "csharp": {
    "command": "dotnet",
    "args": [
      "dnx",
      "roslyn-language-server",
      "--yes",
      "--prerelease",
      "--",
      "--stdio",
      "--autoLoadProjects"
    ],
    "fileExtensions": {
      ".cs": "csharp"
    }
  }
}

Note

: The dotnet dnx command downloads and runs the roslyn-language-server NuGet tool package. The --yes flag auto-accepts the download prompt, --prerelease allows prerelease versions, and --autoLoadProjects enables automatic project discovery.


Ruby

Server: solargraph

Install

OS Command
Any gem install solargraph

Config snippet

{
  "ruby": {
    "command": "solargraph",
    "args": ["stdio"],
    "fileExtensions": {
      ".rb": "ruby",
      ".rake": "ruby",
      ".gemspec": "ruby"
    }
  }
}

PHP

Server: intelephense

Install

OS Command
Any npm install -g intelephense

Config snippet

{
  "php": {
    "command": "intelephense",
    "args": ["--stdio"],
    "fileExtensions": {
      ".php": "php"
    }
  }
}

Kotlin

Server: kotlin-language-server

Install

OS Command
macOS brew install kotlin-language-server
Any Download from GitHub releases and add to PATH

Config snippet

{
  "kotlin": {
    "command": "kotlin-language-server",
    "args": [],
    "fileExtensions": {
      ".kt": "kotlin",
      ".kts": "kotlin"
    }
  }
}

Swift

Server: sourcekit-lsp (bundled with Swift toolchain)

Install

OS Command
macOS Included with Xcode; binary at xcrun sourcekit-lsp
Linux Included with Swift toolchain; install from https://swift.org

Config snippet

{
  "swift": {
    "command": "sourcekit-lsp",
    "args": [],
    "fileExtensions": {
      ".swift": "swift"
    }
  }
}

On macOS you may need to use the full path: /usr/bin/sourcekit-lsp or set command to xcrun with args: ["sourcekit-lsp"].


Lua

Server: lua-language-server

Install

OS Command
macOS brew install lua-language-server
Linux Download from GitHub releases
Windows Download from GitHub releases

Config snippet

{
  "lua": {
    "command": "lua-language-server",
    "args": [],
    "fileExtensions": {
      ".lua": "lua"
    }
  }
}

YAML

Server: yaml-language-server

Install

OS Command
Any npm install -g yaml-language-server

Config snippet

{
  "yaml": {
    "command": "yaml-language-server",
    "args": ["--stdio"],
    "fileExtensions": {
      ".yaml": "yaml",
      ".yml": "yaml"
    }
  }
}

Bash / Shell

Server: bash-language-server

Install

OS Command
Any npm install -g bash-language-server

Config snippet

{
  "bash": {
    "command": "bash-language-server",
    "args": ["start"],
    "fileExtensions": {
      ".sh": "shellscript",
      ".bash": "shellscript",
      ".zsh": "shellscript"
    }
  }
}