SublimeText: Vlastní barevné schéma

SublimeText je v konfiguraci jenom o psaní, žádné GUI zde pro nastavení neexistuje. To samé platí i pro barevná schémata, která jsou napsána pomocí XML. Už vás někdy napadlo, že byste si mohli napsat vlastní barevné schéma? Ukážu vám jak na to.

Princip

Konfigurační soubor typu tmTheme využívá XML Doctype od Applu zvaný property list (pro zajímavost DTD XML), tento typ souboru začal využívat například známý editor pro Mac TextMate a existuje i pár méně známých, které tyto soubory pro obarvení kódu používají, jedná se tak o trošku univerzálnější soubor.

Již zmíněný DTD property list nám udává takovouto obecnou strukturu:

Ve chvíli, kdybychom todle strčili do SublimeText jako barevné schéma, by nám nastavil barvu písma na černou. Všechny hodnoty, které tak budou ovlivňovat jak bude různě kód zabarven se píšou do <array>, hodnoty před ním většinou mají tagy <key> s nějáký info o autorovi (author, comment, …).

Obecná struktura stylování

Když už budete obarvovat třeba proměnnou, obecně se udává název toho, co aktuálně obarvujete, do stringu si třeba tak uvedete „Proměnné“. Do scope už patří jmenná prostora, která bude obarvená, v případě proměnných se jedná o prostoru variable.

Pod settings do dict, opět stylem key, string, key, string, … Se už zapisuje stylování, dají se volitelně uvést tři hodnoty: foreground – barva písma, background – barva pozadí, fontStyle – tučně (bold), kurzíva (italic), podtrženo (underline). V případě fontStyle se dá uvést oddělené mezerama i více hodnot, klidně všechny tři dohromady. Barvy pro foreground a background se zase udávají v hexadecimálním zápisu.

Jmenné prostory

Největší kámen úrazu stylování barevného schématu jsou nezmapované jmenné prostory, nikde se nenachází kompletní seznam, co můžete použít.

Pro SublimeText 2 existuje ovšem plugin zvaný Current Scope, tento plugin zobrazuje ve Status baru (spodní lišta) aktuální jmennou prostoru klíčového slova, proměnné, konstanty, … Pokud si tak při editaci PHP textu najedete třeba na slovo class, vypíše se vám, kterýma všema hodnotama se Sublime Text při obarvení řídí. V případě class by to bylo: {Scope: text.html.basic, source.php.embedded.block.html, meta.class.php, entity.name.type.class.php}.

Poslední část prostory, jako třeba v tomto případě .php, se může uvádět libovolně. Tímto si třeba můžete nastylovat, že entity.name.type.class bude vypadat jinak v javě (.java) a jinak v PHP (.php). Jednotlivé jmenné prostory jsou psané vzestupně dle priority, nejjistější je teda uvést ve scope vždy poslední vypsané.

Instalace schémat, editace

Krásný návod na instalaci nových barevných schémat lze najít třeba na stránce ColorSublime.

Co se týče editace barevného schématu, tak ty lze provádět doslava realtime, pokud máte aktuální schéma otevřené v editoru, tak se při každém uložení okamžitě projeví nové změny. Připíšete-li například nové obarvení pro proměnné, schéma uložíte a přepnete si do vedlejší souboru, kde se na to budete chtít podívat, Sublime jej okamžitě obarví dle poslední uložené verze souboru.

Občas se ovšem stane, že vám editace skončí chybou, protože jste zapomněli třeba zavřít tag a editor nahodí výchozí černobílé barevné schéma :).

Pokud jste v článku našli chybu, označte text a klikněte zde, nebo Shift + Enter

Jan Zechovský

Studoval SPŠ Resslova 5 - Středisko Stříbrníky se zaměřením na programování a počítačové sítě. V současné době Nette Programátor v Creolan s.r.o a programátorský kutil. Na twitteru jako @JZechy.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *