LSP Servers
OpenCode tích hợp với Language Server Protocol (LSP) để giúp AI hiểu codebase của bạn.
Tổng quan
OpenCode tự động phát hiện và cài đặt LSP servers cho các ngôn ngữ phổ biến. Khi bạn mở file, nó kiểm tra extension và khởi động LSP server tương ứng.
LSP servers cung cấp:
- Diagnostics (lỗi, warning)
- Go to definition
- Find references
- Hover info
- Code completions
Built-in LSP Servers
| LSP Server | Extensions | Yêu cầu |
|---|---|---|
| astro | .astro | Tự động cho Astro projects |
| bash | .sh, .bash, .zsh | Tự động cài bash-language-server |
| clangd | .c, .cpp, .cc, .h, .hpp | Tự động cho C/C++ projects |
| csharp | .cs, .csx | Cần .NET SDK |
| dart | .dart | Cần dart command |
| deno | .ts, .tsx, .js, .jsx | Cần deno command |
| eslint | .ts, .tsx, .js, .jsx | Cần eslint trong project |
| gopls | .go | Cần go command |
| jdtls | .java | Cần Java SDK 21+ |
| pyright | .py, .pyi | Cần pyright |
| rust | .rs | Cần rust-analyzer |
| svelte | .svelte | Tự động cho Svelte projects |
| typescript | .ts, .tsx, .js, .jsx | Cần typescript trong project |
| vue | .vue | Tự động cho Vue projects |
LSP servers tự động được bật khi phát hiện extension tương ứng và đáp ứng yêu cầu.
Cấu hình
Tùy chỉnh LSP servers qua opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"lsp": {}
}
Environment variables
{
"lsp": {
"rust": {
"env": { "RUST_LOG": "debug" }
}
}
}
Initialization options
{
"lsp": {
"typescript": {
"initialization": {
"preferences": { "importModuleSpecifierPreference": "relative" }
}
}
}
}
Disable LSP
Tắt tất cả LSP:
{ "lsp": false }
Tắt một LSP cụ thể:
{
"lsp": {
"typescript": { "disabled": true }
}
}
Custom LSP servers
{
"lsp": {
"custom-lsp": {
"command": ["custom-lsp-server", "--stdio"],
"extensions": [".custom"]
}
}
}
Lưu ý
- Tắt tự động download LSP:
OPENCODE_DISABLE_LSP_DOWNLOAD=true - PHP Intelephense premium: đặt license key trong
~/intelephense/license.txt