Scintilla - встраеваемый текстовый редактор
Добавлено: 09 Декабрь 2022, 11:03
На github лежит класс и шаблон для подключения известной открытой сишной библиотеки scintilla. Библиотека была разработана в начале нулевых, враппер примерно тогда же, после вносились изменения, вплоть до 2017 года. Обратил на нее внимание, когда смотрел вебинар на ютубе, где она используется в приложении Classify.It.
https://github.com/Devuna/Devuna-Scinti ... 3738054478
Взаимодействие с библиотекой обеспечивается через отправку и получение событий Windows. Соответственно, внутри класса сабклассинг окна. Методы виртуальные. Шаблон только для abc, но функционала там особого нет, просто текстовое поле, инициализация класса и точки вставки для размещения данных и виртуальных методов. Пример работает, но, к сожалению, там только открытие файла с базовым функционалом для редактирования. В самом враппере набор методов большой, похоже, что накрывали все функции согласно документации.
Сама по себе Scintilla обеспечивает функционал редакторов для программирования - подсветка синтаксиса, завершение кода (code completed), всплывающие подсказки, свертывание блоков кода, работа с закладками, поиск/замену и т.д. В работе можно увидеть в notepad++. Погуглил, оказалось, что существуют порты на c# и pyton. Там их используют для встраивания редакторов всяких скриптовых языков. В отличии от кларионовского класса, в сети немало статей с описание использования и обсуждения этих портов, с примерами кода. Вполне вероятно, что текстовый редактор в с11 использует порт scintilla.
Это скриншот примера с github.
https://github.com/Devuna/Devuna-Scinti ... 3738054478
Взаимодействие с библиотекой обеспечивается через отправку и получение событий Windows. Соответственно, внутри класса сабклассинг окна. Методы виртуальные. Шаблон только для abc, но функционала там особого нет, просто текстовое поле, инициализация класса и точки вставки для размещения данных и виртуальных методов. Пример работает, но, к сожалению, там только открытие файла с базовым функционалом для редактирования. В самом враппере набор методов большой, похоже, что накрывали все функции согласно документации.
Сама по себе Scintilla обеспечивает функционал редакторов для программирования - подсветка синтаксиса, завершение кода (code completed), всплывающие подсказки, свертывание блоков кода, работа с закладками, поиск/замену и т.д. В работе можно увидеть в notepad++. Погуглил, оказалось, что существуют порты на c# и pyton. Там их используют для встраивания редакторов всяких скриптовых языков. В отличии от кларионовского класса, в сети немало статей с описание использования и обсуждения этих портов, с примерами кода. Вполне вероятно, что текстовый редактор в с11 использует порт scintilla.
Это скриншот примера с github.