Przejdź do treści

Podświetlanie pasującego tagu / bloku

Gdy kursor stoi na — lub wewnątrz — otaczającego tagu albo bloku, edytor obramowuje początek i koniec tej pary, więc od razu widzisz, gdzie zaczyna się i kończy <div>…</div>, if…fi czy #if…#endif.

To funkcja odrębna od jednoznakowego dopasowania nawiasów (znaki () [] {}): tamto działa dokładnie jak dotąd, niezależnie. Obie mogą być widoczne jednocześnie — możesz być wewnątrz bloku { } i otaczającego if…fi i widzieć oba.

Jak używać

Ustaw kursor na nazwie tagu (lub gdziekolwiek wewnątrz <…>) albo na słowie kluczowym bloku — otwarcie, zamknięcie i wszelkie „środkowe” słowa kluczowe podświetlają się razem. Umieszczenie kursora wewnątrz bloku (nie na słowie kluczowym) podświetla najbliższą otaczającą parę. Zwykła treść między tagami niczego nie podświetla.

Aktualizuje się w miarę ruchu kursora i nie wymaga żadnego skrótu.

Włączanie i wyłączanie

Widok ▸ Podświetl pasujący tag/blok — domyślnie włączone, a wybór jest zapamiętywany między sesjami.

Dwa rodzaje par

Tagi (znaczniki)

W HTML i XML kursor na tagu otwierającym lub zamykającym obramowuje nazwę elementu w obu tagach. Zagnieżdżenie tagów o tej samej nazwie jest rozstrzygane po głębokości, tagi samozamykające (<br/>) nie mają partnera, a > wewnątrz wartości atrybutu w cudzysłowie nigdy nie kończy tagu przedwcześnie. < użyty jako tekst lub operator porównania nigdy tego nie uruchamia — dopasowanie opiera się na stylach tagów z leksera, nie na surowych nawiasach kątowych.

Słowa kluczowe bloków (języki)

Pary całych słów kluczowych, liczone z poprawnym zagnieżdżaniem i pomijaniem wszystkiego wewnątrz komentarzy i łańcuchów. Dostarczane od razu:

Język Pary
Shell (bash) if … fi (z elif/else), do … done, case … esac
C / C++ preprocesor #if / #ifdef / #ifndef#endif (z #elif/#else)
SQL begin … end, case … end (bez rozróżniania wielkości liter)

C/C++ używa tego tylko dla preprocesora

Zwykłe bloki { } w C/C++ obsługuje jednoznakowe dopasowanie nawiasów, nie ta funkcja — plik .cpp bez warunków #if…#endif celowo niczego tu nie pokazuje.

Dodawanie par dla innego języka

Pary to dane, nie kod: mieszkają w JSON-ie kolorizatora języka, więc możesz dodać je dla dowolnego języka bez przebudowy. W pliku kolorizatora dodaj "tagMatch": true dla znaczników albo listę "blockPairs" dla par słów kluczowych, np.:

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

Plik kolorizatora użytkownika przesłania dostarczony, więc możesz nadpisywać lub rozszerzać wbudowane. Zobacz Kolorowanie składni, aby dowiedzieć się, gdzie leżą pliki kolorizatorów.

Uwagi i ograniczenia

  • Dopasowanie skanuje okno wokół kursora, więc para, której końce są bardzo odległe (mniej więcej tysiąc wierszy lub więcej — np. strażnik include na cały plik), może nie zostać dopasowana.
  • Dopasowanie stosuje ścisłe zagnieżdżanie: jeden niezamknięty wewnętrzny tag/blok uniemożliwia dopasowanie tagów/bloków wokół niego, dopóki nie zostanie zamknięty.

Powiązane