1. 프로젝트 구조 및 설명
Nvim-lspconfig의 디렉토리 구조는 다음과 같습니다:
.
├── CONTRIBUTING.md
├── doc
│ └── lua
├── lualib
└── plugin
└── scripts
└── test
└── .codespellignore
└── .editorconfig
└── .gitignore
└── .luacheckrc
└── .stylua.toml
└── CONTRIBUTORS.md
└── LICENSE.md
└── Makefile
└── README.md
└── flake.lock
└── flake.nix
└── neovim.yml
└── nvim-lspconfig-scm-1.rockspec
└── selene.toml
이 프로젝트는 주요 부분으로 다음을 포함합니다:
- `doc`: 문서와 도움말 정보가 들어 있습니다.
- `lualib`: LSP 관련 Lua 함수를 제공합니다.
- `plugin`: 내장된 플러그인 코드입니다.
- `scripts`: 보조 스크립트입니다.
- `test`: 단위 테스트 사례입니다.
2. 초기화 파일 소개
Nvim-lspconfig에는 특정 시작 파일이 없습니다. 이는 독립 실행형 애플리케이션이 아니라 Neovim의 설정 라이브러리이기 때문입니다. Neovim을 시작한 후, 초기화 파일(`init.vim` 또는 `init.lua`)에서 설정을 로드하여 LSP 지원을 활성화해야 합니다.
다음은 `init.lua`에서 LSP 설정을 하는 간단한 예제입니다:
require'lspconfig'.pyright.setup{} -- Pyright 언어 서버 시작
Neovim을 시작하면, LSP 클라이언트는 구성에 맞는 언어 파일을 열 때 해당 언어 서버에 자동으로 연결됩니다.
3. 설정 파일 설명
설정 파일 위치
Neovim에서 LSP 설정은 일반적으로 사용자의 `init.vim` 또는 `init.lua` 파일에 위치하며, 이는 Neovim이 시작될 때 읽는 설정 파일입니다.
예제 설정
각 언어 서버의 설정은 약간 다르지만 기본적인 구성 방식은 비슷합니다. 예를 들어, Pyright 언어 서버를 설정하려면 `init.lua`에서 다음과 같이 작성할 수 있습니다:
-- LSPConfig 라이브러리 로드
require'lspconfig'
-- Pyright 설치 및 설정
local client_caps = vim.lsp.protocol.make_client_capabilities()
client_caps.textDocument.completion.completionItem.snippetSupport = true
require'lspconfig'.pyright.setup{
capabilities = client_caps,
}
이 예제에서는 필요한 모듈을 먼저 가져온 후 클라이언트의 기능(capabilities)을 정의하고, 마지막으로 Pyright 언어 서버 설정을 지정했습니다.
다른 언어 서버를 설정하려면 `server_configurations.md` 문서나 `:help lspconfig-all` 명령을 참고하세요. 시스템 경로에 없는 서버의 경우, JDTLS 또는 ElixirLS의 전체 경로를 명시적으로 지정해야 할 수 있습니다.