Utilisez Treesitter pour autoclose et tag HTML AutoRename
Cela fonctionne avec:
Et plus
Before Input After
------------------------------------
<div > <div></div>
<div></div> ciwspan<esc> <span></span>
------------------------------------
Nécessite Nvim 0.9.5
et plus.
Notez que nvim-ts-autotag
ne fonctionnera que si vous avez installé des analyseurs d'arbres (comme html
) pour un type de fichier donné. Voir NVIM-TreesiTit pour installer des analyseurs.
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
}
}
})
Prudence
Si vous vous installez via nvim-treesitter.configs
il a été obsolète! Veuillez migrer vers la nouvelle façon. Il sera supprimé dans 1.0.0
.
Pour ceux d'entre vous qui utilisent le chargement paresseux via un gestionnaire de plugin (comme Lazy.nvim), le chargement paresseux n'est pas particulièrement nécessaire pour ce plugin. nvim-ts-autotag
est efficace dans le choix du chargement. Si vous insistez toujours sur le chargement paresseux nvim-ts-autotag
, alors deux bons événements à utiliser sont BufReadPre
& BufNewFile
.
Disons qu'il existe une langue que nvim-ts-autotag
ne prend pas en charge actuellement et que vous souhaitez la prendre en charge dans votre configuration. Bien que ce soit la préférence de l'auteur que vous en amont vos modifications, vous préférez peut-être pas ?.
Par exemple, si vous avez une langue qui a une disposition très similaire dans ses requêtes Treesitter comme html
, vous pouvez ajouter un alias comme tel:
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 " )
Cela fera des balises de clôture nvim-ts-autotag
en fonction des règles de la configuration html
dans la langue donnée.
Mais que se passe-t-il si un analyseur se brise pour une raison quelconque, par exemple l'arbre en amont de Treesiter modifie ses noms de nœud et maintenant les requêtes par défaut que nvim-ts-autotag
ne fonctionne plus.
N'ayez pas peur! Vous pouvez étendre directement et remplacer les configurations existantes. Par exemple, disons que les modèles de balises de début et de fin ont changé pour xml
. Nous pouvons remplacer directement la configuration xml
:
local TagConfigs = require ( " nvim-ts-autotag.config.init " )
TagConfigs : update ( TagConfigs : get ( " xml " ): override ( " xml " , {
start_tag_pattern = { " STag " },
end_tag_pattern = { " ETag " },
}))
En fait, cela est presque ce que nous faisons lors de notre propre phase d'initialisation interne pour nvim-ts-autotag
.
Si vous avez ce problème n ° 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 ,
}
)
Merci @pricehiller pour son travail sur ce plugin.
Si vous trouvez ce plugin utile, veuillez envisager de parrainer le projet.
Parrainer