Gå til indholdet

Fremhævning af matchende tag / blok

Når markøren står på — eller inde i — et omsluttende tag eller en omsluttende blok, rammer editoren begyndelsen og slutningen af det par ind, så du på et øjeblik kan se, hvor en <div>…</div>, en if…fi eller en #if…#endif begynder og slutter.

Dette er adskilt fra matchningen af en enkelt parentes (tegnet () [] {}): den virker stadig præcis som før, på egen hånd. Begge kan vises samtidig, så du kan være inde i en { }-blok og en omsluttende if…fi og se begge.

Brug

Sæt markøren på et tagnavn (eller hvor som helst inde i <…>) eller på et bloknøgleord — åbneren, lukkeren og eventuelle «mellemliggende» nøgleord lyser op sammen. At placere markøren inde i en blok (ikke på et nøgleord) fremhæver det nærmeste omsluttende par. Almindeligt indhold mellem tags fremhæver intet.

Det opdateres, mens markøren bevæger sig, og kræver ingen genvejstast.

At slå til og fra

Vis ▸ Fremhæv matchende tag/blok — slået til som standard, og valget huskes mellem sessioner.

De to slags par

Tags (opmærkning)

I HTML og XML rammer markøren på et start- eller sluttag elementnavnet i begge tags ind. Indlejring af tags med samme navn løses efter dybde, tags, der lukker sig selv (<br/>), har ingen partner, og et > inde i en citeret attributværdi afslutter aldrig tagget for tidligt. Et < brugt som tekst eller sammenligningsoperator udløser den aldrig — matchningen tager udgangspunkt i lexerens tag-stil, ikke i nøgne vinkelparenteser.

Bloknøgleord (sprog)

Par af hele nøgleord, talt med korrekt indlejring og med alt inde i kommentarer og strenge sprunget over. Følger med fra start:

Sprog Par
Shell (bash) if … fi (med elif/else), do … done, case … esac
C / C++ præprocessorens #if / #ifdef / #ifndef … #endif (med #elif/#else)
SQL begin … end, case … end (uafhængigt af store/små bogstaver)

C/C++ bruger kun dette til præprocessoren

Almindelige { }-blokke i C/C++ håndteres af matchningen af en enkelt parentes, ikke af denne funktion — så en .cpp uden #if…#endif-betingelser viser intet her, med vilje.

At tilføje par for et andet sprog

Parrene er data, ikke kode: de bor i sprogets colorizer-JSON, så du kan tilføje dem for ethvert sprog uden at bygge om. Tilføj i colorizer-filen "tagMatch": true for opmærkning, eller en liste "blockPairs" for nøgleordspar, for eksempel:

"blockPairs": [
    { "open": "if", "middle": ["elif", "else"], "close": "fi" },
    { "open": "do", "close": "done" }
],
"pairsCaseSensitive": false

En colorizer-fil fra brugeren overskygger den medfølgende, så du kan tilsidesætte eller udvide de indbyggede. Se Syntaksfarvning for, hvor colorizer-filerne bor.

Bemærkninger og grænser

  • Matchningen gennemsøger et vindue omkring markøren, så et par, hvis ender ligger meget langt fra hinanden (omtrent tusind linjer eller mere — for eksempel en include-vagt for en hel fil), findes muligvis ikke.
  • Matchningen bruger streng indlejring: ét enkelt ulukket indre tag eller en ulukket indre blok forhindrer tags eller blokke omkring den i at matche, indtil den lukkes.

Beslægtet