File kate-4.14.3-git.patch of Package kate
diff --git a/addons/kate/gdbplugin/localsview.cpp b/addons/kate/gdbplugin/localsview.cpp
index 3f1bcc0..8aa8374 100644
--- a/addons/kate/gdbplugin/localsview.cpp
+++ b/addons/kate/gdbplugin/localsview.cpp
@@ -170,6 +170,10 @@ void LocalsView::addStruct(QTreeWidgetItem *parent, const QString &vString)
// Value
start = end + 3;
end = start;
+ if (start < 0 || start > vString.size()) {
+ kDebug() << vString << start;
+ break;
+ }
if (vString[start] == '{') {
start++;
end++;
diff --git a/addons/kate/pate/src/plugins/cmake_utils/__init__.py b/addons/kate/pate/src/plugins/cmake_utils/__init__.py
index 5b7310d..d309c2e 100644
--- a/addons/kate/pate/src/plugins/cmake_utils/__init__.py
+++ b/addons/kate/pate/src/plugins/cmake_utils/__init__.py
@@ -33,6 +33,7 @@ from PyQt4.QtCore import QEvent, QObject, QUrl, Qt, pyqtSlot
from PyQt4.QtGui import (
QBrush
, QColor
+ , QDialog
, QPalette
, QSplitter
, QTabWidget
@@ -96,7 +97,6 @@ def _find_current_context(document, cursor):
in_comment = False
should_count_pos = (current_line == cursor.line())
for pos, c in enumerate(line_str):
- print("c='{}'".format(c))
if should_count_pos and pos == cursor.column():
break
if c == '#' and not in_string:
@@ -179,17 +179,22 @@ def openDocument(url):
def _ask_for_CMakeLists_location_and_try_open(start_dir_to_show, cur_doc_dir):
- selected_dir = KUrlRequesterDialog.getUrl(
+ url_requester = KUrlRequesterDialog(
start_dir_to_show
- , kate.mainInterfaceWindow().window()
, i18nc('@title:window', '<filename>CMakeLists.txt</filename> location')
+ , kate.mainInterfaceWindow().window()
)
+
+ if url_requester.exec() == QDialog.Rejected:
+ return
+
+ selected_dir = url_requester.urlRequester().text()
kate.kDebug('CMakeHelper: selected_dir={}'.format(selected_dir))
- if selected_dir.isEmpty():
- return # User pressed 'Cancel'
+ if not selected_dir:
+ return # User has pressed 'Ok' on empty line
- selected_dir = selected_dir.toLocalFile() # Get selected path
+ selected_dir = KUrl(selected_dir).toLocalFile() # Get selected path
# Is it relative?
if not os.path.isabs(selected_dir):
# Yep, join w/ a path of the current doc
@@ -222,6 +227,7 @@ def openCMakeList():
# First of all check the document's MIME-type
document = kate.activeDocument()
cur_dir = os.path.dirname(document.url().toLocalFile())
+ kate.kDebug('CMakeHelper: cur_doc_dir="{}"'.format(cur_dir))
mimetype = document.mimeType()
if mimetype != _CMAKE_MIME_TYPE:
# Ok, current document is not a CMakeLists.txt, lets try to open
diff --git a/addons/kate/project/kateproject.cpp b/addons/kate/project/kateproject.cpp
index f5557c3..2400b5e 100644
--- a/addons/kate/project/kateproject.cpp
+++ b/addons/kate/project/kateproject.cpp
@@ -35,6 +35,7 @@ KateProject::KateProject ()
: QObject ()
, m_worker (new KateProjectWorker (this))
, m_thread (m_worker)
+ , m_fileLastModified()
, m_notesDocument (0)
, m_documentsParent (0)
{
@@ -96,10 +97,12 @@ bool KateProject::reload (bool force)
/**
* open the file for reading, bail out on error!
*/
+ m_fileLastModified = QDateTime();
QFile file (m_fileName);
if (!file.open (QFile::ReadOnly))
return false;
+ m_fileLastModified = QFileInfo(m_fileName).lastModified();
/**
* parse the whole file, bail out again on error!
*/
diff --git a/addons/kate/project/kateproject.h b/addons/kate/project/kateproject.h
index 3aaed67..f39375b 100644
--- a/addons/kate/project/kateproject.h
+++ b/addons/kate/project/kateproject.h
@@ -21,6 +21,7 @@
#ifndef KATE_PROJECT_H
#define KATE_PROJECT_H
+#include <QDateTime>
#include <QThread>
#include <QMap>
#include <QSharedPointer>
@@ -135,6 +136,13 @@ class KateProject : public QObject
return m_baseDir;
}
+
+ /**
+ * Return the time when the project file has been modified last.
+ * @return QFileInfo::lastModified()
+ */
+ QDateTime fileLastModified() const { return m_fileLastModified; }
+
/**
* Accessor to project map containing the whole project info.
* @return project info
@@ -279,6 +287,8 @@ class KateProject : public QObject
*/
KateProjectWorkerThread m_thread;
+ QDateTime m_fileLastModified;
+
/**
* project file name
*/
diff --git a/addons/kate/project/kateprojectplugin.cpp b/addons/kate/project/kateprojectplugin.cpp
index a7f71e6..811b62c 100644
--- a/addons/kate/project/kateprojectplugin.cpp
+++ b/addons/kate/project/kateprojectplugin.cpp
@@ -253,7 +253,10 @@ void KateProjectPlugin::slotDirectoryChanged (const QString &path)
QString fileName = path + QString("/.kateproject");
foreach (KateProject *project, m_projects) {
if (project->fileName() == fileName) {
- project->reload();
+ QDateTime lastModified = QFileInfo(fileName).lastModified();
+ if (project->fileLastModified().isNull() || (lastModified > project->fileLastModified())) {
+ project->reload();
+ }
break;
}
}
diff --git a/addons/ktexteditor/autobrace/autobrace.cpp b/addons/ktexteditor/autobrace/autobrace.cpp
index ac079b6..1f5f8df 100644
--- a/addons/ktexteditor/autobrace/autobrace.cpp
+++ b/addons/ktexteditor/autobrace/autobrace.cpp
@@ -31,6 +31,32 @@
AutoBracePlugin *AutoBracePlugin::plugin = 0;
+namespace {
+
+/**
+ * Returns next character after specified text range in document.
+ * @param document Current document.
+ * @param position Text cursor position
+ * @return Next character after text position
+ */
+QChar nextToken(KTextEditor::Document* document, const KTextEditor::Cursor& position)
+{
+ return document->character(position + KTextEditor::Cursor(0, 1));
+}
+
+/**
+ * Returns previous character before specified text range in document.
+ * @param document Current document.
+ * @param position Text cursor position
+ * @return Next character after text position
+ */
+QChar previousToken(KTextEditor::Document* document, const KTextEditor::Cursor& position)
+{
+ return document->character(position - KTextEditor::Cursor(0, 1));
+}
+
+}
+
K_PLUGIN_FACTORY_DEFINITION(AutoBracePluginFactory,
registerPlugin<AutoBracePlugin>("ktexteditor_autobrace");
registerPlugin<AutoBraceConfig>("ktexteditor_autobrace_config");
@@ -222,22 +248,27 @@ void AutoBracePluginDocument::slotTextRemoved(KTextEditor::Document* document, c
void AutoBracePluginDocument::slotTextInserted(KTextEditor::Document *document,
const KTextEditor::Range& range)
{
+ if (!range.onSingleLine() || range.columnWidth() != 1) {
+ return;
+ }
+ const KTextEditor::Cursor position = range.start();
+ const QChar insertedToken = document->character(position);
+
// Fill brackets map matching opening and closing brackets.
- QMap<QString,QString> brackets;
- brackets["("] = ")";
- brackets["["] = "]";
-
+ QMap<QChar,QChar> brackets;
+ brackets['('] = ')';
+ brackets['['] = ']';
+
// latex wants {, too
if (document->mode() == "LaTeX")
- brackets["{"] = "}";
-
+ brackets['{'] = '}';
+
// List of Tokens after which an automatic bracket expanion
// is allowed.
- const static QStringList allowedNextToken = QStringList() << "]" << ")" << ","
- << "." << ";" << "\n" << "\t" << " " << "";
- const QString text = document->text(range);
+ const static QVector<QChar> allowedNextToken = QVector<QChar>()
+ << ']' << ')' << ',' << '.' << ';' << '\n' << '\t' << ' ' << QChar();
- // An insertion operation cancels any last range removal
+ // An insertion operation cancels any last position removal
// operation
m_lastRange = KTextEditor::Range::invalid();
@@ -247,14 +278,14 @@ void AutoBracePluginDocument::slotTextInserted(KTextEditor::Document *document,
// 3.) Quotation marks like " and '
// Handle brace openers
- if (text == "\n") {
+ if (insertedToken == '\n') {
// Remember this position as insertion candidate.
// We don't directly insert this here because of KatePart specifics:
// a) Setting the cursor position crashes at this point, and
// b) textChanged() only gets called once per edit operation, so we can
// ignore the same braces when they're being inserted via paste.
- if (isInsertionCandidate(document, range.start().line())) {
- m_insertionLine = range.end().line();
+ if (isInsertionCandidate(document, position.line())) {
+ m_insertionLine = position.line();
connect(document, SIGNAL(textChanged(KTextEditor::Document*)),
this, SLOT(slotTextChanged(KTextEditor::Document*)));
}
@@ -263,21 +294,21 @@ void AutoBracePluginDocument::slotTextInserted(KTextEditor::Document *document,
}
}
// Opening brackets (defined in ctor)
- else if (m_autoBrackets && brackets.contains(text)) {
- // Only insert auto closing brackets if current text range
+ else if (m_autoBrackets && brackets.contains(insertedToken)) {
+ // Only insert auto closing brackets if current text position
// is followed by one of the allowed next tokens.
- if (allowedNextToken.contains(nextToken(document,range))) {
- insertAutoBracket(document, range, brackets[text]);
+ if (allowedNextToken.contains(nextToken(document, position))) {
+ insertAutoBracket(document, range, brackets[insertedToken]);
}
}
// Check whether closing brackets are allowed.
// If a brace is not allowed remove it
- // and set the cursor to the position after that text range.
+ // and set the cursor to the position after that text position.
// Bracket tests bases on this simple idea: A bracket can only be inserted
// if it is NOT followed by the same bracket. This results in overwriting closing brackets.
- else if (m_autoBrackets && brackets.values().contains(text)) {
- if (nextToken(document,range) == text) {
+ else if (m_autoBrackets && brackets.values().contains(insertedToken)) {
+ if (nextToken(document, position) == insertedToken) {
KTextEditor::Cursor saved = range.end();
document->removeText(range);
document->activeView()->setCursorPosition(saved);
@@ -287,10 +318,10 @@ void AutoBracePluginDocument::slotTextInserted(KTextEditor::Document *document,
// applies here: double quotation marks are eaten up and only inserted if not
// followed by the same quoation mark. Additionally automatic quotation marks
// are inserted only if NOT followed by a back slash (escaping character).
- else if (m_autoQuotations && (text == "\"" || text == "\'") && previousToken(document, range) != "\\") {
- const QString next = nextToken(document, range);
+ else if (m_autoQuotations && (insertedToken == '\"' || insertedToken == '\'') && previousToken(document, position) != '\\') {
+ const QChar next = nextToken(document, position);
// Eat it if already there
- if (next == text) {
+ if (next == insertedToken) {
KTextEditor::Cursor saved = range.end();
document->removeText(range);
document->activeView()->setCursorPosition(saved);
@@ -299,8 +330,8 @@ void AutoBracePluginDocument::slotTextInserted(KTextEditor::Document *document,
// next tokens and the number of marks in the insertion line is even
// (excluding the already inserted mark)
else if (allowedNextToken.contains(next)
- && (document->line(range.start().line()).count(text) % 2) ) {
- insertAutoBracket(document, range, text);
+ && (document->line(position.line()).count(insertedToken) % 2) ) {
+ insertAutoBracket(document, range, insertedToken);
}
}
}
@@ -314,7 +345,7 @@ void AutoBracePluginDocument::slotTextInserted(KTextEditor::Document *document,
*/
void AutoBracePluginDocument::insertAutoBracket(KTextEditor::Document *document,
const KTextEditor::Range& range,
- const QString& brace) {
+ const QChar& brace) {
// Disconnect Slots to avoid check for redundant closing brackets
disconnectSlots(document);
@@ -331,35 +362,6 @@ void AutoBracePluginDocument::insertAutoBracket(KTextEditor::Document *document,
connectSlots(document);
}
-/**
- * Returns next character after specified text range in document.
- * @param document Current document.
- * @param range Inserted text range (by text-inserted slot)
- * @return Next character after text range
- */
-const QString AutoBracePluginDocument::nextToken(KTextEditor::Document* document, const KTextEditor::Range& range)
-{
- // Calculate range after insertion (exactly one character)
- KTextEditor::Range afterRange(range.end(), range.end().line(), range.end().column()+1);
-
- return (afterRange.isValid() ? document->text(afterRange) : "");
-}
-
-/**
- * Returns previous character before specified text range in document.
- * @param document Current document.
- * @param range Inserted text range (by text-inserted slot)
- * @return Next character after text range
- */
-const QString AutoBracePluginDocument::previousToken(KTextEditor::Document* document, const KTextEditor::Range& range)
-{
- // Calculate range before insertion (exactly one character)
- KTextEditor::Range beforeRange(range.start().line(), range.start().column()-1, range.start().line(),
- range.start().column());
-
- return (beforeRange.isValid() ? document->text(beforeRange) : "");
-}
-
bool AutoBracePluginDocument::isInsertionCandidate(KTextEditor::Document *document, int openingBraceLine) {
QString line = document->line(openingBraceLine);
if (line.isEmpty() || !line.endsWith('{')) {
diff --git a/addons/ktexteditor/autobrace/autobrace.h b/addons/ktexteditor/autobrace/autobrace.h
index 8a17a35..477d919 100644
--- a/addons/ktexteditor/autobrace/autobrace.h
+++ b/addons/ktexteditor/autobrace/autobrace.h
@@ -88,9 +88,7 @@ class AutoBracePluginDocument
private:
void insertAutoBracket(KTextEditor::Document *document,const KTextEditor::Range& range,
- const QString& brace);
- const QString previousToken(KTextEditor::Document *document,const KTextEditor::Range& range);
- const QString nextToken(KTextEditor::Document *document,const KTextEditor::Range& range);
+ const QChar& brace);
int m_insertionLine;
QString m_indentation;
diff --git a/kate/app/katequickopen.cpp b/kate/app/katequickopen.cpp
index 235f9f1..92ffdd0 100644
--- a/kate/app/katequickopen.cpp
+++ b/kate/app/katequickopen.cpp
@@ -76,7 +76,7 @@ KateQuickOpen::KateQuickOpen(QWidget *parent, KateMainWindow *mainWindow)
m_model->setFilterCaseSensitivity(Qt::CaseInsensitive);
m_model->setSortCaseSensitivity(Qt::CaseInsensitive);
- connect(m_inputLine, SIGNAL(textChanged(QString)), m_model, SLOT(setFilterFixedString(QString)));
+ connect(m_inputLine, SIGNAL(textChanged(QString)), m_model, SLOT(setFilterWildcard(QString)));
connect(m_inputLine, SIGNAL(returnPressed()), this, SLOT(slotReturnPressed()));
connect(m_model, SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(reselectFirst()));
connect(m_model, SIGNAL(rowsRemoved(QModelIndex, int, int)), this, SLOT(reselectFirst()));
@@ -244,9 +244,6 @@ void KateQuickOpen::update ()
itemName->setData(qVariantFromValue(KUrl::fromPath (file)), UrlRole);
itemName->setData(QString("%1: %2").arg(fi.fileName()).arg(file), SortFilterRole);
itemName->setEditable(false);
- QFont font = itemName->font();
- font.setBold(true);
- itemName->setFont(font);
QStandardItem *itemUrl = new QStandardItem(file);
itemUrl->setEditable(false);
diff --git a/part/spellcheck/ontheflycheck.cpp b/part/spellcheck/ontheflycheck.cpp
index a08827b..da9d9fd 100644
--- a/part/spellcheck/ontheflycheck.cpp
+++ b/part/spellcheck/ontheflycheck.cpp
@@ -58,8 +58,8 @@ KateOnTheFlyChecker::KateOnTheFlyChecker(KateDocument *document)
this, SLOT(addView(KTextEditor::Document*,KTextEditor::View*)));
connect(document, SIGNAL(highlightingModeChanged(KTextEditor::Document*)),
this, SLOT(updateConfig()));
- connect(&document->buffer(), SIGNAL(respellCheckBlock(KateDocument*,int,int)),
- this, SLOT(handleRespellCheckBlock(KateDocument*,int,int)));
+ connect(&document->buffer(), SIGNAL(respellCheckBlock(int,int)),
+ this, SLOT(handleRespellCheckBlock(int,int)));
// load the settings for the speller
updateConfig();
@@ -117,11 +117,8 @@ void KateOnTheFlyChecker::clearMisspellingForWord(const QString& word)
const KateOnTheFlyChecker::SpellCheckItem KateOnTheFlyChecker::invalidSpellCheckQueueItem =
SpellCheckItem(NULL, "");
-void KateOnTheFlyChecker::handleRespellCheckBlock(KateDocument *kateDocument, int start, int end)
+void KateOnTheFlyChecker::handleRespellCheckBlock(int start, int end)
{
- Q_ASSERT(kateDocument == m_document);
- Q_UNUSED(kateDocument);
-
ON_THE_FLY_DEBUG << start << end;
KTextEditor::Range range(start, 0, end, m_document->lineLength(end));
bool listEmpty = m_modificationList.isEmpty();
diff --git a/part/spellcheck/ontheflycheck.h b/part/spellcheck/ontheflycheck.h
index 991f7d0..89494ec 100644
--- a/part/spellcheck/ontheflycheck.h
+++ b/part/spellcheck/ontheflycheck.h
@@ -133,7 +133,7 @@ class KateOnTheFlyChecker : public QObject, private KTextEditor::MovingRangeFeed
void handleModifiedRanges();
void handleInsertedText(const KTextEditor::Range &range);
void handleRemovedText(const KTextEditor::Range &range);
- void handleRespellCheckBlock(KateDocument *document, int start, int end);
+ void handleRespellCheckBlock(int start, int end);
bool removeRangeFromModificationList(KTextEditor::MovingRange *range);
void clearModificationList();
};
diff --git a/part/syntax/data/cmake-gen.sh b/part/syntax/data/cmake-gen.sh
index 248083c..860ad63 100755
--- a/part/syntax/data/cmake-gen.sh
+++ b/part/syntax/data/cmake-gen.sh
@@ -2,13 +2,12 @@
# Copyright 2008, 2009 Matthew Woehlke (mw_triad@users.sourceforge.net)
# Copyright 2013, Alex Turbov (i.zaufi@gmail.com)
#
-# ATTENTION Since CMake 3.x this generator is broken! So last time
-# (making version 1.31 of cmake.xml syntax) I had to use `kdiff3`
-# to manually merge changes!
+# ATTENTION Since Thu Feb 26 2015 this generator is CMake 3.x only!
+# Use this generator with care and merge a results with a previous cmake.xml
+# to keep older CMake compatibility.
#
-# TODO CMake 2 and 3 has some difference in syntax... So, this
-# generator do not feasible anymore if we are trying to keep a single
-# syntax files for both CMake generations. It must be fixed! (somehow)
+# NOTE CMake 3.x seem do not have any (useless) heading for --help-xxx commands.
+# So, no need to strip the first line anymore. ( | sed '1d' | )
export LC_ALL=C
@@ -38,7 +37,7 @@ sed "1,$(wc -l < $t.4)d" $t._4 | sed -e '/<\/list\s*>/ba' -e 'd' -e ':a' -e 'n;b
sed -n -e '/<context.*"Detect More Builtin Variables"/{p;q}' -e 'p' $t._5 > $t.5
sed "1,$(wc -l < $t.5)d" $t._5 | sed -e '/<\/context\s*>/ba' -e 'd' -e ':a' -e 'n;ba' > $t.6
-cmake --help-command-list | sed '1d' | sort > $t.commands
+"$CMAKE" --help-command-list | sort > $t.commands
echo "$(count commands) commands"
extract_args() {
@@ -64,14 +63,17 @@ while read COMMAND ; do
done < $t.commands
sed '/^#/d' $t.args | sort -u > $t.argsu
echo "$(count args) arguments, $(count argsu) unique"
-cmake --help-property-list | sed -e '1d' -e '/[<>]/d' | sort -u > $t.props
+"$CMAKE" --help-property-list | sed -e '/[<>]/d' | sort -u > $t.props
echo "$(count props) properties"
# Get builtin CMake variables list
-cmake --help-variable-list | sed -e '1d' | grep -v 'Project name' > $t.all_vars
+# ATTENTION CMake 3.x doesn't have "Project name" string anymore in output of this command
+# ( | grep -v 'Project name' | )
+"$CMAKE" --help-variable-list > $t.all_vars
grep '^[A-Za-z_0-9]\+\s*$' $t.all_vars | sort -u > $t.vars
grep -v '^[A-Za-z_0-9]\+\s*$' $t.all_vars \
| sed 's,<LANG>,[A-Za-z_][A-Za-z_0-9]*,' \
+ | sed 's,<an-attribute>,[A-Za-z_][A-Za-z_0-9]*,' \
| sed 's,<CONFIG>,[A-Za-z_][A-Za-z_0-9]*,' \
| sed 's,<PackageName>,[A-Za-z_][A-Za-z_0-9]*,' \
| sed 's,<PROJECT-NAME>,[A-Za-z_][A-Za-z_0-9]*,' \
@@ -84,7 +86,7 @@ echo "$(count all_vars) builtin variables"
# Generate new .xml
{
- sed '/<!-- generated for/s/^.*$/<!-- generated for "'"$(cmake --version)"'" -->/' $t.1
+ cat $t.1
echo " <!-- generated list -->"
sed 's!.*! <item> & </item>!' $t.commands
cat $t.2
diff --git a/part/syntax/data/cmake.xml b/part/syntax/data/cmake.xml
index 8aca323..021f909 100644
--- a/part/syntax/data/cmake.xml
+++ b/part/syntax/data/cmake.xml
@@ -25,10 +25,10 @@
* Boston, MA 02110-1301, USA. *
**********************************************************************
-->
-<!-- generated for "cmake version 2.8.12.1 and 3.0.2" -->
+<!-- generated for "cmake version 2.8.12.1, 3.0.2 and 3.1.2" -->
<language
name="CMake"
- version="1.31"
+ version="1.33"
kateversion="2.4"
section="Other"
extensions="CMakeLists.txt;*.cmake;*.cmake.in"
@@ -59,6 +59,7 @@
<item> cmake_minimum_required </item>
<item> cmake_policy </item>
<item> configure_file </item>
+ <item> continue </item>
<item> create_test_sourcelist </item>
<item> ctest_build </item>
<item> ctest_configure </item>
@@ -143,9 +144,11 @@
<item> subdir_depends </item>
<item> subdirs </item>
<item> target_compile_definitions </item>
+ <item> target_compile_features </item>
<item> target_compile_options </item>
<item> target_include_directories </item>
<item> target_link_libraries </item>
+ <item> target_sources </item>
<item> try_compile </item>
<item> try_run </item>
<item> unset </item>
@@ -184,8 +187,11 @@
<item> BRIEF_DOCS </item>
<item> BUILD </item>
<item> BUNDLE </item>
+ <item> BYPRODUCTS </item>
<item> CACHE </item>
<item> CACHED_VARIABLE </item>
+ <item> CDASH_UPLOAD </item>
+ <item> CDASH_UPLOAD_TYPE </item>
<item> CLEAR </item>
<item> CMAKE_FIND_ROOT_PATH_BOTH </item>
<item> CMAKE_FLAGS </item>
@@ -252,6 +258,7 @@
<item> FULL_DOCS </item>
<item> FUNCTION </item>
<item> GENERATE </item>
+ <item> GENEX_STRIP </item>
<item> GET </item>
<item> GLOB </item>
<item> GLOBAL </item>
@@ -259,6 +266,7 @@
<item> GREATER </item>
<item> GROUP_EXECUTE </item>
<item> GROUP_READ </item>
+ <item> GUARD </item>
<item> GUID </item>
<item> HEX </item>
<item> HINTS </item>
@@ -298,6 +306,7 @@
<item> LINK_PRIVATE </item>
<item> LINK_PUBLIC </item>
<item> LISTS </item>
+ <item> LOCK </item>
<item> LOG </item>
<item> MACOSX_BUNDLE </item>
<item> MAIN_DEPENDENCY </item>
@@ -307,6 +316,7 @@
<item> MATCHALL </item>
<item> MATCHES </item>
<item> MD5 </item>
+ <item> MESSAGE_NEVER </item>
<item> MODULE </item>
<item> NAME </item>
<item> NAMELINK_ONLY </item>
@@ -369,6 +379,7 @@
<item> PRE_LINK </item>
<item> PRIVATE </item>
<item> PRIVATE_HEADER </item>
+ <item> PROCESS </item>
<item> PROGRAM </item>
<item> PROGRAMS </item>
<item> PROGRAM_ARGS </item>
@@ -389,6 +400,7 @@
<item> REGULAR_EXPRESSION </item>
<item> RELATIVE </item>
<item> RELATIVE_PATH </item>
+ <item> RELEASE </item>
<item> REMOVE </item>
<item> REMOVE_AT </item>
<item> REMOVE_DUPLICATES </item>
@@ -455,8 +467,11 @@
<item> UNIX_COMMAND </item>
<item> UNKNOWN </item>
<item> UPLOAD </item>
+ <item> UPPER </item>
+ <item> USES_TERMINAL </item>
<item> USE_SOURCE_PERMISSIONS </item>
<item> UTC </item>
+ <item> UUID </item>
<item> VALUE </item>
<item> VARIABLE </item>
<item> VERBATIM </item>
@@ -505,6 +520,9 @@
<item> ADVANCED </item>
<item> ALIASED_TARGET </item>
<item> ALLOW_DUPLICATE_CUSTOM_TARGETS </item>
+ <item> ANDROID_API </item>
+ <item> ANDROID_API_MIN </item>
+ <item> ANDROID_GUI </item>
<item> ARCHIVE_OUTPUT_DIRECTORY </item>
<item> ARCHIVE_OUTPUT_NAME </item>
<item> ATTACHED_FILES </item>
@@ -524,14 +542,28 @@
<item> CACHE_VARIABLES </item>
<item> CLEAN_NO_CUSTOM </item>
<item> CMAKE_CONFIGURE_DEPENDS </item>
+ <item> CMAKE_CXX_KNOWN_FEATURES </item>
+ <item> CMAKE_C_KNOWN_FEATURES </item>
<item> COMPATIBLE_INTERFACE_BOOL </item>
<item> COMPATIBLE_INTERFACE_NUMBER_MAX </item>
<item> COMPATIBLE_INTERFACE_NUMBER_MIN </item>
<item> COMPATIBLE_INTERFACE_STRING </item>
<item> COMPILE_DEFINITIONS </item>
+ <item> COMPILE_FEATURES </item>
<item> COMPILE_FLAGS </item>
<item> COMPILE_OPTIONS </item>
+ <item> COMPILE_PDB_NAME </item>
+ <item> COMPILE_PDB_OUTPUT_DIRECTORY </item>
<item> COST </item>
+ <item> CPACK_NEVER_OVERWRITE </item>
+ <item> CPACK_PERMANENT </item>
+ <item> CPACK_WIX_ACL </item>
+ <item> CXX_EXTENSIONS </item>
+ <item> CXX_STANDARD </item>
+ <item> CXX_STANDARD_REQUIRED </item>
+ <item> C_EXTENSIONS </item>
+ <item> C_STANDARD </item>
+ <item> C_STANDARD_REQUIRED </item>
<item> DEBUG_CONFIGURATIONS </item>
<item> DEBUG_POSTFIX </item>
<item> DEFINE_SYMBOL </item>
@@ -583,10 +615,12 @@
<item> INSTALL_RPATH_USE_LINK_PATH </item>
<item> INTERFACE_AUTOUIC_OPTIONS </item>
<item> INTERFACE_COMPILE_DEFINITIONS </item>
+ <item> INTERFACE_COMPILE_FEATURES </item>
<item> INTERFACE_COMPILE_OPTIONS </item>
<item> INTERFACE_INCLUDE_DIRECTORIES </item>
<item> INTERFACE_LINK_LIBRARIES </item>
<item> INTERFACE_POSITION_INDEPENDENT_CODE </item>
+ <item> INTERFACE_SOURCES </item>
<item> INTERFACE_SYSTEM_INCLUDE_DIRECTORIES </item>
<item> INTERPROCEDURAL_OPTIMIZATION </item>
<item> IN_TRY_COMPILE </item>
@@ -669,6 +703,8 @@
<item> VARIABLES </item>
<item> VERSION </item>
<item> VISIBILITY_INLINES_HIDDEN </item>
+ <item> VS_DEPLOYMENT_CONTENT </item>
+ <item> VS_DEPLOYMENT_LOCATION </item>
<item> VS_DOTNET_REFERENCES </item>
<item> VS_DOTNET_TARGET_FRAMEWORK_VERSION </item>
<item> VS_GLOBAL_KEYWORD </item>
@@ -679,13 +715,19 @@
<item> VS_SCC_LOCALPATH </item>
<item> VS_SCC_PROJECTNAME </item>
<item> VS_SCC_PROVIDER </item>
+ <item> VS_SHADER_ENTRYPOINT </item>
+ <item> VS_SHADER_FLAGS </item>
+ <item> VS_SHADER_MODEL </item>
+ <item> VS_SHADER_TYPE </item>
+ <item> VS_WINRT_COMPONENT </item>
<item> VS_WINRT_EXTENSIONS </item>
<item> VS_WINRT_REFERENCES </item>
<item> WILL_FAIL </item>
<item> WIN32_EXECUTABLE </item>
<item> WORKING_DIRECTORY </item>
<item> WRAP_EXCLUDE </item>
- <item> __CMAKE_DELETE_CACHE_CHANGE_VARS_ </item>
+ <item> XCODE_EXPLICIT_FILE_TYPE </item>
+ <item> XCODE_LAST_KNOWN_FILE_TYPE </item>
</list>
<!-- these are "special" and don't show up in the generated lists -->
@@ -701,6 +743,9 @@
<item> BORLAND </item>
<item> BUILD_SHARED_LIBS </item>
<item> CMAKE_ABSOLUTE_DESTINATION_FILES </item>
+ <item> CMAKE_ANDROID_API </item>
+ <item> CMAKE_ANDROID_API_MIN </item>
+ <item> CMAKE_ANDROID_GUI </item>
<item> CMAKE_APPBUNDLE_PATH </item>
<item> CMAKE_AR </item>
<item> CMAKE_ARCHIVE_OUTPUT_DIRECTORY </item>
@@ -727,6 +772,7 @@
<item> CMAKE_COLOR_MAKEFILE </item>
<item> CMAKE_COMMAND </item>
<item> CMAKE_COMPILER_2005 </item>
+ <item> CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY </item>
<item> CMAKE_CONFIGURATION_TYPES </item>
<item> CMAKE_CROSSCOMPILING </item>
<item> CMAKE_CTEST_COMMAND </item>
@@ -735,6 +781,14 @@
<item> CMAKE_CURRENT_LIST_FILE </item>
<item> CMAKE_CURRENT_LIST_LINE </item>
<item> CMAKE_CURRENT_SOURCE_DIR </item>
+ <item> CMAKE_CXX_COMPILE_FEATURES </item>
+ <item> CMAKE_CXX_EXTENSIONS </item>
+ <item> CMAKE_CXX_STANDARD </item>
+ <item> CMAKE_CXX_STANDARD_REQUIRED </item>
+ <item> CMAKE_C_COMPILE_FEATURES </item>
+ <item> CMAKE_C_EXTENSIONS </item>
+ <item> CMAKE_C_STANDARD </item>
+ <item> CMAKE_C_STANDARD_REQUIRED </item>
<item> CMAKE_DEBUG_POSTFIX </item>
<item> CMAKE_DEBUG_TARGET_PROPERTIES </item>
<item> CMAKE_DL_LIBS </item>
@@ -743,11 +797,15 @@
<item> CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION </item>
<item> CMAKE_EXECUTABLE_SUFFIX </item>
<item> CMAKE_EXE_LINKER_FLAGS </item>
+ <item> CMAKE_EXPORT_NO_PACKAGE_REGISTRY </item>
<item> CMAKE_EXTRA_GENERATOR </item>
<item> CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES </item>
<item> CMAKE_FIND_LIBRARY_PREFIXES </item>
<item> CMAKE_FIND_LIBRARY_SUFFIXES </item>
<item> CMAKE_FIND_NO_INSTALL_PREFIX </item>
+ <item> CMAKE_FIND_PACKAGE_NAME </item>
+ <item> CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY </item>
+ <item> CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY </item>
<item> CMAKE_FIND_PACKAGE_WARN_NO_MODULE </item>
<item> CMAKE_FIND_ROOT_PATH </item>
<item> CMAKE_FIND_ROOT_PATH_MODE_INCLUDE </item>
@@ -761,6 +819,7 @@
<item> CMAKE_Fortran_MODOUT_FLAG </item>
<item> CMAKE_Fortran_MODULE_DIRECTORY </item>
<item> CMAKE_GENERATOR </item>
+ <item> CMAKE_GENERATOR_PLATFORM </item>
<item> CMAKE_GENERATOR_TOOLSET </item>
<item> CMAKE_GNUtoMS </item>
<item> CMAKE_HOME_DIRECTORY </item>
@@ -780,6 +839,7 @@
<item> CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE </item>
<item> CMAKE_INCLUDE_PATH </item>
<item> CMAKE_INSTALL_DEFAULT_COMPONENT_NAME </item>
+ <item> CMAKE_INSTALL_MESSAGE </item>
<item> CMAKE_INSTALL_NAME_DIR </item>
<item> CMAKE_INSTALL_PREFIX </item>
<item> CMAKE_INSTALL_RPATH </item>
@@ -802,6 +862,7 @@
<item> CMAKE_MACOSX_RPATH </item>
<item> CMAKE_MAJOR_VERSION </item>
<item> CMAKE_MAKE_PROGRAM </item>
+ <item> CMAKE_MATCH_COUNT </item>
<item> CMAKE_MFC_FLAG </item>
<item> CMAKE_MINIMUM_REQUIRED_VERSION </item>
<item> CMAKE_MINOR_VERSION </item>
@@ -864,6 +925,8 @@
<item> CMAKE_VS_INTEL_Fortran_PROJECT_VERSION </item>
<item> CMAKE_VS_MSBUILD_COMMAND </item>
<item> CMAKE_VS_MSDEV_COMMAND </item>
+ <item> CMAKE_VS_NsightTegra_VERSION </item>
+ <item> CMAKE_VS_PLATFORM_NAME </item>
<item> CMAKE_VS_PLATFORM_TOOLSET </item>
<item> CMAKE_WARN_DEPRECATED </item>
<item> CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION </item>
@@ -877,14 +940,63 @@
<item> CPACK_PACKAGING_INSTALL_PREFIX </item>
<item> CPACK_SET_DESTDIR </item>
<item> CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION </item>
+ <item> CTEST_BINARY_DIRECTORY </item>
+ <item> CTEST_BUILD_COMMAND </item>
+ <item> CTEST_BUILD_NAME </item>
+ <item> CTEST_BZR_COMMAND </item>
+ <item> CTEST_BZR_UPDATE_OPTIONS </item>
+ <item> CTEST_CHECKOUT_COMMAND </item>
+ <item> CTEST_CONFIGURATION_TYPE </item>
+ <item> CTEST_CONFIGURE_COMMAND </item>
+ <item> CTEST_COVERAGE_COMMAND </item>
+ <item> CTEST_COVERAGE_EXTRA_FLAGS </item>
+ <item> CTEST_CURL_OPTIONS </item>
+ <item> CTEST_CVS_CHECKOUT </item>
+ <item> CTEST_CVS_COMMAND </item>
+ <item> CTEST_CVS_UPDATE_OPTIONS </item>
+ <item> CTEST_DROP_LOCATION </item>
+ <item> CTEST_DROP_METHOD </item>
+ <item> CTEST_DROP_SITE </item>
+ <item> CTEST_DROP_SITE_CDASH </item>
+ <item> CTEST_DROP_SITE_PASSWORD </item>
+ <item> CTEST_DROP_SITE_USER </item>
+ <item> CTEST_GIT_COMMAND </item>
+ <item> CTEST_GIT_UPDATE_CUSTOM </item>
+ <item> CTEST_GIT_UPDATE_OPTIONS </item>
+ <item> CTEST_HG_COMMAND </item>
+ <item> CTEST_HG_UPDATE_OPTIONS </item>
+ <item> CTEST_MEMORYCHECK_COMMAND </item>
+ <item> CTEST_MEMORYCHECK_COMMAND_OPTIONS </item>
+ <item> CTEST_MEMORYCHECK_SANITIZER_OPTIONS </item>
+ <item> CTEST_MEMORYCHECK_SUPPRESSIONS_FILE </item>
+ <item> CTEST_MEMORYCHECK_TYPE </item>
+ <item> CTEST_NIGHTLY_START_TIME </item>
+ <item> CTEST_P4_CLIENT </item>
+ <item> CTEST_P4_COMMAND </item>
+ <item> CTEST_P4_OPTIONS </item>
+ <item> CTEST_P4_UPDATE_OPTIONS </item>
+ <item> CTEST_SCP_COMMAND </item>
+ <item> CTEST_SITE </item>
+ <item> CTEST_SOURCE_DIRECTORY </item>
+ <item> CTEST_SVN_COMMAND </item>
+ <item> CTEST_SVN_OPTIONS </item>
+ <item> CTEST_SVN_UPDATE_OPTIONS </item>
+ <item> CTEST_TEST_TIMEOUT </item>
+ <item> CTEST_TRIGGER_SITE </item>
+ <item> CTEST_UPDATE_COMMAND </item>
+ <item> CTEST_UPDATE_OPTIONS </item>
+ <item> CTEST_UPDATE_VERSION_ONLY </item>
+ <item> CTEST_USE_LAUNCHERS </item>
<item> CYGWIN </item>
<item> ENV </item>
<item> EXECUTABLE_OUTPUT_PATH </item>
<item> LIBRARY_OUTPUT_PATH </item>
+ <item> MINGW </item>
<item> MSVC </item>
<item> MSVC10 </item>
<item> MSVC11 </item>
<item> MSVC12 </item>
+ <item> MSVC14 </item>
<item> MSVC60 </item>
<item> MSVC70 </item>
<item> MSVC71 </item>
@@ -902,6 +1014,9 @@
<item> PROJECT_VERSION_TWEAK </item>
<item> UNIX </item>
<item> WIN32 </item>
+ <item> WINCE </item>
+ <item> WINDOWS_PHONE </item>
+ <item> WINDOWS_STORE </item>
<item> XCODE_VERSION </item>
</list>
@@ -914,15 +1029,17 @@
</list>
<list name="generator_expr">
+ <!-- Logical Expressions -->
<item> 0 </item>
<item> 1 </item>
- <item> CONFIG </item>
<item> BOOL </item>
+ <item> AND </item>
+ <item> OR </item>
+ <item> NOT </item>
<item> STREQUAL </item>
- <item> JOIN </item>
- <item> TARGET_NAME </item>
- <item> INSTALL_INTERFACE </item>
- <item> BUILD_INTERFACE </item>
+ <item> EQUAL </item>
+ <item> CONFIG </item>
+ <item> PLATFORM_ID </item>
<item> C_COMPILER_ID </item>
<item> CXX_COMPILER_ID </item>
<item> VERSION_GREATER </item>
@@ -930,22 +1047,39 @@
<item> VERSION_EQUAL </item>
<item> C_COMPILER_VERSION </item>
<item> CXX_COMPILER_VERSION </item>
+ <item> TARGET_POLICY </item>
+ <item> COMPILER_FEATURES </item>
+ <!-- Informational Expressions -->
+ <item> CONFIGURATION </item>
<item> TARGET_FILE </item>
- <item> TARGET_LINKER_FILE </item>
- <item> TARGET_SONAME_FILE </item>
- <item> TARGET_FILE_DIR </item>
<item> TARGET_FILE_NAME </item>
- <item> TARGET_DIR </item>
- <item> TARGET_LINKER_FILE_DIR </item>
+ <item> TARGET_FILE_DIR </item>
+ <item> TARGET_LINKER_FILE </item>
<item> TARGET_LINKER_FILE_NAME </item>
- <item> TARGET_SONAME_FILE_DIR </item>
+ <item> TARGET_LINKER_FILE_DIR </item>
+ <item> TARGET_SONAME_FILE </item>
<item> TARGET_SONAME_FILE_NAME </item>
+ <item> TARGET_SONAME_FILE_DIR </item>
+ <item> TARGET_PDB_FILE </item>
+ <item> TARGET_PDB_FILE_NAME </item>
+ <item> TARGET_PDB_FILE_DIR </item>
<item> TARGET_PROPERTY </item>
+ <item> INSTALL_PREFIX </item>
+ <!-- Output Expressions -->
+ <item> JOIN </item>
+ <item> ANGLE-R </item>
+ <item> COMMA </item>
+ <item> SEMICOLON </item>
+ <item> TARGET_NAME </item>
+ <item> LINK_ONLY </item>
+ <item> INSTALL_INTERFACE </item>
+ <item> BUILD_INTERFACE </item>
+ <item> LOWER_CASE </item>
+ <item> UPPER_CASE </item>
+ <item> MAKE_C_IDENTIFIER </item>
<item> TARGET_OBJECTS </item>
- <item> TARGET_POLICY </item>
- <item> AND </item>
- <item> OR </item>
- <item> NOT </item>
+ <!-- TODO Is this from CMake 2.x? -->
+ <item> TARGET_DIR </item>
</list>
<contexts>
@@ -970,20 +1104,21 @@
<RegExpr String="\bwhile\b" attribute="Commands" context="Command Args" beginRegion="while" insensitive="true" />
<RegExpr String="\bendwhile\b" attribute="Commands" context="Command Args" endRegion="while" insensitive="true" />
- <keyword attribute="Commands" context="Command Args" String="commands" insensitive="true"/>
- <keyword attribute="Third-Party Commands" context="#stay" String="itkvtk_commands" insensitive="true"/>
- <RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="block" firstNonSpace="true"/>
- <RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="block" firstNonSpace="true"/>
+ <keyword attribute="Commands" context="Command Args" String="commands" insensitive="true" />
+ <keyword attribute="Third-Party Commands" context="#stay" String="itkvtk_commands" insensitive="true" />
+ <RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="block" firstNonSpace="true" />
+ <RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="block" firstNonSpace="true" />
<RegExpr attribute="Region Marker" context="RST Documentation" String="^#\[(=*)\[\.rst:" column="0" />
<RegExpr attribute="Comment" context="Bracketed Comment" String="^#\[(=*)\[" column="0" />
- <DetectChar attribute="Comment" context="Comment" char="#"/>
- <IncludeRules context="Detect Variables"/>
- <RegExpr attribute="Macros" context="Macro Args" String="\w+\s*(?=\()"/>
+ <DetectChar attribute="Comment" context="Comment" char="#" />
+ <IncludeRules context="Detect Variables" />
+ <RegExpr attribute="Macros" context="Macro Args" String="\w+\s*(?=\()" />
</context>
<!-- ATTENTION Do not change the context name! Or change a generation script accordingly -->
<context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
<!-- generated rules -->
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_COMPILER_IS_GNU[A-Za-z_][A-Za-z_0-9]*\b" />
+ <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_DISABLE_FIND_PACKAGE_[A-Za-z_][A-Za-z_0-9]*\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_EXE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_MAP_IMPORTED_CONFIG_[A-Za-z_][A-Za-z_0-9]*\b" />
@@ -995,6 +1130,7 @@
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_SHARED_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_STATIC_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_USER_MAKE_RULES_OVERRIDE_[A-Za-z_][A-Za-z_0-9]*\b" />
+ <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_XCODE_ATTRIBUTE_[A-Za-z_][A-Za-z_0-9]*\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_APPEND\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_CREATE\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_FINISH\b" />
@@ -1031,6 +1167,7 @@
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIZEOF_DATA_PTR\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SOURCE_FILE_EXTENSIONS\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_VISIBILITY_PRESET\b" />
+ <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_BINARY_DIR\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_SOURCE_DIR\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION\b" />
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MAJOR\b" />
@@ -1039,51 +1176,51 @@
<RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_TWEAK\b" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Builtin Variables">
- <keyword attribute="Builtin CMake Variable" context="#stay" String="cmake_vars" insensitive="false"/>
+ <keyword attribute="Builtin CMake Variable" context="#stay" String="cmake_vars" insensitive="false" />
<IncludeRules context="Detect More Builtin Variables" />
</context>
<context attribute="CMake Variable" lineEndContext="#pop" name="VarSubst">
- <IncludeRules context="Detect Builtin Variables"/>
+ <IncludeRules context="Detect Builtin Variables" />
<DetectIdentifier />
- <DetectChar attribute="CMake Variable" context="#pop" char="}"/>
- <IncludeRules context="Detect Variables"/>
+ <DetectChar attribute="CMake Variable" context="#pop" char="}" />
+ <IncludeRules context="Detect Variables" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Variables">
- <RegExpr attribute="Environment Variable" context="#stay" String="\$ENV\{\s*[\w-]+\s*\}"/>
+ <RegExpr attribute="Environment Variable" context="#stay" String="\$ENV\{\s*[\w-]+\s*\}" />
<Detect2Chars attribute="CMake Variable" context="VarSubst" char="$" char1="{" />
</context>
<context attribute="Generator Expression" lineEndContext="#pop#pop" name="DetectSimpleGEEnd">
- <DetectChar attribute="Generator Expression" context="#pop#pop" char=">"/>
+ <DetectChar attribute="Generator Expression" context="#pop#pop" char=">" />
</context>
<context attribute="Generator Expression" lineEndContext="#pop" name="Generator Expression">
- <IncludeRules context="Detect Generator Expressions"/>
- <DetectChar attribute="Generator Expression" context="#pop" char=">"/>
- <keyword attribute="Generator Expression Keyword" context="DetectSimpleGEEnd" String="simple_generator_expr" insensitive="false"/>
- <keyword attribute="Generator Expression Keyword" context="#stay" String="generator_expr" insensitive="false"/>
- <IncludeRules context="Detect Variables"/>
+ <IncludeRules context="Detect Generator Expressions" />
+ <DetectChar attribute="Generator Expression" context="#pop" char=">" />
+ <keyword attribute="Generator Expression Keyword" context="DetectSimpleGEEnd" String="simple_generator_expr" insensitive="false" />
+ <keyword attribute="Generator Expression Keyword" context="#stay" String="generator_expr" insensitive="false" />
+ <IncludeRules context="Detect Variables" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Generator Expressions">
<Detect2Chars attribute="Generator Expression" context="Generator Expression" char="$" char1="<" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Command Args">
- <keyword attribute="Special Args" context="#stay" String="special_args"/>
- <keyword attribute="Special Args" context="#stay" String="extra_special_args"/>
+ <keyword attribute="Special Args" context="#stay" String="special_args" />
+ <keyword attribute="Special Args" context="#stay" String="extra_special_args" />
<!-- NOTE Handle CMP<NNN> as a special arg -->
<RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9]+\b" />
- <keyword attribute="Properties" context="#stay" String="properties"/>
- <keyword attribute="Properties" context="#stay" String="extra_properties"/>
- <IncludeRules context="Detect Builtin Variables"/>
- <IncludeRules context="Macro Args"/>
+ <keyword attribute="Properties" context="#stay" String="properties" />
+ <keyword attribute="Properties" context="#stay" String="extra_properties" />
+ <IncludeRules context="Detect Builtin Variables" />
+ <IncludeRules context="Macro Args" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Macro Args">
- <DetectChar attribute="Normal Text" context="#pop" char=")"/>
- <RegExpr attribute="Escapes" context="#stay" String="\\["$n\\]"/>
- <DetectChar attribute="Strings" context="String" char="""/>
+ <DetectChar attribute="Normal Text" context="#pop" char=")" />
+ <RegExpr attribute="Escapes" context="#stay" String="\\["$n\\]" />
+ <DetectChar attribute="Strings" context="String" char=""" />
<RegExpr attribute="Strings" context="Bracketed String" String="\[(=*)\[" />
- <DetectChar attribute="Comment" context="Comment" char="#"/>
- <IncludeRules context="Detect Builtin Variables"/>
- <IncludeRules context="Detect Variables"/>
- <IncludeRules context="Detect Generator Expressions"/>
+ <DetectChar attribute="Comment" context="Comment" char="#" />
+ <IncludeRules context="Detect Builtin Variables" />
+ <IncludeRules context="Detect Variables" />
+ <IncludeRules context="Detect Generator Expressions" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="Comment">
<LineContinue attribute="Comment" context="#pop" />
@@ -1101,14 +1238,14 @@
<context attribute="Strings" lineEndContext="#stay" name="String">
<RegExpr attribute="Strings" context="#pop" String=""(?=[ );]|$)" />
<RegExpr attribute="Escapes" context="#stay" String="\\["$nrt\\]" />
- <IncludeRules context="Detect Variables"/>
- <IncludeRules context="Detect Generator Expressions"/>
+ <IncludeRules context="Detect Variables" />
+ <IncludeRules context="Detect Generator Expressions" />
</context>
<context attribute="Strings" lineEndContext="#stay" name="Bracketed String" dynamic="true">
<RegExpr attribute="Strings" context="#pop" String="\]%1\]" dynamic="true" />
</context>
-
</contexts>
+
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
<itemData name="Special Args" defStyleNum="dsOthers" spellChecking="false" />
@@ -1128,12 +1265,13 @@
<itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
<itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />
</itemDatas>
+
</highlighting>
<general>
<comments>
- <comment name="singleLine" start="#"/>
+ <comment name="singleLine" start="#" />
</comments>
- <keywords casesensitive="1"/>
+ <keywords casesensitive="1" />
</general>
</language>
diff --git a/part/syntax/data/ppd.xml b/part/syntax/data/ppd.xml
index 796bd90..cfe9a77 100644
--- a/part/syntax/data/ppd.xml
+++ b/part/syntax/data/ppd.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd" []>
@@ -9,7 +9,7 @@ The following documentation is available for PPD:
- CUPS PPD Extensions: http://www.cups.org/documentation.php/doc-1.4/spec-ppd.html
-->
-<language name="PostScript Printer Description" version="0.1" kateversion="2.4" section="Markup" extensions="*.ppd" author="Lukas Sommer" mimetype="application/vnd.cups-ppd" license="public domain">
+<language name="PostScript Printer Description" version="0.2" kateversion="2.4" section="Markup" extensions="*.ppd" author="Lukas Sommer" mimetype="application/vnd.cups-ppd" license="public domain">
<highlighting>
@@ -26,7 +26,17 @@ The following documentation is available for PPD:
<context attribute="Comment" lineEndContext="#pop" name="contextComment">
<IncludeRules context="##Alerts"/>
</context>
- <context attribute="Value" lineEndContext="#pop" name="contextValue"></context>
+ <context attribute="Value" lineEndContext="#pop" name="contextValue">
+ <DetectSpaces/>
+ <DetectChar attribute="Value" context="contextValueMultiLine" char=""" />
+ <RegExpr attribute="Value" context="contextValueSingleLine" String="."/>
+ </context>
+ <context attribute="Value" lineEndContext="#stay" name="contextValueMultiLine">
+ <DetectSpaces/>
+ <DetectChar attribute="Value" context="#pop" char=""" />
+ </context>
+ <context attribute="Value" lineEndContext="#pop" name="contextValueSingleLine">
+ </context>
</contexts>
<itemDatas>