История изменений
Исправление RPG, (текущая версия) :
Насколько сложно под сабж делать подсветку синтаксиса? Например у меня html шаблоны со вставками типа {if}..{else}...{/if}, {$count} и т.д.
Существует два пути. Первый очень простой, второй очень сложный:)
Простой. В Scintilla существует множество готовых лексеров для разных языков: C/C++, Python, Lua, Ruby. Один из готовых лексеров можно взять за основу для «своего» языка. Далее нужно просто оформить файл filetypes, где перечислить все ключевые слова и зарядить цветовую схему. Схемы можно наследовать. Я так сделал немного кривоватую подсветку синтаксиса для RPM Spec на базе Ruby.
Сложный. Нужно добавлять вручную лексер в редактор Scintilla на C++. Больше нечего сказать, но это когда язык уж очень радикально нестандартный. Например, для C, C++, Java и JavaScript используется один и тот же лексер C++.
В вашем случае можно просто добавить ключевые слова в уже существующий лексер HTML. Подробности можно почитать в документации. Если положить filetype.html в ~/.config/geany/filetypes, он перекроет системную схему.
Исходная версия RPG, :
Насколько сложно под сабж делать подсветку синтаксиса? Например у меня html шаблоны со вставками типа {if}..{else}...{/if}, {$count} и т.д.
Существует два пути. Первый очень простой, второй очень сложный:)
Простой. В Scintilla существует множество готовых лексеров для разных языков: C/C++, Python, Lua, Ruby. Один из готовых лексеров можно взять за основу для «своего» языка. Далее нужно просто оформить файл filetypes, где перечислить все ключевые слова и зарядить цветовую схему. Схемы можно наследовать.
Сложный. Нужно добавлять вручную лексер в редактор Scintilla на C++. Больше нечего сказать, но это когда язык уж очень радикально нестандартный. Например, для C, C++, Java и JavaScript используется один и тот же лексер C++.
В вашем случае можно просто добавить ключевые слова в уже существующий лексер HTML. Подробности можно почитать в документации. Если положить filetype.html в ~/.config/geany/filetypes, он перекроет системную схему.