Используйте 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 за его работу над этим плагином.
Если вы найдете этот плагин полезным, пожалуйста, рассмотрите возможность спонсировать проект.
Спонсор