nvim-lspconfig 是一個「僅資料」儲存庫,為各種 LSP 伺服器提供基本的預設 Nvim LSP 用戶端設定。
查看所有配置的文檔或來自 Nvim 的:help lspconfig-all
。
:help lsp
) 中的錯誤,請將其回報給 Neovim 核心。 git clone https://github.com/neovim/nvim-lspconfig ~/.config/nvim/pack/nvim/start/nvim-lspconfig
npm i -g pyright
require ' lspconfig ' . pyright . setup {}
:help lspconfig-all
中指定的伺服器要求的根標記。 nvim main.py
:checkhealth lsp
查看狀態或進行故障排除。閱讀:help lspconfig
了解詳細資訊。請閱讀:help lspconfig-all
以取得特定於伺服器的詳細資訊的完整清單。對於不在$PATH
上的伺服器(例如jdtls
、 elixirls
),您必須在呼叫setup()
時手動設定cmd
參數。
當緩衝區附加到 LSP 時,Nvim 設定一些預設選項和映射(請參閱:help lsp-config
)。尤其:
'tagfunc'
和其他標籤指令啟用「前往定義」功能。'omnifunc'
啟用(手動)全向模式完成。對於自動完成,需要自動完成插件。'formatexpr'
gq
啟用 LSP 格式化。K
在正常模式下對應到vim.lsp.buf.hover()
。[d
和]d
分別映射到vim.diagnostic.goto_prev()
和vim.diagnostic.goto_next()
。d
對應到vim.diagnostic.open_float()
。可以使用LspAttach
自動命令事件來實現進一步的自訂。如果緩衝區與 LSP 伺服器分離,則LspDetach
自動命令事件可用於「清理」對映。有關詳細資訊和範例,請參閱:h LspAttach
和:h LspDetach
。有關其他 LSP 功能的詳細信息,請參見:h lsp-buf
。
透過將參數傳遞給setup
函數,可以為每個 LSP 伺服器提供附加配置選項。有關詳細信息,請參閱:h lspconfig-setup
。例子:
local lspconfig = require ( ' lspconfig ' )
lspconfig . rust_analyzer . setup {
-- Server-specific settings. See `:help lspconfig-setup`
settings = {
[ ' rust-analyzer ' ] = {},
},
}
語言伺服器無法啟動或附加的最常見原因是:
cmd
,並看到語言伺服器啟動。如果cmd
是可執行檔名稱而不是可執行檔的絕對路徑,請確保它位於您的路徑上。:set ft?
顯示文件類型而不是空值。.git
資料夾,但每個伺服器都在 lua 檔案中定義根配置。請參閱 doc/configs.md 或根目錄清單的原始程式碼。capabilities
setup {}
。setup {}
兩次。第二次呼叫setup {}
將覆蓋第一次呼叫。 如果您發現 LSP 功能的錯誤,請將其回報給 Neovim 核心。
在報告錯誤之前,請檢查您的日誌和:LspInfo
的輸出。將以下內容新增至 init.vim 以啟用日誌記錄:
vim . lsp . set_log_level ( " debug " )
嘗試執行語言伺服器,並使用以下命令開啟日誌:
:LspLog
大多數時候,失敗的原因存在於日誌中。
:LspInfo
(已棄用:che lspconfig
的別名)顯示活動和設定的語言伺服器的狀態。:LspStart
啟動請求的伺服器名稱。僅當指令偵測到與目前設定相符的根目錄時才會成功啟動。如果您想僅使用此命令啟動客戶端,請將autostart = false
傳遞給語言伺服器的.setup{}
呼叫。預設為符合目前緩衝區檔案類型的所有伺服器。:LspStop
預設停止所有緩衝區客戶端。:LspRestart
預設重新啟動所有緩衝區客戶端。 如果 configs.md 中缺少語言伺服器,為其貢獻新配置可以幫助其他人,特別是如果伺服器需要特殊設定。請依照下列步驟操作:
lua/lspconfig/configs/SERVER_NAME.lua
建立一個新檔案。發布版本:
Neovim 貢獻者版權所有。版權所有。
nvim-lspconfig 依據 Apache 2.0 授權條款授權。
請參閱 LICENSE.md