Červenec
14Napsat prográmek s okýnkem a pár tlačítky je naprosto jednoduché, zvládne to skoro každý, protože si ve Visual Studiu nakliká vzhled a sem tam i nějaké chování. Problém však nastává ve chvíli, kdy má vaše aplikace něco opravdu umět. Co se týče mého PHP IDE, zdánlivě těžký problém s taby jsem vyřešil jedním CodeHandlerem (třída sloužící k uchováníí objektů typu code) a využítím vlastnosti Tag objektu Button. Ovšem o dost slabší je to se syntax highlightem. Lexikální gramatika mi nic neříká a termín se blíží, tudy cesta nevede. Nasadil jsem tedy mnoha vývojáři oblíbené řešení - reguláry.
Všechno fungovalo báječně, měl jsem z toho velkou radost, jak snadné to bylo, ale pak jsem do programu nasypal seznam funkcí jazyka PHP. Začal se provádět regex se zhruba 1300 nebo a to už sakra trvá. Dokud se z tohoto místa nehnu (zkusím udělat více menších regexů), nemá cenu implementovat zjednoduššení highlightu pro editaci běžným psaním textu (při zmáčknutí mezery se nemusí obarvovat nic, při stisknutí písmenka zhruba asi jedna řádka, při paste nebo otevření souboru totálně všechno). Momentálně ale otevřu soubor, dám si kafe, zdřímnu si, přečtu si novinky, odpovím na pár příspěvků na fóru, chvilku se koukám z okna a kód je obarvený.
Chtěl jsem se podívat, jak se to dělá v praxi. Otevřel jsem tedy zdrojáky Sharp developu, nevěřícně zakroutil hlavou a přemýšlel o tom, jestli se podívám na příslošnou část PDT. Další varianta je inspirovat se v GeSHi, snad je ten kus kódu rozumný. Obarvit přitom potřebuji jen názvy funkcí, ostatní se obarví velmi rychle, naprosto bez problému.
Problém mám však s metodami SuspendLayout a ResumeLayout, zvláště ta první mi funguje jen při prvním použití.
Inu, bude to ještě veselé. A práce se na mě valí a valí…