Čas od času se vracím k tématu, kterak obarvovat prostý text programového kódu. Jeho zdrojem je v mém případě zpravidla Excel a editor VBA.
Prostým zkopírováním kódu do schránky se přenáší pouze neformátovaný text. A co víc, jeho přímé vložení do dialogu Skype v současné době není možné, dočkáte se pseudočínského paskvilu (musíte použít prostředníka – textový editor). Ve svých výukových materiálech si každopádně přeji mít kód obarvený (klíčová slova, komentáře atd.).
K řešení potřebujeme dvě věci – prvek, který umí zobrazovat naformátovaný text – RTF (Rich Text Format), případně HTML a techniku, jak kód přebírat obarvený (resp. jak jej znovu obarvit).
Samotný Excel či Word si s vkládaným naformátovaným textem poradí, na takovém formuláři ve VBA ale běžně nemáme k dispozici vhodný ActiveX prvek. Klasický TextBox zvládá pouze prostý text, a RichTextBox bychom museli na UserForm dopravit s dopomocí. V podstatě se jedná o prvek Visual Basicu 6, kdy jeho použití nebrání ani tak technické problémy, jako spíš zabezpečení a licencování (obojí se nechá obejít zásahem do registru, ale…). A když už si najdete jiný prvek (kdo hledá, najde InkEdit), musíte řešit obarvení přejatého kódu. Já osobně jsem zvolil regulární výrazy – objekt RegExp vypůjčený z VBScriptu). Ale o tom někdy jindy, chtěl jsem jen nastínit, jak trnitá cesta to je.
Pro administrátory webových stránek slouží k účelům zpracování programového kódu celé PHP moduly. Mezi nejznámější patří robustní GeSHi – Generic Syntax Highlighter. Vybírat si můžete z různých programovacích jazyků (VBA si dotvoříte ze stávající definice pro Visual Basic), řádky číslovat aj.
1 2 3 4 5 6 | Sub VytvorSeznamObr() ReDim PoleSouboru(0 To 1) f = Dir(Directory, 7) 'setřídění QuickSort PoleSouboru End Sub |
Přebírat text obarvený z okna editoru VBA zvládne kupříkladu placený HyperSnap a jeho modul TextSnap. Ačkoliv autoři od tohoto nástroje upouští a v budoucích verzích možná nebude vůbec (jednoduše se na soudobých prvcích podporujících DirectX, hardwarovou podporu atp. nechytá), na stařičkém editoru problém nemá. Z něj pak už obarvený text kopírujete přes schránku jinam.
Cílem tohoto článku je ovšem Notepad++. Ten slouží jako víc než skvělá náhrada textového editoru Notepad (Poznámkový blok). Je zdarma, existuje přenositelná verze, umí překódování textu, podporuje moduly a co nás zajímá nejvíce, umožňuje obarvovat programový kód podle vybrané syntaxe (a kromě jiného i třeba seskupovat programové bloky – procedury – a vytvořit z nich přehlednou stromovou strukturu). V Notepadu++ není samozřejmě problém předefinovat pravidla syntaxe dle vašich potřeb. Pro export naformátovaného textu použijete plugin NppExport.
Ve Wordu nebo jinde pak už jen překlopíte obsah ze schránky (s volbou zachování formátování zdroje). Následně můžete ještě aplikovat vlastní styly odstavce. Obrázek níže ukazuje užití modernějšího a vhodnějšího fontu Consolas a změnu řádkování (srovnání s přežitým fontem Courier New).