Neovim 용 GitLab 플러그인 설치 및 설정
GitLab v19.4Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
확장 기능을 설치하려면 사용 중인 플러그인 매니저에 맞는 설치 단계를 따릅니다. 시작 시 packadd로 이 프로젝트를 포함하려면 다음 명령을 실행합니다. lazy.nvim 설정에 이 플러그인을 추가합니다. packer.nvim 설정에 플러그인을 선언합니다.
사전 요구 사항:
- GitLab.com과 GitLab Self-Managed 모두 GitLab 버전 16.1 이상이 필요합니다.
이전 버전에서도 많은 확장 기능이 동작할 수 있지만 지원 대상은 아닙니다.
- GitLab Duo Code Suggestions 기능은 GitLab 버전 16.8 이상이 필요합니다.
- Neovim 버전 0.9 이상이 필요합니다.
- NPM 이 설치되어 있어야 합니다. NPM은 Code Suggestions 설치에 필요합니다.
확장 기능을 설치하려면 사용 중인 플러그인 매니저에 맞는 설치 단계를 따릅니다.
시작 시 packadd로 이 프로젝트를 포함하려면 다음 명령을 실행합니다.
git clone https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim.git ~/.local/share/nvim/site/pack/gitlab/start/gitlab.vim
lazy.nvim 설정에 이 플러그인을 추가합니다.
{
'https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim.git',
-- Activate when a file is created/opened
event = { 'BufReadPre', 'BufNewFile' },
-- Activate when a supported filetype is open
ft = { 'go', 'javascript', 'python', 'ruby' },
cond = function()
-- Only activate if token is present in environment variable.
-- Remove this line to use the interactive workflow.
return vim.env.GITLAB_TOKEN ~= nil and vim.env.GITLAB_TOKEN ~= ''
end,
opts = {
statusline = {
-- Hook into the built-in statusline to indicate the status
-- of the GitLab Duo Code Suggestions integration
enabled = true,
},
},
}
packer.nvim 설정에 플러그인을 선언합니다.
use {
"git@gitlab.com:gitlab-org/editor-extensions/gitlab.vim.git",
}
GitLab으로 인증합니다#
이 확장 기능을 GitLab 계정에 연결하려면 환경 변수를 구성합니다.
| 환경 변수 | 기본값 | 설명 |
|---|---|---|
GITLAB_TOKEN |
해당 없음 | 인증된 요청에 사용할 기본 GitLab 개인 액세스 토큰입니다. 값을 지정하면 대화형 인증을 건너뜁니다. |
GITLAB_VIM_URL |
https://gitlab.com |
연결할 GitLab 인스턴스를 재정의합니다. 기본값은 https://gitlab.com 입니다. |
전체 환경 변수 목록은 확장 기능의 도움말 텍스트인
doc/gitlab.txt에서 확인할 수 있습니다.
확장 기능을 구성합니다#
이 확장 기능을 구성하려면 다음을 수행합니다.
-
원하는 파일 형식을 구성합니다. 예를 들어 이 플러그인은 Ruby를 지원하므로
FileType ruby자동 명령을 추가합니다. 더 많은 파일 형식에 대해 이 동작을 구성하려면code_suggestions.auto_filetypes설정 옵션에 파일 형식을 추가합니다.require('gitlab').setup({ statusline = { enabled = false }, code_suggestions = { -- For the full list of default languages, see the 'auto_filetypes' array in -- https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim/-/blob/main/lua/gitlab/config/defaults.lua auto_filetypes = { 'ruby', 'javascript' }, -- Default is { 'ruby' } ghost_text = { enabled = false, -- ghost text is an experimental feature toggle_enabled = "<C-h>", accept_suggestion = "<C-l>", clear_suggestions = "<C-k>", stream = true, }, } }) -
Code Suggestions를 실행할 키 매핑을 설정하려면 Omni Completion을 구성합니다.
-
선택 사항입니다.
키 매핑을 구성합니다. -
선택 사항입니다.
:helptags ALL을 사용해 helptags를 설정하면:help gitlab.txt에 접근할 수 있습니다.
Omni Completion을 구성합니다#
Code Suggestions와 함께 Omni Completion을 사용하도록 설정하려면 다음을 수행합니다.
-
api스코프로 개인 액세스 토큰을 생성합니다. -
셸에
GITLAB_TOKEN환경 변수로 토큰을 추가합니다. -
:GitLabCodeSuggestionsInstallLanguageServervim 명령을 실행해 Code Suggestions 언어 서버를 설치합니다. -
:GitLabCodeSuggestionsStartvim 명령을 실행해 언어 서버를 시작합니다. 필요하면 언어 서버를 켜고 끄도록키 매핑을 구성합니다. -
선택 사항입니다. 제안이 하나뿐일 때도 Omni Completion의 대화상자를 표시하도록 구성하는 것을 고려합니다.
vim.o.completeopt = 'menu,menuone'
지원되는 파일 형식에서 작업할 때는 Control+x를 누른 다음 Control+o를 눌러 Omni Completion 메뉴를 엽니다.
키 매핑을 구성합니다#
편의를 위해 이 플러그인은 키 매핑을 제공합니다. (GitLab...) 키 매핑을 사용하려면
이를 참조하는 자신만의 키 매핑을 포함해야 합니다.
-- Toggle Code Suggestions on/off with Control-G in normal mode:
vim.keymap.set('n', '<C-g>', '(GitLabToggleCodeSuggestions)')
확장 기능을 제거합니다#
확장 기능을 제거하려면 다음 명령으로 이 플러그인과 언어 서버 바이너리를 모두 삭제합니다.
rm -r ~/.local/share/nvim/site/pack/gitlab/start/gitlab.vim
rm ~/.local/share/nvim/gitlab-code-suggestions-language-server-*