Трудно представить, что кроме этих 80 языков вам может понадобиться что-то свое, но тем не менее такая ситуация возникнуть может и надо знать как тут поступать.
Вообще, есть два способа добавить свой язык для раскраски.
Первый - это правка собственно исходного кода библиотеки qscintilla2.dll.
Достоинства этого метода - простота добавления. Достаточно взять за пример уже какой-нибудь существующий лексер, скопировать его в новый файл, исправить несколько строк, пересобрать библиотеку и, вуаля, новый лексер готов.
Недостаток этого метода очевиден - необходимость пересобирать библиотеку. Хотелось бы обойтись без этого.
Для этого в QScintilla есть путь истинного воина - наследование от QsciLexerCustom и самостоятельное написание алгоритмов раскраски. Это более сложный путь, на мой взгляд, но зато более правильный с концептуальной точки зрения, т.к. не нужно пересобирать библиотеку.
Итак, первое что мы должны сделать - это отнаследоваться от QsciLexerCustom:
#include <qsci/qscilexercustom.h>
class Lexer : public QsciLexerCustom
{
Q_OBJECT
public:
//! Конструктор
Lexer(QObject * parent = 0);
//! Деструктор
virtual ~Lexer();
private:
Lexer(const Lexer &);
Lexer &operator=(const Lexer &);
};
* This source code was highlighted with Source Code Highlighter.
В следующих выпусках мы продолжим написание своего лексера.
Комментариев нет:
Отправить комментарий