TreeSitterを使用して、HTMLタグをオートクロースして自動化します
それは操作します:
もっと
Before Input After
------------------------------------
<div > <div></div>
<div></div> ciwspan<esc> <span></span>
------------------------------------
Nvim 0.9.5
以上が必要です。
nvim-ts-autotag
特定のFiletypeにインストールされているTreesitterパーサー( html
など)がない限り、機能しないことに注意してください。パーサーのインストールについては、NVIM-Treesitterを参照してください。
require ( ' nvim-ts-autotag ' ). setup ({
opts = {
-- Defaults
enable_close = true , -- Auto close tags
enable_rename = true , -- Auto rename pairs of tags
enable_close_on_slash = false -- Auto close on trailing </
},
-- Also override individual filetype configs, these take priority.
-- Empty by default, useful if one of the "opts" global settings
-- doesn't work well in a specific filetype
per_filetype = {
[ " html " ] = {
enable_close = false
}
}
})
注意
nvim-treesitter.configs
を介してセットアップしている場合、それは非推奨です!新しい方法に移行してください。 1.0.0
で削除されます。
プラグインマネージャー(Lazy.nvimなど)を介して怠zyな読み込みを使用している人にとっては、このプラグインにはLazy Loadingが特に必要ありません。 nvim-ts-autotag
ロードする必要があるときに選択するのに効率的です。怠zyなnvim-ts-autotag
ロードをまだ主張する場合は、使用する2つの良いイベントがBufReadPre
& BufNewFile
です。
nvim-ts-autotag
が現在サポートしていない言語があり、構成でそれをサポートしたい言語があるとしましょう。あなたがあなたの変更を上流に上流にするのは著者の好みでしょうが、おそらくあなたはむしろそうではないでしょうか?
たとえば、 html
としてtreesitterクエリに非常に類似したレイアウトがある言語がある場合、次のようなエイリアスを追加できます。
require ( ' nvim-ts-autotag ' ). setup ({
aliases = {
[ " your language here " ] = " html " ,
}
})
-- or
local TagConfigs = require ( " nvim-ts-autotag.config.init " )
TagConfigs : add_alias ( " your language here " , " html " )
これにより、指定された言語のhtml
設定のルールに従ってnvim-ts-autotag
密接なタグになります。
しかし、パーサーが何らかの理由で壊れた場合、たとえば上流のThreesitterツリーがノード名を変更し、 nvim-ts-autotag
が提供するデフォルトのクエリが機能しなくなった場合はどうなりますか。
恐れないで!既存の構成を直接拡張およびオーバーライドできます。たとえば、 xml
スタートとエンドのタグパターンが変更されたとしましょう。 xml
構成を直接オーバーライドできます。
local TagConfigs = require ( " nvim-ts-autotag.config.init " )
TagConfigs : update ( TagConfigs : get ( " xml " ): override ( " xml " , {
start_tag_pattern = { " STag " },
end_tag_pattern = { " ETag " },
}))
実際、これは、 nvim-ts-autotag
の内部初期化フェーズで私たちがすることのほぼ何ですか。
その問題#19がある場合
vim . lsp . handlers [ ' textDocument/publishDiagnostics ' ] = vim . lsp . with (
vim . lsp . diagnostic . on_publish_diagnostics ,
{
underline = true ,
virtual_text = {
spacing = 5 ,
severity_limit = ' Warning ' ,
},
update_in_insert = true ,
}
)
このプラグインでの仕事をしてくれた@PriceHillerに感謝します。
このプラグインが役立つ場合は、プロジェクトのスポンサーを検討してください。
スポンサー