File indexing completed on 2024-04-28 11:20:35

0001 /*
0002     SPDX-FileCopyrightText: 2010 Miha Čančula <miha.cancula@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "octavehighlighter.h"
0008 #include "octavekeywords.h"
0009 #include <session.h>
0010 
0011 using namespace Cantor;
0012 
0013 OctaveHighlighter::OctaveHighlighter(QObject* parent, Session* session): DefaultHighlighter(parent, session)
0014 {
0015     addKeywords(OctaveKeywords::instance()->keywords());
0016     addFunctions(OctaveKeywords::instance()->functions());
0017 
0018     QStringList operators;
0019     operators
0020     << QLatin1String("+") << QLatin1String("-") << QLatin1String("*") << QLatin1String("/")
0021     << QLatin1String(".+") << QLatin1String(".-") << QLatin1String(".*") << QLatin1String("./")
0022     << QLatin1String("=") << QLatin1String("or") << QLatin1String("and") << QLatin1String("xor")
0023     << QLatin1String("not") << QLatin1String("||") << QLatin1String("&&") << QLatin1String("==");
0024     addRules(operators, operatorFormat());
0025 
0026     addRule(QRegularExpression(QStringLiteral("\"[^\"]*\"")), stringFormat());
0027     addRule(QRegularExpression(QStringLiteral("'[^']*'")), stringFormat());
0028 
0029     addRule(QRegularExpression(QStringLiteral("#[^\n]*")), commentFormat());
0030     addRule(QRegularExpression(QStringLiteral("%[^\n]*")), commentFormat());
0031 
0032     rehighlight();
0033 }