Добавление нового лексера в scintilla/scite (и, в конечном итоге, в wxPython StyledTextCtrl)

Кто-нибудь из вас успешно добавил лексер в сцинтиллу?

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

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

Конкретно у меня есть

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

    LexerModule lmMapfile(SCLEX_MAPFILE, ColouriseMapfileDoc, "mapfile");

  6. Запустите LexGen.py, чтобы сгенерировать все make-файлы (согласно секретным инструкциям)

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

Что я делаю не так, кроме, может быть, шага 12?


person relet    schedule 21.07.2010    source источник


Ответы (3)


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

person relet    schedule 26.07.2010

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

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

person user1144598    schedule 30.10.2012