Mise en évidence de la balise / du bloc correspondant¶
Quand le curseur est sur — ou à l'intérieur de — une balise ou un bloc
englobant, l'éditeur encadre le début et la fin de cette paire, si bien que
vous voyez d'un coup d'œil où commence et où finit un <div>…</div>, un
if…fi ou un #if…#endif.
C'est distinct de la correspondance d'accolades à caractère unique (le glyphe
() [] {}) : celle-ci continue de fonctionner exactement comme avant, de son
côté. Les deux peuvent s'afficher en même temps ; vous pouvez donc être dans un
bloc { } et dans un if…fi englobant et voir les deux.
Utilisation¶
Placez le curseur sur un nom de balise (ou n'importe où dans <…>), ou sur
un mot-clé de bloc — l'ouverture, la fermeture et les éventuels mots-clés
« intermédiaires » s'illuminent ensemble. Placer le curseur à l'intérieur d'un
bloc (pas sur un mot-clé) met en évidence la paire englobante la plus proche.
Le simple contenu entre balises ne surligne rien.
La mise en évidence se met à jour au fil des déplacements du curseur et ne nécessite aucun raccourci.
Activer et désactiver¶
Affichage ▸ Surligner la balise/le bloc correspondant — activé par défaut, et le choix est mémorisé entre les sessions.
Les deux types de paires¶
Balises (balisage)¶
En HTML et en XML, le curseur sur une balise ouvrante ou fermante encadre le
nom de l'élément dans les deux balises. L'imbrication de balises de même nom
est résolue par profondeur, les balises auto-fermantes (<br/>) n'ont pas de
partenaire, et un > dans une valeur d'attribut entre guillemets ne termine
jamais la balise prématurément. Un < utilisé comme texte ou opérateur de
comparaison ne déclenche jamais la mise en évidence — la correspondance s'appuie
sur le style balise du lexer, pas sur les chevrons bruts.
Mots-clés de bloc (langages)¶
Des paires de mots-clés entiers, comptées avec une imbrication correcte et en ignorant tout ce qui se trouve dans les commentaires et les chaînes. Fournies d'origine :
| Langage | Paires |
|---|---|
| Shell (bash) | if … fi (avec elif/else), do … done, case … esac |
| C / C++ | préprocesseur #if / #ifdef / #ifndef … #endif (avec #elif/#else) |
| SQL | begin … end, case … end (insensible à la casse) |
En C/C++, uniquement pour le préprocesseur
Les blocs { } ordinaires du C/C++ sont gérés par la correspondance
d'accolades à caractère unique, pas par cette fonctionnalité — un .cpp sans
conditionnelles #if…#endif n'affiche donc rien ici, c'est voulu.
Ajouter des paires pour un autre langage¶
Les paires sont des données, pas du code : elles vivent dans le JSON du
colorizer du langage, vous pouvez donc en ajouter pour n'importe quel langage
sans recompilation. Dans le fichier colorizer, ajoutez "tagMatch": true pour le
balisage, ou une liste "blockPairs" pour les paires de mots-clés, p. ex. :
"blockPairs": [
{ "open": "if", "middle": ["elif", "else"], "close": "fi" },
{ "open": "do", "close": "done" }
],
"pairsCaseSensitive": false
Un fichier colorizer utilisateur masque celui livré : vous pouvez donc remplacer ou étendre les paires intégrées. Voir Coloration syntaxique pour l'emplacement des fichiers colorizer.
Notes et limites¶
- La correspondance analyse une fenêtre autour du curseur ; une paire dont les extrémités sont très éloignées (environ mille lignes ou plus — p. ex. une garde d'inclusion couvrant tout le fichier) peut ne pas être détectée.
- La correspondance applique une imbrication stricte : une seule balise ou un seul bloc intérieur non fermé empêche les balises/blocs qui l'entourent de correspondre tant qu'il n'est pas fermé.
Voir aussi¶
- Auto-fermeture et indentation — la fermeture automatique des parenthèses et guillemets pendant la frappe (une autre fonctionnalité).
- Coloration syntaxique — les fichiers colorizer qui déclarent aussi ces paires.