Как стать автором
Обновить

Комментарии 9

рекомендую посмотреть на textadept, редактор на основе Scintilla, но всё за исключением небольшого ядра в нём написано изначально на lua (в том числе и лексеры использующиеся при раскраске)… как следствие: Lua программисту проще модифицировать поведение редактора.
Очень хорошая штука. Но у него есть ряд минусов, в частности на windows сплошные access violation и на vista не запускается :(. Я общался в форуме с разработчиком, тот не горит желанием кроссплатформенностью заниматься. А scite — она как топор. Очень, очень простой — но все работает :).
странно, у меня на XP нормально работает. на Vista впрочем не пробовал.
Так я его изнутри за API подергал :). Если просто запустить оно конечно не падает, а вот если окошек понаоткрывать да лексеров подключить — то начинаются неприятности. И вообще, windows 7 скоро, надо морально готовиться и кроссплатформенность соблюдать О_О.
а ну может быть, я сильно за API не дёргал, добавлял лишь малую функциональность… и отложил, ибо у него пока проблемы с многопоточностью/многопроцессностью, поэтому там REPL нормальный пока из коробки не сделаешь =)
Это что получается, если у меня открыт файл в 100 килобайт, то при каждом нажатии на клавишу будет вызываться функция, которая будет перекрашивать ВСЕ 100 кб текста? Нечто динозаврское получается. ИМХО, lua здесь не поможет.
Так у меня же упрощенно :). Понятное дело что как только Вы разбираетесь с технолгией, то используете вместо editor:textrange( 0, editor.Length ) пару сообщений, получающих только видимую часть текста плюс немного вверх и вниз. Я не стал усложнять статью большим количеством технических деталей, иначе много получается :(. Если хабралюди заинтересуются, то я могу вторую статью написать, с примером действующего лексера, красящего что-нибудь полезное.
Возможность создания подсветки синтаксиса для собственных языков есть так же в отличном редакторе Notepad++ которым я часто пользуюсь. О том как сделать собственную подсветку можно почитать здесь (англ.)/ А если кому-нибудь нужно, могу выложить свою подсветку кода для Protobuf.
Открою страшную тайну инвайт — Тotepad++ тоже использует scintilla :). Я на самом деле думал что использовать для примера, scite или notepad++. Остановился на первом, так как он шибко кроссплатформенный (Маки там всякие, убунту и прочее) и полный доступ к нутрам предоставляет (у Notepad++ все-таки не полноценный скриптовый язык, а возможность задать кейворды и правила).
btw, Notepad++ штука очень хорошая, тоже всячески рекомендую.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории