正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

Neovim用GitLabプラグインをインストールして設定する

前提要件:

  • GitLab.comとGitLabセルフマネージドの両方で、GitLabバージョン16.1以降が必要です。多くの拡張機能は以前のバージョンでも動作する可能性がありますが、サポートされていません。
    • GitLab Duoコード提案機能を使用するには、GitLabバージョン16.8以降が必要です。
  • Neovimバージョン0.9以降が必要です。
  • NPMがインストールされている必要があります。コード提案のインストールにはNPMが必要です。

プラグインをインストールするには、選択したプラグインマネージャーのインストール手順に従ってください:

このジョブを起動時に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_URLhttps://gitlab.com接続するGitLabインスタンスをオーバーライドします。https://gitlab.comがデフォルトです。

環境変数の完全なリストは、拡張機能のヘルプテキスト(doc/gitlab.txt)にあります。

拡張機能を設定する

この拡張機能を設定するには:

  1. 目的のファイルタイプを設定します。たとえば、このプラグインは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,
        },
      }
    })
  2. Omni Completionを設定して、コード提案をトリガーするためのキーマッピングをセットアップします。

  3. オプション。<Plug>キーマッピングを設定する

  4. オプション。:help gitlab.txtにアクセスするには、:helptags ALLを使用してhelptagsをセットアップします。

Omni Completionの設定

コード提案でOmni Completionを有効にするには:

  1. apiスコープを持つパーソナルアクセストークンを作成してください。

  2. GITLAB_TOKEN環境変数としてShellにトークンを追加します。

  3. :GitLabCodeSuggestionsInstallLanguageServer vimコマンドを実行して、コード提案言語サーバーをインストールします。

  4. :GitLabCodeSuggestionsStart vimコマンドを実行して、言語サーバーを起動します。オプションで、言語サーバーを切り替えるには、<Plug>キーマッピングを設定します

  5. オプション。単一の提案の場合でも、Omni Completionのダイアログを設定することを検討してください:

    vim.o.completeopt = 'menu,menuone'

サポートされているファイルタイプで作業している場合は、Control+x、次にControl+oを押して、Omni Completionメニューを開きます。

<Plug>キーマッピングを設定する

便宜上、このプラグインは<Plug>キーマッピングを提供します。<Plug>(GitLab...)キーマッピングを使用するには、それを参照する独自のキーマッピングを含める必要があります:

-- Toggle Code Suggestions on/off with Control-G in normal mode:
vim.keymap.set('n', '<C-g>', '<Plug>(GitLabToggleCodeSuggestions)')

プラグインをアンインストール

プラグインをアンインストールするには、次のコマンドを使用して、このプラグインと言語サーバーバイナリを削除します:

rm -r ~/.local/share/nvim/site/pack/gitlab/start/gitlab.vim
rm ~/.local/share/nvim/gitlab-code-suggestions-language-server-*