Gå till innehållet

Färgmarkering av matchande tagg / block

När markören står på — eller inuti — en omslutande tagg eller ett omslutande block ramar redigeraren in början och slutet av det paret, så att du i ett ögonkast ser var en <div>…</div>, en if…fi eller en #if…#endif börjar och slutar.

Detta är skilt från matchningen av ett enskilt klammertecken (tecknet () [] {}): den fungerar fortfarande precis som förut, på egen hand. Båda kan visas samtidigt, så du kan befinna dig inuti ett { }-block och en omslutande if…fi och se båda.

Användning

Sätt markören på ett taggnamn (eller var som helst inuti <…>), eller på ett blocknyckelord — öppnaren, stängaren och eventuella «mellanliggande» nyckelord lyser upp tillsammans. Att placera markören inuti ett block (inte på ett nyckelord) färgmarkerar det närmaste omslutande paret. Vanligt innehåll mellan taggar färgmarkerar inget.

Det uppdateras medan markören rör sig och behöver inget kortkommando.

Slå på och av

Visa ▸ Markera matchande tagg/block — på som standard, och valet kommer ihåg mellan sessioner.

De två sorternas par

Taggar (uppmärkning)

I HTML och XML ramar markören på en start- eller sluttagg in elementnamnet i båda taggarna. Nästling av likanamnade taggar löses på djupet, taggar som stänger sig själva (<br/>) har ingen partner, och ett > inuti ett citerat attributvärde avslutar aldrig taggen i förtid. Ett < som används som text eller jämförelseoperator utlöser den aldrig — matchningen utgår från lexerns tagg-stil, inte från nakna vinkelparenteser.

Blocknyckelord (språk)

Par av hela nyckelord, räknade med korrekt nästling och med allt inuti kommentarer och strängar överhoppat. Medföljer direkt:

Språk Par
Shell (bash) if … fi (med elif/else), do … done, case … esac
C / C++ preprocessorns #if / #ifdef / #ifndef … #endif (med #elif/#else)
SQL begin … end, case … end (oberoende av skiftläge)

C/C++ använder detta bara för preprocessorn

Vanliga { }-block i C/C++ hanteras av matchningen av ett enskilt klammertecken, inte av den här funktionen — så en .cpp utan #if…#endif-villkor visar inget här, med avsikt.

Lägga till par för ett annat språk

Paren är data, inte kod: de bor i språkets colorizer-JSON, så du kan lägga till dem för vilket språk som helst utan att bygga om. Lägg i colorizer-filen till "tagMatch": true för uppmärkning, eller en lista "blockPairs" för nyckelordspar, till exempel:

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

En colorizer-fil från användaren skuggar den medföljande, så du kan åsidosätta eller utöka de inbyggda. Se Syntaxfärgning för var colorizer-filerna bor.

Anmärkningar och gränser

  • Matchningen söker igenom ett fönster runt markören, så ett par vars ändar ligger mycket långt isär (ungefär tusen rader eller mer — till exempel en include-vakt för en hel fil) kanske inte matchas.
  • Matchningen använder strikt nästling: en enda ostängd inre tagg eller ett ostängt inre block hindrar taggarna eller blocken omkring den från att matcha tills den stängs.

Relaterat