Skip to content

Commit

Permalink
Merge pull request #1617 from Waqar144/develop
Browse files Browse the repository at this point in the history
Fix Go lang and Allow CMake and Make highlighting in preview
  • Loading branch information
pbek authored Feb 6, 2020
2 parents dcec7d1 + 0e204c9 commit 5aeff47
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 61 deletions.
3 changes: 1 addition & 2 deletions src/entities/note.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

//
Expand Down
105 changes: 52 additions & 53 deletions src/helpers/codetohtmlconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,35 +18,37 @@ void CodeToHtmlConverter::initCodeLangs() const Q_DECL_NOTHROW
{
CodeToHtmlConverter::_langStringToEnum =
QHash<QString, CodeToHtmlConverter::Lang> {
{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}
};

}
Expand Down Expand Up @@ -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;
Expand All @@ -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()) {
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
Expand All @@ -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;
Expand Down
12 changes: 7 additions & 5 deletions src/helpers/codetohtmlconverter.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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') ||
Expand Down

0 comments on commit 5aeff47

Please sign in to comment.