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 매개변수를 수동으로 설정해야 합니다.
Nvim은 버퍼가 LSP에 연결될 때 몇 가지 기본 옵션과 매핑을 설정합니다( :help lsp-config 참조). 특히:
'tagfunc'<C-]> 및 기타 태그 명령을 사용하여 "정의로 이동" 기능을 활성화합니다.'omnifunc'<CX><CO> 를 사용하여 (수동) 옴니 모드 완료를 활성화합니다. 자동 완성을 위해서는 자동완성 플러그인이 필요합니다.'formatexpr'gq 사용하여 LSP 형식을 활성화합니다.K 일반 모드에서 vim.lsp.buf.hover() 에 매핑됩니다.[d 및 ]d 각각 vim.diagnostic.goto_prev() 및 vim.diagnostic.goto_next() 에 매핑됩니다.<CW>d vim.diagnostic.open_float() 에 매핑됩니다. LspAttach 자동 명령 이벤트를 사용하여 추가 사용자 정의를 수행할 수 있습니다. LspDetach 자동 명령 이벤트는 버퍼가 LSP 서버에서 분리되는 경우 매핑을 "정리"하는 데 사용할 수 있습니다. 자세한 내용과 예는 :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 또는 소스를 참조하세요.setup {} 에 대한 capabilities 전달해야 합니다. {}setup {} 두 번 호출하지 마십시오 . setup {} 에 대한 두 번째 호출은 첫 번째 호출을 덮어씁니다. LSP 기능에서 버그를 발견한 경우 Neovim core에 보고하세요.
버그를 보고하기 전에 로그와 :LspInfo 출력을 확인하세요. 로깅을 활성화하려면 init.vim에 다음을 추가하세요:
vim . lsp . set_log_level ( " debug " )언어 서버를 실행하고 다음을 사용하여 로그를 엽니다.
:LspLog
대부분의 경우 실패 이유는 로그에 나와 있습니다.
:LspInfo ( :che lspconfig 에 대한 더 이상 사용되지 않는 별칭)는 활성 및 구성된 언어 서버의 상태를 표시합니다.:LspStart <config_name> 요청한 서버 이름을 시작합니다. 명령이 현재 구성과 일치하는 루트 디렉터리를 감지한 경우에만 성공적으로 시작됩니다. 이 명령만으로 클라이언트를 시작하려면 언어 서버에 대한 .setup{} 호출에 autostart = false 전달하세요. 현재 버퍼 파일 유형과 일치하는 모든 서버가 기본값입니다.:LspStop <client_id> 기본값은 모든 버퍼 클라이언트를 중지하는 것입니다.:LspRestart <client_id> 기본값은 모든 버퍼 클라이언트를 다시 시작하는 것입니다. configs.md에 언어 서버가 없는 경우, 이에 대한 새 구성을 제공하면 특히 서버에 특별한 설정이 필요한 경우 다른 사람에게 도움이 됩니다. 다음 단계를 따르세요.
lua/lspconfig/configs/SERVER_NAME.lua 에 새 파일을 만듭니다.릴리스를 게시하려면 다음을 수행하십시오.
저작권 Neovim 기여자. 모든 권리 보유.
nvim-lspconfig는 Apache 2.0 라이선스 조건에 따라 라이선스가 부여됩니다.
LICENSE.md를 참조하세요.