diff --git a/src/entities/note.cpp b/src/entities/note.cpp index 64193580fb..bfaa29952c 100644 --- a/src/entities/note.cpp +++ b/src/entities/note.cpp @@ -1786,8 +1786,7 @@ bool Note::fileWriteable() const{ // checks if the current note still exists in the database // bool Note::exists() const { - Note note = Note::fetch(this->id); - return note.id > 0; + return Note::fetch(this->id).id > 0; } // diff --git a/src/helpers/codetohtmlconverter.cpp b/src/helpers/codetohtmlconverter.cpp index a029c96e67..694699ad84 100644 --- a/src/helpers/codetohtmlconverter.cpp +++ b/src/helpers/codetohtmlconverter.cpp @@ -18,35 +18,37 @@ void CodeToHtmlConverter::initCodeLangs() const Q_DECL_NOTHROW { CodeToHtmlConverter::_langStringToEnum = QHash { - {QLatin1String("bash"), CodeToHtmlConverter::CodeBash}, - {QLatin1String("c"), CodeToHtmlConverter::CodeC}, - {QLatin1String("cpp"), CodeToHtmlConverter::CodeCpp}, - {QLatin1String("cxx"), CodeToHtmlConverter::CodeCpp}, - {QLatin1String("c++"), CodeToHtmlConverter::CodeCpp}, - {QLatin1String("c#"), CodeToHtmlConverter::CodeCSharp}, - {QLatin1String("csharp"), CodeToHtmlConverter::CodeCSharp}, - {QLatin1String("css"), CodeToHtmlConverter::CodeCSS}, - {QLatin1String("go"), CodeToHtmlConverter::CodeCSharp}, - {QLatin1String("html"), CodeToHtmlConverter::CodeXML}, - {QLatin1String("ini"), CodeToHtmlConverter::CodeINI}, - {QLatin1String("java"), CodeToHtmlConverter::CodeJava}, - {QLatin1String("javascript"), CodeToHtmlConverter::CodeJava}, - {QLatin1String("js"), CodeToHtmlConverter::CodeJs}, - {QLatin1String("json"), CodeToHtmlConverter::CodeJSON}, - {QLatin1String("php"), CodeToHtmlConverter::CodePHP}, - {QLatin1String("py"), CodeToHtmlConverter::CodePython}, - {QLatin1String("python"), CodeToHtmlConverter::CodePython}, - {QLatin1String("qml"), CodeToHtmlConverter::CodeQML}, - {QLatin1String("rust"), CodeToHtmlConverter::CodeRust}, - {QLatin1String("sh"), CodeToHtmlConverter::CodeBash}, - {QLatin1String("sql"), CodeToHtmlConverter::CodeSQL}, - {QLatin1String("ts"), CodeToHtmlConverter::CodeTypeScript}, - {QLatin1String("typescript"), CodeToHtmlConverter::CodeTypeScript}, - {QLatin1String("v"), CodeToHtmlConverter::CodeV}, - {QLatin1String("vex"), CodeToHtmlConverter::CodeVex}, - {QLatin1String("xml"), CodeToHtmlConverter::CodeXML}, - {QLatin1String("yml"), CodeToHtmlConverter::CodeYAML}, - {QLatin1String("yaml"), CodeToHtmlConverter::CodeYAML} + {QStringLiteral("bash"), CodeToHtmlConverter::CodeBash}, + {QStringLiteral("c"), CodeToHtmlConverter::CodeC}, + {QStringLiteral("cpp"), CodeToHtmlConverter::CodeCpp}, + {QStringLiteral("cxx"), CodeToHtmlConverter::CodeCpp}, + {QStringLiteral("c++"), CodeToHtmlConverter::CodeCpp}, + {QStringLiteral("c#"), CodeToHtmlConverter::CodeCSharp}, + {QStringLiteral("cmake"), CodeToHtmlConverter::CodeCMake}, + {QStringLiteral("csharp"), CodeToHtmlConverter::CodeCSharp}, + {QStringLiteral("css"), CodeToHtmlConverter::CodeCSS}, + {QStringLiteral("go"), CodeToHtmlConverter::CodeGo}, + {QStringLiteral("html"), CodeToHtmlConverter::CodeXML}, + {QStringLiteral("ini"), CodeToHtmlConverter::CodeINI}, + {QStringLiteral("java"), CodeToHtmlConverter::CodeJava}, + {QStringLiteral("javascript"), CodeToHtmlConverter::CodeJava}, + {QStringLiteral("js"), CodeToHtmlConverter::CodeJs}, + {QStringLiteral("json"), CodeToHtmlConverter::CodeJSON}, + {QStringLiteral("make"), CodeToHtmlConverter::CodeMake}, + {QStringLiteral("php"), CodeToHtmlConverter::CodePHP}, + {QStringLiteral("py"), CodeToHtmlConverter::CodePython}, + {QStringLiteral("python"), CodeToHtmlConverter::CodePython}, + {QStringLiteral("qml"), CodeToHtmlConverter::CodeQML}, + {QStringLiteral("rust"), CodeToHtmlConverter::CodeRust}, + {QStringLiteral("sh"), CodeToHtmlConverter::CodeBash}, + {QStringLiteral("sql"), CodeToHtmlConverter::CodeSQL}, + {QStringLiteral("ts"), CodeToHtmlConverter::CodeTypeScript}, + {QStringLiteral("typescript"), CodeToHtmlConverter::CodeTypeScript}, + {QStringLiteral("v"), CodeToHtmlConverter::CodeV}, + {QStringLiteral("vex"), CodeToHtmlConverter::CodeVex}, + {QStringLiteral("xml"), CodeToHtmlConverter::CodeXML}, + {QStringLiteral("yml"), CodeToHtmlConverter::CodeYAML}, + {QStringLiteral("yaml"), CodeToHtmlConverter::CodeYAML} }; } @@ -127,6 +129,14 @@ QString CodeToHtmlConverter::process() const return ymlHighlighter(); case CodeINI: return iniHighlighter(); + case CodeMake : + loadMakeData(types, keywords, builtin, literals, others); + comment = QLatin1Char('#'); + break; + case CodeCMake : + loadCMakeData(types, keywords, builtin, literals, others); + comment = QLatin1Char('#'); + break; default: output += escapeString(_input); return output; @@ -147,22 +157,19 @@ QString CodeToHtmlConverter::process() const } else if (_input.at(i).isDigit()) { i = highlightNumericLit(output, i); } else if (comment.isNull() && _input.at(i) == QLatin1Char('/')) { - if(_input.at(i + 1) == QLatin1Char('/')) { + if (_input.at(i + 1) == QLatin1Char('/')) i = highlightComment(output, i); - } //Multiline comment i.e /* */ - else if (_input.at(i + 1) == QLatin1Char('*')) { + else if (_input.at(i + 1) == QLatin1Char('*')) i = highlightComment(output, i, false); - } else { + else output += escape(_input.at(i)); - } } else if (_input.at(i) == comment) { i = highlightComment(output, i); } else if (_input.at(i) == QLatin1Char('<') || _input.at(i) == QLatin1Char('>') || _input.at(i) == QLatin1Char('&')) { output += escape(_input.at(i)); - } - else if(_input.at(i).isLetter()) { + } else if(_input.at(i).isLetter()) { int pos = i; i = highlightWord(i, types, output, Format::Type); if (i < textLen && !_input.at(i).isLetter()) { @@ -321,7 +328,7 @@ int CodeToHtmlConverter::highlightNumericLit(QString &output, int i) const } } if (isPostAllowed) { - int end = ++i; + const int end = ++i; output += setFormat(_input.mid(start, end - start), Format::Literal); return --i; } @@ -382,15 +389,11 @@ int CodeToHtmlConverter::highlightStringLiterals(QChar strType, QString &output, case '7': { if (i + 4 <= _input.length()) { - bool isCurrentOctal = true; - if (!isOctal(_input.at(i+2).toLatin1())) { - isCurrentOctal = false; - break; - } - if (!isOctal(_input.at(i+3).toLatin1())) { - isCurrentOctal = false; + const bool isCurrentOctal = + (isOctal(_input.at(i+2).toLatin1()) && isOctal(_input.at(i+3).toLatin1())) ? + true : false; + if (!isCurrentOctal) break; - } len = isCurrentOctal ? 4 : 0; } break; @@ -399,15 +402,11 @@ int CodeToHtmlConverter::highlightStringLiterals(QChar strType, QString &output, case 'x': { if (i + 3 <= _input.length()) { - bool isCurrentHex = true; - if (!isHex(_input.at(i+2).toLatin1())) { - isCurrentHex = false; - break; - } - if (!isHex(_input.at(i+3).toLatin1())) { - isCurrentHex = false; + const bool isCurrentHex = + (isHex(_input.at(i+2).toLatin1()) && isHex(_input.at(i+3).toLatin1())) ? + true : false; + if (!isCurrentHex) break; - } len = isCurrentHex ? 4 : 0; } break; diff --git a/src/helpers/codetohtmlconverter.h b/src/helpers/codetohtmlconverter.h index 22329f6299..3854cd4f9c 100644 --- a/src/helpers/codetohtmlconverter.h +++ b/src/helpers/codetohtmlconverter.h @@ -41,15 +41,17 @@ class CodeToHtmlConverter CodeTypeScript, CodeYAML, CodeINI, - CodeVex + CodeVex, + CodeCMake, + CodeMake }; public: CodeToHtmlConverter(const QStringRef input, const QString &lang) Q_DECL_NOTHROW; QString process() const; private: - QStringRef _input; - QString _lang; + const QStringRef _input; + const QString _lang; Lang currentLang; QString escape(QChar c) const; @@ -71,14 +73,14 @@ class CodeToHtmlConverter /** * @brief returns true if c is octal */ - inline bool isOctal(const char c) const { + static inline bool isOctal(const char c) { return (c >= '0' && c <= '7'); } /** * @brief returns true if c is hex */ - inline bool isHex(const char c) const { + static inline bool isHex(const char c) { return ( (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || diff --git a/src/libraries/qmarkdowntextedit b/src/libraries/qmarkdowntextedit index 32fa1b5e3f..f46f400d16 160000 --- a/src/libraries/qmarkdowntextedit +++ b/src/libraries/qmarkdowntextedit @@ -1 +1 @@ -Subproject commit 32fa1b5e3ffe72be84f4b5dc8327eb2167d03d28 +Subproject commit f46f400d162c705350e218858f9c8ceaf89c7561