NeoVimTreeSitterによってハイライトさせているファイルの一部分の色を変えるときのメモ。

手順

:Inspectでキャプチャを確認する

変えたい対象の部分にカーソルをおいた状態で:Inspectをすると@keyword.directive.markdown links to Keyword markdownのようなキャプチャ情報が得られる。 以前までは https://github.com/nvim-treesitter/playground をインストールする必要があったらしい。

参考: 日常に彩りを加える nvim-treesitter の設定術 https://zenn.dev/monaqa/articles/2021-12-22-vim-nvim-treesitter-highlight

キャプチャに対してhlgroupの設定を確認する

:highlightの出力内容から@keyword.directive.markdown、または@keywordを探してカラーコードを見つける。 ちなみにこのとき、このようなコマンドを定義していると非常に便利。 https://github.com/kbwo/dotfiles/blob/df0292c1006a8876504b6a26a513b3c38e534e8c/.config/nvim/base.vim#L134-L148

" https://www.rasukarusan.com/entry/2021/09/19/125635
function! s:show_ex_result(cmd)
  redir => message
  silent execute a:cmd
  redir END
  if empty(message)
    echoerr "no output"
  else
    tabnew
    setlocal buftype=nofile bufhidden=wipe noswapfile nobuflisted nomodified
    silent put=message
    normal gg
  endif
endfunction
command! -nargs=+ -complete=command ShowExResult call s:show_ex_result(<q-args>)

見つかったカラーコードをcolor schemeのコードを検索して適宜カスタマイズする

例えば私が使っている https://github.com/rebelot/kanagawa.nvim#957FB8を検索すると oniVioletが関係していることがわかる。 そこまでわかったら、 https://github.com/rebelot/kanagawa.nvim?tab=readme-ov-file#customization に従ってcolor schemeに渡す設定を調整するのみである。