Use Treesitter para auto -nomes de autoclose e autoorenome HTML
Funciona com:
e mais
Before Input After
------------------------------------
<div > <div></div>
<div></div> ciwspan<esc> <span></span>
------------------------------------
Requer Nvim 0.9.5
ou mais.
Observe que nvim-ts-autotag
não funcionará, a menos que você tenha analisadores de Treesitter (como html
) instalados para um determinado FileType. Consulte NVIM-Treesitter para instalar analisadores.
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
}
}
})
Cuidado
Se você estiver configurando via nvim-treesitter.configs
ele foi depreciado! Por favor, migre para a nova maneira. Ele será removido em 1.0.0
.
Para aqueles que usam carregamento preguiçoso através de um gerenciador de plug -in (como o Lazy.nvim), o carregamento preguiçoso não é particularmente necessário para este plug -in. nvim-ts-autotag
é eficiente na escolha de quando precisa carregar. Se você ainda insistir em carregar preguiçosos nvim-ts-autotag
, dois bons eventos para usar são BufReadPre
& BufNewFile
.
Digamos que exista um idioma que nvim-ts-autotag
atualmente não suporta e você gostaria de apoiá-lo em sua configuração. Embora seja a preferência do autor que você a montar suas mudanças, talvez prefira não?
Por exemplo, se você tiver um idioma que tenha um layout muito semelhante em suas consultas de Treesitter como html
, você pode adicionar um pseudônimo como assim:
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 " )
Isso fará com que as tags nvim-ts-autotag
de acordo com as regras da configuração html
no idioma especificado.
Mas e se um analisador quebrar por qualquer motivo, por exemplo, a árvore do Treesitter Upstream altera seus nomes de nó e agora as consultas padrão que nvim-ts-autotag
não fornece mais trabalho.
Não tema! Você pode estender e substituir diretamente as configurações existentes. Por exemplo, digamos que os padrões de partida e tags foram alterados para xml
. Podemos substituir diretamente a configuração 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 fato, isso é quase o que fazemos durante nossa própria fase de inicialização interna para nvim-ts-autotag
.
Se você tiver esse 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 ,
}
)
Obrigado @pricehiller por seu trabalho neste plugin.
Se você achar esse plugin útil, considere patrocinar o projeto.
Patrocinador