Neovim 용 GitLab 플러그인 - gitlab.vim
GitLab 플러그인은 Neovim과 GitLab을 통합하며, Lua로 작성되었습니다.
Neovim에서 GitLab은 GitLab Duo Code Suggestions를 지원합니다.
Code Suggestions는 내장된 LSP (Language Server Protocol) 서버를 제공하여 다음의 키 매핑을 지원합니다:
Control+x, Control+o Omni Completion:
모드 | 키 매핑 | 유형 | 설명 |
---|---|---|---|
INSERT |
Control+x, Control+o | 내장 | 언어 서버를 통해 GitLab Duo Code Suggestions로부터 완성을 요청합니다. |
NORMAL |
<Plug>(GitLabToggleCodeSuggestions) |
<Plug> |
현재 버퍼에 대한 Code Suggestions를 켜거나 끕니다. 구성이 필요합니다. |
확장 설치
전제 조건:
- GitLab.com 및 자체 관리에 대해 GitLab 버전 16.1 이상이 필요합니다.
많은 확장 기능이 이전 버전에서 작동할 수 있지만, 지원되지 않습니다.- GitLab Duo Code Suggestions 기능은 GitLab 버전 16.8 이상이 필요합니다.
- Neovim 버전 0.9 이상이 필요합니다.
확장을 설치하려면 선택한 플러그인 관리자에 대한 설치 단계를 따르세요:
이 프로젝트를 포함하기 위해 다음 명령을 실행하세요.
packadd
를 시작 시 사용합니다:
git clone https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim.git ~/.local/share/nvim/site/pack/gitlab/start/gitlab.vim
lazy.nvim
다음과 같이 lazy.nvim 구성에 이 플러그인을 추가하세요:
{
'git@gitlab.com:gitlab-org/editor-extensions/gitlab.vim.git',
-- 파일이 생성되거나 열릴 때 활성화
event = { 'BufReadPre', 'BufNewFile' },
-- 지원되는 파일 형식이 열릴 때 활성화
ft = { 'go', 'javascript', 'python', 'ruby' },
cond = function()
-- 환경 변수에 토큰이 있는 경우에만 활성화합니다.
-- 이 줄을 제거하면 대화형 워크플로우를 사용할 수 있습니다.
return vim.env.GITLAB_TOKEN ~= nil and vim.env.GITLAB_TOKEN ~= ''
end,
opts = {
statusline = {
-- GitLab Duo Code Suggestions 통합의 상태를 나타내기 위해 내장 상태 표시줄에 후킹
enabled = true,
},
},
}
packer.nvim
다음과 같이 packer.nvim 구성에 플러그인을 선언하세요:
use {
"git@gitlab.com:gitlab-org/editor-extensions/gitlab.vim.git",
}
확장 구성
-
환경 변수를 구성합니다. 다음은 가장 일반적인 것이지만, 전체 목록은
이 플러그인의 도움말 텍스트에 있습니다:doc/gitlab.txt
:환경 변수 기본값 설명 GITLAB_TOKEN
.해당 사항 없음 인증된 요청에 사용할 기본 GitLab 개인 접근 토큰입니다. 제공되는 경우, 대화형 인증을 건너뜁니다. GITLAB_VIM_URL
.https://gitlab.com
연결할 GitLab 인스턴스를 재정의합니다. 기본값은 https://gitlab.com
입니다. -
원하는 파일 형식을 구성합니다. 예를 들어, 이 플러그인이 Ruby를 지원하기 때문에
FileType ruby
자동 명령을 추가합니다.
추가 파일 형식에 대해 이 동작을 구성하려면,code_suggestions.auto_filetypes
설정 옵션에 파일 형식을 추가합니다:require('gitlab').setup({ statusline = { enabled = false }, code_suggestions = { # 기본 언어의 전체 목록은 # https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim/-/blob/main/lua/gitlab/config/defaults.lua 의 # 'auto_filetypes' 배열을 참조하세요. auto_filetypes = { 'ruby', 'javascript' }, -- 기본값은 { 'ruby' }입니다. } })
-
선택사항. Omni Completion 구성합니다.
-
선택사항. [
키 매핑 구성](#configure-plug-key-mappings)합니다. -
선택사항.
:helptags ALL
을 사용하여 helptags를 설정하여
:help gitlab.txt
에 접근합니다.
Omni Completion 구성
Code Suggestions와 함께 Omni Completion을 활성화하려면:
-
api
범위로 개인 액세스 토큰을 생성하세요. -
Code Suggestions 언어 서버를 설치하세요.
-
선택사항. 단일 제안에 대해서도 Omni Completion의 대화상자를 구성하는 것을 고려하세요:
vim.o.completeopt = 'menu,menuone'
지원되는 파일 형식에서 작업할 때 Ctrl+x를 누른 다음 Ctrl+o를 눌러 Omni Completion 메뉴를 엽니다.
<Plug>
키 매핑 구성
편의를 위해 이 플러그인은 <Plug>
키 매핑을 제공합니다. <Plug>(GitLab...)
키 매핑을 사용하려면 이를 참조하는 자체 키 매핑을 포함해야 합니다:
-- 일반 모드에서 CTRL-g를 눌러 Code Suggestions를 토글합니다:
vim.keymap.set('n', '<C-g>', '<Plug>(GitLabToggleCodeSuggestions)')
gitlab.statusline
비활성화
기본적으로 이 플러그인은 Code Suggestions 통합의 상태를 표시하기 위해 내장된 statusline
을 사용하는 gitlab.statusline
을 활성화합니다. gitlab.statusline
을 비활성화하려면 다음을 구성에 추가하세요:
require('gitlab').setup({
statusline = {
enabled = false
}
})
확장에 대한 문제 보고
문제, 버그 또는 기능 요청을 gitlab.vim
문제 큐에 보고하세요.
피드백을 gitlab.vim
저장소의 문제 22에 제출하세요.
확장 제거
확장을 제거하려면 이 플러그인과 다음 명령어로 언어 서버 바이너리를 삭제하세요:
rm -r ~/.local/share/nvim/site/pack/gitlab/start/gitlab.vim
rm ~/.local/share/nvim/gitlab-code-suggestions-language-server-*