Подсветка синтаксиса
- Author
- Message
-
Offline
- Posts: 22
- Joined: Mon Aug 21, 2006 10:28 am
- Contact:
Подсветка синтаксиса
Плагины с подсветкой синтаксиса, планируються такие? Если да то AkelPad вообще бы просто сказка был бы.
-
Offline
- Posts: 22
- Joined: Mon Aug 21, 2006 10:28 am
- Contact:
-
Offline
- Posts: 22
- Joined: Mon Aug 21, 2006 10:28 am
- Contact:
-
Offline
- Posts: 1
- Joined: Wed Jan 03, 2007 3:59 pm
HighLight plugins
Кто-то вооще делает или будет делать плагины с подсветкой синтатксиса? надоело уже разбирать исходники в черно-белом цвете... Или если у кого есть пришлите пожалуста на cscreator@rambler.ru
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Re: HighLight plugins
Сделать-то можно, но сильно обломно это Поясняю:Kpeamop wrote:Кто-то вооще делает или будет делать плагины с подсветкой синтатксиса?
1) для начала нужно хорошо продумать структуру плагина. Мне она видится чем-то вроде набора
const HIGHLIGHT_GROUPS[] = {
{ "function1", ID_FUNCTION1, ID_GROUP_FUNCTIONS },
...
{ "operator1", ID_OPERATOR1, ID_GROUP_OPERATORS },
...
{ "statement1", ID_STATEMENT1, ID_GROUP_STATEMENTS },
...
...
};
который определяет ключевые слова и правила их подсветки,
а также класса CSyntaxRichEdit, который бы эту подсветку осуществлял.
2) теперь проблема #1: функции CSyntaxRichEdit должны дублироваться для Unicode и не-Unicode
3) проблема #2, тесно связанная с проблемой #3: когда, в какие моменты следует обновлять раскраску файла?
4) проблема #3: раскрашивать ли весь файл или только видимый текст (в первом случае - долго; во втором случае непонятно, как определить, к примеру, не является ли видимый в данный момент текст частью комментария)
5) и, наконец, проблема #4: что делать с поддержкой UNDO/REDO, если подсветка текста - это фактически изменение текста?
Если для пунктов 3-5 есть простое и внятное решение, то над остальным можно начать работать
-
Offline
- Posts: 12
- Joined: Fri Jan 12, 2007 1:10 pm
Re: HighLight plugins
А что если использовать готовые решения?DV wrote:Сделать-то можно, но сильно обломно это
например Colorer-take5
Или это не возможно ввиду каких-то программных ограничений?
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Re: HighLight plugins
Насколько я понял, программа изначально должна разрабатываться с применением функций из библиотеки Colorer. А AkelPad, как-никак, уже готовый проект.MaD_CLuSTeR wrote:например Colorer-take5
Есть альтернатива - вместо стандартного компонента RichEdit использовать компонент Scintilla (на том же sourceforge.net), который автоматически или с элементарным указанием, с каким типом файла мы работаем, подсвечивает синтаксис в файле. В этом случае придется все обращения к RichEdit переделать на обращения к Scintilla, но - опять же - внутри AkelPad. Это интересный вариант, но тогда, учитывая объём необходимых изменений, это будет уже AkelPad 4.x.x
-
Offline
- Posts: 16
- Joined: Tue Sep 05, 2006 10:41 am
- Location: Москва
- Contact: