play around with Scintilla and Lexilla

This commit is contained in:
2024-07-02 23:47:26 +08:00
parent d7c71f41b2
commit 727a2ec214
992 changed files with 281111 additions and 195 deletions

View File

@ -3,43 +3,28 @@
#include <KActionMenu>
#include <QMenu>
class QsciLexer;
class LexerGroupActionMenu : public KActionMenu
{
Q_OBJECT
public:
enum LanguageGroup {
LANG_GRP_B,
LANG_GRP_C,
LANG_GRP_D,
LANG_GRP_H,
LANG_GRP_J,
LANG_GRP_L,
LANG_GRP_M,
LANG_GRP_P,
LANG_GRP_R,
LANG_GRP_X,
LANG_GRP_Y,
LANG_GRP_LAST = LANG_GRP_Y
};
LexerGroupActionMenu(const QString &text, enum LanguageGroup grp, QObject *parent)
LexerGroupActionMenu(const QString &text, QChar grp, QObject *parent)
: KActionMenu(text, parent)
{
m_group = nullptr;
m_languageGroup = grp;
m_languageGroup = grp.toLower();
connect(menu(), &QMenu::aboutToShow, this, &LexerGroupActionMenu::slotAboutToShow);
setPopupMode(QToolButton::InstantPopup);
}
static QString groupName(enum LanguageGroup grp);
static QsciLexer * createLexerByLanguage(const QString & languageName);
static std::list<QChar> groups();
static QString displayName(const QString & lexerName);
signals:
void lexerSelected(const QString lexerName);
private:
QActionGroup *m_group;
enum LanguageGroup m_languageGroup;
QChar m_languageGroup;
public:
void slotAboutToShow();