WPF: Syntax Highlight TextBox
Založil jsem projekt Simple WPF Syntax Highlight TextBox na CodePlexu. Jak už název napovídá, jedná se o projekt s cílem vytvořit jednoduchý TextBox k editaci zdrojových kódů. Budu se snažit projekt udržovat a rozšiřovat (doufám), protože se zatím jedná o první veřejnou verzi, která má k dokonalosti pořád daleko.
Vlastnosti
Základní vlastnosti jsou v bodech napsány na domácí stránce projektu, ale tady se o nich taky zmíním:
- Jednoduše definovatelná pravidla obarvování pomocí Brush (ne pouze barva)
- Definovatelné pozadí pomocí Brush (ne pouze barva)
- Libovolná barva kurzoru
- Zvýraznění seznamu slov
- Číslování řádků
- Definovatelná velikost odsazení (Tab size) – Taby se převádí na mezery
- Správné odsazování pomocí tab/shift+tab i pro výběr více řádků
- Nový řádek pomocí enteru (jak jinak? :) ) respektuje odsazení, které bylo na aktuálním řádku
V testovacím programu je ukázka zvýrazňování syntaxe pro jazyky IronPython (používá Dynamic Language Runtime, a tak lze jednoduše upravit pro jakýkoliv DLR jazyk) a pro Boo (používá upravený oficiální lexikální analyzátor jazyka Boo).
Vlastní myšlenka, kterou popisují např. články CodeBox2 Project na CodeProject a DevHawk CodeBox, je v tom, že se původnímu TextBoxu nastaví napevno transparentní text a zajistí se vlastní vykreslování v metodě OnRender.
Co dál?
V dalších verzích se můžete těšit na zvýrazňování celých řádků, např. pro breakpointy, chyby, apod. A také na jednoduché doplňování kódu (intellisense), které bude implementováno pro jazyk Boo.
Upozornění na nové komentáře
Pokud chčeš dostávat upozornění emailem na změny u toho příspěvku,tak se zaregistruj zde.zde
Odebírat komentáře k tomuto příspěvku pomocí