Neovim용 GitLab 플러그인 - gitlab.vim
GitLab 플러그인은 GitLab을 Neovim과 Lua로 통합한 것입니다.
Neovim용 GitLab은 GitLab Duo Code Suggestions을 지원합니다. 코드 제안은 내장된 Control+x, Control+o 옴니 완성 키 매핑을 지원하기 위한 LSP (Language Server Protocol) 서버를 제공합니다:
모드 | 키 매핑 | 유형 | 설명 |
---|---|---|---|
INSERT
| Control+x, Control+o | 내장됨 | 언어 서버를 통해 GitLab Duo Code Suggestions으로부터 완성을 요청합니다. |
NORMAL
| <Plug>(GitLabToggleCodeSuggestions)
| <Plug>
| 현재 버퍼에 대해 코드 제안을 켜거나 끕니다. 구성이 필요합니다. |
확장 기능 설치
전제 조건:
- 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 = { 'ruby', 'javascript' }, -- 기본값은 { 'ruby' } } })
- 선택 사항. Omni Completion을 구성합니다.
- 선택 사항.
<Plug>
키 매핑을 구성합니다. - 선택 사항.
:helptags ALL
을 사용하여 helptag를 설정하여:help gitlab.txt
에 접근합니다.
Omni 완성 구성
코드 제안과 함께 Omni Completion을 활성화하려면:
-
api
범위를 가진 개인 엑세스 토큰을 생성합니다. - 코드 제안 언어 서버를 설치합니다.
-
선택 사항. 단일 제안에 대해서도 Omni Completion 대화형을 구성합니다:
vim.o.completeopt = 'menu,menuone'
지원되는 파일 유형에서 작업 중일 때, Ctrl+x, Ctrl+o를 눌러 Omni 완성 메뉴를 엽니다.
<Plug>
키 매핑 구성
편리함을 위해 이 플러그인은 <Plug>
키 매핑을 제공합니다. <Plug>(GitLab...)
키 매핑을 사용하려면 해당 키 매핑을 참조하는 독자적인 키 매핑을 포함해야 합니다:
-- 일반 모드에서 CTRL-g로 코드 제안을 켜거나 끕니다:
vim.keymap.set('n', '<C-g>', '<Plug>(GitLabToggleCodeSuggestions)')
gitlab.statusline
비활성화
기본적으로 이 플러그인은 내장 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-*