Используйте TreesTter для автоклаза и автобуса HTML -тега HTML
Это работает с:
и еще
Before Input After
------------------------------------
<div > <div></div>
<div></div> ciwspan<esc> <span></span>
------------------------------------
Требуется Nvim 0.9.5
и выше.
Обратите внимание, что nvim-ts-autotag
не будет работать, если у вас не будет установленных анализаторов TreaSitter (например 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), ленивая загрузка не является особенно необходимой для этого плагина. nvim-ts-autotag
эффективен при выборе, когда он должен загружать. Если вы все еще настаиваете на ленивом загрузке nvim-ts-autotag
, то два хороших события для использования-это BufReadPre
& BufNewFile
.
Допустим, есть язык, который в настоящее время не поддерживает nvim-ts-autotag
и вы хотели бы поддержать его в своей конфигурации. Хотя это было бы предпочтение автору, что вы превышаете свои изменения, возможно, вы бы не предпочли?
Например, если у вас есть язык, который имеет очень похожий макет в его запросах Treesitter как html
, вы можете добавить псевдоним, как SO:
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 " )
Это сделает nvim-ts-autotag
закрывать теги в соответствии с правилами конфигурации html
на данном языке.
Но что, если анализатор ломается по какой-либо причине, например, дерево Treesitter вверх по течению изменяет свои имена узлов, а теперь и запросы по умолчанию, которые 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 за его работу над этим плагином.
Если вы найдете этот плагин полезным, пожалуйста, рассмотрите возможность спонсировать проект.
Спонсор