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

Neovim で GraphQL-LSP の設定が面倒だったので検索でカバーした

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
vim.api.nvim_create_autocmd({ "BufReadPost" }, {
  pattern = { "*.gql", "*.graphql" },
  callback = function()
    vim.keymap.set(
      "n",
      "gh",
      "/\\(\\(type\\)\\|\\(input\\)\\|\\(enum\\)\\|\\(scalar\\)\\) <C-r><C-w>[\\n| ]<CR>:nohl<CR>",
      { buffer = true }
    )
  end,
})

demo

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

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy