Есть ли хороший пример для реализации подсветки кода( не такой как в scintilla, а с семантикой ), и возможно ли для этого каким-нибудь боком использовать gcc?
Из open source есть неплохой пример - Eclipse CDT. Так как у них свой C++ front-end (написанный на Java), то им есть откуда брать семантику для кода. А вот ни вимеры, ни емаксеры пока не осилили семантическую расцветку кода для плюсов.
Использовать GCC в принципе возможно, но смотря для чего. Для генерации по исходникам html с семанической расветкой, наверное, как-то можно приспособить. А вот чтобы прям в процессе редактирования кода и налету - врядли.
Да, это собственно не очень важно при кодинге, а вот втыкания в чужой код может пригодиться. Там где семантическая подсветка - там и до графа вызовов и нормального дебага рукой подать. Imho обычно тут и проходит граница между IDE и редактор+левые плагины.
Не за что бы не поверил, что там семантическая. Там семантическая не нужна (как имхо и в большинстве случаев, отличных от IDE, так что желаю топикстартеру удачи в поиске).
>Спасибо за ссылку, но судя по скриншотам семантику он не понимает
Was ist «семантику»? Если внутри PHP есть HTML, внутри которого есть JavaScript - он это всё корректно подсветит. Да ещё и синтаксические ошибки несложные поймает. Это семантика или нет? :)
>Да, это собственно не очень важно при кодинге, а вот втыкания в чужой код может пригодиться. Там где семантическая подсветка - там и до графа вызовов и нормального дебага рукой подать.
Тут уже хайлайтер поднимается до уровня IDE. И не простой IDE, а с проектами. Ибо определить, класс это или функция нередко только через подгрузку файлов проекта только можно.
Просто без такой функциональности такого рода тулзы особого смысла не имеют, а то получаются всякие indent-ы и ctags-ы, которые работают только в простых случаях а по своему смыслу должны-бы натравливаться на весь проект скопом. Благо эта проблема свойственна не всем языкам, ту же жаву afair можно парсить вообще без неоднозначностей(нет не препроцессора ни перегрузки операторов).