2010-07-21 4 views
3

Кто-нибудь из вас успешно добавил lexer в scintilla?Добавление нового lexer в scintilla/scite (... и в конечном итоге wxPython StyledTextCtrl)

Я следовал за короткие инструкции по http://www.scintilla.org/SciTELexer.html - и даже обнаружил секретные дополнительные инструкции по http://www.scintilla.org/ScintillaDoc.html#BuildingScintilla (Изменение Набор лексических)

Все компилируется, и я могу добавить лексера к SciTE просто отлично, но мой ColouriseMapfileDoc метод просто не вызван (printf не выводит результат). Если я добавлю тот же код, например. ColouriseLuaDoc lexer, все в порядке (printf делает выход продукции).

В частности у меня есть

  1. В scintilla/include/Scintilla.iface, добавил val SCLEX_MAPFILE=99
  2. И любые идентификаторы лексических класса
  3. В Scintilla/включает каталог запустить HFacer.py и подтвердил, что файл SciLexer.h изменился.
  4. Создано LexMapfile.cxx с ColouriseMapfileDoc функцией
  5. В конце файла, связанный идентификатор лексического анализатора и имя с помощью функции:

    LexerModule lmMapfile (SCLEX_MAPFILE, ColouriseMapfileDoc, «») файла проекта;

  6. Run LexGen.py генерировать все мейкфайлы (в соответствии с секретными инструкциями)

  7. Создано новый SciTE файл свойства клонированием scite/src/others.properties
  8. Настройка некоторые стили
  9. В scite/src/SciTEGlobal.properties добавлены $(filter.conf) к определению open.filter.
  10. Добавлен этот язык в меню языка SciTE,
  11. Построен как Scintilla, так и SciTE.
  12. Ворчал и проклят.

Что я делаю неправильно, кроме шага 12?

ответ

3

В случае, если кто-то прочитает этот вопрос в будущем - вам также необходимо будет добавить строку import yourformat в SciTEGlobal.properties. Это недокументированный шаг 9b.

3

В случае, если кто читает этот вопрос в будущем - вы также должны добавить строку импорта yourformat в SciTEGlobal.properties. Это недокументированный шаг 9b.

Этот шаг больше не требуется. Я составил 3.2.2, и это было сделано с помощью импорта *. Остальные шаги все еще полны и актуальны.

2

Я отжимаю один лексер непосредственно в scintilla/lexer/LexOthers.cxx, как описано в http://www.scintilla.org/SciTELexer.html. Для справки 3.2.3 недостающий шаг 5b заключается в том, что вам нужно добавить LINK_LEXER(lmYouLexerMod); в scintilla/src/Catalogue.cxx.

 Смежные вопросы

  • Нет связанных вопросов^_^