Use Treesitter para autoclose y la etiqueta HTML Autorename
Funciona con:
y más
Before Input After
------------------------------------
<div > <div></div>
<div></div> ciwspan<esc> <span></span>
------------------------------------
Requiere Nvim 0.9.5
y arriba.
Tenga en cuenta que nvim-ts-autotag
no funcionará a menos que tenga analizadores de árboles (como html
) instalados para un tipo de archivo dado. Consulte NVIM-Treesitter para instalar analizadores.
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
}
}
})
Precaución
Si se está configurando a través de nvim-treesitter.configs
. Por favor migra a la nueva forma. Se eliminará en 1.0.0
.
Para aquellos de ustedes que usan la carga perezosa a través de un administrador de complementos (como Lazy.nvim), la carga perezosa no es particularmente necesaria para este complemento. nvim-ts-autotag
es eficiente para elegir cuándo necesita cargarse. Si todavía insiste en la carga de lazada nvim-ts-autotag
, entonces dos buenos eventos para usar son BufReadPre
y BufNewFile
.
Digamos que hay un lenguaje que nvim-ts-autotag
no admite actualmente y le gustaría admitirlo en su configuración. Si bien sería la preferencia del autor que te subas de tus cambios, ¿tal vez prefieras no?
Por ejemplo, si tiene un idioma que tiene un diseño muy similar en sus consultas de árboles como html
, podría agregar un alias como así:
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 " )
Eso hará que nvim-ts-autotag
Tags cierre de acuerdo con las reglas de la configuración html
en el idioma dado.
Pero, ¿qué pasa si un analizador se rompe por cualquier razón, por ejemplo, el árbol de árboles aguas arriba cambia sus nombres de nodos y ahora las consultas predeterminadas que nvim-ts-autotag
ya no funciona.
¡No temas! Puede extender y anular directamente las configuraciones existentes. Por ejemplo, digamos que los patrones de etiqueta de inicio y finalización han cambiado para xml
. Podemos anular directamente la configuración xml
:
local TagConfigs = require ( " nvim-ts-autotag.config.init " )
TagConfigs : update ( TagConfigs : get ( " xml " ): override ( " xml " , {
start_tag_pattern = { " STag " },
end_tag_pattern = { " ETag " },
}))
De hecho, esto es casi lo que hacemos durante nuestra propia fase de inicialización interna para nvim-ts-autotag
.
Si tienes ese problema #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 ,
}
)
Gracias @PriceHiller por su trabajo en este complemento.
Si encuentra útil este complemento, considere patrocinar el proyecto.
Patrocinador