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¶
- Autopary i wcięcia — automatyczne domykanie nawiasów i cudzysłowów podczas pisania (inna funkcja).
- Kolorowanie składni — pliki kolorizatorów, które deklarują również te pary.