TextMate
TextMate je univerzální GUI textový editor pro Mac OS X,který vytvořil Allan Odgaard. Obsahuje některé zajímavé vlastnosti zahrnující deklarativní úpravy, záložky pro otvírání dokumentů, záznam maker, integrovaný shell a rozšířitelný systémový svazek.
Aktuální verze | 2.0.23 (12. října 2021) |
---|---|
Operační systém | macOS |
Vyvíjeno v | Ruby, Objective-C, C++ a C |
Typ softwaru | textový editor a editor zdrojového kódu |
Licence | GNU General Public License |
Web | macromates |
Některá data mohou pocházet z datové položky. |
Vlastnosti
Vnořené rámce (Nested scopes)
TextMate umožňuje uživatelům vytvářet vlastní libovolně složité režimy zvýrazněné syntaxe pomocí upravené verze formátování vlastností Apple ASCII a tím definovat gramatiky jazyka. Tyto gramatiky umožňují vnořená pravidla definovaná pomocí regulárních výrazů knihovny Oniguruma a jsou jim přiděleny specifické rámce (značky pro určení barvy). Proto má každý bod dokumentu přidělen jeden nebo více rámců, které určují, kde se bod v dokumentu nachází, jakou má mít barvu a jak se má chovat. Například nadpis „Externí odkazy“ článku má následující rámec:
text.html.mediawiki markup.list.mediawiki meta.link.inline.external.mediawiki string.other.link.title.external.mediawiki
Tento rámec nám říká, že se díváme na název odkazu (link title) v externích odkazech (external) v seznamu (list) dokumentu MediaWiki.
TextMate témata mohou označovat jakýkoliv rámec na různé úrovni přesnosti. Například jedno téma může určit barvu všech konstant (constant.numeric.*
), zatímco jiné může určit barvu numerických konstant (constant.numeric.*
), které mají být jiné než u escape znaků (constant.character.escape.*
). Syntaxe vnořených rámců umožňuje autorům jazyka a témat různé úrovně pokrytí, tak aby si každý mohl vybrat co potřebuje, zda jednoduchost nebo komplexnost.
Příkazy (Commands)
TextMate podporuje uživatelem definované a upravitelné příkazy, které jsou interpretovány pomocí interpretu bash nebo jiným volaným přes shebang. Příkazům lze zasílat mnoho druhů vstupů pomocí TextMate (aktuální dokument, vybraný text, aktuální slovo, atd.) kromě proměnných prostředí a s jejich výstupem můžeme obdobně nakládat mnoha různými způsoby pomocí TextMate. Nejjednodušší příkaz může přijmout vybraný text, transformovat ho a vložit ho místo vybraného textu v dokumentu. Jiný příkaz může jednoduše ukázat tooltip nebo vytvořit nový dokument pro jeho výstup nebo ho zobrazit jako webovou stránku pomocí vestavěného HTML renderu. Mnoho jazykových balíčků, jako je bash, PHP nebo Ruby obsahují příkazy pro kompilaci aktuálního projektu. V mnoha případech bude výsledek (stdout, stderr) spuštěného kódu zobrazen v okně v TextMate.
Fragmenty (Snippets)
TextMate fragmenty jsou kousky textů, které mohou být vloženy do dokumentu na aktuální pozici. Složitější chování je možné na základě několika užitečných zobecnění tohoto nápadu. Za prvé, fragmenty mohou obsahovat jednu nebo více „zarážek“, které se mohou cyklicky střídat pomocí klíče zarážky. Za druhé, mohou být výsledky těchto zarážek dynamicky měněny v jinou část fragmentu, podle toho jak uživatel zadá zarážku. Za třetí, fragmenty mají přístup k proměnným prostředí jakou jsou aktuální rámec, aktuální číslo řádku, jméno autora a také mají schopnost spouštět inline shell skripty.
Svazky (Bundles)
TextMate gramatiky jazyka, fragmenty, makra, příkazy a šablony mohou být seskupeny do svazků. Fragmenty, makra nebo příkazy mohou být vykonány stiskem klávesové zkratky, zadáním konkrétního slova se stisknutím klávesy Tab (označované „tab triggers“) nebo výběrem příkazu z menu. Tab triggers jsou zvláště užitečné, kombinace tab triggers a fragmentů velmi usnadňuje kódování v „upovídaných“ jazycích nebo v jazycích s obyčejně napsanými vzory.
Fragmenty, makra a příkazy mohou být omezena na určitý rámec, takže například příkaz „close html tag“ nefunguje v python skriptu, uvolněné klávesové zkratky mohou být použity na něco jiného. To umožňuje jazyky i jednotlivé rámce přepsat vestavěnými příkazy jako „Přeformátuj odstavec“ s více speciálními verzemi. Dokonce klávesa Enter nebo mezerník může být přepsána.
Reference
V tomto článku byl použit překlad textu z článku TextMate na anglické Wikipedii.