Les éléments de syntaxe dans lesquels Vim mettra en évidence les fautes d'orthographe sont définis à l'aide des clusters @Spell
et @NoSpell
. Voir :help spell-syntax
(et le reste des fichiers :help spell
et :help syntax
) pour plus de détails.
La solution rapide et sale pour obtenir le résultat souhaité est de créer un nouveau fichier dans votre répertoire de configuration Vim: .vim/after/syntax/html.vim
avec le contenu:
syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,@Spell
syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,@Spell
Ces lignes définissent la coloration syntaxique des attributs HTML et ont été copiées à partir du fichier html.vim inclus dans les fichiers de syntaxe standard de Vim. J'ai ensuite ajouté le @Spell
cluster au contains
champ afin d'activer la vérification orthographique dans chaque élément de syntaxe.
Pour appliquer cela uniquement aux attributs "title" et "data- *", il faut affiner l'expression régulière utilisée pour faire correspondre les éléments, et une édition légèrement plus complète du fonctionnement de la mise en surbrillance HTML. Voici une solution qui fonctionne uniquement pour les attributs "title":
syn region htmlStringSpell contained start=+title=["']+hs=s+6 end=+["']+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,@Spell containedin=htmlTag,ScriptTag
hi def link htmlStringSpell String
NB
- L'expression régulière inclut désormais le nom de l'
title
attribut et un décalage afin que cette partie de l'élément de syntaxe ne soit pas incluse dans la mise en évidence. (Voir :help syn-pattern-offset
)
- L'élément de syntaxe a maintenant son propre nom, et doit donc (i) être
containedin
tous les éléments de syntaxe dans lesquels htmlStrings sont contenus via leurs contains
paramètres respectifs . (ii) avoir sa propre mise en évidence appliquée.