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'
및 기타 태그 명령을 사용하여 "정의로 이동" 기능을 활성화합니다.'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
자동 명령 이벤트를 사용하여 추가 사용자 정의를 수행할 수 있습니다. 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
요청한 서버 이름을 시작합니다. 명령이 현재 구성과 일치하는 루트 디렉터리를 감지한 경우에만 성공적으로 시작됩니다. 이 명령만으로 클라이언트를 시작하려면 언어 서버에 대한 .setup{}
호출에 autostart = false
전달합니다. 현재 버퍼 파일 유형과 일치하는 모든 서버가 기본값입니다.:LspStop
기본값은 모든 버퍼 클라이언트를 중지하는 것입니다.:LspRestart
기본값은 모든 버퍼 클라이언트를 다시 시작하는 것입니다. configs.md에 언어 서버가 없는 경우, 이에 대한 새 구성을 제공하면 특히 서버에 특별한 설정이 필요한 경우 다른 사람에게 도움이 됩니다. 다음 단계를 따르세요.
lua/lspconfig/configs/SERVER_NAME.lua
에 새 파일을 만듭니다.릴리스를 게시하려면 다음을 수행하십시오.
저작권 Neovim 기여자. 모든 권리 보유.
nvim-lspconfig는 Apache 2.0 라이선스 조건에 따라 라이선스가 부여됩니다.
LICENSE.md를 참조하세요.