Neovim で GraphQL ファイルの閲覧時、 LSP を使わずに定義元にジャンプする

投稿: 2022年8月9日

Neovim で GraphQL のスキーマを見ている時、定義元に飛びたいときがよくある。GraphQL-LSP を入れてリッチな編集環境を整えるのも良いが、インストール及びプロジェクトごとの設定がやや面倒だったので、単純に GraphQL の文法に従って検索するコマンドを定義した。

正規表現の部分はやや見にくいが、 GraphQL でありえる宣言を羅列して、そのどれかに引っかかるようにしているだけである。 interface も入れても良いかもしれない。

vim.api.nvim_create_autocmd({ "BufReadPost" }, {
  pattern = { "*.gql", "*.graphql" },
  callback = function()
    vim.keymap.set(
      "n",
      "gh",
      "/\\(\\(type\\)\\|\\(input\\)\\|\\(enum\\)\\|\\(scalar\\)\\) [\\n| ]:nohl",
      { buffer = true }
    )
  end,
})

demo

なお、既に ghvim.lsp.buf.definition に割り当てているので、ほぼ同じ操作感でいけるようになった。嬉しい。