Bijbehorende tag / blok markeren¶
Wanneer de cursor op — of binnen — een omsluitende tag of een omsluitend
blok staat, omkadert de editor het begin en het einde van dat paar, zodat
u in één oogopslag ziet waar een <div>…</div>, een if…fi of een #if…#endif
begint en eindigt.
Dit staat los van de overeenkomst van een enkel haakje (het teken () []
{}): die werkt nog precies zoals voorheen, op zichzelf. Beide kunnen tegelijk
getoond worden, dus u kunt binnen een blok { } en een omsluitende if…fi
zitten en beide zien.
Gebruik¶
Zet de cursor op een tagnaam (of ergens binnen <…>), of op een
bloktrefwoord — de opener, de sluiter en eventuele «tussenliggende» trefwoorden
lichten samen op. De cursor binnen een blok plaatsen (niet op een trefwoord)
markeert het dichtstbijzijnde omsluitende paar. Gewone inhoud tussen tags
markeert niets.
Het werkt bij wanneer de cursor beweegt en heeft geen sneltoets nodig.
Aan- en uitzetten¶
Beeld ▸ Overeenkomende tag/blok markeren — standaard aan, en de keuze wordt tussen sessies onthouden.
De twee soorten paren¶
Tags (opmaak)¶
In HTML en XML omkadert de cursor op een begin- of eindtag de elementnaam in
beide tags. Nesting van gelijknamige tags wordt op diepte opgelost, tags die
zichzelf sluiten (<br/>) hebben geen partner, en een > binnen een aangehaalde
attribuutwaarde beëindigt de tag nooit voortijdig. Een < die als tekst of als
vergelijkingsoperator wordt gebruikt zet het nooit in gang — de overeenkomst gaat
uit van de tag-stijl van de lexer, niet van kale punthaken.
Bloktrefwoorden (talen)¶
Paren van hele trefwoorden, geteld met correcte nesting en met overslaan van alles binnen commentaar en tekenreeksen. Standaard meegeleverd:
| Taal | Paren |
|---|---|
| Shell (bash) | if … fi (met elif/else), do … done, case … esac |
| C / C++ | preprocessor #if / #ifdef / #ifndef … #endif (met #elif/#else) |
| SQL | begin … end, case … end (niet hoofdlettergevoelig) |
C/C++ gebruikt dit alleen voor de preprocessor
Gewone { }-blokken in C/C++ worden door de overeenkomst van een enkel
haakje afgehandeld, niet door deze functie — een .cpp zonder
#if…#endif-voorwaarden toont hier dus niets, met opzet.
Paren voor een andere taal toevoegen¶
Paren zijn gegevens, geen code: ze staan in het colorizer-JSON van de taal,
dus u kunt ze voor elke taal toevoegen zonder opnieuw te compileren. Voeg in het
colorizer-bestand "tagMatch": true toe voor opmaak, of een lijst "blockPairs"
voor paren van trefwoorden, bijvoorbeeld:
"blockPairs": [
{ "open": "if", "middle": ["elif", "else"], "close": "fi" },
{ "open": "do", "close": "done" }
],
"pairsCaseSensitive": false
Een colorizer-bestand van de gebruiker overschaduwt het meegeleverde bestand, zodat u de ingebouwde paren kunt overschrijven of uitbreiden. Zie Syntaxiskleuring voor de plek waar colorizer-bestanden staan.
Opmerkingen en grenzen¶
- Het zoeken naar overeenkomsten doorloopt een venster rond de cursor, dus een paar waarvan de uiteinden heel ver uit elkaar liggen (ruwweg duizend regels of meer — bijvoorbeeld een include-waarborg voor een heel bestand) wordt mogelijk niet gevonden.
- Het zoeken gebruikt strikte nesting: één enkele niet-gesloten tag of blok binnenin verhindert dat de tags of blokken eromheen overeenkomen totdat die gesloten is.
Verwant¶
- Automatische paren en inspringing — haakjes en aanhalingstekens die tijdens het typen automatisch sluiten (een andere functie).
- Syntaxiskleuring — de colorizer-bestanden die deze paren ook verklaren.