From 0a28cf70fe599e93f0595f9c644e0b358d611a91 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 7 Feb 2019 10:31:48 +0100 Subject: [PATCH 01/55] Squish: Fix generic highlighter test This is now using KSyntaxHighlighter, adapt accordingly. Change-Id: Ie5dac469d326c5165f5f8513bc3adc5f6be5e48b Reviewed-by: Robert Loehning --- .../tst_generic_highlighter/test.py | 91 +++++++++---------- 1 file changed, 42 insertions(+), 49 deletions(-) diff --git a/tests/system/suite_editors/tst_generic_highlighter/test.py b/tests/system/suite_editors/tst_generic_highlighter/test.py index d3ca5d20b3e..e6f4a7e117d 100644 --- a/tests/system/suite_editors/tst_generic_highlighter/test.py +++ b/tests/system/suite_editors/tst_generic_highlighter/test.py @@ -25,6 +25,15 @@ source("../../shared/qtcreator.py") +def __highlighterDefinitionsDirectory__(): + if platform.system() in ('Microsoft', 'Windows'): + basePath = os.path.expandvars("%LOCALAPPDATA%") + elif platform.system() == 'Linux': + basePath = os.path.expanduser("~/.local/share") + else: # macOS + basePath = os.path.expanduser("~/Library/Application Support") + return os.path.join(basePath, "org.kde.syntax-highlighting", "syntax") + def createFile(folder, filename): __createProjectOrFileSelectType__(" General", "Empty File", isProject = False) replaceEditorContent(waitForObject("{name='nameLineEdit' visible='1' " @@ -103,56 +112,34 @@ def getOrModifyFilePatternsFor(mimeType, filter='', toBePresent=None): clickButton(":Options.Cancel_QPushButton") return result -def uncheckGenericHighlighterFallback(): +def addHighlighterDefinition(*languages): + syntaxDirectory = __highlighterDefinitionsDirectory__() + toBeChecked = (os.path.join(syntaxDirectory, x + ".xml") for x in languages) + test.log("Updating highlighter definitions...") invokeMenuItem("Tools", "Options...") waitForObjectItem(":Options_QListView", "Text Editor") clickItem(":Options_QListView", "Text Editor", 14, 15, 0, Qt.LeftButton) waitForObject("{container=':Options.qt_tabwidget_tabbar_QTabBar' type='TabItem' " "text='Generic Highlighter'}") clickOnTab(":Options.qt_tabwidget_tabbar_QTabBar", "Generic Highlighter") - ensureChecked("{name='useFallbackLocation' text='Use fallback location' type='QCheckBox' " - "visible='1'}", False) - clickButton(":Options.OK_QPushButton") -def addHighlighterDefinition(language): - global tmpSettingsDir - test.log("Adding highlighter definitions for '%s'." % language) - invokeMenuItem("Tools", "Options...") - waitForObjectItem(":Options_QListView", "Text Editor") - clickItem(":Options_QListView", "Text Editor", 14, 15, 0, Qt.LeftButton) - waitForObject("{container=':Options.qt_tabwidget_tabbar_QTabBar' type='TabItem' " - "text='Generic Highlighter'}") - clickOnTab(":Options.qt_tabwidget_tabbar_QTabBar", "Generic Highlighter") - clickButton("{text='Download Definitions...' type='QPushButton' unnamed='1' visible='1'}") - table = waitForObject("{name='definitionsTable' type='QTableWidget' visible='1'}") - model = table.model() - for row in range(model.rowCount()): - if str(model.data(model.index(row, 0)).toString()) == language: - clickItem(table, "%d/0" % row, 5, 5, 0, Qt.LeftButton) - clickButton("{name='downloadButton' text='Download Selected Definitions' " - "type='QPushButton' visible='1'}") - # downloading happens asynchronously but may take a little time - progressBarWait(10000) - languageFile = os.path.join(tmpSettingsDir, "QtProject", "qtcreator", - "generic-highlighter", "%s.xml" - % language.lower().replace(" ", "-")) - test.verify(waitFor("os.path.exists(languageFile)", 10000), - "Verifying whether highlight definition file for '%s' has been downloaded " - "and placed to settings." % language) - clickButton("{text='Download Definitions...' type='QPushButton' unnamed='1' " - "visible='1'}") - table = waitForObject("{name='definitionsTable' type='QTableWidget' visible='1'}") - model = table.model() - test.verify(str(model.data(model.index(row, 1))) != "", - "Verifying a definition has been downloaded.") - clickButton("{text='Close' type='QPushButton' unnamed='1' visible='1'}") - clickButton(":Options.OK_QPushButton") - return True - test.fail("Could not find the specified language (%s) to download a highlighter definition" - % language) - clickButton("{text='Close' type='QPushButton' unnamed='1' visible='1'}") - clickButton(":Options.OK_QPushButton") - return False + clickButton("{text='Update Definitions' type='QPushButton' name='updateDefinitions' visible='1'}") + updateStatus = "{name='updateStatus' type='QLabel' visible='1'}" + waitFor("object.exists(updateStatus)", 5000) + if waitFor('str(findObject(updateStatus).text) == "Update finished"', 5000): + test.verify(os.path.exists(syntaxDirectory), + "Directory for syntax highlighter files exists.") + xmlFiles = glob.glob(os.path.join(syntaxDirectory, "*.xml")) + test.verify(len(xmlFiles) > 0, "Verified presence of syntax highlighter files. " + "(Found %d)" % len(xmlFiles)) + # should we check output (General Messages) as well? + test.passes("Updated definitions") + clickButton(":Options.OK_QPushButton") + return map(os.path.exists, toBeChecked) + else: + test.fail("Could not update highlighter definitions") + clickButton(":Options.Cancel_QPushButton") + return map(os.path.exists, toBeChecked) def hasSuffix(fileName, suffixPatterns): for suffix in suffixPatterns: @@ -170,11 +157,12 @@ def displayHintForHighlighterDefinition(fileName, patterns, lPatterns, added, ad return False def main(): - miss = "A highlight definition was not found for this file. Would you like to try to find one?" + miss = ("A highlight definition was not found for this file. Would you like to update " + "highlight definition files?") startQC() if not startedWithoutPluginError(): return - uncheckGenericHighlighterFallback() + patterns = getOrModifyFilePatternsFor("text/x-haskell", "x-haskell") lPatterns = getOrModifyFilePatternsFor("text/x-literate-haskell", "literate-haskell") @@ -204,8 +192,7 @@ def main(): invokeMenuItem("File", "Save All") invokeMenuItem("File", "Close All") - addedHighlighterDefinition = addHighlighterDefinition("Haskell") - addedLiterateHighlighterDefinition = addHighlighterDefinition("Literate Haskell") + addedHaskell, addedLiterateHaskell = addHighlighterDefinition("haskell", "literate-haskell") patterns = getOrModifyFilePatternsFor('text/x-haskell', 'x-haskell', ['.hs']) lPatterns = getOrModifyFilePatternsFor('text/x-literate-haskell', 'literate-haskell', ['.lhs']) @@ -217,8 +204,7 @@ def main(): invokeMenuItem("File", "Recent Files", "(&\\d \| )?%s" % recentFile) editor = getEditorForFileSuffix(current) display = displayHintForHighlighterDefinition(current, patterns, lPatterns, - addedHighlighterDefinition, - addedLiterateHighlighterDefinition) + addedHaskell, addedLiterateHaskell) try: waitForObject("{text='%s' type='QLabel' unnamed='1' visible='1' " "window=':Qt Creator_Core::Internal::MainWindow'}" % miss, 2000) @@ -237,3 +223,10 @@ def main(): invokeMenuItem("File", "Save All") invokeMenuItem("File", "Exit") + +def init(): + syntaxDirectory = __highlighterDefinitionsDirectory__() + if not os.path.exists(syntaxDirectory): + return + test.log("Removing existing highlighter definitions folder") + deleteDirIfExists(syntaxDirectory) From 483b2860612918a410d8a910b7066e6a4b1c118f Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Wed, 6 Feb 2019 15:26:14 +0100 Subject: [PATCH 02/55] ClangTools: Move unexported ClangToolsBasicSettings to Internal Change-Id: I1a727374dbdcac955a92d9091faaac08918d7918 Reviewed-by: Orgad Shaneh --- src/plugins/clangtools/clangselectablefilesdialog.ui | 4 ++-- src/plugins/clangtools/clangtoolsbasicsettings.cpp | 2 ++ src/plugins/clangtools/clangtoolsbasicsettings.h | 2 ++ src/plugins/clangtools/clangtoolsbasicsettings.ui | 4 ++-- src/plugins/clangtools/clangtoolsconfigwidget.ui | 4 ++-- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/plugins/clangtools/clangselectablefilesdialog.ui b/src/plugins/clangtools/clangselectablefilesdialog.ui index 316b9946fb9..2fe10139a31 100644 --- a/src/plugins/clangtools/clangselectablefilesdialog.ui +++ b/src/plugins/clangtools/clangselectablefilesdialog.ui @@ -52,7 +52,7 @@ - + @@ -87,7 +87,7 @@ - ClangTools::ClangToolsBasicSettings + ClangTools::Internal::ClangToolsBasicSettings QWidget
clangtools/clangtoolsbasicsettings.h
diff --git a/src/plugins/clangtools/clangtoolsbasicsettings.cpp b/src/plugins/clangtools/clangtoolsbasicsettings.cpp index 7fe56e9193b..bf1d5337006 100644 --- a/src/plugins/clangtools/clangtoolsbasicsettings.cpp +++ b/src/plugins/clangtools/clangtoolsbasicsettings.cpp @@ -29,6 +29,7 @@ #include "clangtoolsutils.h" namespace ClangTools { +namespace Internal { ClangToolsBasicSettings::ClangToolsBasicSettings(QWidget *parent) : QWidget(parent) @@ -47,4 +48,5 @@ Ui::ClangToolsBasicSettings *ClangToolsBasicSettings::ui() return m_ui; } +} // namespace Internal } // namespace ClangTools diff --git a/src/plugins/clangtools/clangtoolsbasicsettings.h b/src/plugins/clangtools/clangtoolsbasicsettings.h index fb896e830de..b9ecb0285ec 100644 --- a/src/plugins/clangtools/clangtoolsbasicsettings.h +++ b/src/plugins/clangtools/clangtoolsbasicsettings.h @@ -28,6 +28,7 @@ #include namespace ClangTools { +namespace Internal { namespace Ui { class ClangToolsBasicSettings; } @@ -46,4 +47,5 @@ private: Ui::ClangToolsBasicSettings *m_ui; }; +} // namespace Internal } // namespace ClangTools diff --git a/src/plugins/clangtools/clangtoolsbasicsettings.ui b/src/plugins/clangtools/clangtoolsbasicsettings.ui index 4b6f14111e7..ccdba126bd3 100644 --- a/src/plugins/clangtools/clangtoolsbasicsettings.ui +++ b/src/plugins/clangtools/clangtoolsbasicsettings.ui @@ -1,7 +1,7 @@ - ClangTools::ClangToolsBasicSettings - + ClangTools::Internal::ClangToolsBasicSettings + 0 diff --git a/src/plugins/clangtools/clangtoolsconfigwidget.ui b/src/plugins/clangtools/clangtoolsconfigwidget.ui index ea8dafb92b8..b2d5aa9875c 100644 --- a/src/plugins/clangtools/clangtoolsconfigwidget.ui +++ b/src/plugins/clangtools/clangtoolsconfigwidget.ui @@ -21,7 +21,7 @@ - + @@ -77,7 +77,7 @@ - ClangTools::ClangToolsBasicSettings + ClangTools::Internal::ClangToolsBasicSettings QWidget
clangtools/clangtoolsbasicsettings.h
From cc81284db6fe407ae60014440c3d3ce7194a765d Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 8 Feb 2019 13:04:57 +0100 Subject: [PATCH 03/55] ClangTools: Clear entries from issues pane when starting Change-Id: I3e192c539236b80bf99431fa9d0b0232213a5372 Fixes: QTCREATORBUG-19049 Reviewed-by: Christian Stenger --- src/plugins/clangtools/clangtoolruncontrol.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/clangtools/clangtoolruncontrol.cpp b/src/plugins/clangtools/clangtoolruncontrol.cpp index c4ca8a4abbc..69c9d26f4df 100644 --- a/src/plugins/clangtools/clangtoolruncontrol.cpp +++ b/src/plugins/clangtools/clangtoolruncontrol.cpp @@ -267,6 +267,8 @@ void ClangToolRunControl::init() void ClangToolRunControl::start() { + TaskHub::clearTasks(Debugger::Constants::ANALYZERTASK_ID); + if (ClangToolsSettings::instance()->savedBuildBeforeAnalysis()) { QTC_ASSERT(m_projectBuilder, return;); if (!m_projectBuilder->success()) { From 933f5a0df5cb7e3e71f61bf0be343d9fbe372d92 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 8 Feb 2019 14:21:30 +0100 Subject: [PATCH 04/55] ClangTools: Refer to items consistently Sometimes we used "issue" (treeview header, or filter line edit) and sometimes "diagnostic" (go to next/pervious diagnostic actions). Stick to "diagnostic" as it's more generic and avoid conflicts/confusion with the "Issues pane". Task-number: QTCREATORBUG-19047 Change-Id: I26b814b117a8fd475c080f0ef79c9fabc1446406 Reviewed-by: Christian Stenger --- src/plugins/clangtools/clangtidyclazytool.cpp | 14 +++++++------- .../clangtools/clangtoolsdiagnosticmodel.cpp | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/plugins/clangtools/clangtidyclazytool.cpp b/src/plugins/clangtools/clangtidyclazytool.cpp index aa9853825cf..e4377fa681b 100644 --- a/src/plugins/clangtools/clangtidyclazytool.cpp +++ b/src/plugins/clangtools/clangtidyclazytool.cpp @@ -219,7 +219,7 @@ ClangTidyClazyTool::ClangTidyClazyTool() m_diagnosticView->sortByColumn(Debugger::DetailedErrorView::DiagnosticColumn, Qt::AscendingOrder); m_diagnosticView->setObjectName(QLatin1String("ClangTidyClazyIssuesView")); - m_diagnosticView->setWindowTitle(tr("Clang-Tidy and Clazy Issues")); + m_diagnosticView->setWindowTitle(tr("Clang-Tidy and Clazy Diagnostics")); foreach (auto * const model, QList({m_diagnosticModel, m_diagnosticFilterModel})) { @@ -281,7 +281,7 @@ ClangTidyClazyTool::ClangTidyClazyTool() // Filter line edit m_filterLineEdit = new Utils::FancyLineEdit(); m_filterLineEdit->setFiltering(true); - m_filterLineEdit->setPlaceholderText(tr("Filter Issues")); + m_filterLineEdit->setPlaceholderText(tr("Filter Diagnostics")); m_filterLineEdit->setHistoryCompleter("CppTools.ClangTidyClazyIssueFilter", true); connect(m_filterLineEdit, &Utils::FancyLineEdit::filterChanged, [this](const QString &filter) { m_diagnosticFilterModel->setFilterRegExp( @@ -309,7 +309,7 @@ ClangTidyClazyTool::ClangTidyClazyTool() ActionContainer *menu = ActionManager::actionContainer(Debugger::Constants::M_DEBUG_ANALYZER); const QString toolTip = tr("Clang-Tidy and Clazy use a customized Clang executable from the " - "Clang project to search for errors and warnings."); + "Clang project to search for diagnostics."); m_perspective.addWindow(m_diagnosticView, Perspective::SplitVertical, nullptr); @@ -450,14 +450,14 @@ void ClangTidyClazyTool::handleStateUpdate() QString message; if (m_running) { if (issuesFound) - message = tr("Running - %n issues found", nullptr, issuesFound); + message = tr("Running - %n diagnostics", nullptr, issuesFound); else - message = tr("Running - No issues found", nullptr, issuesFound); + message = tr("Running - No diagnostics", nullptr, issuesFound); } else { if (issuesFound) - message = tr("Finished - %n issues found", nullptr, issuesFound); + message = tr("Finished - %n diagnostics", nullptr, issuesFound); else - message = tr("Finished - No issues found", nullptr, issuesFound); + message = tr("Finished - No diagnostics", nullptr, issuesFound); } Debugger::showPermanentStatusMessage(message); diff --git a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp index 6e16cc6eec5..88b80965181 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp @@ -84,7 +84,7 @@ ClangToolsDiagnosticModel::ClangToolsDiagnosticModel(QObject *parent) : Utils::TreeModel<>(parent) , m_filesWatcher(std::make_unique()) { - setHeader({tr("Issue"), tr("Fixit Status")}); + setHeader({tr("Diagnostic"), tr("Fixit Status")}); connectFileWatcher(); } From d6a6d356bbdca91773544ef6dfa2c5ef5370431d Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 8 Feb 2019 13:11:15 +0100 Subject: [PATCH 05/55] ClangTools: Add errors as errors to issues pane Fixes: QTCREATORBUG-19047 Change-Id: I4aca248d1ccb625fef77632bf35b554d7441e5cc Reviewed-by: Christian Stenger --- src/plugins/clangtools/clangtoolruncontrol.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/clangtools/clangtoolruncontrol.cpp b/src/plugins/clangtools/clangtoolruncontrol.cpp index 69c9d26f4df..26669dce5ac 100644 --- a/src/plugins/clangtools/clangtoolruncontrol.cpp +++ b/src/plugins/clangtools/clangtoolruncontrol.cpp @@ -443,7 +443,7 @@ void ClangToolRunControl::onRunnerFinishedWithFailure(const QString &errorMessag m_success = false; appendMessage(message, Utils::StdErrFormat); appendMessage(errorDetails, Utils::StdErrFormat); - TaskHub::addTask(Task::Warning, message, Debugger::Constants::ANALYZERTASK_ID); + TaskHub::addTask(Task::Error, message, Debugger::Constants::ANALYZERTASK_ID); handleFinished(); } From 7fe65851d99465d8bd9506ba53d8772381666111 Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Wed, 30 Jan 2019 13:59:30 +0100 Subject: [PATCH 06/55] Clang: Extend ClangTool and CommandLineBuilder We now support source file and not only header files and the file path is now automatically added to the end. This removes quite some clutter. Change-Id: I74eabd262e6c7e5f4d523e3a3cd194bd3efe1ef3 Reviewed-by: Ivan Donchevskii --- src/libs/clangsupport/commandlinebuilder.h | 20 ++- .../source/builddependencycollector.cpp | 4 +- .../source/pchcreator.cpp | 6 +- .../source/pchcreator.h | 1 - .../source/clangtool.cpp | 25 ++-- .../source/clangtool.h | 2 +- .../source/symbolindexer.cpp | 5 +- tests/unit/unittest/clangquery-test.cpp | 12 +- .../unit/unittest/clangquerygatherer-test.cpp | 3 - .../unit/unittest/commandlinebuilder-test.cpp | 138 +++++++++++++----- tests/unit/unittest/pchcreator-test.cpp | 14 +- .../refactoringclientserverinprocess-test.cpp | 39 ++--- .../unit/unittest/refactoringserver-test.cpp | 40 ++--- .../unittest/sourcerangeextractor-test.cpp | 4 +- tests/unit/unittest/symbolfinder-test.cpp | 64 ++------ tests/unit/unittest/symbolindexer-test.cpp | 16 +- 16 files changed, 196 insertions(+), 197 deletions(-) diff --git a/src/libs/clangsupport/commandlinebuilder.h b/src/libs/clangsupport/commandlinebuilder.h index 03d042322d9..b270d75d850 100644 --- a/src/libs/clangsupport/commandlinebuilder.h +++ b/src/libs/clangsupport/commandlinebuilder.h @@ -35,12 +35,15 @@ namespace ClangBackEnd { +enum class InputFileType : unsigned char { Header, Source }; + template class CommandLineBuilder { public: CommandLineBuilder(const ProjectInfo &projectInfo, const Utils::SmallStringVector &toolChainArguments = {}, + InputFileType sourceType = InputFileType::Header, FilePathView sourcePath = {}, FilePathView outputPath = {}, FilePathView includePchPath = {}) @@ -49,7 +52,7 @@ public: addCompiler(projectInfo.language); addToolChainArguments(toolChainArguments); - addLanguage(projectInfo); + addLanguage(projectInfo, sourceType); addLanguageVersion(projectInfo); addNoStdIncAndNoStdLibInc(); addCompilerMacros(projectInfo.compilerMacros); @@ -76,26 +79,27 @@ public: commandLine.emplace_back(argument); } - static const char *language(const ProjectInfo &projectInfo) + static const char *language(const ProjectInfo &projectInfo, InputFileType sourceType) { switch (projectInfo.language) { case Utils::Language::C: if (projectInfo.languageExtension && Utils::LanguageExtension::ObjectiveC) - return "objective-c-header"; + return sourceType == InputFileType::Header ? "objective-c-header" : "objective-c"; - return "c-header"; + return sourceType == InputFileType::Header ? "c-header" : "c"; case Utils::Language::Cxx: if (projectInfo.languageExtension && Utils::LanguageExtension::ObjectiveC) - return "objective-c++-header"; + return sourceType == InputFileType::Header ? "objective-c++-header" + : "objective-c++"; } - return "c++-header"; + return sourceType == InputFileType::Header ? "c++-header" : "c++"; } - void addLanguage(const ProjectInfo &projectInfo) + void addLanguage(const ProjectInfo &projectInfo, InputFileType sourceType) { commandLine.emplace_back("-x"); - commandLine.emplace_back(language(projectInfo)); + commandLine.emplace_back(language(projectInfo, sourceType)); } const char *standardLanguageVersion(Utils::LanguageVersion languageVersion) diff --git a/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp b/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp index 6647d02531d..ec5f3bdcb00 100644 --- a/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp +++ b/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp @@ -47,8 +47,8 @@ FilePathIds operator+(const FilePathIds &first, const FilePathIds &second) BuildDependency BuildDependencyCollector::create(const ProjectPartContainer &projectPart) { - CommandLineBuilder builder{ - projectPart, projectPart.toolChainArguments}; + CommandLineBuilder + builder{projectPart, projectPart.toolChainArguments, InputFileType::Source}; addFiles(projectPart.sourcePathIds, builder.commandLine); diff --git a/src/tools/clangpchmanagerbackend/source/pchcreator.cpp b/src/tools/clangpchmanagerbackend/source/pchcreator.cpp index 4333d5706ac..845c92412a4 100644 --- a/src/tools/clangpchmanagerbackend/source/pchcreator.cpp +++ b/src/tools/clangpchmanagerbackend/source/pchcreator.cpp @@ -72,7 +72,6 @@ Utils::SmallString PchCreator::generatePchIncludeFileContent(const FilePathIds & return fileContent; } - bool PchCreator::generatePch() { clang::tooling::ClangTool tool = m_clangTool.createOutputTool(); @@ -95,12 +94,12 @@ FilePath PchCreator::generatePchFilePath() const } Utils::SmallStringVector PchCreator::generateClangCompilerArguments(const PchTask &pchTask, - FilePathView sourceFilePath, FilePathView pchOutputPath) { CommandLineBuilder builder{pchTask, pchTask.toolChainArguments, - sourceFilePath, + InputFileType::Header, + {}, pchOutputPath, pchTask.systemPchPath}; @@ -115,7 +114,6 @@ void PchCreator::generatePch(PchTask &&pchTask) FilePath headerFilePath{m_environment.pchBuildDirectory().toStdString(), "dummy.h"}; Utils::SmallStringVector commandLine = generateClangCompilerArguments(pchTask, - headerFilePath, pchOutputPath); m_clangTool.addFile(std::move(headerFilePath), std::move(content), std::move(commandLine)); diff --git a/src/tools/clangpchmanagerbackend/source/pchcreator.h b/src/tools/clangpchmanagerbackend/source/pchcreator.h index 37d0c7c8a1e..6e889ab5657 100644 --- a/src/tools/clangpchmanagerbackend/source/pchcreator.h +++ b/src/tools/clangpchmanagerbackend/source/pchcreator.h @@ -85,7 +85,6 @@ public: FilePath generatePchFilePath() const; static Utils::SmallStringVector generateClangCompilerArguments(const PchTask &pchTask, - FilePathView includePchHeaderPath, FilePathView pchPath); const ClangTool &clangTool() const diff --git a/src/tools/clangrefactoringbackend/source/clangtool.cpp b/src/tools/clangrefactoringbackend/source/clangtool.cpp index 5ae87793dbd..1798504a692 100644 --- a/src/tools/clangrefactoringbackend/source/clangtool.cpp +++ b/src/tools/clangrefactoringbackend/source/clangtool.cpp @@ -52,6 +52,9 @@ void ClangTool::addFile(FilePath &&filePath, { NativeFilePath nativeFilePath{filePath}; + if (commandLine.back() != nativeFilePath.path()) + commandLine.emplace_back(nativeFilePath.path()); + m_compilationDatabase.addFile(nativeFilePath, std::move(commandLine)); m_sourceFilePaths.push_back(Utils::SmallStringView{nativeFilePath}); @@ -60,15 +63,8 @@ void ClangTool::addFile(FilePath &&filePath, void ClangTool::addFiles(const FilePaths &filePaths, const Utils::SmallStringVector &arguments) { - for (const FilePath &filePath : filePaths) { - std::string filePathStr(filePath.path()); - auto commandLine = arguments; - NativeFilePath nativeFilePath{filePath}; - - commandLine.push_back(nativeFilePath.path()); - - addFile(filePath.clone(), {}, std::move(commandLine)); - } + for (const FilePath &filePath : filePaths) + addFile(filePath.clone(), {}, arguments.clone()); } void ClangTool::addUnsavedFiles(const V2::FileContainers &unsavedFiles) @@ -104,13 +100,14 @@ clang::tooling::ClangTool ClangTool::createTool() const clang::tooling::ClangTool tool(m_compilationDatabase, m_sourceFilePaths); for (const auto &fileContent : m_fileContents) { - if (!fileContent.content.empty()) - tool.mapVirtualFile(toStringRef(fileContent.filePath), fileContent.content); + if (fileContent.content.hasContent()) + tool.mapVirtualFile(toStringRef(fileContent.filePath), toStringRef(fileContent.content)); } - for (const auto &unsavedFileContent : m_unsavedFileContents) - tool.mapVirtualFile(toStringRef(unsavedFileContent.filePath), - toStringRef(unsavedFileContent.content)); + for (const auto &unsavedFileContent : m_unsavedFileContents) { + tool.mapVirtualFile(toStringRef(unsavedFileContent.filePath), + toStringRef(unsavedFileContent.content)); + } tool.mapVirtualFile("/dummyFile", "#pragma once"); diff --git a/src/tools/clangrefactoringbackend/source/clangtool.h b/src/tools/clangrefactoringbackend/source/clangtool.h index e3ff8357998..2abad0f49b5 100644 --- a/src/tools/clangrefactoringbackend/source/clangtool.h +++ b/src/tools/clangrefactoringbackend/source/clangtool.h @@ -50,7 +50,7 @@ struct FileContent {} NativeFilePath filePath; - std::string content; + Utils::SmallString content; }; struct UnsavedFileContent diff --git a/src/tools/clangrefactoringbackend/source/symbolindexer.cpp b/src/tools/clangrefactoringbackend/source/symbolindexer.cpp index 2ee454eadb1..d3d0f4a505e 100644 --- a/src/tools/clangrefactoringbackend/source/symbolindexer.cpp +++ b/src/tools/clangrefactoringbackend/source/symbolindexer.cpp @@ -107,6 +107,7 @@ void SymbolIndexer::updateProjectPart(ProjectPartContainer &&projectPart) using Builder = CommandLineBuilder; Builder commandLineBuilder{projectPart, projectPart.toolChainArguments, + InputFileType::Source, {}, {}, optionalProjectPartPch @@ -181,8 +182,8 @@ void SymbolIndexer::updateChangedPath(FilePathId filePathId, auto pchPath = optionalProjectPartPch ? optionalProjectPartPch.value().pchPath : FilePath{}; - CommandLineBuilder builder{ - artefact, artefact.toolChainArguments, {}, {}, pchPath}; + CommandLineBuilder + builder{artefact, artefact.toolChainArguments, InputFileType::Source, {}, {}, pchPath}; auto indexing = [projectPartId = artefact.projectPartId, arguments=builder.commandLine, filePathId, this]( SymbolsCollectorInterface &symbolsCollector) { diff --git a/tests/unit/unittest/clangquery-test.cpp b/tests/unit/unittest/clangquery-test.cpp index 35842e01439..77a049210b7 100644 --- a/tests/unit/unittest/clangquery-test.cpp +++ b/tests/unit/unittest/clangquery-test.cpp @@ -96,7 +96,7 @@ TEST_F(ClangQuerySlowTest, SourceRangeInUnsavedFileDeclarationRange) ::ClangQuery query(filePathCache); query.addFile({TESTDATA_DIR "/query_simplefunction.cpp"}, "#include \"unsaved.h\"", - {"cc", toNativePath(TESTDATA_DIR "/query_simplefunction.cpp").path(), "-std=c++14"}); + {"cc", "-std=c++14"}); query.setQuery("functionDecl()"); ClangBackEnd::V2::FileContainer unsavedFile{{TESTDATA_DIR, "unsaved.h"}, "void unsaved();", {}}; query.addUnsavedFiles({unsavedFile}); @@ -110,9 +110,7 @@ TEST_F(ClangQuerySlowTest, SourceRangeInUnsavedFileDeclarationRange) TEST_F(ClangQuerySlowTest, FileIsNotExistingButTheUnsavedDataIsParsed) { ::ClangQuery query(filePathCache); - query.addFile({TESTDATA_DIR "/foo.cpp"}, - "void f() {}", - {"cc", toNativePath(TESTDATA_DIR "/foo.cpp").path(), "-std=c++14"}); + query.addFile({TESTDATA_DIR "/foo.cpp"}, "void f() {}", {"cc", "-std=c++14"}); query.setQuery("functionDecl()"); query.findLocations(); @@ -124,9 +122,7 @@ TEST_F(ClangQuerySlowTest, FileIsNotExistingButTheUnsavedDataIsParsed) TEST_F(ClangQuerySlowTest, DISABLED_SourceRangeInUnsavedFileDeclarationRangeOverride) // seems not to work in Clang { ::ClangQuery query(filePathCache); - query.addFile({TESTDATA_DIR "/query_simplefunction.cpp"}, - "void f() {}", - {"cc", toNativePath(TESTDATA_DIR "/query_simplefunction.cpp").path(), "-std=c++14"}); + query.addFile({TESTDATA_DIR "/query_simplefunction.cpp"}, "void f() {}", {"cc", "-std=c++14"}); query.setQuery("functionDecl()"); ClangBackEnd::V2::FileContainer unsavedFile{{TESTDATA_DIR "/query_simplefunction.cpp"}, "void unsaved();", @@ -226,12 +222,10 @@ void ClangQuery::SetUp() simpleFunctionQuery.addFile({TESTDATA_DIR "/query_simplefunction.cpp"}, "", {"cc", - toNativePath(TESTDATA_DIR "/query_simplefunction.cpp").path(), "-std=c++14"}); simpleClassQuery.addFile({TESTDATA_DIR "/query_simpleclass.cpp"}, "", {"cc", - toNativePath(TESTDATA_DIR "/query_simpleclass.cpp").path(), "-std=c++14"}); } } // namespace diff --git a/tests/unit/unittest/clangquerygatherer-test.cpp b/tests/unit/unittest/clangquerygatherer-test.cpp index b0ea9cb3e0e..3b5f9239fed 100644 --- a/tests/unit/unittest/clangquerygatherer-test.cpp +++ b/tests/unit/unittest/clangquerygatherer-test.cpp @@ -88,19 +88,16 @@ protected: FileContainer source{{TESTDATA_DIR, "query_simplefunction.cpp"}, sourceContent.clone(), {"cc", - toNativePath(TESTDATA_DIR "/query_simplefunction.cpp").path(), "-I", TESTDATA_DIR}}; FileContainer source2{{TESTDATA_DIR, "query_simplefunction2.cpp"}, {}, {"cc", - toNativePath(TESTDATA_DIR "/query_simplefunction2.cpp").path(), "-I", TESTDATA_DIR}}; FileContainer source3{{TESTDATA_DIR, "query_simplefunction3.cpp"}, {}, {"cc", - toNativePath(TESTDATA_DIR "/query_simplefunction3.cpp").path(), "-I", TESTDATA_DIR}}; Utils::SmallString unsavedContent{"void f();"}; diff --git a/tests/unit/unittest/commandlinebuilder-test.cpp b/tests/unit/unittest/commandlinebuilder-test.cpp index 9de48fe0d55..3ec2b032246 100644 --- a/tests/unit/unittest/commandlinebuilder-test.cpp +++ b/tests/unit/unittest/commandlinebuilder-test.cpp @@ -37,6 +37,7 @@ template using Builder = ClangBackEnd::CommandLineBuilder; using ClangBackEnd::IncludeSearchPathType; +using ClangBackEnd::InputFileType; template class CommandLineBuilder : public testing::Test @@ -124,30 +125,41 @@ TYPED_TEST_SUITE(CommandLineBuilder, ProjectInfos); TYPED_TEST(CommandLineBuilder, AddToolChainArguments) { - Builder builder{this->emptyProjectInfo, {"-m64", "-PIC"}, {}}; + Builder builder{this->emptyProjectInfo, {"-m64", "-PIC"}, InputFileType::Header, {}}; ASSERT_THAT(builder.commandLine, AllOf(Contains("-m64"), Contains("-PIC"))); } -TYPED_TEST(CommandLineBuilder, CTask) +TYPED_TEST(CommandLineBuilder, CHeader) { this->emptyProjectInfo.language = Utils::Language::C; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C11; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT( builder.commandLine, ElementsAre("clang", "-x", "c-header", "-std=c11", "-nostdinc", "-nostdinc++", toNativePath("/source/file.c").path())); } -TYPED_TEST(CommandLineBuilder, ObjectiveCTask) +TYPED_TEST(CommandLineBuilder, CSource) +{ + this->emptyProjectInfo.language = Utils::Language::C; + this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C11; + + Builder builder{this->emptyProjectInfo, {}, InputFileType::Source, "/source/file.c"}; + + ASSERT_THAT(builder.commandLine, + ElementsAre("clang", "-x", "c", "-std=c11", "-nostdinc", "-nostdinc++", "/source/file.c")); +} + +TYPED_TEST(CommandLineBuilder, ObjectiveCHeader) { this->emptyProjectInfo.language = Utils::Language::C; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::ObjectiveC; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C11; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT(builder.commandLine, ElementsAre("clang", @@ -159,12 +171,30 @@ TYPED_TEST(CommandLineBuilder, ObjectiveCTask) toNativePath("/source/file.c").path())); } -TYPED_TEST(CommandLineBuilder, CppTask) +TYPED_TEST(CommandLineBuilder, ObjectiveCSource) +{ + this->emptyProjectInfo.language = Utils::Language::C; + this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::ObjectiveC; + this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C11; + + Builder builder{this->emptyProjectInfo, {}, InputFileType::Source, "/source/file.c"}; + + ASSERT_THAT(builder.commandLine, + ElementsAre("clang", + "-x", + "objective-c", + "-std=c11", + "-nostdinc", + "-nostdinc++", + "/source/file.c")); +} + +TYPED_TEST(CommandLineBuilder, CppHeader) { this->emptyProjectInfo.language = Utils::Language::Cxx; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX98; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, ElementsAre("clang++", @@ -176,13 +206,25 @@ TYPED_TEST(CommandLineBuilder, CppTask) toNativePath("/source/file.cpp").path())); } -TYPED_TEST(CommandLineBuilder, ObjectiveCppTask) +TYPED_TEST(CommandLineBuilder, CppSource) +{ + this->emptyProjectInfo.language = Utils::Language::Cxx; + this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX98; + + Builder builder{this->emptyProjectInfo, {}, InputFileType::Source, "/source/file.cpp"}; + + ASSERT_THAT( + builder.commandLine, + ElementsAre("clang++", "-x", "c++", "-std=c++98", "-nostdinc", "-nostdinc++", "/source/file.cpp")); +} + +TYPED_TEST(CommandLineBuilder, ObjectiveCppHeader) { this->emptyProjectInfo.language = Utils::Language::Cxx; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::ObjectiveC; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX98; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, ElementsAre("clang++", @@ -194,12 +236,30 @@ TYPED_TEST(CommandLineBuilder, ObjectiveCppTask) toNativePath("/source/file.cpp").path())); } +TYPED_TEST(CommandLineBuilder, ObjectiveCppSource) +{ + this->emptyProjectInfo.language = Utils::Language::Cxx; + this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::ObjectiveC; + this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX98; + + Builder builder{this->emptyProjectInfo, {}, InputFileType::Source, "/source/file.cpp"}; + + ASSERT_THAT(builder.commandLine, + ElementsAre("clang++", + "-x", + "objective-c++", + "-std=c++98", + "-nostdinc", + "-nostdinc++", + "/source/file.cpp")); +} + TYPED_TEST(CommandLineBuilder, Cpp98) { this->emptyProjectInfo.language = Utils::Language::Cxx; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX98; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=c++98")); } @@ -209,7 +269,7 @@ TYPED_TEST(CommandLineBuilder, Cpp03) this->emptyProjectInfo.language = Utils::Language::Cxx; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX03; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=c++03")); } @@ -219,7 +279,7 @@ TYPED_TEST(CommandLineBuilder, Cpp11) this->emptyProjectInfo.language = Utils::Language::Cxx; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX11; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=c++11")); } @@ -229,7 +289,7 @@ TYPED_TEST(CommandLineBuilder, Cpp14) this->emptyProjectInfo.language = Utils::Language::Cxx; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX14; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=c++14")); } @@ -239,7 +299,7 @@ TYPED_TEST(CommandLineBuilder, Cpp17) this->emptyProjectInfo.language = Utils::Language::Cxx; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX17; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=c++17")); } @@ -249,7 +309,7 @@ TYPED_TEST(CommandLineBuilder, Cpp20) this->emptyProjectInfo.language = Utils::Language::Cxx; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX2a; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=c++2a")); } @@ -260,7 +320,7 @@ TYPED_TEST(CommandLineBuilder, GnuCpp98) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX98; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu++98")); } @@ -271,7 +331,7 @@ TYPED_TEST(CommandLineBuilder, GnuCpp03) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX03; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu++03")); } @@ -282,7 +342,7 @@ TYPED_TEST(CommandLineBuilder, GnuCpp11) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX11; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu++11")); } @@ -293,7 +353,7 @@ TYPED_TEST(CommandLineBuilder, GnuCpp14) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX14; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu++14")); } @@ -304,7 +364,7 @@ TYPED_TEST(CommandLineBuilder, GnuCpp17) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX17; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu++17")); } @@ -315,7 +375,7 @@ TYPED_TEST(CommandLineBuilder, GnuCpp20) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::CXX2a; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu++2a")); } @@ -325,7 +385,7 @@ TYPED_TEST(CommandLineBuilder, C89) this->emptyProjectInfo.language = Utils::Language::C; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C89; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT(builder.commandLine, Contains("-std=c89")); } @@ -335,7 +395,7 @@ TYPED_TEST(CommandLineBuilder, C99) this->emptyProjectInfo.language = Utils::Language::C; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C99; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT(builder.commandLine, Contains("-std=c99")); } @@ -345,7 +405,7 @@ TYPED_TEST(CommandLineBuilder, C11) this->emptyProjectInfo.language = Utils::Language::C; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C11; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT(builder.commandLine, Contains("-std=c11")); } @@ -355,7 +415,7 @@ TYPED_TEST(CommandLineBuilder, C18) this->emptyProjectInfo.language = Utils::Language::C; this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C18; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT(builder.commandLine, Contains("-std=c18")); } @@ -366,7 +426,7 @@ TYPED_TEST(CommandLineBuilder, GnuC89) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C89; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu89")); } @@ -377,7 +437,7 @@ TYPED_TEST(CommandLineBuilder, GnuC99) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C99; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu99")); } @@ -388,7 +448,7 @@ TYPED_TEST(CommandLineBuilder, GnuC11) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C11; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu11")); } @@ -399,7 +459,7 @@ TYPED_TEST(CommandLineBuilder, GnuC18) this->emptyProjectInfo.languageVersion = Utils::LanguageVersion::C18; this->emptyProjectInfo.languageExtension = Utils::LanguageExtension::Gnu; - Builder builder{this->emptyProjectInfo, {}, "/source/file.c"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; ASSERT_THAT(builder.commandLine, Contains("-std=gnu18")); } @@ -414,7 +474,7 @@ TYPED_TEST(CommandLineBuilder, IncludesOrder) {"/system/foo", 3, IncludeSearchPathType::Framework}, {"/builtin/bar", 2, IncludeSearchPathType::BuiltIn}, {"/builtin/foo", 1, IncludeSearchPathType::BuiltIn}}; - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, ElementsAre("clang++", @@ -448,7 +508,7 @@ TYPED_TEST(CommandLineBuilder, EmptySourceFile) TYPED_TEST(CommandLineBuilder, SourceFile) { - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp"}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp"}; ASSERT_THAT(builder.commandLine, ElementsAre("clang++", @@ -463,7 +523,7 @@ TYPED_TEST(CommandLineBuilder, SourceFile) TYPED_TEST(CommandLineBuilder, EmptyOutputFile) { - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp", ""}; + Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.cpp", ""}; ASSERT_THAT(builder.commandLine, ElementsAre("clang++", @@ -477,7 +537,11 @@ TYPED_TEST(CommandLineBuilder, EmptyOutputFile) TYPED_TEST(CommandLineBuilder, OutputFile) { - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp", "/output/file.o"}; + Builder builder{this->emptyProjectInfo, + {}, + InputFileType::Header, + "/source/file.cpp", + "/output/file.o"}; ASSERT_THAT(builder.commandLine, ElementsAre("clang++", @@ -493,7 +557,12 @@ TYPED_TEST(CommandLineBuilder, OutputFile) TYPED_TEST(CommandLineBuilder, IncludePchPath) { - Builder builder{this->emptyProjectInfo, {}, "/source/file.cpp", "/output/file.o", "/pch/file.pch"}; + Builder builder{this->emptyProjectInfo, + {}, + InputFileType::Header, + "/source/file.cpp", + "/output/file.o", + "/pch/file.pch"}; ASSERT_THAT(builder.commandLine, ElementsAre("clang++", @@ -527,4 +596,5 @@ TYPED_TEST(CommandLineBuilder, CompilerMacros) "-DER=2", "-DYI=1")); } + } // namespace diff --git a/tests/unit/unittest/pchcreator-test.cpp b/tests/unit/unittest/pchcreator-test.cpp index 8a1e1ffa8ef..d44e72ee6f5 100644 --- a/tests/unit/unittest/pchcreator-test.cpp +++ b/tests/unit/unittest/pchcreator-test.cpp @@ -133,9 +133,7 @@ TEST_F(PchCreator, CreateProjectPartPchFileContent) TEST_F(PchCreator, CreateProjectPartClangCompilerArguments) { - auto arguments = creator.generateClangCompilerArguments(std::move(pchTask1), - "project.h", - "project.pch"); + auto arguments = creator.generateClangCompilerArguments(std::move(pchTask1), "project.pch"); ASSERT_THAT(arguments, ElementsAre("clang++", @@ -151,17 +149,14 @@ TEST_F(PchCreator, CreateProjectPartClangCompilerArguments) "-isystem", toNativePath(TESTDATA_DIR "/builddependencycollector/system").path(), "-o", - "project.pch", - "project.h")); + "project.pch")); } TEST_F(PchCreator, CreateProjectPartClangCompilerArgumentsWithSystemPch) { pchTask1.systemPchPath = "system.pch"; - auto arguments = creator.generateClangCompilerArguments(std::move(pchTask1), - "project.h", - "project.pch"); + auto arguments = creator.generateClangCompilerArguments(std::move(pchTask1), "project.pch"); ASSERT_THAT(arguments, ElementsAre("clang++", @@ -181,8 +176,7 @@ TEST_F(PchCreator, CreateProjectPartClangCompilerArgumentsWithSystemPch) "-Xclang", "system.pch", "-o", - "project.pch", - "project.h")); + "project.pch")); } TEST_F(PchCreatorVerySlowTest, ProjectPartPchsSendToPchManagerClient) diff --git a/tests/unit/unittest/refactoringclientserverinprocess-test.cpp b/tests/unit/unittest/refactoringclientserverinprocess-test.cpp index 659dcf735fa..c6e4d59c3a1 100644 --- a/tests/unit/unittest/refactoringclientserverinprocess-test.cpp +++ b/tests/unit/unittest/refactoringclientserverinprocess-test.cpp @@ -103,12 +103,8 @@ TEST_F(RefactoringClientServerInProcess, SendSourceLocationsForRenamingMessage) TEST_F(RefactoringClientServerInProcess, SendRequestSourceLocationsForRenamingMessage) { - RequestSourceLocationsForRenamingMessage message{{TESTDATA_DIR, "renamevariable.cpp"}, - 1, - 5, - "int v;\n\nint x = v + 3;\n", - {"cc", "renamevariable.cpp"}, - 1}; + RequestSourceLocationsForRenamingMessage message{ + {TESTDATA_DIR, "renamevariable.cpp"}, 1, 5, "int v;\n\nint x = v + 3;\n", {"cc"}, 1}; EXPECT_CALL(mockRefactoringServer, requestSourceLocationsForRenamingMessage(message)); @@ -153,15 +149,10 @@ TEST_F(RefactoringClientServerInProcess, SendProgressMessage) TEST_F(RefactoringClientServerInProcess, RequestSourceRangesAndDiagnosticsForQueryMessage) { - RequestSourceRangesForQueryMessage message{"functionDecl()", - {{{TESTDATA_DIR, "query_simplefunction.cpp"}, - "void f();", - {"cc", "query_simplefunction.cpp"}, - 1}}, - {{{TESTDATA_DIR, "query_simplefunction.h"}, - "void f();", - {}, - 1}}}; + RequestSourceRangesForQueryMessage message{ + "functionDecl()", + {{{TESTDATA_DIR, "query_simplefunction.cpp"}, "void f();", {"cc"}, 1}}, + {{{TESTDATA_DIR, "query_simplefunction.h"}, "void f();", {}, 1}}}; EXPECT_CALL(mockRefactoringServer, requestSourceRangesForQueryMessage(message)); @@ -171,15 +162,15 @@ TEST_F(RefactoringClientServerInProcess, RequestSourceRangesAndDiagnosticsForQue TEST_F(RefactoringClientServerInProcess, RequestSourceRangesForQueryMessage) { - RequestSourceRangesForQueryMessage message{"functionDecl()", - {{{TESTDATA_DIR, "query_simplefunction.cpp"}, - "void f();", - {"cc", "query_simplefunction.cpp"}, - 1}}, - {{{TESTDATA_DIR, "query_simplefunction.h"}, - "void f();", - {}, - 1}}}; + RequestSourceRangesForQueryMessage message{ + "functionDecl()", + {{{TESTDATA_DIR, "query_simplefunction.cpp"}, + "void f();", + { + "cc", + }, + 1}}, + {{{TESTDATA_DIR, "query_simplefunction.h"}, "void f();", {}, 1}}}; EXPECT_CALL(mockRefactoringServer, requestSourceRangesForQueryMessage(message)); diff --git a/tests/unit/unittest/refactoringserver-test.cpp b/tests/unit/unittest/refactoringserver-test.cpp index 56f5e6950dd..7ac60c45d1c 100644 --- a/tests/unit/unittest/refactoringserver-test.cpp +++ b/tests/unit/unittest/refactoringserver-test.cpp @@ -100,9 +100,7 @@ protected: ClangBackEnd::GeneratedFiles generatedFiles; ClangBackEnd::RefactoringServer refactoringServer{mockSymbolIndexing, filePathCache, generatedFiles}; Utils::SmallString sourceContent{"void f()\n {}"}; - FileContainer source{{TESTDATA_DIR, "query_simplefunction.cpp"}, - sourceContent.clone(), - {"cc", toNativePath(TESTDATA_DIR "/query_simplefunction.cpp").path()}}; + FileContainer source{{TESTDATA_DIR, "query_simplefunction.cpp"}, sourceContent.clone(), {"cc"}}; QTemporaryFile temporaryFile{Utils::TemporaryDirectory::masterDirectoryPath() + "/clangQuery-XXXXXX.cpp"}; int processingSlotCount = 2; @@ -113,12 +111,8 @@ using RefactoringServerVerySlowTest = RefactoringServer; TEST_F(RefactoringServerSlowTest, RequestSourceLocationsForRenamingMessage) { - RequestSourceLocationsForRenamingMessage message{{TESTDATA_DIR, "renamevariable.cpp"}, - 1, - 5, - "int v;\n\nint x = v + 3;\n", - {"cc", "renamevariable.cpp"}, - 1}; + RequestSourceLocationsForRenamingMessage message{ + {TESTDATA_DIR, "renamevariable.cpp"}, 1, 5, "int v;\n\nint x = v + 3;\n", {"cc"}, 1}; EXPECT_CALL(mockRefactoringClient, sourceLocationsForRenamingMessage( @@ -152,13 +146,9 @@ TEST_F(RefactoringServerSlowTest, RequestSingleSourceRangesAndDiagnosticsWithUns Utils::SmallString unsavedContent{"void f();"}; FileContainer source{{TESTDATA_DIR, "query_simplefunction.cpp"}, "#include \"query_simplefunction.h\"", - {"cc", "query_simplefunction.cpp"}}; - FileContainer unsaved{{TESTDATA_DIR, "query_simplefunction.h"}, - unsavedContent.clone(), - {}}; - RequestSourceRangesForQueryMessage message{"functionDecl()", - {source.clone()}, - {unsaved.clone()}}; + {"cc"}}; + FileContainer unsaved{{TESTDATA_DIR, "query_simplefunction.h"}, unsavedContent.clone(), {}}; + RequestSourceRangesForQueryMessage message{"functionDecl()", {source.clone()}, {unsaved.clone()}}; EXPECT_CALL(mockRefactoringClient, sourceRangesForQueryMessage( @@ -267,11 +257,10 @@ TEST_F(RefactoringServer, PollTimerNotIsActiveAfterCanceling) TEST_F(RefactoringServerSlowTest, ForValidRequestSourceRangesAndDiagnosticsGetSourceRange) { - RequestSourceRangesAndDiagnosticsForQueryMessage message( - "functionDecl()", - {FilePath(temporaryFile.fileName()), - "void f() {}", - {"cc", toNativePath(temporaryFile.fileName()).path()}}); + RequestSourceRangesAndDiagnosticsForQueryMessage message("functionDecl()", + {FilePath(temporaryFile.fileName()), + "void f() {}", + {"cc"}}); EXPECT_CALL(mockRefactoringClient, sourceRangesAndDiagnosticsForQueryMessage( @@ -287,11 +276,10 @@ TEST_F(RefactoringServerSlowTest, ForValidRequestSourceRangesAndDiagnosticsGetSo TEST_F(RefactoringServerSlowTest, ForInvalidRequestSourceRangesAndDiagnosticsGetDiagnostics) { - RequestSourceRangesAndDiagnosticsForQueryMessage message( - "func()", - {FilePath(temporaryFile.fileName()), - "void f() {}", - {"cc", toNativePath(temporaryFile.fileName()).path()}}); + RequestSourceRangesAndDiagnosticsForQueryMessage message("func()", + {FilePath(temporaryFile.fileName()), + "void f() {}", + {"cc"}}); EXPECT_CALL(mockRefactoringClient, sourceRangesAndDiagnosticsForQueryMessage( diff --git a/tests/unit/unittest/sourcerangeextractor-test.cpp b/tests/unit/unittest/sourcerangeextractor-test.cpp index 171db9b956d..552cde08acd 100644 --- a/tests/unit/unittest/sourcerangeextractor-test.cpp +++ b/tests/unit/unittest/sourcerangeextractor-test.cpp @@ -57,9 +57,7 @@ protected: void TearDown() override; protected: - TestClangTool clangTool{{TESTDATA_DIR "/sourcerangeextractor_location.cpp"}, - "", - {"cc", "sourcerangeextractor_location.cpp"}}; + TestClangTool clangTool{{TESTDATA_DIR "/sourcerangeextractor_location.cpp"}, "", {"cc"}}; ClangBackEnd::SourceRangesContainer sourceRangesContainer; const clang::SourceManager &sourceManager{clangTool.sourceManager()}; Sqlite::Database database{":memory:", Sqlite::JournalMode::Memory}; diff --git a/tests/unit/unittest/symbolfinder-test.cpp b/tests/unit/unittest/symbolfinder-test.cpp index 1dad3184d68..8f29fe02da7 100644 --- a/tests/unit/unittest/symbolfinder-test.cpp +++ b/tests/unit/unittest/symbolfinder-test.cpp @@ -75,9 +75,7 @@ TEST_F(SymbolFinder, FileContentFilePath) TEST_F(SymbolFinderSlowTest, FindName) { Finder finder(1, 5, filePathCaching); - finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, - "int variable;", - {"cc", toNativePath(TESTDATA_DIR "/renamevariable.cpp").path()}); + finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, "int variable;", {"cc"}); finder.findSymbol(); @@ -87,9 +85,7 @@ TEST_F(SymbolFinderSlowTest, FindName) TEST_F(SymbolFinderSlowTest, FindNameInUnsavedFile) { Finder finder(1, 5, filePathCaching); - finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, - "int newVariable;", - {"cc", toNativePath(TESTDATA_DIR "/renamevariable.cpp").path()}); + finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, "int newVariable;", {"cc"}); finder.findSymbol(); @@ -99,9 +95,7 @@ TEST_F(SymbolFinderSlowTest, FindNameInUnsavedFile) TEST_F(SymbolFinderSlowTest, FindUsrs) { Finder finder(1, 5, filePathCaching); - finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, - "int variable;", - {"cc", toNativePath(TESTDATA_DIR "/renamevariable.cpp").path(), "-std=c++14"}); + finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, "int variable;", {"cc", "-std=c++14"}); finder.findSymbol(); @@ -111,9 +105,7 @@ TEST_F(SymbolFinderSlowTest, FindUsrs) TEST_F(SymbolFinderSlowTest, VariableDeclarationSourceLocations) { Finder finder(1, 5, filePathCaching); - finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/renamevariable.cpp").path(), "-std=c++14"}); + finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, "", {"cc", "-std=c++14"}); finder.findSymbol(); @@ -125,9 +117,7 @@ TEST_F(SymbolFinderSlowTest, VariableDeclarationSourceLocations) TEST_F(SymbolFinderSlowTest, VariableUsageSourceLocations) { Finder finder(3, 9, filePathCaching); - finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/renamevariable.cpp").path(), "-std=c++14"}); + finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, "", {"cc", "-std=c++14"}); finder.findSymbol(); @@ -139,9 +129,7 @@ TEST_F(SymbolFinderSlowTest, VariableUsageSourceLocations) TEST_F(SymbolFinderSlowTest, TemplateMemberVariableDeclarationSourceLocations) { Finder finder(8, 18, filePathCaching); - finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/renamevariable.cpp").path(), "-std=c++14"}); + finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, "", {"cc", "-std=c++14"}); finder.findSymbol(); @@ -154,9 +142,7 @@ TEST_F(SymbolFinderSlowTest, TemplateMemberVariableDeclarationSourceLocations) TEST_F(SymbolFinderSlowTest, TemplateMemberVariableUsageSourceLocations) { Finder finder(15, 14, filePathCaching); - finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/renamevariable.cpp").path(), "-std=c++14"}); + finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, "", {"cc", "-std=c++14"}); finder.findSymbol(); @@ -169,9 +155,7 @@ TEST_F(SymbolFinderSlowTest, TemplateMemberVariableUsageSourceLocations) TEST_F(SymbolFinderSlowTest, TemplateMemberVariableUsageInLambdaSourceLocations) { Finder finder(18, 19, filePathCaching); - finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/renamevariable.cpp").path(), "-std=c++14"}); + finder.addFile({TESTDATA_DIR "/renamevariable.cpp"}, "", {"cc", "-std=c++14"}); finder.findSymbol(); @@ -184,9 +168,7 @@ TEST_F(SymbolFinderSlowTest, TemplateMemberVariableUsageInLambdaSourceLocations) TEST_F(SymbolFinderSlowTest, CursorOverMacroDefintionSymbolName) { Finder finder(1, 9, filePathCaching); - finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/symbolfinder_macro.cpp").path()}); + finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, "", {"cc"}); finder.findSymbol(); @@ -196,9 +178,7 @@ TEST_F(SymbolFinderSlowTest, CursorOverMacroDefintionSymbolName) TEST_F(SymbolFinderSlowTest, CursorOverMacroExpansionSymbolName) { Finder finder(10, 10, filePathCaching); - finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/symbolfinder_macro.cpp").path()}); + finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, "", {"cc"}); finder.findSymbol(); @@ -208,9 +188,7 @@ TEST_F(SymbolFinderSlowTest, CursorOverMacroExpansionSymbolName) TEST_F(SymbolFinderSlowTest, FindMacroDefinition) { Finder finder(1, 9, filePathCaching); - finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/symbolfinder_macro.cpp").path()}); + finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, "", {"cc"}); finder.findSymbol(); @@ -221,9 +199,7 @@ TEST_F(SymbolFinderSlowTest, FindMacroDefinition) TEST_F(SymbolFinderSlowTest, FindMacroExpansion) { Finder finder(1, 9, filePathCaching); - finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/symbolfinder_macro.cpp").path()}); + finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, "", {"cc"}); finder.findSymbol(); @@ -234,9 +210,7 @@ TEST_F(SymbolFinderSlowTest, FindMacroExpansion) TEST_F(SymbolFinderSlowTest, DoNotFindUndedefinedMacroExpansion) { Finder finder(1, 9, filePathCaching); - finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/symbolfinder_macro.cpp").path()}); + finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, "", {"cc"}); finder.findSymbol(); @@ -247,9 +221,7 @@ TEST_F(SymbolFinderSlowTest, DoNotFindUndedefinedMacroExpansion) TEST_F(SymbolFinderSlowTest, FindMacroDefinitionFromMacroExpansion) { Finder finder(10, 10, filePathCaching); - finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/symbolfinder_macro.cpp").path()}); + finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, "", {"cc"}); finder.findSymbol(); @@ -261,9 +233,7 @@ TEST_F(SymbolFinderSlowTest, FindMacroDefinitionFromMacroExpansion) TEST_F(SymbolFinderSlowTest, FindMacroExpansionBeforeMacroExpansionWithCursor) { Finder finder(12, 10, filePathCaching); - finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/symbolfinder_macro.cpp").path()}); + finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, "", {"cc"}); finder.findSymbol(); @@ -274,9 +244,7 @@ TEST_F(SymbolFinderSlowTest, FindMacroExpansionBeforeMacroExpansionWithCursor) TEST_F(SymbolFinderSlowTest, FindMacroExpansionAfterMacroExpansionWithCursor) { Finder finder(10, 10, filePathCaching); - finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, - "", - {"cc", toNativePath(TESTDATA_DIR "/symbolfinder_macro.cpp").path()}); + finder.addFile({TESTDATA_DIR "/symbolfinder_macro.cpp"}, "", {"cc"}); finder.findSymbol(); diff --git a/tests/unit/unittest/symbolindexer-test.cpp b/tests/unit/unittest/symbolindexer-test.cpp index ce0fadfdf8c..0db32d658c7 100644 --- a/tests/unit/unittest/symbolindexer-test.cpp +++ b/tests/unit/unittest/symbolindexer-test.cpp @@ -267,7 +267,7 @@ TEST_F(SymbolIndexer, UpdateProjectPartsCallsAddFilesInCollector) ElementsAre("clang++", "-Wno-pragma-once-outside-header", "-x", - "c++-header", + "c++", "-std=c++14", "-nostdinc", "-nostdinc++", @@ -297,7 +297,7 @@ TEST_F(SymbolIndexer, UpdateProjectPartsCallsAddFilesWithPrecompiledHeaderInColl ElementsAre("clang++", "-Wno-pragma-once-outside-header", "-x", - "c++-header", + "c++", "-std=c++14", "-nostdinc", "-nostdinc++", @@ -330,7 +330,7 @@ TEST_F(SymbolIndexer, UpdateProjectPartsCallsAddFilesWithoutPrecompiledHeaderInC ElementsAre("clang++", "-Wno-pragma-once-outside-header", "-x", - "c++-header", + "c++", "-std=c++14", "-nostdinc", "-nostdinc++", @@ -510,7 +510,7 @@ TEST_F(SymbolIndexer, UpdateProjectPartsCallsInOrderWithoutProjectPartArtifact) ElementsAre("clang++", "-Wno-pragma-once-outside-header", "-x", - "c++-header", + "c++", "-std=c++14", "-nostdinc", "-nostdinc++", @@ -562,7 +562,7 @@ TEST_F(SymbolIndexer, UpdateProjectPartsCallsInOrderWithProjectPartArtifact) ElementsAre("clang++", "-Wno-pragma-once-outside-header", "-x", - "c++-header", + "c++", "-std=c++14", "-nostdinc", "-nostdinc++", @@ -618,7 +618,7 @@ TEST_F(SymbolIndexer, UpdateChangedPathCallsInOrder) ElementsAre("clang++", "-DFOO", "-x", - "c++-header", + "c++", "-std=c++14", "-nostdinc", "-nostdinc++", @@ -680,7 +680,7 @@ TEST_F(SymbolIndexer, UpdateChangedPathIsUsingPrecompiledHeader) ElementsAre("clang++", "-DFOO", "-x", - "c++-header", + "c++", "-std=c++14", "-nostdinc", "-nostdinc++", @@ -715,7 +715,7 @@ TEST_F(SymbolIndexer, UpdateChangedPathIsNotUsingPrecompiledHeaderIfItNotExists) ElementsAre("clang++", "-DFOO", "-x", - "c++-header", + "c++", "-std=c++14", "-nostdinc", "-nostdinc++", From ffa043fb9983462ebeb143afb946c109e9369e7f Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Wed, 6 Feb 2019 17:18:15 +0100 Subject: [PATCH 07/55] Clang: Improve performance by reducing parsing We generate one big file per project part so the preprocessor is skipping the recurring includes. This generated many errors about missing macros but we don't care much about them during dependency collection step so we just silence these errors with ignoring diagnostics consumer. Change-Id: I5581d623b5d5f9995496252735577ea6b54790d9 Reviewed-by: Ivan Donchevskii --- .../clangpchmanagerbackendmain.cpp | 4 +- .../source/builddependencycollector.cpp | 48 +++++++++++--- .../source/builddependencycollector.h | 19 +++--- .../source/collectbuilddependencyaction.h | 33 +++++----- ...lectbuilddependencypreprocessorcallbacks.h | 32 +++++++--- .../builddependencycollector-test.cpp | 63 +++++++++++-------- 6 files changed, 131 insertions(+), 68 deletions(-) diff --git a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp index c4e8e085ce2..80bb8886aa8 100644 --- a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp +++ b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp @@ -191,7 +191,9 @@ struct Data // because we have a cycle dependency database}; ClangBackEnd::PchTasksMerger pchTaskMerger{pchTaskQueue}; ClangBackEnd::BuildDependenciesStorage<> buildDependencyStorage{database}; - ClangBackEnd::BuildDependencyCollector buildDependencyCollector{filePathCache, generatedFiles}; + ClangBackEnd::BuildDependencyCollector buildDependencyCollector{filePathCache, + generatedFiles, + environment}; std::function getModifiedTime{ [&](ClangBackEnd::FilePathView path) -> TimeStamp { return QFileInfo(QString(path)).lastModified().toSecsSinceEpoch(); diff --git a/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp b/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp index ec5f3bdcb00..b3ebbc75ad7 100644 --- a/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp +++ b/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp @@ -28,10 +28,12 @@ #include "collectbuilddependencytoolaction.h" #include "commandlinebuilder.h" +#include + #include #include - +#include namespace ClangBackEnd { namespace { @@ -50,7 +52,7 @@ BuildDependency BuildDependencyCollector::create(const ProjectPartContainer &pro CommandLineBuilder builder{projectPart, projectPart.toolChainArguments, InputFileType::Source}; - addFiles(projectPart.sourcePathIds, builder.commandLine); + addFiles(projectPart.sourcePathIds, std::move(builder.commandLine)); setExcludedFilePaths( m_filePathCache.filePaths(projectPart.headerPathIds + projectPart.sourcePathIds)); @@ -66,6 +68,33 @@ BuildDependency BuildDependencyCollector::create(const ProjectPartContainer &pro return buildDependency; } +namespace { + +std::size_t contentSize(const FilePaths &includes) +{ + auto countIncludeSize = [](std::size_t size, const auto &include) { + return size + include.size(); + }; + + return std::accumulate(includes.begin(), includes.end(), std::size_t(0), countIncludeSize); +} +} // namespace + +Utils::SmallString BuildDependencyCollector::generateFakeFileContent( + const FilePathIds &includeIds) const +{ + Utils::SmallString fileContent; + const std::size_t lineTemplateSize = 12; + auto includes = m_filePathCache.filePaths(includeIds); + + fileContent.reserve(includes.size() * lineTemplateSize + contentSize(includes)); + + for (Utils::SmallStringView include : includes) + fileContent += {"#include \"", include, "\"\n"}; + + return fileContent; +} + void BuildDependencyCollector::collect() { clang::tooling::ClangTool tool = m_clangTool.createTool(); @@ -96,25 +125,26 @@ void BuildDependencyCollector::setExcludedFilePaths(ClangBackEnd::FilePaths &&ex } void BuildDependencyCollector::addFiles(const FilePathIds &filePathIds, - const Utils::SmallStringVector &arguments) + Utils::SmallStringVector &&arguments) { - m_clangTool.addFiles(m_filePathCache.filePaths(filePathIds), arguments); + m_clangTool.addFile(FilePath{m_environment.pchBuildDirectory().toStdString(), "dummy.cpp"}, + generateFakeFileContent(filePathIds), + std::move(arguments)); m_buildDependency.sourceFiles.insert(m_buildDependency.sourceFiles.end(), filePathIds.begin(), filePathIds.end()); } -void BuildDependencyCollector::addFile(FilePathId filePathId, - const Utils::SmallStringVector &arguments) +void BuildDependencyCollector::addFile(FilePathId filePathId, Utils::SmallStringVector &&arguments) { - addFiles({filePathId}, arguments); + addFiles({filePathId}, std::move(arguments)); } void BuildDependencyCollector::addFile(FilePath filePath, const FilePathIds &sourceFileIds, - const Utils::SmallStringVector &arguments) + Utils::SmallStringVector &&arguments) { - m_clangTool.addFiles({filePath}, arguments); + m_clangTool.addFiles({filePath}, std::move(arguments)); m_buildDependency.sourceFiles.insert(m_buildDependency.sourceFiles.end(), sourceFileIds.begin(), sourceFileIds.end()); diff --git a/src/tools/clangpchmanagerbackend/source/builddependencycollector.h b/src/tools/clangpchmanagerbackend/source/builddependencycollector.h index b9446c96928..c5e41e91907 100644 --- a/src/tools/clangpchmanagerbackend/source/builddependencycollector.h +++ b/src/tools/clangpchmanagerbackend/source/builddependencycollector.h @@ -34,33 +34,35 @@ #include namespace ClangBackEnd { +class Environment; class BuildDependencyCollector : public BuildDependencyGeneratorInterface { public: BuildDependencyCollector(const FilePathCachingInterface &filePathCache, - const GeneratedFilesInterface &generatedFiles) + const GeneratedFilesInterface &generatedFiles, + const Environment &environment) : m_filePathCache(filePathCache) , m_generatedFiles(generatedFiles) - { - } + , m_environment(environment) + {} BuildDependency create(const ProjectPartContainer &projectPart) override; void collect(); void setExcludedFilePaths(ClangBackEnd::FilePaths &&excludedIncludes); - void addFiles(const FilePathIds &filePathIds, - const Utils::SmallStringVector &arguments); - void addFile(FilePathId filePathId, - const Utils::SmallStringVector &arguments); + void addFiles(const FilePathIds &filePathIds, Utils::SmallStringVector &&arguments); + void addFile(FilePathId filePathId, Utils::SmallStringVector &&arguments); void addFile(FilePath filePath, const FilePathIds &sourceFileIds, - const Utils::SmallStringVector &arguments); + Utils::SmallStringVector &&arguments); void addUnsavedFiles(const V2::FileContainers &unsavedFiles); void clear(); + Utils::SmallString generateFakeFileContent(const FilePathIds &includeIds) const; + const FileStatuses &fileStatuses() const { return m_buildDependency.fileStatuses; @@ -96,6 +98,7 @@ private: SourcesManager m_sourcesManager; const FilePathCachingInterface &m_filePathCache; const GeneratedFilesInterface &m_generatedFiles; + const Environment &m_environment; }; } // namespace ClangBackEnd diff --git a/src/tools/clangpchmanagerbackend/source/collectbuilddependencyaction.h b/src/tools/clangpchmanagerbackend/source/collectbuilddependencyaction.h index 03d27f9b21e..fa1a10e79c3 100644 --- a/src/tools/clangpchmanagerbackend/source/collectbuilddependencyaction.h +++ b/src/tools/clangpchmanagerbackend/source/collectbuilddependencyaction.h @@ -54,27 +54,28 @@ public: bool BeginSourceFileAction(clang::CompilerInstance &compilerInstance) override { - if (clang::PreprocessOnlyAction::BeginSourceFileAction(compilerInstance)) { - auto &preprocessor = compilerInstance.getPreprocessor(); + if (clang::PreprocessOnlyAction::BeginSourceFileAction(compilerInstance)) { + auto &preprocessor = compilerInstance.getPreprocessor(); - preprocessor.SetSuppressIncludeNotFoundError(true); - preprocessor.SetMacroExpansionOnlyInDirectives(); + preprocessor.SetSuppressIncludeNotFoundError(true); + preprocessor.SetMacroExpansionOnlyInDirectives(); - auto macroPreprocessorCallbacks = new CollectBuildDependencyPreprocessorCallbacks( - m_buildDependency, - m_filePathCache, - m_excludedIncludeUID, - m_alreadyIncludedFileUIDs, - compilerInstance.getSourceManager(), - m_sourcesManager, - compilerInstance.getPreprocessorPtr()); + auto macroPreprocessorCallbacks = new CollectBuildDependencyPreprocessorCallbacks( + m_buildDependency, + m_filePathCache, + m_excludedIncludeUID, + m_alreadyIncludedFileUIDs, + compilerInstance.getSourceManager(), + m_sourcesManager, + compilerInstance.getPreprocessorPtr()); - preprocessor.addPPCallbacks(std::unique_ptr(macroPreprocessorCallbacks)); + preprocessor.addPPCallbacks( + std::unique_ptr(macroPreprocessorCallbacks)); - return true; - } + return true; + } - return false; + return false; } void EndSourceFileAction() override diff --git a/src/tools/clangpchmanagerbackend/source/collectbuilddependencypreprocessorcallbacks.h b/src/tools/clangpchmanagerbackend/source/collectbuilddependencypreprocessorcallbacks.h index 82530927516..980d065fdbc 100644 --- a/src/tools/clangpchmanagerbackend/source/collectbuilddependencypreprocessorcallbacks.h +++ b/src/tools/clangpchmanagerbackend/source/collectbuilddependencypreprocessorcallbacks.h @@ -72,15 +72,27 @@ public: void FileChanged(clang::SourceLocation sourceLocation, clang::PPCallbacks::FileChangeReason reason, clang::SrcMgr::CharacteristicKind, - clang::FileID) override + clang::FileID previousFileId) override { - if (reason == clang::PPCallbacks::EnterFile) - { - const clang::FileEntry *fileEntry = m_sourceManager->getFileEntryForID( - m_sourceManager->getFileID(sourceLocation)); - if (fileEntry) { - addFileStatus(fileEntry); - addSourceFile(fileEntry); + if (reason == clang::PPCallbacks::EnterFile) { + clang::FileID currentFileId = m_sourceManager->getFileID(sourceLocation); + if (m_mainFileId.isInvalid()) { + m_mainFileId = currentFileId; + } else { + const clang::FileEntry *fileEntry = m_sourceManager->getFileEntryForID( + currentFileId); + if (fileEntry) { + if (previousFileId == m_mainFileId) { + uint sourceFileUID = fileEntry->getUID(); + auto notAlreadyIncluded = isNotAlreadyIncluded(sourceFileUID); + if (notAlreadyIncluded.first) + m_alreadyIncludedFileUIDs.insert(notAlreadyIncluded.second, + sourceFileUID); + } else { + addFileStatus(fileEntry); + addSourceFile(fileEntry); + } + } } } } @@ -96,7 +108,8 @@ public: const clang::Module * /*imported*/, clang::SrcMgr::CharacteristicKind fileType) override { - if (file) { + clang::FileID currentFileId = m_sourceManager->getFileID(hashLocation); + if (file && currentFileId != m_mainFileId) { addSourceDependency(file, hashLocation); auto fileUID = file->getUID(); auto sourceFileUID = m_sourceManager @@ -343,6 +356,7 @@ private: BuildDependency &m_buildDependency; const std::vector &m_excludedIncludeUID; std::vector &m_alreadyIncludedFileUIDs; + clang::FileID m_mainFileId; }; } // namespace ClangBackEnd diff --git a/tests/unit/unittest/builddependencycollector-test.cpp b/tests/unit/unittest/builddependencycollector-test.cpp index 3c9ea84d32b..04bb4720adc 100644 --- a/tests/unit/unittest/builddependencycollector-test.cpp +++ b/tests/unit/unittest/builddependencycollector-test.cpp @@ -25,6 +25,8 @@ #include "googletest.h" +#include "testenvironment.h" + #include #include #include @@ -67,22 +69,15 @@ protected: { setFilePathCache(&filePathCache); - collector.addFile(id(TESTDATA_DIR "/builddependencycollector/project/main.cpp"), - {"cc", - "-I", - TESTDATA_DIR "/builddependencycollector/external", - "-I", - TESTDATA_DIR "/builddependencycollector/project", - "-isystem", - TESTDATA_DIR "/builddependencycollector/system"}); - collector.addFile(id(TESTDATA_DIR "/builddependencycollector/project/main2.cpp"), - {"cc", - "-I", - TESTDATA_DIR "/builddependencycollector/external", - "-I", - TESTDATA_DIR "/builddependencycollector/project", - "-isystem", - TESTDATA_DIR "/builddependencycollector/system"}); + collector.addFiles({id(TESTDATA_DIR "/builddependencycollector/project/main.cpp"), + id(TESTDATA_DIR "/builddependencycollector/project/main2.cpp")}, + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); collector.addUnsavedFiles( {{{TESTDATA_DIR, "BuildDependencyCollector/project/generated_file.h"}, @@ -160,16 +155,18 @@ protected: protected: Sqlite::Database database{":memory:", Sqlite::JournalMode::Memory}; + TestEnvironment environment; ClangBackEnd::RefactoringDatabaseInitializer databaseInitializer{database}; ClangBackEnd::FilePathCaching filePathCache{database}; ClangBackEnd::GeneratedFiles generatedFiles; - ClangBackEnd::BuildDependencyCollector collector{filePathCache, generatedFiles}; - ClangBackEnd::BuildDependencyCollector emptyCollector{filePathCache, generatedFiles}; - ClangBackEnd::FilePaths excludePaths = {TESTDATA_DIR "/builddependencycollector/project/main.cpp", - TESTDATA_DIR "/builddependencycollector/project/main2.cpp", - TESTDATA_DIR "/builddependencycollector/project/header1.h", - TESTDATA_DIR "/builddependencycollector/project/header2.h", - TESTDATA_DIR "/builddependencycollector/project/generated_file.h"}; + ClangBackEnd::BuildDependencyCollector collector{filePathCache, generatedFiles, environment}; + ClangBackEnd::BuildDependencyCollector emptyCollector{filePathCache, generatedFiles, environment}; + ClangBackEnd::FilePaths excludePaths = { + TESTDATA_DIR "/builddependencycollector/project/main.cpp", + TESTDATA_DIR "/builddependencycollector/project/main2.cpp", + TESTDATA_DIR "/builddependencycollector/project/header1.h", + TESTDATA_DIR "/builddependencycollector/project/header2.h", + TESTDATA_DIR "/builddependencycollector/project/generated_file.h"}; }; TEST_F(BuildDependencyCollector, IncludesExternalHeader) @@ -548,10 +545,26 @@ TEST_F(BuildDependencyCollector, GeneratedFile) SourceType::UserInclude))); } +TEST_F(BuildDependencyCollector, CreateFakeFileContent) +{ + auto content = collector.generateFakeFileContent( + {id(TESTDATA_DIR "/builddependencycollector/project/header2.h"), + id(TESTDATA_DIR "/builddependencycollector/external/external1.h"), + id(TESTDATA_DIR "/builddependencycollector/external/external2.h")}); + + ASSERT_THAT(std::string(content), + AllOf(HasSubstr("#include \"" TESTDATA_DIR + "/builddependencycollector/project/header2.h\"\n"), + HasSubstr("#include \"" TESTDATA_DIR + "/builddependencycollector/external/external1.h\"\n"), + HasSubstr("#include \"" TESTDATA_DIR + "/builddependencycollector/external/external2.h\"\n"))); +} + TEST_F(BuildDependencyCollector, Create) { using ClangBackEnd::IncludeSearchPathType; - ClangBackEnd::BuildDependencyCollector collector{filePathCache, generatedFiles}; + ClangBackEnd::BuildDependencyCollector collector{filePathCache, generatedFiles, environment}; generatedFiles.update( {{TESTDATA_DIR "/builddependencycollector/project/generated_file.h", "#pragma once"}}); ClangBackEnd::ProjectPartContainer projectPart{ @@ -702,7 +715,7 @@ TEST_F(BuildDependencyCollector, Create) TEST_F(BuildDependencyCollector, Clear) { using ClangBackEnd::IncludeSearchPathType; - ClangBackEnd::BuildDependencyCollector collector{filePathCache, generatedFiles}; + ClangBackEnd::BuildDependencyCollector collector{filePathCache, generatedFiles, environment}; ClangBackEnd::ProjectPartContainer projectPart{ "project1", {}, From 643a814ba1c0b1887ffbbd74cbd85df81dc59eba Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 11 Feb 2019 13:24:39 +0100 Subject: [PATCH 08/55] Utils: Add a JsonTreeItem JsonTreeItem is used to visualize json values in tree views. It will automatically generate new child items if the value contains an object or array. Change-Id: I316ea9f626050c21c05cbfc0628d0a5e20ad5a49 Reviewed-by: Christian Stenger --- src/libs/utils/jsontreeitem.cpp | 99 +++++++++++++++++++++++++++++++++ src/libs/utils/jsontreeitem.h | 56 +++++++++++++++++++ src/libs/utils/utils-lib.pri | 7 ++- src/libs/utils/utils.qbs | 2 + 4 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 src/libs/utils/jsontreeitem.cpp create mode 100644 src/libs/utils/jsontreeitem.h diff --git a/src/libs/utils/jsontreeitem.cpp b/src/libs/utils/jsontreeitem.cpp new file mode 100644 index 00000000000..a70f5631ec8 --- /dev/null +++ b/src/libs/utils/jsontreeitem.cpp @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "jsontreeitem.h" + +#include +#include + +Utils::JsonTreeItem::JsonTreeItem(const QString &displayName, const QJsonValue &value) + : m_name(displayName) + , m_value(value) +{ } + +static QString typeName(QJsonValue::Type type) +{ + switch (type) { + case QJsonValue::Null: + return Utils::JsonTreeItem::tr("Null"); + case QJsonValue::Bool: + return Utils::JsonTreeItem::tr("Bool"); + case QJsonValue::Double: + return Utils::JsonTreeItem::tr("Double"); + case QJsonValue::String: + return Utils::JsonTreeItem::tr("String"); + case QJsonValue::Array: + return Utils::JsonTreeItem::tr("Array"); + case QJsonValue::Object: + return Utils::JsonTreeItem::tr("Object"); + case QJsonValue::Undefined: + return Utils::JsonTreeItem::tr("Undefined"); + } + return {}; +} + +QVariant Utils::JsonTreeItem::data(int column, int role) const +{ + if (role != Qt::DisplayRole) + return {}; + if (column == 0) + return m_name; + if (column == 2) + return typeName(m_value.type()); + if (m_value.isObject()) + return QString('[' + QString::number(m_value.toObject().size()) + ' ' + tr("Items") + ']'); + if (m_value.isArray()) + return QString('[' + QString::number(m_value.toArray().size()) + ' ' + tr("Items") + ']'); + return m_value.toVariant(); +} + +bool Utils::JsonTreeItem::canFetchMore() const +{ + return canFetchObjectChildren() || canFetchArrayChildren(); +} + +void Utils::JsonTreeItem::fetchMore() +{ + if (canFetchObjectChildren()) { + const QJsonObject &object = m_value.toObject(); + for (const QString &key : object.keys()) + appendChild(new JsonTreeItem(key, object.value(key))); + } else if (canFetchArrayChildren()) { + int index = 0; + const QJsonArray &array = m_value.toArray(); + for (const QJsonValue &val : array) + appendChild(new JsonTreeItem(QString::number(index++), val)); + } +} + +bool Utils::JsonTreeItem::canFetchObjectChildren() const +{ + return m_value.isObject() && m_value.toObject().size() > childCount(); +} + +bool Utils::JsonTreeItem::canFetchArrayChildren() const +{ + return m_value.isArray() && m_value.toArray().size() > childCount(); +} diff --git a/src/libs/utils/jsontreeitem.h b/src/libs/utils/jsontreeitem.h new file mode 100644 index 00000000000..57eea36536c --- /dev/null +++ b/src/libs/utils/jsontreeitem.h @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#pragma once + +#include "treemodel.h" + +#include "utils_global.h" + +#include +#include + +namespace Utils { + +class QTCREATOR_UTILS_EXPORT JsonTreeItem : public TypedTreeItem +{ + Q_DECLARE_TR_FUNCTIONS(JsonTreeModelItem) +public: + JsonTreeItem() = default; + JsonTreeItem(const QString &displayName, const QJsonValue &value); + + QVariant data(int column, int role) const override; + bool canFetchMore() const override; + void fetchMore() override; + +private: + bool canFetchObjectChildren() const; + bool canFetchArrayChildren() const; + + QString m_name; + QJsonValue m_value; +}; + +} // namespace Utils diff --git a/src/libs/utils/utils-lib.pri b/src/libs/utils/utils-lib.pri index 7de3faefc97..5a2712cc3f9 100644 --- a/src/libs/utils/utils-lib.pri +++ b/src/libs/utils/utils-lib.pri @@ -123,7 +123,9 @@ SOURCES += \ $$PWD/filecrumblabel.cpp \ $$PWD/fixedsizeclicklabel.cpp \ $$PWD/removefiledialog.cpp \ - $$PWD/differ.cpp + $$PWD/differ.cpp \ + $$PWD/jsontreeitem.cpp + win32:SOURCES += $$PWD/consoleprocess_win.cpp else:SOURCES += $$PWD/consoleprocess_unix.cpp @@ -263,7 +265,8 @@ HEADERS += \ $$PWD/fixedsizeclicklabel.h \ $$PWD/removefiledialog.h \ $$PWD/differ.h \ - $$PWD/cpplanguage_details.h + $$PWD/cpplanguage_details.h \ + $$PWD/jsontreeitem.h FORMS += $$PWD/filewizardpage.ui \ $$PWD/newclasswidget.ui \ diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs index a646e21973c..d50f7f41f60 100644 --- a/src/libs/utils/utils.qbs +++ b/src/libs/utils/utils.qbs @@ -142,6 +142,8 @@ Project { "itemviews.h", "json.cpp", "json.h", + "jsontreeitem.cpp", + "jsontreeitem.h", "linecolumn.h", "link.h", "listutils.h", From 1c6db4ca8b88a31ce1263029dc8be4fe6809144b Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Mon, 11 Feb 2019 16:44:50 +0100 Subject: [PATCH 09/55] Acknowledge KSyntaxHighlighting in README.md https://doc-snapshots.qt.io/qtcreator-master/creator- acknowledgements.html Acknowledges KSyntaxHighlighting already. README.md should do so, as-well. Change-Id: I099fd9a8d9b479c3ba3278412e59160d6918ca2f Reviewed-by: David Schulz --- README.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/README.md b/README.md index 0140bacb3b8..f3d1b9baf01 100644 --- a/README.md +++ b/README.md @@ -287,6 +287,44 @@ http://llvm.org/docs/GettingStarted.html#git-mirror: Qt Creator includes the following third-party components, we thank the authors who made this possible: +### KSyntaxHighlighting + + Syntax highlighting engine for Kate syntax definitions + + This is a stand-alone implementation of the Kate syntax highlighting + engine. It's meant as a building block for text editors as well as + for simple highlighted text rendering (e.g. as HTML), supporting both + integration with a custom editor as well as a ready-to-use + QSyntaxHighlighter sub-class. + + Distributed under the: + + MIT License + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + The source code of KSyntaxHighlighting can be found here: + https://cgit.kde.org/syntax-highlighting.git + QtCreator/src/libs/3rdparty/syntax-highlighting + https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/src/libs/3rdparty/syntax-highlighting + ### Clazy https://github.com/KDE/clazy From 9c492ce962f5e00212e4c76a560280db3f6cac0a Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 8 Feb 2019 16:11:27 +0100 Subject: [PATCH 10/55] Move function to get fallback help IDs to CppTools To be shared between Clang and Built-in model Change-Id: Iebe132c93033c252c58da13b858a0dce61483eaf Reviewed-by: Nikolai Kosjar --- .../clangcodemodel/clanghoverhandler.cpp | 77 +--------------- src/plugins/cpptools/cpptoolsreuse.cpp | 87 ++++++++++++++++--- src/plugins/cpptools/cpptoolsreuse.h | 1 + 3 files changed, 79 insertions(+), 86 deletions(-) diff --git a/src/plugins/clangcodemodel/clanghoverhandler.cpp b/src/plugins/clangcodemodel/clanghoverhandler.cpp index 58f414d9f11..c8e87c25772 100644 --- a/src/plugins/clangcodemodel/clanghoverhandler.cpp +++ b/src/plugins/clangcodemodel/clanghoverhandler.cpp @@ -93,79 +93,6 @@ ClangHoverHandler::~ClangHoverHandler() abort(); } -static int skipChars(QTextCursor *tc, - QTextCursor::MoveOperation op, - int offset, - std::function skip) -{ - const QTextDocument *doc = tc->document(); - QChar ch = doc->characterAt(tc->position() + offset); - if (ch.isNull()) - return 0; - int count = 0; - while (skip(ch)) { - if (tc->movePosition(op)) - ++count; - else - break; - ch = doc->characterAt(tc->position() + offset); - } - return count; -} - -static int skipCharsForward(QTextCursor *tc, std::function skip) -{ - return skipChars(tc, QTextCursor::NextCharacter, 0, skip); -} - -static int skipCharsBackward(QTextCursor *tc, std::function skip) -{ - return skipChars(tc, QTextCursor::PreviousCharacter, -1, skip); -} - -static QStringList fallbackWords(QTextDocument *document, int pos) -{ - const auto isSpace = [](const QChar &c) { return c.isSpace(); }; - const auto isColon = [](const QChar &c) { return c == ':'; }; - const auto isValidIdentifierChar = [document](const QTextCursor &tc) { - return CppTools::isValidIdentifierChar(document->characterAt(tc.position())); - }; - // move to the end - QTextCursor endCursor(document); - endCursor.setPosition(pos); - do { - CppTools::moveCursorToEndOfIdentifier(&endCursor); - // possibly skip :: - QTextCursor temp(endCursor); - skipCharsForward(&temp, isSpace); - const int colons = skipCharsForward(&temp, isColon); - skipCharsForward(&temp, isSpace); - if (colons == 2 && isValidIdentifierChar(temp)) - endCursor = temp; - } while (isValidIdentifierChar(endCursor)); - - QStringList results; - QTextCursor startCursor(endCursor); - do { - CppTools::moveCursorToStartOfIdentifier(&startCursor); - if (startCursor.position() == endCursor.position()) - break; - QTextCursor temp(endCursor); - temp.setPosition(startCursor.position(), QTextCursor::KeepAnchor); - results.append(temp.selectedText().remove(QRegularExpression("\\s"))); - // possibly skip :: - temp = startCursor; - skipCharsBackward(&temp, isSpace); - const int colons = skipCharsBackward(&temp, isColon); - skipCharsBackward(&temp, isSpace); - if (colons == 2 - && CppTools::isValidIdentifierChar(document->characterAt(temp.position() - 1))) { - startCursor = temp; - } - } while (!isValidIdentifierChar(startCursor)); - return results; -} - void ClangHoverHandler::identifyMatch(TextEditorWidget *editorWidget, int pos, BaseHoverHandler::ReportPriority report) @@ -187,7 +114,9 @@ void ClangHoverHandler::identifyMatch(TextEditorWidget *editorWidget, qCDebug(hoverLog) << "Requesting tooltip info at" << pos; m_reportPriority = report; m_futureWatcher.reset(new QFutureWatcher()); - const QStringList fallback = fallbackWords(editorWidget->document(), pos); + QTextCursor tc(editorWidget->document()); + tc.setPosition(pos); + const QStringList fallback = CppTools::identifierWordsUnderCursor(tc); QObject::connect(m_futureWatcher.data(), &QFutureWatcherBase::finished, [this, fallback]() { diff --git a/src/plugins/cpptools/cpptoolsreuse.cpp b/src/plugins/cpptools/cpptoolsreuse.cpp index c56bfb9160c..9bcf806b7db 100644 --- a/src/plugins/cpptools/cpptoolsreuse.cpp +++ b/src/plugins/cpptools/cpptoolsreuse.cpp @@ -41,6 +41,7 @@ #include #include +#include #include #include #include @@ -50,29 +51,91 @@ using namespace CPlusPlus; namespace CppTools { -static void moveCursorToStartOrEndOfIdentifier(QTextCursor *tc, - QTextCursor::MoveOperation op, - int posDiff = 0) +static int skipChars(QTextCursor *tc, + QTextCursor::MoveOperation op, + int offset, + std::function skip) { - QTextDocument *doc = tc->document(); + const QTextDocument *doc = tc->document(); if (!doc) - return; - - QChar ch = doc->characterAt(tc->position() - posDiff); - while (isValidIdentifierChar(ch)) { - tc->movePosition(op); - ch = doc->characterAt(tc->position() - posDiff); + return 0; + QChar ch = doc->characterAt(tc->position() + offset); + if (ch.isNull()) + return 0; + int count = 0; + while (skip(ch)) { + if (tc->movePosition(op)) + ++count; + else + break; + ch = doc->characterAt(tc->position() + offset); } + return count; +} + +static int skipCharsForward(QTextCursor *tc, std::function skip) +{ + return skipChars(tc, QTextCursor::NextCharacter, 0, skip); +} + +static int skipCharsBackward(QTextCursor *tc, std::function skip) +{ + return skipChars(tc, QTextCursor::PreviousCharacter, -1, skip); +} + +QStringList identifierWordsUnderCursor(const QTextCursor &tc) +{ + const QTextDocument *document = tc.document(); + if (!document) + return {}; + const auto isSpace = [](const QChar &c) { return c.isSpace(); }; + const auto isColon = [](const QChar &c) { return c == ':'; }; + const auto isValidIdentifierCharAt = [document](const QTextCursor &tc) { + return isValidIdentifierChar(document->characterAt(tc.position())); + }; + // move to the end + QTextCursor endCursor(tc); + do { + moveCursorToEndOfIdentifier(&endCursor); + // possibly skip :: + QTextCursor temp(endCursor); + skipCharsForward(&temp, isSpace); + const int colons = skipCharsForward(&temp, isColon); + skipCharsForward(&temp, isSpace); + if (colons == 2 && isValidIdentifierCharAt(temp)) + endCursor = temp; + } while (isValidIdentifierCharAt(endCursor)); + + QStringList results; + QTextCursor startCursor(endCursor); + do { + moveCursorToStartOfIdentifier(&startCursor); + if (startCursor.position() == endCursor.position()) + break; + QTextCursor temp(endCursor); + temp.setPosition(startCursor.position(), QTextCursor::KeepAnchor); + results.append(temp.selectedText().remove(QRegularExpression("\\s"))); + // possibly skip :: + temp = startCursor; + skipCharsBackward(&temp, isSpace); + const int colons = skipCharsBackward(&temp, isColon); + skipCharsBackward(&temp, isSpace); + if (colons == 2 + && isValidIdentifierChar(document->characterAt(temp.position() - 1))) { + startCursor = temp; + } + } while (!isValidIdentifierCharAt(startCursor)); + return results; } void moveCursorToEndOfIdentifier(QTextCursor *tc) { - moveCursorToStartOrEndOfIdentifier(tc, QTextCursor::NextCharacter); + skipCharsForward(tc, isValidIdentifierChar); } void moveCursorToStartOfIdentifier(QTextCursor *tc) { - moveCursorToStartOrEndOfIdentifier(tc, QTextCursor::PreviousCharacter, 1); + skipCharsBackward(tc, isValidIdentifierChar); } static bool isOwnershipRAIIName(const QString &name) diff --git a/src/plugins/cpptools/cpptoolsreuse.h b/src/plugins/cpptools/cpptoolsreuse.h index d1a1956be31..92e1365d159 100644 --- a/src/plugins/cpptools/cpptoolsreuse.h +++ b/src/plugins/cpptools/cpptoolsreuse.h @@ -58,6 +58,7 @@ bool CPPTOOLS_EXPORT isValidFirstIdentifierChar(const QChar &ch); bool CPPTOOLS_EXPORT isValidIdentifierChar(const QChar &ch); bool CPPTOOLS_EXPORT isValidIdentifier(const QString &s); +QStringList CPPTOOLS_EXPORT identifierWordsUnderCursor(const QTextCursor &tc); QString CPPTOOLS_EXPORT identifierUnderCursor(QTextCursor *cursor); bool CPPTOOLS_EXPORT isOwnershipRAIIType(CPlusPlus::Symbol *symbol, From 4420190192124d8522a9d8eb88a48f887b31ae74 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 11 Feb 2019 13:26:53 +0100 Subject: [PATCH 11/55] LSP: Visualize server capabilities in settings page Change-Id: Ib83b8580e9758313285a6145b0925e051268f34b Reviewed-by: Christian Stenger Reviewed-by: David Schulz --- .../languageclient/languageclientsettings.cpp | 46 +++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index e101db412c7..17ea39f80ed 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -34,9 +34,8 @@ #include #include #include -#include #include -#include +#include #include #include @@ -150,7 +149,6 @@ LanguageClientSettingsPageWidget::LanguageClientSettingsPageWidget(LanguageClien connect(addButton, &QPushButton::pressed, this, &LanguageClientSettingsPageWidget::addItem); auto deleteButton = new QPushButton(LanguageClientSettingsPage::tr("&Delete")); connect(deleteButton, &QPushButton::pressed, this, &LanguageClientSettingsPageWidget::deleteItem); - mainLayout->addLayout(layout); setLayout(mainLayout); layout->addWidget(m_view); @@ -505,6 +503,24 @@ BaseClientInterface *StdIOSettings::createInterface() const return new StdIOClientInterface(m_executable, m_arguments); } +static QWidget *createCapabilitiesView( + const LanguageServerProtocol::ServerCapabilities &capabilities) +{ + auto root = new Utils::JsonTreeItem("Capabilities", QJsonValue(capabilities)); + if (root->canFetchMore()) + root->fetchMore(); + + auto capabilitiesModel = new Utils::TreeModel(root); + capabilitiesModel->setHeader({BaseSettingsWidget::tr("Name"), + BaseSettingsWidget::tr("Value"), + BaseSettingsWidget::tr("Type")}); + auto capabilitiesView = new QTreeView(); + capabilitiesView->setModel(capabilitiesModel); + capabilitiesView->setAlternatingRowColors(true); + capabilitiesView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); + return capabilitiesView; +} + BaseSettingsWidget::BaseSettingsWidget(const BaseSettings *settings, QWidget *parent) : QWidget(parent) , m_name(new QLineEdit(settings->m_name, this)) @@ -528,6 +544,30 @@ BaseSettingsWidget::BaseSettingsWidget(const BaseSettings *settings, QWidget *pa connect(addMimeTypeButton, &QPushButton::pressed, this, &BaseSettingsWidget::showAddMimeTypeDialog); + auto createInfoLabel = []() { + return new QLabel(tr("Available after server was initialized")); + }; + + mainLayout->addWidget(new QLabel(tr("Capabilities:")), ++row, 0, Qt::AlignTop); + if (Client *client = settings->m_client.data()) { + if (client->state() == Client::Initialized) + mainLayout->addWidget(createCapabilitiesView(client->capabilities())); + else + mainLayout->addWidget(createInfoLabel(), row, 1); + connect(client, &Client::finished, mainLayout, [mainLayout, row, createInfoLabel]() { + delete mainLayout->itemAtPosition(row, 1)->widget(); + mainLayout->addWidget(createInfoLabel(), row, 1); + }); + connect(client, &Client::initialized, mainLayout, + [mainLayout, row]( + const LanguageServerProtocol::ServerCapabilities &capabilities) { + delete mainLayout->itemAtPosition(row, 1)->widget(); + mainLayout->addWidget(createCapabilitiesView(capabilities), row, 1); + }); + } else { + mainLayout->addWidget(createInfoLabel()); + } + setLayout(mainLayout); } From d4415b02aff8cb0abc1ccdff05fcf76ac9702d3e Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 8 Feb 2019 16:12:02 +0100 Subject: [PATCH 12/55] Add fallback help IDs to built-in model Task-number: QTCREATORBUG-15959 Change-Id: I1e022450d09cb0e8565573079e412b26d09ce662 Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/cpphoverhandler.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/cpptools/cpphoverhandler.cpp b/src/plugins/cpptools/cpphoverhandler.cpp index f65e701c031..07617a411f3 100644 --- a/src/plugins/cpptools/cpphoverhandler.cpp +++ b/src/plugins/cpptools/cpphoverhandler.cpp @@ -26,6 +26,7 @@ #include "cpphoverhandler.h" #include "cppelementevaluator.h" +#include "cpptoolsreuse.h" #include #include @@ -56,14 +57,16 @@ void CppHoverHandler::identifyMatch(TextEditorWidget *editorWidget, int pos, Rep tip += evaluator.diagnosis(); setPriority(Priority_Diagnostic); } + const QStringList fallback = identifierWordsUnderCursor(tc); if (evaluator.identifiedCppElement()) { const QSharedPointer &cppElement = evaluator.cppElement(); - QStringList candidates = cppElement->helpIdCandidates; - candidates.removeDuplicates(); - const HelpItem helpItem(candidates, cppElement->helpMark, cppElement->helpCategory); + const QStringList candidates = cppElement->helpIdCandidates; + const HelpItem helpItem(candidates + fallback, cppElement->helpMark, cppElement->helpCategory); setLastHelpItemIdentified(helpItem); // tool tip appended by decorateToolTip if (!helpItem.isValid()) tip += cppElement->tooltip; + } else { + setLastHelpItemIdentified({fallback, {}, HelpItem::Unknown}); } setToolTip(tip); } From 4eaedac72f3a3e74b6d1f5227eba66ec4e77795d Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 11 Feb 2019 13:06:05 +0100 Subject: [PATCH 13/55] ClangTools: Move check box in diagnostic view to the left ...so it's closer to other related data and controls (expand/collapse marker). The details of the fixits status are displayed in the tooltip now. Change-Id: I9f1a9e9562572195b52a097ae9278647fecf6cb8 Reviewed-by: Ivan Donchevskii --- .../clangtools/clangtoolsdiagnosticmodel.cpp | 102 +++++++------ .../clangtools/clangtoolsdiagnosticmodel.h | 6 +- .../clangtools/clangtoolsdiagnosticview.cpp | 142 ++++++++++++++---- .../clangtools/clangtoolsdiagnosticview.h | 10 +- 4 files changed, 177 insertions(+), 83 deletions(-) diff --git a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp index 88b80965181..0614bce37db 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp @@ -84,7 +84,7 @@ ClangToolsDiagnosticModel::ClangToolsDiagnosticModel(QObject *parent) : Utils::TreeModel<>(parent) , m_filesWatcher(std::make_unique()) { - setHeader({tr("Diagnostic"), tr("Fixit Status")}); + setHeader({tr("Diagnostic")}); connectFileWatcher(); } @@ -192,7 +192,26 @@ void ClangToolsDiagnosticModel::addWatchedPath(const QString &path) m_filesWatcher->addPath(path); } -static QString createDiagnosticToolTipString(const Diagnostic &diagnostic) +static QString fixitStatus(FixitStatus status) +{ + switch (status) { + case FixitStatus::NotAvailable: + return ClangToolsDiagnosticModel::tr("No Fixits"); + case FixitStatus::NotScheduled: + return ClangToolsDiagnosticModel::tr("Not Scheduled"); + case FixitStatus::Invalidated: + return ClangToolsDiagnosticModel::tr("Invalidated"); + case FixitStatus::Scheduled: + return ClangToolsDiagnosticModel::tr("Scheduled"); + case FixitStatus::FailedToApply: + return ClangToolsDiagnosticModel::tr("Failed to Apply"); + case FixitStatus::Applied: + return ClangToolsDiagnosticModel::tr("Applied"); + } + return QString(); +} + +static QString createDiagnosticToolTipString(const Diagnostic &diagnostic, FixitStatus fixItStatus) { using StringPair = QPair; QList lines; @@ -226,6 +245,10 @@ static QString createDiagnosticToolTipString(const Diagnostic &diagnostic) QCoreApplication::translate("ClangTools::Diagnostic", "Location:"), createFullLocationString(diagnostic.location)); + lines << qMakePair( + QCoreApplication::translate("ClangTools::Diagnostic", "Fixit Status:"), + fixitStatus(fixItStatus)); + QString html = QLatin1String("" "" "\n" @@ -364,19 +387,8 @@ DiagnosticItem::~DiagnosticItem() Qt::ItemFlags DiagnosticItem::flags(int column) const { const Qt::ItemFlags itemFlags = TreeItem::flags(column); - if (column == DiagnosticView::FixItColumn) { - switch (m_fixitStatus) { - case FixitStatus::NotAvailable: - case FixitStatus::Applied: - case FixitStatus::FailedToApply: - case FixitStatus::Invalidated: - return itemFlags & ~Qt::ItemIsEnabled; - case FixitStatus::Scheduled: - case FixitStatus::NotScheduled: - return itemFlags | Qt::ItemIsUserCheckable; - } - } - + if (column == DiagnosticView::DiagnosticColumn) + return itemFlags | Qt::ItemIsUserCheckable; return itemFlags; } @@ -395,35 +407,7 @@ static QVariant iconData(const QString &type) QVariant DiagnosticItem::data(int column, int role) const { - if (column == DiagnosticView::FixItColumn) { - if (role == Qt::CheckStateRole) { - switch (m_fixitStatus) { - case FixitStatus::NotAvailable: - case FixitStatus::NotScheduled: - case FixitStatus::Invalidated: - case FixitStatus::Applied: - case FixitStatus::FailedToApply: - return Qt::Unchecked; - case FixitStatus::Scheduled: - return Qt::Checked; - } - } else if (role == Qt::DisplayRole) { - switch (m_fixitStatus) { - case FixitStatus::NotAvailable: - return ClangToolsDiagnosticModel::tr("No Fixits"); - case FixitStatus::NotScheduled: - return ClangToolsDiagnosticModel::tr("Not Scheduled"); - case FixitStatus::Invalidated: - return ClangToolsDiagnosticModel::tr("Invalidated"); - case FixitStatus::Scheduled: - return ClangToolsDiagnosticModel::tr("Scheduled"); - case FixitStatus::FailedToApply: - return ClangToolsDiagnosticModel::tr("Failed to Apply"); - case FixitStatus::Applied: - return ClangToolsDiagnosticModel::tr("Applied"); - } - } - } else if (column == DiagnosticView::DiagnosticColumn) { + if (column == DiagnosticView::DiagnosticColumn) { switch (role) { case Debugger::DetailedErrorView::LocationRole: return QVariant::fromValue(m_diagnostic.location); @@ -433,11 +417,34 @@ QVariant DiagnosticItem::data(int column, int role) const return QVariant::fromValue(m_diagnostic); case ClangToolsDiagnosticModel::TextRole: return m_diagnostic.description; + case ClangToolsDiagnosticModel::CheckBoxEnabledRole: + switch (m_fixitStatus) { + case FixitStatus::NotAvailable: + case FixitStatus::Applied: + case FixitStatus::FailedToApply: + case FixitStatus::Invalidated: + return false; + case FixitStatus::Scheduled: + case FixitStatus::NotScheduled: + return true; + } + case Qt::CheckStateRole: { + switch (m_fixitStatus) { + case FixitStatus::NotAvailable: + case FixitStatus::Invalidated: + case FixitStatus::Applied: + case FixitStatus::FailedToApply: + case FixitStatus::NotScheduled: + return Qt::Unchecked; + case FixitStatus::Scheduled: + return Qt::Checked; + } + } case Qt::DisplayRole: return QString("%1: %2").arg(lineColumnString(m_diagnostic.location), m_diagnostic.description); case Qt::ToolTipRole: - return createDiagnosticToolTipString(m_diagnostic); + return createDiagnosticToolTipString(m_diagnostic, m_fixitStatus); case Qt::DecorationRole: return iconData(m_diagnostic.type); default: @@ -450,7 +457,7 @@ QVariant DiagnosticItem::data(int column, int role) const bool DiagnosticItem::setData(int column, const QVariant &data, int role) { - if (column == DiagnosticView::FixItColumn && role == Qt::CheckStateRole) { + if (column == DiagnosticView::DiagnosticColumn && role == Qt::CheckStateRole) { if (m_fixitStatus != FixitStatus::Scheduled && m_fixitStatus != FixitStatus::NotScheduled) return false; @@ -510,9 +517,6 @@ static QString rangeString(const QVector &ranges) QVariant ExplainingStepItem::data(int column, int role) const { - if (column == DiagnosticView::FixItColumn) - return QVariant(); - if (column == DiagnosticView::DiagnosticColumn) { // DiagnosticColumn switch (role) { diff --git a/src/plugins/clangtools/clangtoolsdiagnosticmodel.h b/src/plugins/clangtools/clangtoolsdiagnosticmodel.h index 22d06992018..a8c4dcd011a 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticmodel.h +++ b/src/plugins/clangtools/clangtoolsdiagnosticmodel.h @@ -112,7 +112,11 @@ public: void addDiagnostics(const QList &diagnostics); QSet diagnostics() const; - enum ItemRole { DiagnosticRole = Debugger::DetailedErrorView::FullTextRole + 1, TextRole }; + enum ItemRole { + DiagnosticRole = Debugger::DetailedErrorView::FullTextRole + 1, + TextRole, + CheckBoxEnabledRole + }; void clear(); void removeWatchedPath(const QString &path); diff --git a/src/plugins/clangtools/clangtoolsdiagnosticview.cpp b/src/plugins/clangtools/clangtoolsdiagnosticview.cpp index 07bc7f397f4..54cea0c7766 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticview.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticview.cpp @@ -30,11 +30,13 @@ #include "clangtoolsutils.h" #include +#include #include #include #include +#include #include #include #include @@ -44,21 +46,22 @@ using namespace Debugger; namespace ClangTools { namespace Internal { -class ClickableFixItHeader : public QHeaderView +// A header view that puts a check box in front of a given column. +class HeaderWithCheckBoxInColumn : public QHeaderView { Q_OBJECT public: - ClickableFixItHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + HeaderWithCheckBoxInColumn(Qt::Orientation orientation, + int column = 0, + QWidget *parent = nullptr) : QHeaderView(orientation, parent) + , m_column(column) { setDefaultAlignment(Qt::AlignLeft); } - void setState(QFlags newState) - { - state = newState; - } + void setState(QFlags newState) { state = newState; } protected: void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override @@ -66,7 +69,7 @@ protected: painter->save(); QHeaderView::paintSection(painter, rect, logicalIndex); painter->restore(); - if (logicalIndex == DiagnosticView::FixItColumn) { + if (logicalIndex == m_column) { QStyleOptionButton option; const int side = sizeHint().height(); option.rect = QRect(rect.left() + 1, 1, side - 3, side - 3); @@ -83,32 +86,113 @@ protected: void mouseReleaseEvent(QMouseEvent *event) override { const int x = event->localPos().x(); - const int fixItColumnX = sectionPosition(DiagnosticView::FixItColumn); - const bool isWithinFixitCheckBox = x > fixItColumnX - && x < fixItColumnX + sizeHint().height() - 3; - if (isWithinFixitCheckBox) { + const int columnX = sectionPosition(m_column); + const bool isWithinCheckBox = x > columnX && x < columnX + sizeHint().height() - 3; + if (isWithinCheckBox) { state = (state != QStyle::State_On) ? QStyle::State_On : QStyle::State_Off; viewport()->update(); - emit fixItColumnClicked(state == QStyle::State_On); + emit checkBoxClicked(state == QStyle::State_On); return; // Avoid changing sort order } QHeaderView::mouseReleaseEvent(event); } signals: - void fixItColumnClicked(bool checked); + void checkBoxClicked(bool checked); private: + const int m_column = 0; QFlags state = QStyle::State_Off; }; +static QString getBaseStyleName() +{ + QStyle *style = QApplication::style(); + if (auto proxyStyle = qobject_cast(style)) + style = proxyStyle->baseStyle(); + return style->objectName(); +} + +// Paints the check box indicator disabled if requested by client. +class DiagnosticViewStyle : public ManhattanStyle +{ +public: + DiagnosticViewStyle(const QString &baseStyleName = getBaseStyleName()) + : ManhattanStyle(baseStyleName) + {} + + void setPaintCheckBoxDisabled(bool paintDisabledCheckbox) + { + m_paintCheckBoxDisabled = paintDisabledCheckbox; + } + + void drawPrimitive(PrimitiveElement element, + const QStyleOption *option, + QPainter *painter, + const QWidget *widget = nullptr) const final + { + if (element == QStyle::PE_IndicatorCheckBox && m_paintCheckBoxDisabled) { + if (const QStyleOptionButton *o = qstyleoption_cast( + option)) { + QStyleOptionButton myOption = *o; + myOption.palette.setCurrentColorGroup(QPalette::Disabled); + ManhattanStyle::drawPrimitive(element, &myOption, painter, widget); + return; + } + } + ManhattanStyle::drawPrimitive(element, option, painter, widget); + } + +private: + bool m_paintCheckBoxDisabled = false; +}; + +// A delegate that allows to paint a disabled check box (indicator). +// This is useful if the rest of the item should not be disabled. +class DiagnosticViewDelegate : public QStyledItemDelegate +{ + Q_OBJECT + +public: + DiagnosticViewDelegate(DiagnosticViewStyle *style) + : m_style(style) + {} + + void paint(QPainter *painter, + const QStyleOptionViewItem &option, + const QModelIndex &index) const final + { + const bool paintDisabled = !index.data(ClangToolsDiagnosticModel::CheckBoxEnabledRole) + .toBool(); + if (paintDisabled) + m_style->setPaintCheckBoxDisabled(true); + QStyledItemDelegate::paint(painter, option, index); + if (paintDisabled) + m_style->setPaintCheckBoxDisabled(false); + } + +private: + DiagnosticViewStyle *m_style = nullptr; +}; + DiagnosticView::DiagnosticView(QWidget *parent) : Debugger::DetailedErrorView(parent) + , m_style(new DiagnosticViewStyle) + , m_delegate(new DiagnosticViewDelegate(m_style)) { m_suppressAction = new QAction(tr("Suppress This Diagnostic"), this); connect(m_suppressAction, &QAction::triggered, this, &DiagnosticView::suppressCurrentDiagnostic); installEventFilter(this); + + setStyle(m_style); + setItemDelegate(m_delegate); +} + +DiagnosticView::~DiagnosticView() +{ + delete m_delegate; + delete m_style; } void DiagnosticView::suppressCurrentDiagnostic() @@ -219,11 +303,11 @@ void DiagnosticView::setSelectedFixItsCount(int fixItsCount) { if (m_ignoreSetSelectedFixItsCount) return; - auto *clickableFixItHeader = static_cast(header()); - clickableFixItHeader->setState(fixItsCount - ? (QStyle::State_NoChange | QStyle::State_On | QStyle::State_Off) - : QStyle::State_Off); - clickableFixItHeader->viewport()->update(); + auto checkBoxHeader = static_cast(header()); + checkBoxHeader->setState(fixItsCount + ? (QStyle::State_NoChange | QStyle::State_On | QStyle::State_Off) + : QStyle::State_Off); + checkBoxHeader->viewport()->update(); } void DiagnosticView::openEditorForCurrentIndex() @@ -240,25 +324,25 @@ void DiagnosticView::setModel(QAbstractItemModel *theProxyModel) const auto sourceModel = static_cast(proxyModel->sourceModel()); Debugger::DetailedErrorView::setModel(proxyModel); - auto *clickableFixItHeader = new ClickableFixItHeader(Qt::Horizontal, this); - connect(clickableFixItHeader, &ClickableFixItHeader::fixItColumnClicked, this, [=](bool checked) { + + auto *header = new HeaderWithCheckBoxInColumn(Qt::Horizontal, + DiagnosticView::DiagnosticColumn, + this); + connect(header, &HeaderWithCheckBoxInColumn::checkBoxClicked, this, [=](bool checked) { m_ignoreSetSelectedFixItsCount = true; sourceModel->rootItem()->forChildrenAtLevel(2, [&](::Utils::TreeItem *item) { auto diagnosticItem = static_cast(item); - diagnosticItem->setData(FixItColumn, + diagnosticItem->setData(DiagnosticView::DiagnosticColumn, checked ? Qt::Checked : Qt::Unchecked, Qt::CheckStateRole); }); m_ignoreSetSelectedFixItsCount = false; }); - setHeader(clickableFixItHeader); - clickableFixItHeader->setStretchLastSection(false); - clickableFixItHeader->setSectionResizeMode(0, QHeaderView::Stretch); - clickableFixItHeader->setSectionResizeMode(1, QHeaderView::ResizeToContents); - - const int fixitColumnWidth = clickableFixItHeader->sectionSizeHint(DiagnosticView::FixItColumn); - const int checkboxWidth = clickableFixItHeader->height(); - clickableFixItHeader->setMinimumSectionSize(fixitColumnWidth + 1.2 * checkboxWidth); + setHeader(header); + header->setSectionResizeMode(DiagnosticView::DiagnosticColumn, QHeaderView::Stretch); + const int columnWidth = header->sectionSizeHint(DiagnosticView::DiagnosticColumn); + const int checkboxWidth = header->height(); + header->setMinimumSectionSize(columnWidth + 1.2 * checkboxWidth); } } // namespace Internal diff --git a/src/plugins/clangtools/clangtoolsdiagnosticview.h b/src/plugins/clangtools/clangtoolsdiagnosticview.h index 7cb287ab391..8580b93b734 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticview.h +++ b/src/plugins/clangtools/clangtoolsdiagnosticview.h @@ -30,16 +30,16 @@ namespace ClangTools { namespace Internal { +class DiagnosticViewStyle; +class DiagnosticViewDelegate; + class DiagnosticView : public Debugger::DetailedErrorView { Q_OBJECT public: DiagnosticView(QWidget *parent = nullptr); - - enum ExtraColumn { - FixItColumn = DiagnosticColumn + 1, - }; + ~DiagnosticView() override; void setSelectedFixItsCount(int fixItsCount); @@ -59,6 +59,8 @@ private: void setModel(QAbstractItemModel *theProxyModel) override; QAction *m_suppressAction; + DiagnosticViewStyle *m_style = nullptr; + DiagnosticViewDelegate *m_delegate = nullptr; bool m_ignoreSetSelectedFixItsCount = false; }; From fd04104484a4e1936015e9b4b5f6c38d08fbbbdd Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 11 Feb 2019 13:04:28 +0100 Subject: [PATCH 14/55] ClangTools: Toggle only filtered fixits by header check box When toggling the check box in the diagnostic view header, toggle only the filtered items instead of all. This allows to easily check all the filtered items, which is useful for creating separate commits. Change-Id: I7589bc57e61a5560fd7de738a8ae63131a1a6fa6 Reviewed-by: Ivan Donchevskii --- .../clangtools/clangtoolsdiagnosticview.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/plugins/clangtools/clangtoolsdiagnosticview.cpp b/src/plugins/clangtools/clangtoolsdiagnosticview.cpp index 54cea0c7766..40fa9adc369 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticview.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticview.cpp @@ -321,8 +321,6 @@ void DiagnosticView::openEditorForCurrentIndex() void DiagnosticView::setModel(QAbstractItemModel *theProxyModel) { const auto proxyModel = static_cast(theProxyModel); - const auto sourceModel = static_cast(proxyModel->sourceModel()); - Debugger::DetailedErrorView::setModel(proxyModel); auto *header = new HeaderWithCheckBoxInColumn(Qt::Horizontal, @@ -330,12 +328,17 @@ void DiagnosticView::setModel(QAbstractItemModel *theProxyModel) this); connect(header, &HeaderWithCheckBoxInColumn::checkBoxClicked, this, [=](bool checked) { m_ignoreSetSelectedFixItsCount = true; - sourceModel->rootItem()->forChildrenAtLevel(2, [&](::Utils::TreeItem *item) { - auto diagnosticItem = static_cast(item); - diagnosticItem->setData(DiagnosticView::DiagnosticColumn, - checked ? Qt::Checked : Qt::Unchecked, - Qt::CheckStateRole); - }); + for (int i = 0, count = proxyModel->rowCount(); i < count; ++i) { + const QModelIndex filePathItemIndex = proxyModel->index(i, 0); + for (int j = 0, count = proxyModel->rowCount(filePathItemIndex); j < count; ++j) { + const QModelIndex proxyIndex = proxyModel->index(j, 0, filePathItemIndex); + const QModelIndex diagnosticItemIndex = proxyModel->mapToSource(proxyIndex); + auto item = static_cast(diagnosticItemIndex.internalPointer()); + item->setData(DiagnosticView::DiagnosticColumn, + checked ? Qt::Checked : Qt::Unchecked, + Qt::CheckStateRole); + } + } m_ignoreSetSelectedFixItsCount = false; }); setHeader(header); From e8509cd85884372f1ac8601222a818a3b64d1787 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 11 Feb 2019 14:16:14 +0100 Subject: [PATCH 15/55] ClangTools: Make space toggle the fixit state only ...instead of also going to the diagnostic location in the editor. This allows to toggle desired fixits without loosing focus (analyzer view -> editor widget). Change-Id: Ie8a0379ee1e811c01a2f0666f3627e3a9b537b04 Reviewed-by: Ivan Donchevskii --- src/plugins/clangtools/clangtoolsdiagnosticview.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plugins/clangtools/clangtoolsdiagnosticview.cpp b/src/plugins/clangtools/clangtoolsdiagnosticview.cpp index 40fa9adc369..11767825a11 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticview.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticview.cpp @@ -283,7 +283,6 @@ bool DiagnosticView::eventFilter(QObject *watched, QEvent *event) switch (key) { case Qt::Key_Return: case Qt::Key_Enter: - case Qt::Key_Space: openEditorForCurrentIndex(); } return true; From 45fd5a3f9e6e5e87a6478de55d1ab23a4f1f5d62 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 11 Feb 2019 14:53:21 +0100 Subject: [PATCH 16/55] ClangTools: Fix plugin tests The tests expected diagnostics from source files only, but provided also the ones from the header. FAIL! : ClangTools::Internal::ClangToolsUnitTests::testProject(qt-widgets-app.qbs) Compared values are not the same Actual (tool->diagnostics().count()): 4 Expected (expectedDiagCount) : 1 Loc: [/d1/creator/4.9/source/src/plugins/clangtools/clangtoolsunittests.cpp(133)] FAIL! : ClangTools::Internal::ClangToolsUnitTests::testProject(qt-widgets-app.pro) Compared values are not the same Actual (tool->diagnostics().count()): 4 Expected (expectedDiagCount) : 1 Loc: [/d1/creator/4.9/source/src/plugins/clangtools/clangtoolsunittests.cpp(133)] Change-Id: I9270ba8cb554af3a3254e21d55656e73bcae71dd Reviewed-by: Ivan Donchevskii --- src/plugins/clangtools/clangtool.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/clangtools/clangtool.cpp b/src/plugins/clangtools/clangtool.cpp index b02868cb5dc..52746080c16 100644 --- a/src/plugins/clangtools/clangtool.cpp +++ b/src/plugins/clangtools/clangtool.cpp @@ -46,6 +46,7 @@ #include #include +#include #include #include @@ -137,7 +138,10 @@ void ClangTool::initDiagnosticView() QSet ClangTool::diagnostics() const { - return m_diagnosticModel->diagnostics(); + return Utils::filtered(m_diagnosticModel->diagnostics(), [](const Diagnostic &diagnostic) { + using CppTools::ProjectFile; + return ProjectFile::isSource(ProjectFile::classify(diagnostic.location.filePath)); + }); } void ClangTool::onNewDiagnosticsAvailable(const QList &diagnostics) From d74ce63ac92edde8be2ce952d51a4db9d83ebef7 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Tue, 12 Feb 2019 09:29:15 +0100 Subject: [PATCH 17/55] ClangTools: Remove "note:" from the Explaining Steps text ...to make it consistent with the DiagnosticItem. Change-Id: I66ce41441058879ee293f9ae177e7b50d4856234 Reviewed-by: Ivan Donchevskii --- src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp | 11 +---------- src/plugins/clangtools/clangtoolslogfilereader.cpp | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp index 0614bce37db..85a9ade878b 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp @@ -501,15 +501,6 @@ ExplainingStepItem::ExplainingStepItem(const ExplainingStep &step, int index) , m_index(index) {} -// We expect something like "note: ..." -static QVariant iconForExplainingStepMessage(const QString &message) -{ - const int index = message.indexOf(':'); - if (index == -1) - return QVariant(); - return iconData(message.mid(0, index)); -} - static QString rangeString(const QVector &ranges) { return QString("%1-%2").arg(lineColumnString(ranges[0]), lineColumnString(ranges[1])); @@ -559,7 +550,7 @@ QVariant ExplainingStepItem::data(int column, int role) const case Qt::DecorationRole: if (m_step.isFixIt) return Utils::Icons::CODEMODEL_FIXIT.icon(); - return iconForExplainingStepMessage(m_step.message); + return Utils::Icons::INFO.icon(); default: return QVariant(); } diff --git a/src/plugins/clangtools/clangtoolslogfilereader.cpp b/src/plugins/clangtools/clangtoolslogfilereader.cpp index d2213d3304e..e8a6fbcc96a 100644 --- a/src/plugins/clangtools/clangtoolslogfilereader.cpp +++ b/src/plugins/clangtools/clangtoolslogfilereader.cpp @@ -94,7 +94,7 @@ static ExplainingStep buildChildDiagnostic(const CXDiagnostic cxDiagnostic) const CXSourceLocation cxLocation = clang_getDiagnosticLocation(cxDiagnostic); diagnosticStep.location = diagLocationFromSourceLocation(cxLocation); - diagnosticStep.message = type + ": " + fromCXString(clang_getDiagnosticSpelling(cxDiagnostic)); + diagnosticStep.message = fromCXString(clang_getDiagnosticSpelling(cxDiagnostic)); return diagnosticStep; } From 9e57c5db5d034b383ba6d5879e7f5d01fff0bb40 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Tue, 12 Feb 2019 09:46:25 +0100 Subject: [PATCH 18/55] CppTools: Allow to black list command line flags from project ...for debugging and workarounds if necessary. Change-Id: If76cddb59fbd8e96f42d141bd5e5d03cd88ab30f Reviewed-by: Ivan Donchevskii --- src/plugins/cpptools/compileroptionsbuilder.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 3f44a977c94..e5685dc5e05 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -41,6 +41,7 @@ #include #include +#include namespace CppTools { @@ -701,6 +702,10 @@ void CompilerOptionsBuilder::reset() // QMakeProject: -pipe -Whello -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC void CompilerOptionsBuilder::evaluateCompilerFlags() { + static QStringList userBlackList = QString::fromLocal8Bit( + qgetenv("QTC_CLANG_CMD_OPTIONS_BLACKLIST")) + .split(';', QString::SkipEmptyParts); + bool containsDriverMode = false; bool skipNext = false; for (const QString &option : m_projectPart.compilerFlags) { @@ -709,6 +714,9 @@ void CompilerOptionsBuilder::evaluateCompilerFlags() continue; } + if (userBlackList.contains(option)) + continue; + // Ignore warning flags as these interfere with our user-configured diagnostics. // Note that once "-w" is provided, no warnings will be emitted, even if "-Wall" follows. if (m_useBuildSystemWarnings == UseBuildSystemWarnings::No From 9ad1d54e1435fa02d117eaea4974e4ab95e19f24 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 12 Feb 2019 11:42:36 +0100 Subject: [PATCH 19/55] PerfProfiler: Give more verbose output on perfparser failures The exit code can be very helpful. Also, if we get the Timeout signal we want to know about it. Change-Id: I598c069adf15cddef19edabbde14fffe90f48e10 Reviewed-by: Christian Kandeler --- src/plugins/perfprofiler/perfdatareader.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/perfprofiler/perfdatareader.cpp b/src/plugins/perfprofiler/perfdatareader.cpp index 92541fd930e..68aa56c9621 100644 --- a/src/plugins/perfprofiler/perfdatareader.cpp +++ b/src/plugins/perfprofiler/perfdatareader.cpp @@ -77,7 +77,8 @@ PerfDataReader::PerfDataReader(QObject *parent) : QMessageBox::warning(Core::ICore::mainWindow(), tr("Perf data parser failed"), tr("The perf data parser failed to process all the samples. " - "Your trace is incomplete.")); + "Your trace is incomplete. The exit code was %1.") + .arg(exitCode)); } }); @@ -120,6 +121,7 @@ PerfDataReader::PerfDataReader(QObject *parent) : qWarning() << "Cannot send data to perfparser"; break; case QProcess::Timedout: + qWarning() << "QProcess::Timedout"; default: break; } From c2f57e51d6fc0656abdb0e6b27f021e8f8de57d7 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Mon, 11 Feb 2019 16:47:33 +0100 Subject: [PATCH 20/55] Squish: Small fixes in tst_APTW03 Change-Id: I3ef8de3c994b34368cbe218e8a5141e47e08723f Reviewed-by: Christian Stenger --- tests/system/suite_APTW/tst_APTW03/test.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/system/suite_APTW/tst_APTW03/test.py b/tests/system/suite_APTW/tst_APTW03/test.py index 6d2b8e4cccb..d0b4bfea811 100644 --- a/tests/system/suite_APTW/tst_APTW03/test.py +++ b/tests/system/suite_APTW/tst_APTW03/test.py @@ -93,10 +93,9 @@ def main(): if not virtualFunctionsAdded: checkLastBuild(True, False) if not openDocument("%s.Headers.%s\.h" % (projectName, className.lower())): - test.fail("Could not open %s.h - continuing." % className.lower()) + test.fatal("Could not open %s.h - continuing." % className.lower()) continue editor = getEditorForFileSuffix("%s.h" % className.lower()) - str(editor.plainText) placeCursorToLine(editor, "class %s.*" % className, True) snooze(4) # avoid timing issue with the parser invokeContextMenuItem(editor, "Refactor", "Insert Virtual Functions of Base Classes") @@ -110,7 +109,7 @@ def main(): "Verifying whether create() declaration has been added to the header.") if not openDocument("%s.Sources.%s\.cpp" % (projectName, className.lower())): - test.fail("Could not open %s.cpp - continuing." % className.lower()) + test.fatal("Could not open %s.cpp - continuing." % className.lower()) continue editor = getEditorForFileSuffix("%s.cpp" % className.lower()) modifiedContent = str(editor.plainText) From 0ec8a255d975e28ac5df4901bdfe22c4a7dabd52 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 12 Feb 2019 13:02:20 +0100 Subject: [PATCH 21/55] Update perfparser submodule We need a version that set stdin to binary on windows. Task-number: QTCREATORBUG-21971 Change-Id: I409c21d7362261b7babea7937612147a523443e3 Reviewed-by: Christian Kandeler --- src/tools/perfparser | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/perfparser b/src/tools/perfparser index 5222205d9ac..25ddba75f07 160000 --- a/src/tools/perfparser +++ b/src/tools/perfparser @@ -1 +1 @@ -Subproject commit 5222205d9acca1107507bfdeebaab194157012e0 +Subproject commit 25ddba75f0767ef1150c3896fde5c50bc65147c9 From c6415e265234ad7e3d97f23ef48ce7642a05f71e Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 29 Jan 2019 13:20:58 +0100 Subject: [PATCH 22/55] LSP: collect and execute quick fixes via shortcut Fixes: QTCREATORBUG-21802 Change-Id: I611fac1c3fc5b094816441e36492ed57706c98b8 Reviewed-by: Eike Ziller --- src/libs/languageserverprotocol/lsptypes.cpp | 25 ++- src/libs/languageserverprotocol/lsptypes.h | 2 + src/plugins/languageclient/client.cpp | 69 ++++++-- src/plugins/languageclient/client.h | 11 +- src/plugins/languageclient/languageclient.pro | 6 +- src/plugins/languageclient/languageclient.qbs | 6 +- ...cpp => languageclientcompletionassist.cpp} | 2 +- ...ist.h => languageclientcompletionassist.h} | 2 +- .../languageclient/languageclientquickfix.cpp | 166 ++++++++++++++++++ .../languageclient/languageclientquickfix.h | 45 +++++ src/plugins/texteditor/textdocument.cpp | 8 +- src/plugins/texteditor/textdocument.h | 1 + 12 files changed, 313 insertions(+), 30 deletions(-) rename src/plugins/languageclient/{languageclientcodeassist.cpp => languageclientcompletionassist.cpp} (99%) rename src/plugins/languageclient/{languageclientcodeassist.h => languageclientcompletionassist.h} (97%) create mode 100644 src/plugins/languageclient/languageclientquickfix.cpp create mode 100644 src/plugins/languageclient/languageclientquickfix.h diff --git a/src/libs/languageserverprotocol/lsptypes.cpp b/src/libs/languageserverprotocol/lsptypes.cpp index 41f5eb07bd6..2b3e2628b37 100644 --- a/src/libs/languageserverprotocol/lsptypes.cpp +++ b/src/libs/languageserverprotocol/lsptypes.cpp @@ -27,14 +27,15 @@ #include "lsputils.h" #include +#include +#include #include -#include -#include #include #include +#include +#include #include -#include namespace LanguageServerProtocol { @@ -340,6 +341,24 @@ Range::Range(const Position &start, const Position &end) setEnd(end); } +Range::Range(const QTextCursor &cursor) +{ + int line, character = 0; + Utils::Text::convertPosition(cursor.document(), cursor.selectionStart(), &line, &character); + if (line <= 0 || character <= 0) + return; + setStart(Position(line - 1, character - 1)); + Utils::Text::convertPosition(cursor.document(), cursor.selectionEnd(), &line, &character); + if (line <= 0 || character <= 0) + return; + setEnd(Position(line - 1, character - 1)); +} + +bool Range::overlaps(const Range &range) const +{ + return contains(range.start()) || contains(range.end()); +} + bool DocumentFilter::applies(const Utils::FileName &fileName, const Utils::MimeType &mimeType) const { if (Utils::optional _scheme = scheme()) { diff --git a/src/libs/languageserverprotocol/lsptypes.h b/src/libs/languageserverprotocol/lsptypes.h index 5175255a13d..9fe9a47a639 100644 --- a/src/libs/languageserverprotocol/lsptypes.h +++ b/src/libs/languageserverprotocol/lsptypes.h @@ -100,6 +100,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT Range : public JsonObject public: Range() = default; Range(const Position &start, const Position &end); + explicit Range(const QTextCursor &cursor); using JsonObject::JsonObject; // The range's start position. @@ -111,6 +112,7 @@ public: void setEnd(const Position &end) { insert(endKey, end); } bool contains(const Position &pos) const { return start() <= pos && pos <= end(); } + bool overlaps(const Range &range) const; bool isValid(QStringList *error) const override { return check(error, startKey) && check(error, endKey); } diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index d401f452ac6..5b1022c8086 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -69,6 +69,7 @@ class TextMark : public TextEditor::TextMark public: TextMark(const Utils::FileName &fileName, const Diagnostic &diag) : TextEditor::TextMark(fileName, diag.range().start().line() + 1, "lspmark") + , m_diagnostic(diag) { using namespace Utils; setLineAnnotation(diag.message()); @@ -81,11 +82,17 @@ public: setIcon(isError ? Icons::CODEMODEL_ERROR.icon() : Icons::CODEMODEL_WARNING.icon()); } + + const Diagnostic &diagnostic() const { return m_diagnostic; } + +private: + const Diagnostic m_diagnostic; }; Client::Client(BaseClientInterface *clientInterface) : m_id(Core::Id::fromString(QUuid::createUuid().toString())) , m_completionProvider(this) + , m_quickFixProvider(this) , m_clientInterface(clientInterface) { m_contentHandler.insert(JsonRpcMessageHandler::jsonRpcMimeType(), @@ -101,8 +108,10 @@ Client::~Client() using namespace TextEditor; // FIXME: instead of replacing the completion provider in the text document store the // completion provider as a prioritised list in the text document - for (TextDocument *document : m_resetCompletionProvider) + for (TextDocument *document : m_resetAssistProvider) { document->setCompletionAssistProvider(nullptr); + document->setQuickFixAssistProvider(nullptr); + } for (Core::IEditor * editor : Core::DocumentModel::editorsForOpenedDocuments()) { if (auto textEditor = qobject_cast(editor)) { TextEditorWidget *widget = textEditor->editorWidget(); @@ -192,10 +201,12 @@ void Client::openDocument(Core::IDocument *document) documentContentsChanged(document); }); if (textDocument) { - m_resetCompletionProvider << textDocument; + textDocument->completionAssistProvider(); + m_resetAssistProvider << textDocument; textDocument->setCompletionAssistProvider(&m_completionProvider); + textDocument->setQuickFixAssistProvider(&m_quickFixProvider); connect(textDocument, &QObject::destroyed, this, [this, textDocument]{ - m_resetCompletionProvider.remove(textDocument); + m_resetAssistProvider.remove(textDocument); }); if (BaseTextEditor *editor = BaseTextEditor::textEditorForDocument(textDocument)) { if (QPointer widget = editor->editorWidget()) { @@ -547,21 +558,6 @@ void Client::requestCodeActions(const DocumentUri &uri, const QList if (!doc) return; - const QString method(CodeActionRequest::methodName); - if (Utils::optional registered = m_dynamicCapabilities.isRegistered(method)) { - if (!registered.value()) - return; - const TextDocumentRegistrationOptions option( - m_dynamicCapabilities.option(method).toObject()); - if (option.isValid(nullptr) && !option.filterApplies(fileName)) - return; - } else { - Utils::variant provider - = m_serverCapabilities.codeActionProvider().value_or(false); - if (!(Utils::holds_alternative(provider) || Utils::get(provider))) - return; - } - CodeActionParams codeActionParams; CodeActionParams::CodeActionContext context; context.setDiagnostics(diagnostics); @@ -577,6 +573,32 @@ void Client::requestCodeActions(const DocumentUri &uri, const QList if (self) self->handleCodeActionResponse(response, uri); }); + requestCodeActions(request); +} + +void Client::requestCodeActions(const CodeActionRequest &request) +{ + if (!request.isValid(nullptr)) + return; + + const Utils::FileName fileName + = request.params().value_or(CodeActionParams()).textDocument().uri().toFileName(); + + const QString method(CodeActionRequest::methodName); + if (Utils::optional registered = m_dynamicCapabilities.isRegistered(method)) { + if (!registered.value()) + return; + const TextDocumentRegistrationOptions option( + m_dynamicCapabilities.option(method).toObject()); + if (option.isValid(nullptr) && !option.filterApplies(fileName)) + return; + } else { + Utils::variant provider + = m_serverCapabilities.codeActionProvider().value_or(false); + if (!(Utils::holds_alternative(provider) || Utils::get(provider))) + return; + } + sendContent(request); } @@ -682,6 +704,17 @@ bool Client::needsRestart(const BaseSettings *settings) const || m_languagFilter.filePattern != settings->m_languageFilter.filePattern; } +QList Client::diagnosticsAt(const DocumentUri &uri, const Range &range) const +{ + QList diagnostics; + for (const TextMark *mark : m_diagnostics[uri]) { + const Diagnostic diagnostic = mark->diagnostic(); + if (diagnostic.range().overlaps(range)) + diagnostics << diagnostic; + } + return diagnostics; +} + bool Client::start() { return m_clientInterface->start(); diff --git a/src/plugins/languageclient/client.h b/src/plugins/languageclient/client.h index 3d691f2bd25..2d92424f42d 100644 --- a/src/plugins/languageclient/client.h +++ b/src/plugins/languageclient/client.h @@ -26,7 +26,8 @@ #pragma once #include "dynamiccapabilities.h" -#include "languageclientcodeassist.h" +#include "languageclientcompletionassist.h" +#include "languageclientquickfix.h" #include "languageclientsettings.h" #include @@ -104,6 +105,7 @@ public: void requestCodeActions(const LanguageServerProtocol::DocumentUri &uri, const QList &diagnostics); + void requestCodeActions(const LanguageServerProtocol::CodeActionRequest &request); void handleCodeActionResponse(const LanguageServerProtocol::CodeActionRequest::Response &response, const LanguageServerProtocol::DocumentUri &uri); void executeCommand(const LanguageServerProtocol::Command &command); @@ -129,6 +131,10 @@ public: bool needsRestart(const BaseSettings *) const; + QList diagnosticsAt( + const LanguageServerProtocol::DocumentUri &uri, + const LanguageServerProtocol::Range &range) const; + bool start(); bool reset(); @@ -184,7 +190,8 @@ private: LanguageServerProtocol::ServerCapabilities m_serverCapabilities; DynamicCapabilities m_dynamicCapabilities; LanguageClientCompletionAssistProvider m_completionProvider; - QSet m_resetCompletionProvider; + LanguageClientQuickFixProvider m_quickFixProvider; + QSet m_resetAssistProvider; QHash m_highlightRequests; int m_restartsLeft = 5; QScopedPointer m_clientInterface; diff --git a/src/plugins/languageclient/languageclient.pro b/src/plugins/languageclient/languageclient.pro index 59c568a75b4..dbae20e1098 100644 --- a/src/plugins/languageclient/languageclient.pro +++ b/src/plugins/languageclient/languageclient.pro @@ -6,11 +6,12 @@ HEADERS += \ client.h \ dynamiccapabilities.h \ languageclient_global.h \ - languageclientcodeassist.h \ + languageclientcompletionassist.h \ languageclientinterface.h \ languageclientmanager.h \ languageclientoutline.h \ languageclientplugin.h \ + languageclientquickfix.h \ languageclientsettings.h \ languageclientutils.h @@ -18,11 +19,12 @@ HEADERS += \ SOURCES += \ client.cpp \ dynamiccapabilities.cpp \ - languageclientcodeassist.cpp \ + languageclientcompletionassist.cpp \ languageclientinterface.cpp \ languageclientmanager.cpp \ languageclientoutline.cpp \ languageclientplugin.cpp \ + languageclientquickfix.cpp \ languageclientsettings.cpp \ languageclientutils.cpp diff --git a/src/plugins/languageclient/languageclient.qbs b/src/plugins/languageclient/languageclient.qbs index 0da6a580766..0c2752ef5eb 100644 --- a/src/plugins/languageclient/languageclient.qbs +++ b/src/plugins/languageclient/languageclient.qbs @@ -20,16 +20,18 @@ QtcPlugin { "dynamiccapabilities.h", "languageclient.qrc", "languageclient_global.h", - "languageclientcodeassist.cpp", - "languageclientcodeassist.h", "languageclientinterface.cpp", "languageclientinterface.h", + "languageclientcompletionassist.cpp", + "languageclientcompletionassist.h", "languageclientmanager.cpp", "languageclientmanager.h", "languageclientoutline.cpp", "languageclientoutline.h", "languageclientplugin.cpp", "languageclientplugin.h", + "languageclientquickfix.cpp", + "languageclientquickfix.h", "languageclientsettings.cpp", "languageclientsettings.h", "languageclientutils.cpp", diff --git a/src/plugins/languageclient/languageclientcodeassist.cpp b/src/plugins/languageclient/languageclientcompletionassist.cpp similarity index 99% rename from src/plugins/languageclient/languageclientcodeassist.cpp rename to src/plugins/languageclient/languageclientcompletionassist.cpp index af0e9ce8920..1d9a10f6e4f 100644 --- a/src/plugins/languageclient/languageclientcodeassist.cpp +++ b/src/plugins/languageclient/languageclientcompletionassist.cpp @@ -23,7 +23,7 @@ ** ****************************************************************************/ -#include "languageclientcodeassist.h" +#include "languageclientcompletionassist.h" #include "client.h" #include "languageclientutils.h" diff --git a/src/plugins/languageclient/languageclientcodeassist.h b/src/plugins/languageclient/languageclientcompletionassist.h similarity index 97% rename from src/plugins/languageclient/languageclientcodeassist.h rename to src/plugins/languageclient/languageclientcompletionassist.h index 1410e67f821..f0ad95bc883 100644 --- a/src/plugins/languageclient/languageclientcodeassist.h +++ b/src/plugins/languageclient/languageclientcompletionassist.h @@ -48,7 +48,7 @@ public: private: QList m_triggerChars; int m_activationCharSequenceLength = 0; - Client *m_client; + Client *m_client = nullptr; // not owned }; } // namespace LanguageClient diff --git a/src/plugins/languageclient/languageclientquickfix.cpp b/src/plugins/languageclient/languageclientquickfix.cpp new file mode 100644 index 00000000000..def01b17d81 --- /dev/null +++ b/src/plugins/languageclient/languageclientquickfix.cpp @@ -0,0 +1,166 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "languageclientquickfix.h" + +#include "client.h" +#include "languageclientutils.h" + +#include +#include +#include +#include + + +using namespace LanguageServerProtocol; +using namespace TextEditor; + +namespace LanguageClient { + +class CodeActionQuickFixOperation : public QuickFixOperation +{ +public: + CodeActionQuickFixOperation(const CodeAction &action, Client *client) + : m_action(action) + , m_client(client) + { setDescription(action.title()); } + + void perform() override + { + if (Utils::optional edit = m_action.edit()) { + applyWorkspaceEdit(*edit); + } else if (Utils::optional command = m_action.command()) { + if (m_client) + m_client->executeCommand(*command); + } + } + +private: + CodeAction m_action; + QPointer m_client; +}; + +class CommandQuickFixOperation : public QuickFixOperation +{ +public: + CommandQuickFixOperation(const Command &command, Client *client) + : m_command(command) + , m_client(client) + { setDescription(command.title()); } + void perform() override + { + if (m_client) + m_client->executeCommand(m_command); + } + +private: + Command m_command; + QPointer m_client; +}; + +class LanguageClientQuickFixAssistProcessor : public IAssistProcessor +{ +public: + explicit LanguageClientQuickFixAssistProcessor(Client *client) : m_client(client) {} + bool running() override { return m_running; } + IAssistProposal *perform(const AssistInterface *interface) override; + +private: + void handleCodeActionResponse(const CodeActionRequest::Response &response); + + QSharedPointer m_assistInterface; + Client *m_client = nullptr; // not owned + bool m_running = false; +}; + +IAssistProposal *LanguageClientQuickFixAssistProcessor::perform(const AssistInterface *interface) +{ + m_assistInterface = QSharedPointer(interface); + + CodeActionParams params; + params.setContext({}); + QTextCursor cursor(interface->textDocument()); + cursor.setPosition(interface->position()); + if (cursor.atBlockEnd() || cursor.atBlockStart()) + cursor.select(QTextCursor::LineUnderCursor); + else + cursor.select(QTextCursor::WordUnderCursor); + if (!cursor.hasSelection()) + cursor.select(QTextCursor::LineUnderCursor); + Range range(cursor); + params.setRange(range); + auto uri = DocumentUri::fromFileName(Utils::FileName::fromString(interface->fileName())); + params.setTextDocument(uri); + CodeActionParams::CodeActionContext context; + context.setDiagnostics(m_client->diagnosticsAt(uri, range)); + params.setContext(context); + + CodeActionRequest request(params); + request.setResponseCallback([this](const CodeActionRequest::Response &response){ + handleCodeActionResponse(response); + }); + + m_client->requestCodeActions(request); + m_running = true; + return nullptr; +} + +void LanguageClientQuickFixAssistProcessor::handleCodeActionResponse( + const CodeActionRequest::Response &response) +{ + m_running = false; + if (const Utils::optional &error = response.error()) + m_client->log(*error); + QuickFixOperations ops; + if (const Utils::optional &_result = response.result()) { + const CodeActionResult &result = _result.value(); + if (auto list = Utils::get_if>>(&result)) { + for (const Utils::variant &item : *list) { + if (auto action = Utils::get_if(&item)) + ops << new CodeActionQuickFixOperation(*action, m_client); + else if (auto command = Utils::get_if(&item)) + ops << new CommandQuickFixOperation(*command, m_client); + } + } + } + setAsyncProposalAvailable(GenericProposal::createProposal(m_assistInterface.data(), ops)); +} + +LanguageClientQuickFixProvider::LanguageClientQuickFixProvider(Client *client) : m_client(client) +{ + QTC_CHECK(client); +} + +IAssistProvider::RunType LanguageClientQuickFixProvider::runType() const +{ + return Asynchronous; +} + +IAssistProcessor *LanguageClientQuickFixProvider::createProcessor() const +{ + return new LanguageClientQuickFixAssistProcessor(m_client); +} + +} // namespace LanguageClient diff --git a/src/plugins/languageclient/languageclientquickfix.h b/src/plugins/languageclient/languageclientquickfix.h new file mode 100644 index 00000000000..d9b322769fe --- /dev/null +++ b/src/plugins/languageclient/languageclientquickfix.h @@ -0,0 +1,45 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#pragma once + +#include + +namespace LanguageClient { + +class Client; + +class LanguageClientQuickFixProvider : public TextEditor::IAssistProvider +{ +public: + explicit LanguageClientQuickFixProvider(Client *client); + IAssistProvider::RunType runType() const override; + TextEditor::IAssistProcessor *createProcessor() const override; + +private: + Client *m_client = nullptr; // not owned +}; + +} // namespace LanguageClient diff --git a/src/plugins/texteditor/textdocument.cpp b/src/plugins/texteditor/textdocument.cpp index 98096daee9e..60af37cadb2 100644 --- a/src/plugins/texteditor/textdocument.cpp +++ b/src/plugins/texteditor/textdocument.cpp @@ -100,6 +100,7 @@ public: QTextDocument m_document; SyntaxHighlighter *m_highlighter = nullptr; CompletionAssistProvider *m_completionAssistProvider = nullptr; + IAssistProvider *m_quickFixProvider = nullptr; QScopedPointer m_indenter; bool m_fileIsReadOnly = false; @@ -388,9 +389,14 @@ CompletionAssistProvider *TextDocument::completionAssistProvider() const return d->m_completionAssistProvider; } +void TextDocument::setQuickFixAssistProvider(IAssistProvider *provider) const +{ + d->m_quickFixProvider = provider; +} + IAssistProvider *TextDocument::quickFixAssistProvider() const { - return nullptr; + return d->m_quickFixProvider; } void TextDocument::applyFontSettings() diff --git a/src/plugins/texteditor/textdocument.h b/src/plugins/texteditor/textdocument.h index b7c771e7481..580dc0dfeaf 100644 --- a/src/plugins/texteditor/textdocument.h +++ b/src/plugins/texteditor/textdocument.h @@ -140,6 +140,7 @@ public: void setCompletionAssistProvider(CompletionAssistProvider *provider); virtual CompletionAssistProvider *completionAssistProvider() const; + void setQuickFixAssistProvider(IAssistProvider *provider) const; virtual IAssistProvider *quickFixAssistProvider() const; void setTabSettings(const TextEditor::TabSettings &tabSettings); From 4b5841292e9c18fc4ced4bd69d2e5e80d65d0cdd Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 12 Feb 2019 11:40:15 +0100 Subject: [PATCH 23/55] LinuxDeviceProcess: Only look for processId on freshly started process There may be additional output being retrieved after the process is finished. We don't want that to get mangled by the processId mechanism. Change-Id: I9ad3146ace66288de1a4d8f1e94b9999719862c8 Reviewed-by: Christian Kandeler --- src/plugins/remotelinux/linuxdeviceprocess.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/remotelinux/linuxdeviceprocess.cpp b/src/plugins/remotelinux/linuxdeviceprocess.cpp index 1dac2e44082..004ca63d2a9 100644 --- a/src/plugins/remotelinux/linuxdeviceprocess.cpp +++ b/src/plugins/remotelinux/linuxdeviceprocess.cpp @@ -42,6 +42,9 @@ LinuxDeviceProcess::LinuxDeviceProcess(const QSharedPointer Date: Fri, 8 Feb 2019 12:31:53 +0100 Subject: [PATCH 24/55] ClangFormat: Improve formatting performance to reformat the whole file Allows not to cut the file and removes extra logic. To achieve that do "smart" formatting in one go by adding a trick with comment to keep the last line break and provide the proper indent for the current line together with formatting the code above. Disable adding namespace comments because it causes one extra formatting pass (not for the manual formatting). Change-Id: I8f644129606238c5438e636f56e6097ab149aa0c Reviewed-by: Marco Bubke --- .../clangformat/clangformatbaseindenter.cpp | 96 +++++++------------ .../clangformat/clangformatbaseindenter.h | 8 +- 2 files changed, 39 insertions(+), 65 deletions(-) diff --git a/src/plugins/clangformat/clangformatbaseindenter.cpp b/src/plugins/clangformat/clangformatbaseindenter.cpp index e8c6b5e9026..1b316bea55f 100644 --- a/src/plugins/clangformat/clangformatbaseindenter.cpp +++ b/src/plugins/clangformat/clangformatbaseindenter.cpp @@ -36,16 +36,27 @@ namespace ClangFormat { -static void adjustFormatStyleForLineBreak(clang::format::FormatStyle &style) +static void adjustFormatStyleForLineBreak(clang::format::FormatStyle &style, + ReplacementsToKeep replacementsToKeep) { + if (replacementsToKeep == ReplacementsToKeep::All) + return; + + style.MaxEmptyLinesToKeep = 2; + style.SortIncludes = false; + style.SortUsingDeclarations = false; + + // This is a separate pass, don't do it unless it's the full formatting. + style.FixNamespaceComments = false; + + if (replacementsToKeep == ReplacementsToKeep::IndentAndBefore) + return; + style.DisableFormat = false; style.ColumnLimit = 0; #ifdef KEEP_LINE_BREAKS_FOR_NON_EMPTY_LINES_BACKPORTED style.KeepLineBreaksForNonEmptyLines = true; #endif - style.MaxEmptyLinesToKeep = 2; - style.SortIncludes = false; - style.SortUsingDeclarations = false; } static llvm::StringRef clearExtraNewline(llvm::StringRef text) @@ -59,7 +70,6 @@ static clang::tooling::Replacements filteredReplacements( const clang::tooling::Replacements &replacements, int offset, int utf8LineLengthBeforeCursor, - int extraOffsetFromStartOfFile, int extraEmptySpaceOffset, ReplacementsToKeep replacementsToKeep) { @@ -69,14 +79,13 @@ static clang::tooling::Replacements filteredReplacements( const bool replacementDoesNotMatchRestriction = (replacementsToKeep == ReplacementsToKeep::OnlyIndent && replacementOffset != offset - 1) - || (replacementsToKeep == ReplacementsToKeep::OnlyBeforeIndent - && replacementOffset >= offset + utf8LineLengthBeforeCursor - 1); + || (replacementsToKeep == ReplacementsToKeep::IndentAndBefore + && replacementOffset > offset + utf8LineLengthBeforeCursor - 1); if (replacementDoesNotMatchRestriction) continue; if (replacementOffset >= offset - 1) replacementOffset += extraEmptySpaceOffset; - replacementOffset += extraOffsetFromStartOfFile; llvm::StringRef text = replacementsToKeep == ReplacementsToKeep::OnlyIndent ? clearExtraNewline(replacement.getReplacementText()) @@ -128,18 +137,6 @@ static void trimFirstNonEmptyBlock(const QTextBlock ¤tBlock) cursor.endEditBlock(); } -static void trimCurrentBlock(const QTextBlock ¤tBlock) -{ - if (currentBlock.text().trimmed().isEmpty()) { - // Clear the block containing only spaces - QTextCursor cursor(currentBlock); - cursor.beginEditBlock(); - cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); - cursor.removeSelectedText(); - cursor.endEditBlock(); - } -} - // Returns the total langth of previous lines with pure whitespace. static int previousEmptyLinesLength(const QTextBlock ¤tBlock) { @@ -167,7 +164,7 @@ static void modifyToIndentEmptyLines( if (firstNonWhitespace < 0 || closingParenBlock) { //This extra text works for the most cases. - QByteArray dummyText("a;"); + QByteArray dummyText("a;a;"); // Search for previous character QTextBlock prevBlock = block.previous(); @@ -198,8 +195,6 @@ static void modifyToIndentEmptyLines( } } -static const int kMaxLinesFromCurrentBlock = 200; - static Utils::LineColumn utf16LineColumn(const QTextBlock &block, int blockOffsetUtf8, const QByteArray &utf8Buffer, @@ -388,24 +383,21 @@ TextEditor::Replacements ClangFormatBaseIndenter::format( return format(cursor, cursorPositionInEditor); } -int ClangFormatBaseIndenter::indentBeforeCursor(const QTextBlock &block, - const QChar &typedChar, - int cursorPositionInEditor) +void ClangFormatBaseIndenter::indentBeforeCursor(const QTextBlock &block, + const QChar &typedChar, + int cursorPositionInEditor) { const QByteArray buffer = m_doc->toPlainText().toUtf8(); const int utf8Offset = Utils::Text::utf8NthLineOffset(m_doc, buffer, block.blockNumber() + 1); - QTC_ASSERT(utf8Offset >= 0, return cursorPositionInEditor;); + QTC_ASSERT(utf8Offset >= 0, return;); const TextEditor::Replacements toReplace = replacements(buffer, utf8Offset, 0, block, cursorPositionInEditor, - ReplacementsToKeep::OnlyBeforeIndent, + ReplacementsToKeep::IndentAndBefore, typedChar); applyReplacements(block, toReplace); - for (const TextEditor::Replacement &replacement : toReplace) - cursorPositionInEditor += replacement.text.length() - replacement.length; - return cursorPositionInEditor; } static bool doNotIndentInContext(QTextDocument *doc, int pos) @@ -466,11 +458,10 @@ void ClangFormatBaseIndenter::indentBlock(const QTextBlock &block, else cursorPositionInEditor = currentBlock.position(); - cursorPositionInEditor = indentBeforeCursor(currentBlock, typedChar, cursorPositionInEditor); - currentBlock = m_doc->findBlock(cursorPositionInEditor); + indentBeforeCursor(currentBlock, typedChar, cursorPositionInEditor); + return; } - trimCurrentBlock(currentBlock); const QByteArray buffer = m_doc->toPlainText().toUtf8(); const int utf8Offset = Utils::Text::utf8NthLineOffset(m_doc, buffer, block.blockNumber() + 1); QTC_ASSERT(utf8Offset >= 0, return;); @@ -496,7 +487,6 @@ void ClangFormatBaseIndenter::indentBlock(const QTextBlock &block, int ClangFormatBaseIndenter::indentFor(const QTextBlock &block, int cursorPositionInEditor) { trimFirstNonEmptyBlock(block); - trimCurrentBlock(block); const QByteArray buffer = m_doc->toPlainText().toUtf8(); const int utf8Offset = Utils::Text::utf8NthLineOffset(m_doc, buffer, block.blockNumber() + 1); QTC_ASSERT(utf8Offset >= 0, return 0;); @@ -571,8 +561,7 @@ static int formattingRangeStart(const QTextBlock ¤tBlock, { QTextBlock prevBlock = currentBlock.previous(); while ((prevBlock.position() > 0 || prevBlock.length() > 0) - && prevBlock.revision() != documentRevision - && (currentBlock.blockNumber() - prevBlock.blockNumber() < kMaxLinesFromCurrentBlock)) { + && prevBlock.revision() != documentRevision) { // Find the first block with not matching revision. prevBlock = prevBlock.previous(); } @@ -604,41 +593,27 @@ TextEditor::Replacements ClangFormatBaseIndenter::replacements(QByteArray buffer = block.text().left(cursorPositionInEditor - block.position()).toUtf8().size(); } - int extraOffsetFromStartOfFile = 0; int extraEmptySpaceOffset = 0; int rangeStart = 0; if (replacementsToKeep != ReplacementsToKeep::All) { - if (block.blockNumber() > kMaxLinesFromCurrentBlock) { - extraOffsetFromStartOfFile - = Utils::Text::utf8NthLineOffset(block.document(), - buffer, - block.blockNumber() - kMaxLinesFromCurrentBlock); - } - int endOffset = Utils::Text::utf8NthLineOffset(block.document(), - buffer, - block.blockNumber() - + kMaxLinesFromCurrentBlock); - if (endOffset == -1) - endOffset = buffer.size(); - - - if (replacementsToKeep == ReplacementsToKeep::OnlyBeforeIndent) + if (replacementsToKeep == ReplacementsToKeep::IndentAndBefore) rangeStart = formattingRangeStart(block, buffer, lastSaveRevision()); - buffer = buffer.mid(extraOffsetFromStartOfFile, endOffset - extraOffsetFromStartOfFile); - utf8Offset -= extraOffsetFromStartOfFile; - rangeStart -= extraOffsetFromStartOfFile; - extraEmptySpaceOffset = previousEmptyLinesLength(block); utf8Offset -= extraEmptySpaceOffset; buffer.remove(utf8Offset, extraEmptySpaceOffset); - if (replacementsToKeep == ReplacementsToKeep::OnlyIndent) - adjustFormatStyleForLineBreak(style); + adjustFormatStyleForLineBreak(style, replacementsToKeep); modifyToIndentEmptyLines(buffer, utf8Offset, utf8Length, block, secondTry); + + if (replacementsToKeep == ReplacementsToKeep::IndentAndBefore) { + buffer.insert(utf8Offset - 1, " //"); + extraEmptySpaceOffset -= 3; + utf8Offset += 3; + } } - if (replacementsToKeep != ReplacementsToKeep::OnlyBeforeIndent || utf8Offset < rangeStart) + if (replacementsToKeep != ReplacementsToKeep::IndentAndBefore || utf8Offset < rangeStart) rangeStart = utf8Offset; unsigned int rangeLength = static_cast(utf8Offset + utf8Length - rangeStart); @@ -658,7 +633,6 @@ TextEditor::Replacements ClangFormatBaseIndenter::replacements(QByteArray buffer filtered = filteredReplacements(clangReplacements, utf8Offset, utf8LineLengthBeforeCursor, - extraOffsetFromStartOfFile, extraEmptySpaceOffset, replacementsToKeep); } diff --git a/src/plugins/clangformat/clangformatbaseindenter.h b/src/plugins/clangformat/clangformatbaseindenter.h index 1a73d9bfbcf..2017f8ba646 100644 --- a/src/plugins/clangformat/clangformatbaseindenter.h +++ b/src/plugins/clangformat/clangformatbaseindenter.h @@ -31,7 +31,7 @@ namespace ClangFormat { -enum class ReplacementsToKeep { OnlyIndent, OnlyBeforeIndent, All }; +enum class ReplacementsToKeep { OnlyIndent, IndentAndBefore, All }; class ClangFormatBaseIndenter : public TextEditor::Indenter { @@ -79,9 +79,9 @@ private: void indent(const QTextCursor &cursor, const QChar &typedChar, int cursorPositionInEditor); void indentBlock(const QTextBlock &block, const QChar &typedChar, int cursorPositionInEditor); int indentFor(const QTextBlock &block, int cursorPositionInEditor); - int indentBeforeCursor(const QTextBlock &block, - const QChar &typedChar, - int cursorPositionInEditor); + void indentBeforeCursor(const QTextBlock &block, + const QChar &typedChar, + int cursorPositionInEditor); TextEditor::Replacements replacements(QByteArray buffer, int utf8Offset, int utf8Length, From ffd2fee26ab62003946ff89a2e365eae0b8214ac Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Tue, 12 Feb 2019 10:42:39 +0100 Subject: [PATCH 25/55] ClangTools: Use std::unique_ptr in DiagnosticView Change-Id: Iee8faf18178b6190b4d8b2bc2816ea00d680bd3f Reviewed-by: Ivan Donchevskii --- src/plugins/clangtools/clangtoolsdiagnosticview.cpp | 12 ++++-------- src/plugins/clangtools/clangtoolsdiagnosticview.h | 6 ++++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/plugins/clangtools/clangtoolsdiagnosticview.cpp b/src/plugins/clangtools/clangtoolsdiagnosticview.cpp index 11767825a11..33b002ced25 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticview.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticview.cpp @@ -178,22 +178,18 @@ private: DiagnosticView::DiagnosticView(QWidget *parent) : Debugger::DetailedErrorView(parent) , m_style(new DiagnosticViewStyle) - , m_delegate(new DiagnosticViewDelegate(m_style)) + , m_delegate(new DiagnosticViewDelegate(m_style.get())) { m_suppressAction = new QAction(tr("Suppress This Diagnostic"), this); connect(m_suppressAction, &QAction::triggered, this, &DiagnosticView::suppressCurrentDiagnostic); installEventFilter(this); - setStyle(m_style); - setItemDelegate(m_delegate); + setStyle(m_style.get()); + setItemDelegate(m_delegate.get()); } -DiagnosticView::~DiagnosticView() -{ - delete m_delegate; - delete m_style; -} +DiagnosticView::~DiagnosticView() = default; void DiagnosticView::suppressCurrentDiagnostic() { diff --git a/src/plugins/clangtools/clangtoolsdiagnosticview.h b/src/plugins/clangtools/clangtoolsdiagnosticview.h index 8580b93b734..6bc61351016 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticview.h +++ b/src/plugins/clangtools/clangtoolsdiagnosticview.h @@ -27,6 +27,8 @@ #include +#include + namespace ClangTools { namespace Internal { @@ -59,8 +61,8 @@ private: void setModel(QAbstractItemModel *theProxyModel) override; QAction *m_suppressAction; - DiagnosticViewStyle *m_style = nullptr; - DiagnosticViewDelegate *m_delegate = nullptr; + std::unique_ptr m_style; + std::unique_ptr m_delegate; bool m_ignoreSetSelectedFixItsCount = false; }; From 94425336fd29c9715aec10318e30b18ac8ba75ea Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 12 Feb 2019 13:11:15 +0100 Subject: [PATCH 26/55] ClangTools: Fix fall-through warning GCC does not realize that all cases lead to a return statement. Change-Id: I0b6fc7b349b8dc09b739f3423121d2e760c74701 Reviewed-by: Nikolai Kosjar --- src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp index 85a9ade878b..4225970221d 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp @@ -428,6 +428,7 @@ QVariant DiagnosticItem::data(int column, int role) const case FixitStatus::NotScheduled: return true; } + break; case Qt::CheckStateRole: { switch (m_fixitStatus) { case FixitStatus::NotAvailable: @@ -439,6 +440,7 @@ QVariant DiagnosticItem::data(int column, int role) const case FixitStatus::Scheduled: return Qt::Checked; } + break; } case Qt::DisplayRole: return QString("%1: %2").arg(lineColumnString(m_diagnostic.location), From 24c7a51811151588d9547202540c4be3a79431f4 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 12 Feb 2019 14:20:18 +0100 Subject: [PATCH 27/55] PerfProfiler: Delay closing of perfparser's write channel We don't want to do this from writeChunk() as that is directly connected to QProcess::bytesWritten. closeWriteChannel() can delete the QWindowsPipeWriter from which the bytesWritten signal originates, crashing the event loop when it tries to resolve further receivers for the same signal. Change-Id: I66737572a33db364f0f61542343f0fc8dc696787 Task-number: QTCREATORBUG-21971 Reviewed-by: Christian Kandeler --- src/plugins/perfprofiler/perfdatareader.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/perfprofiler/perfdatareader.cpp b/src/plugins/perfprofiler/perfdatareader.cpp index 68aa56c9621..3cfb7c2989c 100644 --- a/src/plugins/perfprofiler/perfdatareader.cpp +++ b/src/plugins/perfprofiler/perfdatareader.cpp @@ -351,8 +351,10 @@ void PerfDataReader::writeChunk() "Your trace is incomplete.")); } } - } else if (m_dataFinished) { - m_input.closeWriteChannel(); + } else if (m_dataFinished && m_input.isWritable()) { + // Delay closing of the write channel. Closing the channel from within a handler + // for bytesWritten() is dangerous on windows. + QTimer::singleShot(0, &m_input, &QProcess::closeWriteChannel); } } From c52c531c3f3ec84215caaae6ee720207c9f432cb Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 7 Feb 2019 12:20:39 +0100 Subject: [PATCH 28/55] UnitTests: Move symbolscollector data to sub directory Change-Id: Id1a123f745a0f092aeff9589aa146feb49d31661 Reviewed-by: Ivan Donchevskii --- .../builddependencycollector-test.cpp | 176 ++++++++++++++---- .../defines.h} | 0 .../unittest/data/symbolscollector/error.cpp | 1 + .../unittest/data/symbolscollector/header1.h | 3 + .../header2.h} | 0 .../unittest/data/symbolscollector/header3.h | 3 + .../include/unmodified_header.h} | 0 .../include/unmodified_header2.h} | 0 .../unittest/data/symbolscollector/main.cpp | 4 + .../unittest/data/symbolscollector/main2.cpp | 5 + .../simple.cpp} | 0 .../symbolkind.cpp} | 0 .../unmodified.cpp} | 2 +- .../unmodified2.cpp} | 2 +- .../data/symbolscollector/unmodified3.cpp | 9 + .../data/symbolscollector/unsaved.cpp | 1 + .../unittest/data/symbolscollector_header1.h | 3 - .../unittest/data/symbolscollector_header3.h | 3 - .../unittest/data/symbolscollector_main.cpp | 4 - .../unittest/data/symbolscollector_main2.cpp | 5 - .../data/symbolscollector_unmodified3.cpp | 9 - .../data/symbolscollector_unsaved.cpp | 1 - tests/unit/unittest/mocksymbolscollector.h | 3 +- tests/unit/unittest/symbolscollector-test.cpp | 176 ++++++++++-------- .../unit/unittest/usedmacrocollector-test.cpp | 64 +++---- 25 files changed, 300 insertions(+), 174 deletions(-) rename tests/unit/unittest/data/{symbolscollector_defines.h => symbolscollector/defines.h} (100%) create mode 100644 tests/unit/unittest/data/symbolscollector/error.cpp create mode 100644 tests/unit/unittest/data/symbolscollector/header1.h rename tests/unit/unittest/data/{symbolscollector_header2.h => symbolscollector/header2.h} (100%) create mode 100644 tests/unit/unittest/data/symbolscollector/header3.h rename tests/unit/unittest/data/{include/symbolscollector_unmodified_header.h => symbolscollector/include/unmodified_header.h} (100%) rename tests/unit/unittest/data/{include/symbolscollector_unmodified_header2.h => symbolscollector/include/unmodified_header2.h} (100%) create mode 100644 tests/unit/unittest/data/symbolscollector/main.cpp create mode 100644 tests/unit/unittest/data/symbolscollector/main2.cpp rename tests/unit/unittest/data/{symbolscollector_simple.cpp => symbolscollector/simple.cpp} (100%) rename tests/unit/unittest/data/{symbolscollector_symbolkind.cpp => symbolscollector/symbolkind.cpp} (100%) rename tests/unit/unittest/data/{symbolscollector_unmodified.cpp => symbolscollector/unmodified.cpp} (66%) rename tests/unit/unittest/data/{symbolscollector_unmodified2.cpp => symbolscollector/unmodified2.cpp} (66%) create mode 100644 tests/unit/unittest/data/symbolscollector/unmodified3.cpp create mode 100644 tests/unit/unittest/data/symbolscollector/unsaved.cpp delete mode 100644 tests/unit/unittest/data/symbolscollector_header1.h delete mode 100644 tests/unit/unittest/data/symbolscollector_header3.h delete mode 100644 tests/unit/unittest/data/symbolscollector_main.cpp delete mode 100644 tests/unit/unittest/data/symbolscollector_main2.cpp delete mode 100644 tests/unit/unittest/data/symbolscollector_unmodified3.cpp delete mode 100644 tests/unit/unittest/data/symbolscollector_unsaved.cpp diff --git a/tests/unit/unittest/builddependencycollector-test.cpp b/tests/unit/unittest/builddependencycollector-test.cpp index 04bb4720adc..aa46fc77bb1 100644 --- a/tests/unit/unittest/builddependencycollector-test.cpp +++ b/tests/unit/unittest/builddependencycollector-test.cpp @@ -302,48 +302,83 @@ TEST_F(BuildDependencyCollector, TopIncludesIgnoreMissingFile) TEST_F(BuildDependencyCollector, SourceFiles) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.collect(); ASSERT_THAT(emptyCollector.sourceFiles(), - UnorderedElementsAre(id(TESTDATA_DIR "/symbolscollector_main.cpp"), - id(TESTDATA_DIR "/symbolscollector_header1.h"), - id(TESTDATA_DIR "/symbolscollector_header2.h"))); + UnorderedElementsAre(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + id(TESTDATA_DIR "/symbolscollector/header1.h"), + id(TESTDATA_DIR "/symbolscollector/header2.h"))); } TEST_F(BuildDependencyCollector, MainFileInSourceFiles) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); ASSERT_THAT(emptyCollector.sourceFiles(), - ElementsAre(id(TESTDATA_DIR "/symbolscollector_main.cpp"))); + ElementsAre(id(TESTDATA_DIR "/symbolscollector/main.cpp"))); } TEST_F(BuildDependencyCollector, ResetMainFileInSourceFiles) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); ASSERT_THAT(emptyCollector.sourceFiles(), - ElementsAre(id(TESTDATA_DIR "/symbolscollector_main.cpp"))); + ElementsAre(id(TESTDATA_DIR "/symbolscollector/main.cpp"))); } TEST_F(BuildDependencyCollector, DontDuplicateSourceFiles) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.collect(); emptyCollector.collect(); ASSERT_THAT(emptyCollector.sourceFiles(), - UnorderedElementsAre(id(TESTDATA_DIR "/symbolscollector_main.cpp"), - id(TESTDATA_DIR "/symbolscollector_header1.h"), - id(TESTDATA_DIR "/symbolscollector_header2.h"))); + UnorderedElementsAre(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + id(TESTDATA_DIR "/symbolscollector/header1.h"), + id(TESTDATA_DIR "/symbolscollector/header2.h"))); } TEST_F(BuildDependencyCollector, ClearSourceFiles) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.clear(); @@ -352,7 +387,14 @@ TEST_F(BuildDependencyCollector, ClearSourceFiles) TEST_F(BuildDependencyCollector, ClearFileStatus) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.collect(); emptyCollector.clear(); @@ -362,7 +404,14 @@ TEST_F(BuildDependencyCollector, ClearFileStatus) TEST_F(BuildDependencyCollector, ClearUsedMacros) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_defines.h"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/defines.h"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.collect(); emptyCollector.clear(); @@ -372,7 +421,7 @@ TEST_F(BuildDependencyCollector, ClearUsedMacros) TEST_F(BuildDependencyCollector, ClearSourceDependencies) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main2.cpp"), {"cc", "-I" TESTDATA_DIR}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main2.cpp"), {"cc", "-I" TESTDATA_DIR}); emptyCollector.collect(); emptyCollector.clear(); @@ -382,7 +431,14 @@ TEST_F(BuildDependencyCollector, ClearSourceDependencies) TEST_F(BuildDependencyCollector, DontCollectSourceFilesAfterFilesAreCleared) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.clear(); emptyCollector.collect(); @@ -392,7 +448,14 @@ TEST_F(BuildDependencyCollector, DontCollectSourceFilesAfterFilesAreCleared) TEST_F(BuildDependencyCollector, DontCollectFileStatusAfterFilesAreCleared) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.clear(); emptyCollector.collect(); @@ -402,7 +465,14 @@ TEST_F(BuildDependencyCollector, DontCollectFileStatusAfterFilesAreCleared) TEST_F(BuildDependencyCollector, DontCollectUsedMacrosAfterFilesAreCleared) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.clear(); emptyCollector.collect(); @@ -413,7 +483,14 @@ TEST_F(BuildDependencyCollector, DontCollectUsedMacrosAfterFilesAreCleared) TEST_F(BuildDependencyCollector, DontCollectSourceDependenciesAfterFilesAreCleared) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.clear(); emptyCollector.collect(); @@ -423,7 +500,7 @@ TEST_F(BuildDependencyCollector, DontCollectSourceDependenciesAfterFilesAreClear TEST_F(BuildDependencyCollector, CollectUsedMacrosWithExternalDefine) { - auto fileId = id(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = id(TESTDATA_DIR "/symbolscollector/defines.h"); emptyCollector.addFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); emptyCollector.collect(); @@ -438,8 +515,15 @@ TEST_F(BuildDependencyCollector, CollectUsedMacrosWithExternalDefine) TEST_F(BuildDependencyCollector, CollectUsedMacrosWithoutExternalDefine) { - auto fileId = id(TESTDATA_DIR "/symbolscollector_defines.h"); - emptyCollector.addFile(fileId, {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + auto fileId = id(TESTDATA_DIR "/symbolscollector/defines.h"); + emptyCollector.addFile(fileId, + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.collect(); @@ -453,8 +537,15 @@ TEST_F(BuildDependencyCollector, CollectUsedMacrosWithoutExternalDefine) TEST_F(BuildDependencyCollector, DontCollectHeaderGuards) { - auto fileId = id(TESTDATA_DIR "/symbolscollector_defines.h"); - emptyCollector.addFile(fileId, {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + auto fileId = id(TESTDATA_DIR "/symbolscollector/defines.h"); + emptyCollector.addFile(fileId, + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.collect(); @@ -464,8 +555,15 @@ TEST_F(BuildDependencyCollector, DontCollectHeaderGuards) TEST_F(BuildDependencyCollector, DISABLED_DontCollectDynamicLibraryExports) { - auto fileId = id(TESTDATA_DIR "/symbolscollector_defines.h"); - emptyCollector.addFile(fileId, {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + auto fileId = id(TESTDATA_DIR "/symbolscollector/defines.h"); + emptyCollector.addFile(fileId, + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.collect(); @@ -475,23 +573,29 @@ TEST_F(BuildDependencyCollector, DISABLED_DontCollectDynamicLibraryExports) TEST_F(BuildDependencyCollector, CollectFileStatuses) { - emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc", "-I", TESTDATA_DIR "/builddependencycollector/external", "-I", TESTDATA_DIR "/builddependencycollector/project", "-isystem", TESTDATA_DIR "/builddependencycollector/system"}); + emptyCollector.addFile(id(TESTDATA_DIR "/symbolscollector/main.cpp"), + {"cc", + "-I", + TESTDATA_DIR "/builddependencycollector/external", + "-I", + TESTDATA_DIR "/builddependencycollector/project", + "-isystem", + TESTDATA_DIR "/builddependencycollector/system"}); emptyCollector.collect(); ASSERT_THAT(emptyCollector.fileStatuses(), - ElementsAre( - fileStatus(TESTDATA_DIR "/symbolscollector_main.cpp"), - fileStatus(TESTDATA_DIR "/symbolscollector_header1.h"), - fileStatus(TESTDATA_DIR "/symbolscollector_header2.h"))); + ElementsAre(fileStatus(TESTDATA_DIR "/symbolscollector/main.cpp"), + fileStatus(TESTDATA_DIR "/symbolscollector/header1.h"), + fileStatus(TESTDATA_DIR "/symbolscollector/header2.h"))); } TEST_F(BuildDependencyCollector, CollectSourceDependencies) { - auto mainFileId = id(TESTDATA_DIR "/symbolscollector_main2.cpp"); - auto header1FileId = id(TESTDATA_DIR "/symbolscollector_header1.h"); - auto header2FileId = id(TESTDATA_DIR "/symbolscollector_header2.h"); - auto header3FileId = id(TESTDATA_DIR "/symbolscollector_header3.h"); + auto mainFileId = id(TESTDATA_DIR "/symbolscollector/main2.cpp"); + auto header1FileId = id(TESTDATA_DIR "/symbolscollector/header1.h"); + auto header2FileId = id(TESTDATA_DIR "/symbolscollector/header2.h"); + auto header3FileId = id(TESTDATA_DIR "/symbolscollector/header3.h"); emptyCollector.addFile(mainFileId, {"cc", "-I" TESTDATA_DIR}); emptyCollector.collect(); diff --git a/tests/unit/unittest/data/symbolscollector_defines.h b/tests/unit/unittest/data/symbolscollector/defines.h similarity index 100% rename from tests/unit/unittest/data/symbolscollector_defines.h rename to tests/unit/unittest/data/symbolscollector/defines.h diff --git a/tests/unit/unittest/data/symbolscollector/error.cpp b/tests/unit/unittest/data/symbolscollector/error.cpp new file mode 100644 index 00000000000..5df7507e2de --- /dev/null +++ b/tests/unit/unittest/data/symbolscollector/error.cpp @@ -0,0 +1 @@ +ERROR diff --git a/tests/unit/unittest/data/symbolscollector/header1.h b/tests/unit/unittest/data/symbolscollector/header1.h new file mode 100644 index 00000000000..3d1ea4b7e04 --- /dev/null +++ b/tests/unit/unittest/data/symbolscollector/header1.h @@ -0,0 +1,3 @@ +#pragma once + +#include "header2.h" diff --git a/tests/unit/unittest/data/symbolscollector_header2.h b/tests/unit/unittest/data/symbolscollector/header2.h similarity index 100% rename from tests/unit/unittest/data/symbolscollector_header2.h rename to tests/unit/unittest/data/symbolscollector/header2.h diff --git a/tests/unit/unittest/data/symbolscollector/header3.h b/tests/unit/unittest/data/symbolscollector/header3.h new file mode 100644 index 00000000000..3d1ea4b7e04 --- /dev/null +++ b/tests/unit/unittest/data/symbolscollector/header3.h @@ -0,0 +1,3 @@ +#pragma once + +#include "header2.h" diff --git a/tests/unit/unittest/data/include/symbolscollector_unmodified_header.h b/tests/unit/unittest/data/symbolscollector/include/unmodified_header.h similarity index 100% rename from tests/unit/unittest/data/include/symbolscollector_unmodified_header.h rename to tests/unit/unittest/data/symbolscollector/include/unmodified_header.h diff --git a/tests/unit/unittest/data/include/symbolscollector_unmodified_header2.h b/tests/unit/unittest/data/symbolscollector/include/unmodified_header2.h similarity index 100% rename from tests/unit/unittest/data/include/symbolscollector_unmodified_header2.h rename to tests/unit/unittest/data/symbolscollector/include/unmodified_header2.h diff --git a/tests/unit/unittest/data/symbolscollector/main.cpp b/tests/unit/unittest/data/symbolscollector/main.cpp new file mode 100644 index 00000000000..d85f515e18b --- /dev/null +++ b/tests/unit/unittest/data/symbolscollector/main.cpp @@ -0,0 +1,4 @@ +#include "header1.h" + +void function(); + diff --git a/tests/unit/unittest/data/symbolscollector/main2.cpp b/tests/unit/unittest/data/symbolscollector/main2.cpp new file mode 100644 index 00000000000..c6971f02996 --- /dev/null +++ b/tests/unit/unittest/data/symbolscollector/main2.cpp @@ -0,0 +1,5 @@ +#include "header1.h" +#include "header3.h" + +void function(); + diff --git a/tests/unit/unittest/data/symbolscollector_simple.cpp b/tests/unit/unittest/data/symbolscollector/simple.cpp similarity index 100% rename from tests/unit/unittest/data/symbolscollector_simple.cpp rename to tests/unit/unittest/data/symbolscollector/simple.cpp diff --git a/tests/unit/unittest/data/symbolscollector_symbolkind.cpp b/tests/unit/unittest/data/symbolscollector/symbolkind.cpp similarity index 100% rename from tests/unit/unittest/data/symbolscollector_symbolkind.cpp rename to tests/unit/unittest/data/symbolscollector/symbolkind.cpp diff --git a/tests/unit/unittest/data/symbolscollector_unmodified.cpp b/tests/unit/unittest/data/symbolscollector/unmodified.cpp similarity index 66% rename from tests/unit/unittest/data/symbolscollector_unmodified.cpp rename to tests/unit/unittest/data/symbolscollector/unmodified.cpp index b7fe032e558..3f9791bfbdd 100644 --- a/tests/unit/unittest/data/symbolscollector_unmodified.cpp +++ b/tests/unit/unittest/data/symbolscollector/unmodified.cpp @@ -1,4 +1,4 @@ -#include +#include #define MAINFILE_DEFINE diff --git a/tests/unit/unittest/data/symbolscollector_unmodified2.cpp b/tests/unit/unittest/data/symbolscollector/unmodified2.cpp similarity index 66% rename from tests/unit/unittest/data/symbolscollector_unmodified2.cpp rename to tests/unit/unittest/data/symbolscollector/unmodified2.cpp index 6127587bd36..3f8256ced81 100644 --- a/tests/unit/unittest/data/symbolscollector_unmodified2.cpp +++ b/tests/unit/unittest/data/symbolscollector/unmodified2.cpp @@ -1,4 +1,4 @@ -#include +#include #define MAINFILE_DEFINE diff --git a/tests/unit/unittest/data/symbolscollector/unmodified3.cpp b/tests/unit/unittest/data/symbolscollector/unmodified3.cpp new file mode 100644 index 00000000000..3a5d8f9df99 --- /dev/null +++ b/tests/unit/unittest/data/symbolscollector/unmodified3.cpp @@ -0,0 +1,9 @@ +#include +#include + +#define MAINFILE_DEFINE + +void MainFileFunction() +{ + HeaderFunctionReferenceInMainFile(); +} diff --git a/tests/unit/unittest/data/symbolscollector/unsaved.cpp b/tests/unit/unittest/data/symbolscollector/unsaved.cpp new file mode 100644 index 00000000000..0d0dc9fd518 --- /dev/null +++ b/tests/unit/unittest/data/symbolscollector/unsaved.cpp @@ -0,0 +1 @@ +#include "generated_file.h" diff --git a/tests/unit/unittest/data/symbolscollector_header1.h b/tests/unit/unittest/data/symbolscollector_header1.h deleted file mode 100644 index bacb59d24a7..00000000000 --- a/tests/unit/unittest/data/symbolscollector_header1.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#include "symbolscollector_header2.h" diff --git a/tests/unit/unittest/data/symbolscollector_header3.h b/tests/unit/unittest/data/symbolscollector_header3.h deleted file mode 100644 index bacb59d24a7..00000000000 --- a/tests/unit/unittest/data/symbolscollector_header3.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#include "symbolscollector_header2.h" diff --git a/tests/unit/unittest/data/symbolscollector_main.cpp b/tests/unit/unittest/data/symbolscollector_main.cpp deleted file mode 100644 index 3a17b0a64ae..00000000000 --- a/tests/unit/unittest/data/symbolscollector_main.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include "symbolscollector_header1.h" - -void function(); - diff --git a/tests/unit/unittest/data/symbolscollector_main2.cpp b/tests/unit/unittest/data/symbolscollector_main2.cpp deleted file mode 100644 index 71ea20e2b65..00000000000 --- a/tests/unit/unittest/data/symbolscollector_main2.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "symbolscollector_header1.h" -#include "symbolscollector_header3.h" - -void function(); - diff --git a/tests/unit/unittest/data/symbolscollector_unmodified3.cpp b/tests/unit/unittest/data/symbolscollector_unmodified3.cpp deleted file mode 100644 index dbaabe7352d..00000000000 --- a/tests/unit/unittest/data/symbolscollector_unmodified3.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -#define MAINFILE_DEFINE - -void MainFileFunction() -{ - HeaderFunctionReferenceInMainFile(); -} diff --git a/tests/unit/unittest/data/symbolscollector_unsaved.cpp b/tests/unit/unittest/data/symbolscollector_unsaved.cpp deleted file mode 100644 index a57a4e69f74..00000000000 --- a/tests/unit/unittest/data/symbolscollector_unsaved.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "symbolscollector_generated_file.h" diff --git a/tests/unit/unittest/mocksymbolscollector.h b/tests/unit/unittest/mocksymbolscollector.h index b41a4bcd4ac..34cd71b17d4 100644 --- a/tests/unit/unittest/mocksymbolscollector.h +++ b/tests/unit/unittest/mocksymbolscollector.h @@ -47,8 +47,7 @@ public: ON_CALL(*this, setUnsavedFiles(_)).WillByDefault(Invoke(this, &MockSymbolsCollector::setHasUnsavedFiles)); } - MOCK_METHOD0(collectSymbols, - void()); + MOCK_METHOD0(collectSymbols, bool()); MOCK_METHOD2(setFile, void(ClangBackEnd::FilePathId filePathId, diff --git a/tests/unit/unittest/symbolscollector-test.cpp b/tests/unit/unittest/symbolscollector-test.cpp index 9ddb7c461b9..2d7025373f3 100644 --- a/tests/unit/unittest/symbolscollector-test.cpp +++ b/tests/unit/unittest/symbolscollector-test.cpp @@ -178,7 +178,7 @@ protected: TEST_F(SymbolsCollector, CollectSymbolName) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_simple.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/simple.cpp"), {"cc"}); collector.collectSymbols(); @@ -188,7 +188,7 @@ TEST_F(SymbolsCollector, CollectSymbolName) TEST_F(SymbolsCollector, SymbolMatchesLocation) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_simple.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/simple.cpp"), {"cc"}); collector.collectSymbols(); @@ -200,7 +200,7 @@ TEST_F(SymbolsCollector, SymbolMatchesLocation) TEST_F(SymbolsCollector, OtherSymboldMatchesLocation) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_simple.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/simple.cpp"), {"cc"}); collector.collectSymbols(); @@ -212,20 +212,19 @@ TEST_F(SymbolsCollector, OtherSymboldMatchesLocation) TEST_F(SymbolsCollector, CollectFilePath) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_simple.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/simple.cpp"), {"cc"}); collector.collectSymbols(); ASSERT_THAT(collector.sourceLocations(), - Contains( - AllOf(Field(&SourceLocationEntry::filePathId, - filePathId(TESTDATA_DIR"/symbolscollector_simple.cpp")), - Field(&SourceLocationEntry::kind, SourceLocationKind::Declaration)))); + Contains(AllOf(Field(&SourceLocationEntry::filePathId, + filePathId(TESTDATA_DIR "/symbolscollector/simple.cpp")), + Field(&SourceLocationEntry::kind, SourceLocationKind::Declaration)))); } TEST_F(SymbolsCollector, CollectLineColumn) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_simple.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/simple.cpp"), {"cc"}); collector.collectSymbols(); @@ -237,7 +236,7 @@ TEST_F(SymbolsCollector, CollectLineColumn) TEST_F(SymbolsCollector, CollectReference) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_simple.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/simple.cpp"), {"cc"}); collector.collectSymbols(); @@ -249,7 +248,7 @@ TEST_F(SymbolsCollector, CollectReference) TEST_F(SymbolsCollector, ReferencedSymboldMatchesLocation) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_simple.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/simple.cpp"), {"cc"}); collector.collectSymbols(); @@ -261,10 +260,9 @@ TEST_F(SymbolsCollector, ReferencedSymboldMatchesLocation) TEST_F(SymbolsCollector, DISABLED_ON_WINDOWS(CollectInUnsavedFile)) { - FileContainers unsaved{{{TESTDATA_DIR, "symbolscollector_generated_file.h"}, - "void function();", - {}}}; - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_unsaved.cpp"), {"cc"}); + FileContainers unsaved{ + {{TESTDATA_DIR, "symbolscollector/generated_file.h"}, "void function();", {}}}; + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/unsaved.cpp"), {"cc"}); collector.setUnsavedFiles(std::move(unsaved)); collector.collectSymbols(); @@ -275,48 +273,48 @@ TEST_F(SymbolsCollector, DISABLED_ON_WINDOWS(CollectInUnsavedFile)) TEST_F(SymbolsCollector, SourceFiles) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.collectSymbols(); ASSERT_THAT(collector.sourceFiles(), - UnorderedElementsAre(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), - filePathId(TESTDATA_DIR "/symbolscollector_header1.h"), - filePathId(TESTDATA_DIR "/symbolscollector_header2.h"))); + UnorderedElementsAre(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), + filePathId(TESTDATA_DIR "/symbolscollector/header1.h"), + filePathId(TESTDATA_DIR "/symbolscollector/header2.h"))); } TEST_F(SymbolsCollector, MainFileInSourceFiles) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); ASSERT_THAT(collector.sourceFiles(), - ElementsAre(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"))); + ElementsAre(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"))); } TEST_F(SymbolsCollector, ResetMainFileInSourceFiles) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); ASSERT_THAT(collector.sourceFiles(), - ElementsAre(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"))); + ElementsAre(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"))); } TEST_F(SymbolsCollector, DontDuplicateSourceFiles) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.collectSymbols(); collector.collectSymbols(); ASSERT_THAT(collector.sourceFiles(), - UnorderedElementsAre(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), - filePathId(TESTDATA_DIR "/symbolscollector_header1.h"), - filePathId(TESTDATA_DIR "/symbolscollector_header2.h"))); + UnorderedElementsAre(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), + filePathId(TESTDATA_DIR "/symbolscollector/header1.h"), + filePathId(TESTDATA_DIR "/symbolscollector/header2.h"))); } TEST_F(SymbolsCollector, ClearSourceFiles) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); @@ -325,7 +323,7 @@ TEST_F(SymbolsCollector, ClearSourceFiles) TEST_F(SymbolsCollector, ClearSymbols) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.collectSymbols(); collector.clear(); @@ -335,7 +333,7 @@ TEST_F(SymbolsCollector, ClearSymbols) TEST_F(SymbolsCollector, ClearSourceLocations) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.collectSymbols(); collector.clear(); @@ -345,7 +343,7 @@ TEST_F(SymbolsCollector, ClearSourceLocations) TEST_F(SymbolsCollector, ClearFileStatus) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.collectSymbols(); collector.clear(); @@ -355,7 +353,7 @@ TEST_F(SymbolsCollector, ClearFileStatus) TEST_F(SymbolsCollector, ClearUsedMacros) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_defines.h"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/defines.h"), {"cc"}); collector.collectSymbols(); collector.clear(); @@ -365,7 +363,8 @@ TEST_F(SymbolsCollector, ClearUsedMacros) TEST_F(SymbolsCollector, ClearSourceDependencies) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main2.cpp"), {"cc", "-I" TESTDATA_DIR}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main2.cpp"), + {"cc", "-I" TESTDATA_DIR}); collector.collectSymbols(); collector.clear(); @@ -375,7 +374,7 @@ TEST_F(SymbolsCollector, ClearSourceDependencies) TEST_F(SymbolsCollector, DontCollectSymbolsAfterFilesAreCleared) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); collector.collectSymbols(); @@ -385,7 +384,7 @@ TEST_F(SymbolsCollector, DontCollectSymbolsAfterFilesAreCleared) TEST_F(SymbolsCollector, DontCollectSourceFilesAfterFilesAreCleared) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); collector.collectSymbols(); @@ -395,7 +394,7 @@ TEST_F(SymbolsCollector, DontCollectSourceFilesAfterFilesAreCleared) TEST_F(SymbolsCollector, DontCollectFileStatusAfterFilesAreCleared) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); collector.collectSymbols(); @@ -405,7 +404,7 @@ TEST_F(SymbolsCollector, DontCollectFileStatusAfterFilesAreCleared) TEST_F(SymbolsCollector, DontCollectUsedMacrosAfterFilesAreCleared) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); collector.collectSymbols(); @@ -415,7 +414,7 @@ TEST_F(SymbolsCollector, DontCollectUsedMacrosAfterFilesAreCleared) TEST_F(SymbolsCollector, DontCollectSourceDependenciesAfterFilesAreCleared) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); collector.collectSymbols(); @@ -425,7 +424,7 @@ TEST_F(SymbolsCollector, DontCollectSourceDependenciesAfterFilesAreCleared) TEST_F(SymbolsCollector, CollectUsedMacrosWithExternalDefine) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -442,7 +441,7 @@ TEST_F(SymbolsCollector, CollectUsedMacrosWithExternalDefine) TEST_F(SymbolsCollector, CollectUsedMacrosWithoutExternalDefine) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc"}); collector.collectSymbols(); @@ -459,7 +458,7 @@ TEST_F(SymbolsCollector, CollectUsedMacrosWithoutExternalDefine) TEST_F(SymbolsCollector, DontCollectHeaderGuards) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc"}); collector.collectSymbols(); @@ -470,7 +469,7 @@ TEST_F(SymbolsCollector, DontCollectHeaderGuards) TEST_F(SymbolsCollector, DISABLED_DontCollectDynamicLibraryExports) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc"}); collector.collectSymbols(); @@ -481,7 +480,7 @@ TEST_F(SymbolsCollector, DISABLED_DontCollectDynamicLibraryExports) TEST_F(SymbolsCollector, CollectMacroDefinitionSourceLocation) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -492,7 +491,7 @@ TEST_F(SymbolsCollector, CollectMacroDefinitionSourceLocation) TEST_F(SymbolsCollector, CollectMacroUsageInIfNotDefSourceLocation) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -503,7 +502,7 @@ TEST_F(SymbolsCollector, CollectMacroUsageInIfNotDefSourceLocation) TEST_F(SymbolsCollector, CollectSecondMacroUsageInIfNotDefSourceLocation) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -514,7 +513,7 @@ TEST_F(SymbolsCollector, CollectSecondMacroUsageInIfNotDefSourceLocation) TEST_F(SymbolsCollector, CollectMacroUsageCompilerArgumentSourceLocation) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -525,7 +524,7 @@ TEST_F(SymbolsCollector, CollectMacroUsageCompilerArgumentSourceLocation) TEST_F(SymbolsCollector, CollectMacroUsageInIfDefSourceLocation) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -536,7 +535,7 @@ TEST_F(SymbolsCollector, CollectMacroUsageInIfDefSourceLocation) TEST_F(SymbolsCollector, CollectMacroUsageInDefinedSourceLocation) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -547,7 +546,7 @@ TEST_F(SymbolsCollector, CollectMacroUsageInDefinedSourceLocation) TEST_F(SymbolsCollector, CollectMacroUsageExpansionSourceLocation) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -558,7 +557,7 @@ TEST_F(SymbolsCollector, CollectMacroUsageExpansionSourceLocation) TEST_F(SymbolsCollector, CollectMacroUsageUndefSourceLocation) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -569,7 +568,7 @@ TEST_F(SymbolsCollector, CollectMacroUsageUndefSourceLocation) TEST_F(SymbolsCollector, CollectMacroUsageBuiltInSourceLocation) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -580,7 +579,7 @@ TEST_F(SymbolsCollector, CollectMacroUsageBuiltInSourceLocation) TEST_F(SymbolsCollector, CollectMacroDefinitionSymbols) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc"}); collector.collectSymbols(); @@ -591,7 +590,7 @@ TEST_F(SymbolsCollector, CollectMacroDefinitionSymbols) TEST_F(SymbolsCollector, CollectMacroBuiltInSymbols) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc"}); collector.collectSymbols(); @@ -602,7 +601,7 @@ TEST_F(SymbolsCollector, CollectMacroBuiltInSymbols) TEST_F(SymbolsCollector, CollectMacroCompilerArgumentSymbols) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.setFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collectSymbols(); @@ -613,24 +612,23 @@ TEST_F(SymbolsCollector, CollectMacroCompilerArgumentSymbols) TEST_F(SymbolsCollector, CollectFileStatuses) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"); collector.setFile(fileId, {"cc"}); collector.collectSymbols(); ASSERT_THAT(collector.fileStatuses(), - ElementsAre( - fileStatus(TESTDATA_DIR "/symbolscollector_main.cpp"), - fileStatus(TESTDATA_DIR "/symbolscollector_header1.h"), - fileStatus(TESTDATA_DIR "/symbolscollector_header2.h"))); + ElementsAre(fileStatus(TESTDATA_DIR "/symbolscollector/main.cpp"), + fileStatus(TESTDATA_DIR "/symbolscollector/header1.h"), + fileStatus(TESTDATA_DIR "/symbolscollector/header2.h"))); } TEST_F(SymbolsCollector, CollectSourceDependencies) { - auto mainFileId = filePathId(TESTDATA_DIR "/symbolscollector_main2.cpp"); - auto header1FileId = filePathId(TESTDATA_DIR "/symbolscollector_header1.h"); - auto header2FileId = filePathId(TESTDATA_DIR "/symbolscollector_header2.h"); - auto header3FileId = filePathId(TESTDATA_DIR "/symbolscollector_header3.h"); + auto mainFileId = filePathId(TESTDATA_DIR "/symbolscollector/main2.cpp"); + auto header1FileId = filePathId(TESTDATA_DIR "/symbolscollector/header1.h"); + auto header2FileId = filePathId(TESTDATA_DIR "/symbolscollector/header2.h"); + auto header3FileId = filePathId(TESTDATA_DIR "/symbolscollector/header3.h"); collector.setFile(mainFileId, {"cc", "-I" TESTDATA_DIR}); collector.collectSymbols(); @@ -644,7 +642,7 @@ TEST_F(SymbolsCollector, CollectSourceDependencies) TEST_F(SymbolsCollector, IsClassSymbol) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_symbolkind.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/symbolkind.cpp"), {"cc"}); collector.collectSymbols(); @@ -658,7 +656,7 @@ TEST_F(SymbolsCollector, IsClassSymbol) TEST_F(SymbolsCollector, IsStructSymbol) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_symbolkind.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/symbolkind.cpp"), {"cc"}); collector.collectSymbols(); @@ -672,7 +670,7 @@ TEST_F(SymbolsCollector, IsStructSymbol) TEST_F(SymbolsCollector, IsEnumerationSymbol) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_symbolkind.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/symbolkind.cpp"), {"cc"}); collector.collectSymbols(); @@ -690,7 +688,7 @@ TEST_F(SymbolsCollector, IsEnumerationSymbol) TEST_F(SymbolsCollector, IsUnionSymbol) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_symbolkind.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/symbolkind.cpp"), {"cc"}); collector.collectSymbols(); @@ -704,7 +702,7 @@ TEST_F(SymbolsCollector, IsUnionSymbol) TEST_F(SymbolsCollector, DISABLED_ON_NON_WINDOWS(IsMsvcInterfaceSymbol)) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_symbolkind.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/symbolkind.cpp"), {"cc"}); collector.collectSymbols(); @@ -718,7 +716,7 @@ TEST_F(SymbolsCollector, DISABLED_ON_NON_WINDOWS(IsMsvcInterfaceSymbol)) TEST_F(SymbolsCollector, IsFunctionSymbol) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_symbolkind.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/symbolkind.cpp"), {"cc"}); collector.collectSymbols(); @@ -731,7 +729,7 @@ TEST_F(SymbolsCollector, IsFunctionSymbol) TEST_F(SymbolsCollector, IsVariableSymbol) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_symbolkind.cpp"), {"cc"}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/symbolkind.cpp"), {"cc"}); collector.collectSymbols(); @@ -744,7 +742,8 @@ TEST_F(SymbolsCollector, IsVariableSymbol) TEST_F(SymbolsCollector, IndexUnmodifiedHeaderFilesAtFirstRun) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_unmodified.cpp"), {"cc", "-I", {TESTDATA_DIR, "/include"}}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/unmodified.cpp"), + {"cc", "-I", {TESTDATA_DIR, "/symbolscollector/include"}}); collector.collectSymbols(); @@ -761,10 +760,12 @@ TEST_F(SymbolsCollector, IndexUnmodifiedHeaderFilesAtFirstRun) TEST_F(SymbolsCollector, DontIndexUnmodifiedHeaderFilesAtSecondRun) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_unmodified.cpp"), {"cc", "-I", {TESTDATA_DIR, "/include"}}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/unmodified.cpp"), + {"cc", "-I", {TESTDATA_DIR, "/symbolscollector/include"}}); collector.collectSymbols(); collector.clear(); - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_unmodified2.cpp"), {"cc", "-I", {TESTDATA_DIR, "/include"}}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/unmodified2.cpp"), + {"cc", "-I", {TESTDATA_DIR, "/symbolscollector/include"}}); collector.collectSymbols(); @@ -780,11 +781,13 @@ TEST_F(SymbolsCollector, DontIndexUnmodifiedHeaderFilesAtSecondRun) TEST_F(SymbolsCollector, DontIndexUnmodifiedHeaderFilesAtTouchHeader) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_unmodified3.cpp"), {"cc", "-I", {TESTDATA_DIR, "/include"}}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/unmodified3.cpp"), + {"cc", "-I", {TESTDATA_DIR, "/symbolscollector/include"}}); collector.collectSymbols(); collector.clear(); - touchFile(TESTDATA_DIR "/include/symbolscollector_unmodified_header2.h"); - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_unmodified3.cpp"), {"cc", "-I", {TESTDATA_DIR, "/include"}}); + touchFile(TESTDATA_DIR "/symbolscollector/include/unmodified_header2.h"); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/unmodified3.cpp"), + {"cc", "-I", {TESTDATA_DIR, "/symbolscollector/include"}}); collector.collectSymbols(); @@ -800,7 +803,8 @@ TEST_F(SymbolsCollector, DontIndexUnmodifiedHeaderFilesAtTouchHeader) TEST_F(SymbolsCollector, DontIndexSystemIncudes) { - collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector_unmodified.cpp"), {"cc", "-isystem", {TESTDATA_DIR, "/include"}}); + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/unmodified.cpp"), + {"cc", "-isystem", {TESTDATA_DIR, "/symbolscollector/include"}}); collector.collectSymbols(); @@ -815,4 +819,22 @@ TEST_F(SymbolsCollector, DontIndexSystemIncudes) Not(Contains(HasSymbolName("HEADER_DEFINE"))), Not(Contains(HasSymbolName("FunctionLocalVariable"))))); } + +TEST_F(SymbolsCollector, CollectReturnsFalseIfThereIsError) +{ + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/error.cpp"), {"cc"}); + + bool success = collector.collectSymbols(); + + ASSERT_FALSE(success); } + +TEST_F(SymbolsCollector, CollectReturnsFalseIfThereIsNoError) +{ + collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); + + bool success = collector.collectSymbols(); + + ASSERT_TRUE(success); +} +} // namespace diff --git a/tests/unit/unittest/usedmacrocollector-test.cpp b/tests/unit/unittest/usedmacrocollector-test.cpp index 40f8e8e744c..61f7fcd99b4 100644 --- a/tests/unit/unittest/usedmacrocollector-test.cpp +++ b/tests/unit/unittest/usedmacrocollector-test.cpp @@ -79,48 +79,48 @@ protected: TEST_F(UsedMacroAndSourcesCollector, SourceFiles) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.collect(); ASSERT_THAT(collector.sourceFiles(), - UnorderedElementsAre(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), - filePathId(TESTDATA_DIR "/symbolscollector_header1.h"), - filePathId(TESTDATA_DIR "/symbolscollector_header2.h"))); + UnorderedElementsAre(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), + filePathId(TESTDATA_DIR "/symbolscollector/header1.h"), + filePathId(TESTDATA_DIR "/symbolscollector/header2.h"))); } TEST_F(UsedMacroAndSourcesCollector, MainFileInSourceFiles) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); ASSERT_THAT(collector.sourceFiles(), - ElementsAre(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"))); + ElementsAre(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"))); } TEST_F(UsedMacroAndSourcesCollector, ResetMainFileInSourceFiles) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); ASSERT_THAT(collector.sourceFiles(), - ElementsAre(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"))); + ElementsAre(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"))); } TEST_F(UsedMacroAndSourcesCollector, DontDuplicateSourceFiles) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.collect(); collector.collect(); ASSERT_THAT(collector.sourceFiles(), - UnorderedElementsAre(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), - filePathId(TESTDATA_DIR "/symbolscollector_header1.h"), - filePathId(TESTDATA_DIR "/symbolscollector_header2.h"))); + UnorderedElementsAre(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), + filePathId(TESTDATA_DIR "/symbolscollector/header1.h"), + filePathId(TESTDATA_DIR "/symbolscollector/header2.h"))); } TEST_F(UsedMacroAndSourcesCollector, ClearSourceFiles) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); @@ -129,7 +129,7 @@ TEST_F(UsedMacroAndSourcesCollector, ClearSourceFiles) TEST_F(UsedMacroAndSourcesCollector, ClearFileStatus) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.collect(); collector.clear(); @@ -139,7 +139,7 @@ TEST_F(UsedMacroAndSourcesCollector, ClearFileStatus) TEST_F(UsedMacroAndSourcesCollector, ClearUsedMacros) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_defines.h"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/defines.h"), {"cc"}); collector.collect(); collector.clear(); @@ -149,7 +149,7 @@ TEST_F(UsedMacroAndSourcesCollector, ClearUsedMacros) TEST_F(UsedMacroAndSourcesCollector, ClearSourceDependencies) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main2.cpp"), {"cc", "-I" TESTDATA_DIR}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main2.cpp"), {"cc", "-I" TESTDATA_DIR}); collector.collect(); collector.clear(); @@ -159,7 +159,7 @@ TEST_F(UsedMacroAndSourcesCollector, ClearSourceDependencies) TEST_F(UsedMacroAndSourcesCollector, DontCollectSourceFilesAfterFilesAreCleared) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); collector.collect(); @@ -169,7 +169,7 @@ TEST_F(UsedMacroAndSourcesCollector, DontCollectSourceFilesAfterFilesAreCleared) TEST_F(UsedMacroAndSourcesCollector, DontCollectFileStatusAfterFilesAreCleared) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); collector.collect(); @@ -179,7 +179,7 @@ TEST_F(UsedMacroAndSourcesCollector, DontCollectFileStatusAfterFilesAreCleared) TEST_F(UsedMacroAndSourcesCollector, DontCollectUsedMacrosAfterFilesAreCleared) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); collector.collect(); @@ -190,7 +190,7 @@ TEST_F(UsedMacroAndSourcesCollector, DontCollectUsedMacrosAfterFilesAreCleared) TEST_F(UsedMacroAndSourcesCollector, DontCollectSourceDependenciesAfterFilesAreCleared) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.clear(); collector.collect(); @@ -200,7 +200,7 @@ TEST_F(UsedMacroAndSourcesCollector, DontCollectSourceDependenciesAfterFilesAreC TEST_F(UsedMacroAndSourcesCollector, CollectUsedMacrosWithExternalDefine) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.addFile(fileId, {"cc", "-DCOMPILER_ARGUMENT"}); collector.collect(); @@ -217,7 +217,7 @@ TEST_F(UsedMacroAndSourcesCollector, CollectUsedMacrosWithExternalDefine) TEST_F(UsedMacroAndSourcesCollector, CollectUsedMacrosWithoutExternalDefine) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.addFile(fileId, {"cc"}); collector.collect(); @@ -234,7 +234,7 @@ TEST_F(UsedMacroAndSourcesCollector, CollectUsedMacrosWithoutExternalDefine) TEST_F(UsedMacroAndSourcesCollector, DontCollectHeaderGuards) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.addFile(fileId, {"cc"}); collector.collect(); @@ -245,7 +245,7 @@ TEST_F(UsedMacroAndSourcesCollector, DontCollectHeaderGuards) TEST_F(UsedMacroAndSourcesCollector, DISABLED_DontCollectDynamicLibraryExports) { - auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); + auto fileId = filePathId(TESTDATA_DIR "/symbolscollector/defines.h"); collector.addFile(fileId, {"cc"}); collector.collect(); @@ -256,23 +256,23 @@ TEST_F(UsedMacroAndSourcesCollector, DISABLED_DontCollectDynamicLibraryExports) TEST_F(UsedMacroAndSourcesCollector, CollectFileStatuses) { - collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector_main.cpp"), {"cc"}); + collector.addFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"}); collector.collect(); ASSERT_THAT(collector.fileStatuses(), ElementsAre( - fileStatus(TESTDATA_DIR "/symbolscollector_main.cpp"), - fileStatus(TESTDATA_DIR "/symbolscollector_header1.h"), - fileStatus(TESTDATA_DIR "/symbolscollector_header2.h"))); + fileStatus(TESTDATA_DIR "/symbolscollector/main.cpp"), + fileStatus(TESTDATA_DIR "/symbolscollector/header1.h"), + fileStatus(TESTDATA_DIR "/symbolscollector/header2.h"))); } TEST_F(UsedMacroAndSourcesCollector, CollectSourceDependencies) { - auto mainFileId = filePathId(TESTDATA_DIR "/symbolscollector_main2.cpp"); - auto header1FileId = filePathId(TESTDATA_DIR "/symbolscollector_header1.h"); - auto header2FileId = filePathId(TESTDATA_DIR "/symbolscollector_header2.h"); - auto header3FileId = filePathId(TESTDATA_DIR "/symbolscollector_header3.h"); + auto mainFileId = filePathId(TESTDATA_DIR "/symbolscollector/main2.cpp"); + auto header1FileId = filePathId(TESTDATA_DIR "/symbolscollector/header1.h"); + auto header2FileId = filePathId(TESTDATA_DIR "/symbolscollector/header2.h"); + auto header3FileId = filePathId(TESTDATA_DIR "/symbolscollector/header3.h"); collector.addFile(mainFileId, {"cc", "-I" TESTDATA_DIR}); collector.collect(); From 97ec6b9ad2bb6859516928db0f98b740d8f72590 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 7 Feb 2019 12:20:51 +0100 Subject: [PATCH 29/55] ClangRefactoring: Don't update the database if something went wrong We can get an compile error. In that case we should not update the database. In the future we should have a mechanism to report about the database state. Task-number: QTCREATORBUG-21949 Change-Id: I203346d536b007171f7bf255047409431c44a85a Reviewed-by: Ivan Donchevskii --- .../collectmacrossourcefilecallbacks.cpp | 2 - .../source/collectsymbolsaction.h | 10 +- .../source/indexdataconsumer.cpp | 24 ++--- .../source/indexdataconsumer.h | 5 - .../source/symbolindexer.cpp | 57 +++++----- .../source/symbolscollector.cpp | 8 +- .../source/symbolscollector.h | 2 +- .../source/symbolscollectorinterface.h | 2 +- tests/unit/unittest/symbolindexer-test.cpp | 100 ++++++++++++++++++ 9 files changed, 154 insertions(+), 56 deletions(-) diff --git a/src/tools/clangrefactoringbackend/source/collectmacrossourcefilecallbacks.cpp b/src/tools/clangrefactoringbackend/source/collectmacrossourcefilecallbacks.cpp index d0d107e45e2..d96fb05026c 100644 --- a/src/tools/clangrefactoringbackend/source/collectmacrossourcefilecallbacks.cpp +++ b/src/tools/clangrefactoringbackend/source/collectmacrossourcefilecallbacks.cpp @@ -45,8 +45,6 @@ bool CollectMacrosSourceFileCallbacks::handleBeginSource(clang::CompilerInstance compilerInstance.getPreprocessorPtr(), m_sourcesManager); - compilerInstance.getLangOpts().DelayedTemplateParsing = false; - compilerInstance.getPreprocessorPtr()->SetSuppressIncludeNotFoundError(true); compilerInstance.getPreprocessorPtr()->addPPCallbacks(std::move(callbacks)); return true; diff --git a/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h b/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h index d90a08ded97..0d79bf24a36 100644 --- a/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h +++ b/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h @@ -34,6 +34,7 @@ #include +#include #include #include @@ -52,19 +53,22 @@ public: std::unique_ptr newASTConsumer(clang::CompilerInstance &compilerInstance, llvm::StringRef inFile); private: - class WrappedIndexAction : public clang::WrapperFrontendAction + class WrappedIndexAction final : public clang::WrapperFrontendAction { public: - WrappedIndexAction(std::shared_ptr m_indexDataConsumer, + WrappedIndexAction(std::shared_ptr indexDataConsumer, clang::index::IndexingOptions indexingOptions) : clang::WrapperFrontendAction( - clang::index::createIndexingAction(m_indexDataConsumer, indexingOptions, nullptr)) + clang::index::createIndexingAction(indexDataConsumer, indexingOptions, nullptr)) {} std::unique_ptr CreateASTConsumer(clang::CompilerInstance &compilerInstance, llvm::StringRef inFile) override { + compilerInstance.getPreprocessor().SetSuppressIncludeNotFoundError(true); + compilerInstance.getLangOpts().DelayedTemplateParsing = false; + return WrapperFrontendAction::CreateASTConsumer(compilerInstance, inFile); } }; diff --git a/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp b/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp index 2c190c6a101..35cc0df219e 100644 --- a/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp +++ b/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp @@ -124,33 +124,23 @@ bool IndexDataConsumer::skipSymbol(clang::FileID fileId, clang::index::SymbolRol return isParsedDeclaration || isParsedReference; } -bool IndexDataConsumer::handleDeclOccurence(const clang::Decl *declaration, - clang::index::SymbolRoleSet symbolRoles, - llvm::ArrayRef symbolRelations, -#if LLVM_VERSION_MAJOR >= 7 - clang::SourceLocation sourceLocation, -#else - clang::FileID fileId, - unsigned offset, -#endif - IndexDataConsumer::ASTNodeInfo astNodeInfo) +bool IndexDataConsumer::handleDeclOccurence( + const clang::Decl *declaration, + clang::index::SymbolRoleSet symbolRoles, + llvm::ArrayRef /*symbolRelations*/, + clang::SourceLocation sourceLocation, + IndexDataConsumer::ASTNodeInfo /*astNodeInfo*/) { const auto *namedDeclaration = clang::dyn_cast(declaration); if (namedDeclaration) { if (!namedDeclaration->getIdentifier()) return true; -#if LLVM_VERSION_MAJOR >= 7 if (skipSymbol(m_sourceManager->getFileID(sourceLocation), symbolRoles)) -#else - if (skipSymbol(fileId, symbolRoles)) -#endif + return true; SymbolIndex globalId = toSymbolIndex(declaration->getCanonicalDecl()); -#if LLVM_VERSION_MAJOR < 7 - clang::SourceLocation sourceLocation = m_sourceManager->getLocForStartOfFile(fileId).getLocWithOffset(offset); -#endif auto found = m_symbolEntries.find(globalId); if (found == m_symbolEntries.end()) { diff --git a/src/tools/clangrefactoringbackend/source/indexdataconsumer.h b/src/tools/clangrefactoringbackend/source/indexdataconsumer.h index 8524455574c..6db595391c3 100644 --- a/src/tools/clangrefactoringbackend/source/indexdataconsumer.h +++ b/src/tools/clangrefactoringbackend/source/indexdataconsumer.h @@ -55,12 +55,7 @@ public: bool handleDeclOccurence(const clang::Decl *declaration, clang::index::SymbolRoleSet symbolRoles, llvm::ArrayRef symbolRelations, -#if LLVM_VERSION_MAJOR >= 7 clang::SourceLocation sourceLocation, -#else - clang::FileID fileId, - unsigned offset, -#endif ASTNodeInfo astNodeInfo) override; private: diff --git a/src/tools/clangrefactoringbackend/source/symbolindexer.cpp b/src/tools/clangrefactoringbackend/source/symbolindexer.cpp index d3d0f4a505e..2b4e90cf5a4 100644 --- a/src/tools/clangrefactoringbackend/source/symbolindexer.cpp +++ b/src/tools/clangrefactoringbackend/source/symbolindexer.cpp @@ -117,27 +117,32 @@ void SymbolIndexer::updateProjectPart(ProjectPartContainer &&projectPart) std::vector symbolIndexerTask; symbolIndexerTask.reserve(projectPart.sourcePathIds.size()); for (FilePathId sourcePathId : projectPart.sourcePathIds) { - auto indexing = [projectPartId, arguments = commandLineBuilder.commandLine, sourcePathId, this]( - SymbolsCollectorInterface &symbolsCollector) { + auto indexing = [projectPartId, + arguments = commandLineBuilder.commandLine, + sourcePathId, + this](SymbolsCollectorInterface &symbolsCollector) { symbolsCollector.setFile(sourcePathId, arguments); - symbolsCollector.collectSymbols(); + bool success = symbolsCollector.collectSymbols(); - Sqlite::ImmediateTransaction transaction{m_transactionInterface}; + if (success) { + Sqlite::ImmediateTransaction transaction{m_transactionInterface}; - m_symbolStorage.addSymbolsAndSourceLocations(symbolsCollector.symbols(), - symbolsCollector.sourceLocations()); + m_symbolStorage.addSymbolsAndSourceLocations(symbolsCollector.symbols(), + symbolsCollector.sourceLocations()); - m_symbolStorage.updateProjectPartSources(projectPartId, symbolsCollector.sourceFiles()); + m_symbolStorage.updateProjectPartSources(projectPartId, + symbolsCollector.sourceFiles()); - m_buildDependencyStorage.insertOrUpdateUsedMacros(symbolsCollector.usedMacros()); + m_buildDependencyStorage.insertOrUpdateUsedMacros(symbolsCollector.usedMacros()); - m_buildDependencyStorage.insertFileStatuses(symbolsCollector.fileStatuses()); + m_buildDependencyStorage.insertFileStatuses(symbolsCollector.fileStatuses()); - m_buildDependencyStorage.insertOrUpdateSourceDependencies( - symbolsCollector.sourceDependencies()); + m_buildDependencyStorage.insertOrUpdateSourceDependencies( + symbolsCollector.sourceDependencies()); - transaction.commit(); + transaction.commit(); + } }; symbolIndexerTask.emplace_back(sourcePathId, projectPartId, std::move(indexing)); @@ -185,27 +190,31 @@ void SymbolIndexer::updateChangedPath(FilePathId filePathId, CommandLineBuilder builder{artefact, artefact.toolChainArguments, InputFileType::Source, {}, {}, pchPath}; - auto indexing = [projectPartId = artefact.projectPartId, arguments=builder.commandLine, filePathId, this]( - SymbolsCollectorInterface &symbolsCollector) { + auto indexing = [projectPartId = artefact.projectPartId, + arguments = builder.commandLine, + filePathId, + this](SymbolsCollectorInterface &symbolsCollector) { symbolsCollector.setFile(filePathId, arguments); - symbolsCollector.collectSymbols(); + bool success = symbolsCollector.collectSymbols(); - Sqlite::ImmediateTransaction transaction{m_transactionInterface}; + if (success) { + Sqlite::ImmediateTransaction transaction{m_transactionInterface}; - m_symbolStorage.addSymbolsAndSourceLocations(symbolsCollector.symbols(), - symbolsCollector.sourceLocations()); + m_symbolStorage.addSymbolsAndSourceLocations(symbolsCollector.symbols(), + symbolsCollector.sourceLocations()); - m_symbolStorage.updateProjectPartSources(projectPartId, symbolsCollector.sourceFiles()); + m_symbolStorage.updateProjectPartSources(projectPartId, symbolsCollector.sourceFiles()); - m_buildDependencyStorage.insertOrUpdateUsedMacros(symbolsCollector.usedMacros()); + m_buildDependencyStorage.insertOrUpdateUsedMacros(symbolsCollector.usedMacros()); - m_buildDependencyStorage.insertFileStatuses(symbolsCollector.fileStatuses()); + m_buildDependencyStorage.insertFileStatuses(symbolsCollector.fileStatuses()); - m_buildDependencyStorage.insertOrUpdateSourceDependencies( - symbolsCollector.sourceDependencies()); + m_buildDependencyStorage.insertOrUpdateSourceDependencies( + symbolsCollector.sourceDependencies()); - transaction.commit(); + transaction.commit(); + } }; symbolIndexerTask.emplace_back(filePathId, optionalArtefact->projectPartId, std::move(indexing)); diff --git a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp index afa01de2e9c..2669a3d8767 100644 --- a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp +++ b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp @@ -121,12 +121,14 @@ newFrontendActionFactory(Factory *consumerFactory, new FrontendActionFactoryAdapter(consumerFactory, sourceFileCallbacks)); } -void SymbolsCollector::collectSymbols() +bool SymbolsCollector::collectSymbols() { auto tool = m_clangTool.createTool(); - tool.run(ClangBackEnd::newFrontendActionFactory(&m_collectSymbolsAction, - &m_collectMacrosSourceFileCallbacks).get()); + auto actionFactory = ClangBackEnd::newFrontendActionFactory(&m_collectSymbolsAction, + &m_collectMacrosSourceFileCallbacks); + + return tool.run(actionFactory.get()) != 1; } void SymbolsCollector::doInMainThreadAfterFinished() diff --git a/src/tools/clangrefactoringbackend/source/symbolscollector.h b/src/tools/clangrefactoringbackend/source/symbolscollector.h index beb610d1901..b37647e9694 100644 --- a/src/tools/clangrefactoringbackend/source/symbolscollector.h +++ b/src/tools/clangrefactoringbackend/source/symbolscollector.h @@ -52,7 +52,7 @@ public: void clear() override; - void collectSymbols() override; + bool collectSymbols() override; void doInMainThreadAfterFinished() override; diff --git a/src/tools/clangrefactoringbackend/source/symbolscollectorinterface.h b/src/tools/clangrefactoringbackend/source/symbolscollectorinterface.h index 0b7e00509df..94b31423718 100644 --- a/src/tools/clangrefactoringbackend/source/symbolscollectorinterface.h +++ b/src/tools/clangrefactoringbackend/source/symbolscollectorinterface.h @@ -44,7 +44,7 @@ class SymbolsCollectorInterface : public ProcessorInterface { public: virtual void setFile(FilePathId filePathId, const Utils::SmallStringVector &arguments) = 0; - virtual void collectSymbols() = 0; + virtual bool collectSymbols() = 0; virtual const SymbolEntries &symbols() const = 0; virtual const SourceLocationEntries &sourceLocations() const = 0; diff --git a/tests/unit/unittest/symbolindexer-test.cpp b/tests/unit/unittest/symbolindexer-test.cpp index 0db32d658c7..0e4e2072cdb 100644 --- a/tests/unit/unittest/symbolindexer-test.cpp +++ b/tests/unit/unittest/symbolindexer-test.cpp @@ -114,6 +114,7 @@ protected: ON_CALL(mockCollector, sourceDependencies()).WillByDefault(ReturnRef(sourceDependencies)); ON_CALL(mockSymbolStorage, fetchProjectPartArtefact(A())).WillByDefault(Return(artefact)); ON_CALL(mockBuildDependenciesStorage, fetchLowestLastModifiedTime(A())).WillByDefault(Return(-1)); + ON_CALL(mockCollector, collectSymbols()).WillByDefault(Return(true)); mockCollector.setIsUsed(false); @@ -590,6 +591,61 @@ TEST_F(SymbolIndexer, UpdateProjectPartsCallsInOrderWithProjectPartArtifact) indexer.updateProjectParts({projectPart1}); } +TEST_F(SymbolIndexer, UpdateProjectPartsCallsInOrderButGetsAnErrorForCollectingSymbols) +{ + InSequence s; + + EXPECT_CALL(mockSqliteTransactionBackend, immediateBegin()); + EXPECT_CALL(mockSymbolStorage, + fetchProjectPartArtefact(TypedEq(projectPart1.projectPartId))) + .WillOnce(Return(nullArtefact)); + EXPECT_CALL(mockSymbolStorage, + insertOrUpdateProjectPart(Eq(projectPart1.projectPartId), + Eq(projectPart1.toolChainArguments), + Eq(projectPart1.compilerMacros), + Eq(projectPart1.systemIncludeSearchPaths), + Eq(projectPart1.projectIncludeSearchPaths), + Eq(Utils::Language::Cxx), + Eq(Utils::LanguageVersion::CXX14), + Eq(Utils::LanguageExtension::None))) + .WillOnce(Return(12)); + EXPECT_CALL(mockSymbolStorage, fetchPrecompiledHeader(Eq(12))); + EXPECT_CALL(mockBuildDependenciesStorage, fetchLowestLastModifiedTime(Eq(main1PathId))).Times(0); + EXPECT_CALL(mockSqliteTransactionBackend, commit()); + EXPECT_CALL(mockCollector, + setFile(main1PathId, + ElementsAre("clang++", + "-Wno-pragma-once-outside-header", + "-x", + "c++", + "-std=c++14", + "-nostdinc", + "-nostdinc++", + "-DBAR=1", + "-DFOO=1", + "-I", + "/project/includes", + "-I", + "/other/project/includes", + "-isystem", + TESTDATA_DIR, + "-isystem", + "/other/includes", + "-isystem", + "/includes"))); + EXPECT_CALL(mockCollector, collectSymbols()).WillOnce(Return(false)); + EXPECT_CALL(mockSqliteTransactionBackend, immediateBegin()).Times(0); + EXPECT_CALL(mockSymbolStorage, addSymbolsAndSourceLocations(symbolEntries, sourceLocations)).Times(0); + EXPECT_CALL(mockSymbolStorage, updateProjectPartSources(TypedEq(12), Eq(sourceFileIds))).Times(0); + EXPECT_CALL(mockBuildDependenciesStorage, insertOrUpdateUsedMacros(Eq(usedMacros))).Times(0); + EXPECT_CALL(mockBuildDependenciesStorage, insertFileStatuses(Eq(fileStatus))).Times(0); + EXPECT_CALL(mockBuildDependenciesStorage, insertOrUpdateSourceDependencies(Eq(sourceDependencies))) + .Times(0); + EXPECT_CALL(mockSqliteTransactionBackend, commit()).Times(0); + + indexer.updateProjectParts({projectPart1}); +} + TEST_F(SymbolIndexer, CallSetNotifier) { EXPECT_CALL(mockPathWatcher, setNotifier(_)); @@ -667,6 +723,50 @@ TEST_F(SymbolIndexer, HandleEmptyOptionalArtifactInUpdateChangedPath) indexer.pathsChanged({sourceFileIds[0]}); } +TEST_F(SymbolIndexer, UpdateChangedPathCallsInOrderButGetsAnErrorForCollectingSymbols) +{ + InSequence s; + + EXPECT_CALL(mockSqliteTransactionBackend, deferredBegin()); + EXPECT_CALL(mockSymbolStorage, fetchProjectPartArtefact(TypedEq(sourceFileIds[0]))) + .WillOnce(Return(artefact)); + EXPECT_CALL(mockSymbolStorage, fetchPrecompiledHeader(Eq(artefact.projectPartId))); + EXPECT_CALL(mockSqliteTransactionBackend, commit()); + EXPECT_CALL(mockCollector, + setFile(Eq(sourceFileIds[0]), + ElementsAre("clang++", + "-DFOO", + "-x", + "c++", + "-std=c++14", + "-nostdinc", + "-nostdinc++", + "-DBAR=1", + "-DFOO=1", + "-I", + "/project/includes", + "-I", + "/other/project/includes", + "-isystem", + TESTDATA_DIR, + "-isystem", + "/other/includes", + "-isystem", + "/includes"))); + EXPECT_CALL(mockCollector, collectSymbols()).WillOnce(Return(false)); + EXPECT_CALL(mockSqliteTransactionBackend, immediateBegin()).Times(0); + EXPECT_CALL(mockSymbolStorage, addSymbolsAndSourceLocations(symbolEntries, sourceLocations)).Times(0); + EXPECT_CALL(mockSymbolStorage, updateProjectPartSources(artefact.projectPartId, Eq(sourceFileIds))) + .Times(0); + EXPECT_CALL(mockBuildDependenciesStorage, insertOrUpdateUsedMacros(Eq(usedMacros))).Times(0); + EXPECT_CALL(mockBuildDependenciesStorage, insertFileStatuses(Eq(fileStatus))).Times(0); + EXPECT_CALL(mockBuildDependenciesStorage, insertOrUpdateSourceDependencies(Eq(sourceDependencies))) + .Times(0); + EXPECT_CALL(mockSqliteTransactionBackend, commit()).Times(0); + + indexer.pathsChanged({sourceFileIds[0]}); +} + TEST_F(SymbolIndexer, UpdateChangedPathIsUsingPrecompiledHeader) { ON_CALL(mockSymbolStorage, fetchProjectPartArtefact(TypedEq(sourceFileIds[0]))) From 44d5e101857523f0791cfe45ba73a45e0a4fdb33 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 7 Feb 2019 15:54:24 +0100 Subject: [PATCH 30/55] ClangRefactoring: Fix progress counter We use threads now and the code had to be adapted. Task-number: QTCREATORBUG-21950 Change-Id: Ie96c5bea1fa045588d0c5a8b18bfd1ccb5d9fdd9 Reviewed-by: Ivan Donchevskii --- src/libs/clangsupport/progresscounter.h | 34 +++++++++---- .../clangrefactoringbackendmain.cpp | 51 ++++++++++++++++++- .../unit/unittest/commandlinebuilder-test.cpp | 4 +- 3 files changed, 76 insertions(+), 13 deletions(-) diff --git a/src/libs/clangsupport/progresscounter.h b/src/libs/clangsupport/progresscounter.h index fbdc9dda456..449754f9149 100644 --- a/src/libs/clangsupport/progresscounter.h +++ b/src/libs/clangsupport/progresscounter.h @@ -26,6 +26,7 @@ #pragma once #include +#include namespace ClangBackEnd { @@ -33,6 +34,7 @@ class ProgressCounter { public: using SetProgressCallback = std::function; + using Lock = std::lock_guard; ProgressCounter(SetProgressCallback &&progressCallback) : m_progressCallback(std::move(progressCallback)) @@ -40,6 +42,8 @@ public: void addTotal(int total) { + Lock lock(m_mutex); + if (total) { m_total += total; @@ -49,6 +53,8 @@ public: void removeTotal(int total) { + Lock lock(m_mutex); + if (total) { m_total -= total; @@ -58,6 +64,8 @@ public: void addProgress(int progress) { + Lock lock(m_mutex); + if (progress) { m_progress += progress; @@ -65,6 +73,21 @@ public: } } + int total() const + { + Lock lock(m_mutex); + + return m_total; + } + + int progress() const + { + Lock lock(m_mutex); + + return m_total; + } + +private: void sendProgress() { m_progressCallback(m_progress, m_total); @@ -75,17 +98,8 @@ public: } } - int total() const - { - return m_total; - } - - int progress() const - { - return m_total; - } - private: + mutable std::mutex m_mutex; std::function m_progressCallback; int m_progress = 0; int m_total = 0; diff --git a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp index 23a127c17f2..876c047fb85 100644 --- a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp +++ b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp @@ -51,6 +51,48 @@ using ClangBackEnd::RefactoringDatabaseInitializer; using ClangBackEnd::ConnectionServer; using ClangBackEnd::SymbolIndexing; +#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) +template +class CallableEvent : public QEvent +{ +public: + using Callable = std::decay_t; + CallableEvent(Callable &&callable) + : QEvent(QEvent::None) + , callable(std::move(callable)) + {} + CallableEvent(const Callable &callable) + : QEvent(QEvent::None) + , callable(callable) + {} + + ~CallableEvent() { callable(); } + +public: + Callable callable; +}; + +template +void executeInLoop(Callable &&callable, QObject *object = QCoreApplication::instance()) +{ + if (QThread *thread = qobject_cast(object)) + object = QAbstractEventDispatcher::instance(thread); + + QCoreApplication::postEvent(object, + new CallableEvent(std::forward(callable)), + Qt::HighEventPriority); +} +#else +template +void executeInLoop(Callable &&callable, QObject *object = QCoreApplication::instance()) +{ + if (QThread *thread = qobject_cast(object)) + object = QAbstractEventDispatcher::instance(thread); + + QMetaObject::invokeMethod(object, std::forward(callable)); +} +#endif + QStringList processArguments(QCoreApplication &application) { QCommandLineParser parser; @@ -95,7 +137,14 @@ struct Data // because we have a cycle dependency FilePathCaching filePathCache{database}; GeneratedFiles generatedFiles; RefactoringServer clangCodeModelServer{symbolIndexing, filePathCache, generatedFiles}; - SymbolIndexing symbolIndexing{database, filePathCache, generatedFiles, [&] (int progress, int total) { clangCodeModelServer.setProgress(progress, total); }}; + SymbolIndexing symbolIndexing{database, + filePathCache, + generatedFiles, + [&](int progress, int total) { + executeInLoop([&] { + clangCodeModelServer.setProgress(progress, total); + }); + }}; }; #ifdef Q_OS_WIN diff --git a/tests/unit/unittest/commandlinebuilder-test.cpp b/tests/unit/unittest/commandlinebuilder-test.cpp index 3ec2b032246..3d684e10bca 100644 --- a/tests/unit/unittest/commandlinebuilder-test.cpp +++ b/tests/unit/unittest/commandlinebuilder-test.cpp @@ -417,7 +417,7 @@ TYPED_TEST(CommandLineBuilder, C18) Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; - ASSERT_THAT(builder.commandLine, Contains("-std=c18")); + ASSERT_THAT(builder.commandLine, Contains("-std=c17")); } TYPED_TEST(CommandLineBuilder, GnuC89) @@ -461,7 +461,7 @@ TYPED_TEST(CommandLineBuilder, GnuC18) Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; - ASSERT_THAT(builder.commandLine, Contains("-std=gnu18")); + ASSERT_THAT(builder.commandLine, Contains("-std=gnu17")); } TYPED_TEST(CommandLineBuilder, IncludesOrder) From 562b1eef5d1fc16c306b4bda088a523e12d9539a Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 7 Feb 2019 15:55:21 +0100 Subject: [PATCH 31/55] Clang: Fix command line builder Clang does not support c18, so we use c17 Change-Id: I272461cf70aa3d620900f76437cf4745f2a0e26c Reviewed-by: Ivan Donchevskii --- src/libs/clangsupport/commandlinebuilder.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/clangsupport/commandlinebuilder.h b/src/libs/clangsupport/commandlinebuilder.h index b270d75d850..38db85badea 100644 --- a/src/libs/clangsupport/commandlinebuilder.h +++ b/src/libs/clangsupport/commandlinebuilder.h @@ -112,7 +112,7 @@ public: case Utils::LanguageVersion::C11: return "-std=c11"; case Utils::LanguageVersion::C18: - return "-std=c18"; + return "-std=c17"; case Utils::LanguageVersion::CXX98: return "-std=c++98"; case Utils::LanguageVersion::CXX03: @@ -140,7 +140,7 @@ public: case Utils::LanguageVersion::C11: return "-std=gnu11"; case Utils::LanguageVersion::C18: - return "-std=gnu18"; + return "-std=gnu17"; case Utils::LanguageVersion::CXX98: return "-std=gnu++98"; case Utils::LanguageVersion::CXX03: From 846ed7c50d7b9891c1095e7b90b6f4ba4b3e414a Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 11 Feb 2019 18:11:04 +0100 Subject: [PATCH 32/55] ClangRefactoring: Add thread safety for progress report Task-number: QTCREATORBUG-21950 Change-Id: Id067e23a501253f3b73671f6939164e314b5c8a9 Reviewed-by: Ivan Donchevskii --- .../clangpchmanagerbackendmain.cpp | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp index 80bb8886aa8..58d749ec3a7 100644 --- a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp +++ b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp @@ -72,6 +72,48 @@ using ClangBackEnd::FilePathCache; using ClangBackEnd::FilePathView; using ClangBackEnd::TimeStamp; +#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) +template +class CallableEvent : public QEvent +{ +public: + using Callable = std::decay_t; + CallableEvent(Callable &&callable) + : QEvent(QEvent::None) + , callable(std::move(callable)) + {} + CallableEvent(const Callable &callable) + : QEvent(QEvent::None) + , callable(callable) + {} + + ~CallableEvent() { callable(); } + +public: + Callable callable; +}; + +template +void executeInLoop(Callable &&callable, QObject *object = QCoreApplication::instance()) +{ + if (QThread *thread = qobject_cast(object)) + object = QAbstractEventDispatcher::instance(thread); + + QCoreApplication::postEvent(object, + new CallableEvent(std::forward(callable)), + Qt::HighEventPriority); +} +#else +template +void executeInLoop(Callable &&callable, QObject *object = QCoreApplication::instance()) +{ + if (QThread *thread = qobject_cast(object)) + object = QAbstractEventDispatcher::instance(thread); + + QMetaObject::invokeMethod(object, std::forward(callable)); +} +#endif + class PchManagerApplication final : public QCoreApplication { public: @@ -182,8 +224,9 @@ struct Data // because we have a cycle dependency clangPchManagerServer, includeWatcher}; PrecompiledHeaderStorage<> preCompiledHeaderStorage{database}; - ClangBackEnd::ProgressCounter progressCounter{ - [&](int progress, int total) { clangPchManagerServer.setProgress(progress, total); }}; + ClangBackEnd::ProgressCounter progressCounter{[&](int progress, int total) { + executeInLoop([&] { clangPchManagerServer.setProgress(progress, total); }); + }}; ClangBackEnd::PchTaskQueue pchTaskQueue{systemTaskScheduler, projectTaskScheduler, progressCounter, From 406336bab74fe8ed300420bdcc232dd0867b8753 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 11 Feb 2019 17:17:06 +0100 Subject: [PATCH 33/55] ClangRefactoring: Fix PCH build We have to generate a PCH which is not checked by size or data. For that we have to remap the file so it get the overridden flag. If that flat is set no checks will be performed. Task-number: QTCREATORBUG-21958 Change-Id: Id9bff91b3ab64526dc109eb46d4a21766456abe5 Reviewed-by: Ivan Donchevskii --- .../source/generatepchactionfactory.h | 38 ++++++++++++++++++- .../source/pchcreator.cpp | 18 +++++---- .../source/pchcreator.h | 2 +- 3 files changed, 47 insertions(+), 11 deletions(-) diff --git a/src/tools/clangpchmanagerbackend/source/generatepchactionfactory.h b/src/tools/clangpchmanagerbackend/source/generatepchactionfactory.h index 47a64eda929..50061a9e6cb 100644 --- a/src/tools/clangpchmanagerbackend/source/generatepchactionfactory.h +++ b/src/tools/clangpchmanagerbackend/source/generatepchactionfactory.h @@ -27,15 +27,49 @@ #include -#include "clang/Frontend/FrontendActions.h" +#include +#include +#include namespace ClangBackEnd { + +class GeneratePCHAction final : public clang::GeneratePCHAction +{ +public: + GeneratePCHAction(llvm::StringRef filePath, llvm::StringRef fileContent) + : m_filePath(filePath) + , m_fileContent(fileContent) + {} + + bool BeginInvocation(clang::CompilerInstance &compilerInstance) override + { + compilerInstance.getPreprocessorOpts().DisablePCHValidation = true; + std::unique_ptr Input = llvm::MemoryBuffer::getMemBuffer(m_fileContent); + compilerInstance.getPreprocessorOpts().addRemappedFile(m_filePath, Input.release()); + + return clang::GeneratePCHAction::BeginSourceFileAction(compilerInstance); + } + +private: + llvm::StringRef m_filePath; + llvm::StringRef m_fileContent; +}; + class GeneratePCHActionFactory final : public clang::tooling::FrontendActionFactory { public: + GeneratePCHActionFactory(llvm::StringRef filePath, llvm::StringRef fileContent) + : m_filePath(filePath) + , m_fileContent(fileContent) + {} + clang::FrontendAction *create() override { - return new clang::GeneratePCHAction; + return new GeneratePCHAction{m_filePath, m_fileContent}; } + +private: + llvm::StringRef m_filePath; + llvm::StringRef m_fileContent; }; } // namespace ClangBackEnd diff --git a/src/tools/clangpchmanagerbackend/source/pchcreator.cpp b/src/tools/clangpchmanagerbackend/source/pchcreator.cpp index 845c92412a4..f4a10053622 100644 --- a/src/tools/clangpchmanagerbackend/source/pchcreator.cpp +++ b/src/tools/clangpchmanagerbackend/source/pchcreator.cpp @@ -72,16 +72,20 @@ Utils::SmallString PchCreator::generatePchIncludeFileContent(const FilePathIds & return fileContent; } -bool PchCreator::generatePch() +bool PchCreator::generatePch(NativeFilePathView path, Utils::SmallStringView content) { clang::tooling::ClangTool tool = m_clangTool.createOutputTool(); - auto action = std::make_unique(); + NativeFilePath headerFilePath{m_environment.pchBuildDirectory().toStdString(), "dummy.h"}; + + auto action = std::make_unique(llvm::StringRef{path.data(), + path.size()}, + llvm::StringRef{content.data(), + content.size()}); return tool.run(action.get()) != 1; } - FilePath PchCreator::generatePchFilePath() const { std::uniform_int_distribution distribution( @@ -113,12 +117,10 @@ void PchCreator::generatePch(PchTask &&pchTask) auto pchOutputPath = generatePchFilePath(); FilePath headerFilePath{m_environment.pchBuildDirectory().toStdString(), "dummy.h"}; - Utils::SmallStringVector commandLine = generateClangCompilerArguments(pchTask, - pchOutputPath); + Utils::SmallStringVector commandLine = generateClangCompilerArguments(pchTask, pchOutputPath); - m_clangTool.addFile(std::move(headerFilePath), std::move(content), std::move(commandLine)); - - bool success = generatePch(); + m_clangTool.addFile(std::move(headerFilePath), content.clone(), std::move(commandLine)); + bool success = generatePch(NativeFilePath{headerFilePath}, content); m_projectPartPch.projectPartId = pchTask.projectPartId(); diff --git a/src/tools/clangpchmanagerbackend/source/pchcreator.h b/src/tools/clangpchmanagerbackend/source/pchcreator.h index 6e889ab5657..b2c0c309e77 100644 --- a/src/tools/clangpchmanagerbackend/source/pchcreator.h +++ b/src/tools/clangpchmanagerbackend/source/pchcreator.h @@ -81,7 +81,7 @@ public: const FilePathCaching &filePathCache(); Utils::SmallString generatePchIncludeFileContent(const FilePathIds &includeIds) const; - bool generatePch(); + bool generatePch(NativeFilePathView path, Utils::SmallStringView content); FilePath generatePchFilePath() const; static Utils::SmallStringVector generateClangCompilerArguments(const PchTask &pchTask, From 456bcc2da8c9b890b63df4608bcb2488a905abdf Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Mon, 24 Apr 2017 18:22:53 +0200 Subject: [PATCH 34/55] ProWriter: Remove foreach and forever MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I817cbab3b126d2e246a00c36bf3ecfb138dffdbe Reviewed-by: André Hartmann --- src/shared/proparser/prowriter.cpp | 33 ++++++++++++---------- tests/auto/profilewriter/profilewriter.qbs | 1 + 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/shared/proparser/prowriter.cpp b/src/shared/proparser/prowriter.cpp index 5038d9652ad..e9514e07bf1 100644 --- a/src/shared/proparser/prowriter.cpp +++ b/src/shared/proparser/prowriter.cpp @@ -27,6 +27,8 @@ #include "prowriter.h" #include "proitems.h" +#include + #include #include #include @@ -87,7 +89,7 @@ static void skipBlock(const ushort *&tokPtr) static void skipExpression(const ushort *&pTokPtr, int &lineNo) { const ushort *tokPtr = pTokPtr; - forever { + for (;;) { ushort tok = *tokPtr++; switch (tok) { case TokLine: @@ -323,7 +325,7 @@ void ProWriter::putVarValues(ProFile *profile, QStringList *lines, const QString if (eqs >= 0) // If this is not true, we mess up the file a bit. line.truncate(eqs + 1); // put new values - foreach (const QString &v, values) { + for (const QString &v : values) { line += ((flags & MultiLine) ? QLatin1String(" \\\n") + effectiveContIndent(contInfo) : QString::fromLatin1(" ")) + v; } @@ -386,9 +388,10 @@ void ProWriter::putVarValues(ProFile *profile, QStringList *lines, const QString if (lNo != scopeStart + 1) added += QLatin1Char('\n'); added += indent + var + QLatin1String((flags & AppendOperator) ? " +=" : " ="); - foreach (const QString &v, values) + for (const QString &v : values) { added += ((flags & MultiLine) ? QLatin1String(" \\\n") + effectiveContIndent(contInfo) : QString::fromLatin1(" ")) + v; + } if (!scope.isEmpty() && scopeStart < 0) added += QLatin1String("\n}"); lines->insert(lNo, added); @@ -403,7 +406,7 @@ void ProWriter::addFiles(ProFile *profile, QStringList *lines, const QStringList QDir baseDir = QFileInfo(profile->fileName()).absoluteDir(); if (profile->fileName().endsWith(QLatin1String(".pri"))) prefixPwd = QLatin1String("$$PWD/"); - foreach (const QString &v, values) + for (const QString &v : values) valuesToWrite << (prefixPwd + baseDir.relativeFilePath(v)); putVarValues(profile, lines, valuesToWrite, var, AppendValues | MultiLine | AppendOperator, @@ -451,7 +454,7 @@ QList ProWriter::removeVarValues(ProFile *profile, QStringList *lines, // This code expects proVars to be sorted by the variables' appearance in the file. int delta = 1; - foreach (int ln, varLines) { + for (int ln : qAsConst(varLines)) { bool first = true; int lineNo = ln - delta; typedef QPair ContPos; @@ -465,7 +468,7 @@ QList ProWriter::removeVarValues(ProFile *profile, QStringList *lines, if (idx >= 0) lineLen = idx; QChar *chars = line.data(); - forever { + for (;;) { if (!lineLen) { if (idx >= 0) goto nextLine; @@ -528,7 +531,7 @@ QList ProWriter::removeVarValues(ProFile *profile, QStringList *lines, // Entries existed, but were all removed if (contCol < 0) { // This is the last line, so clear continuations leading to it - foreach (const ContPos &pos, contPos) { + for (const ContPos &pos : qAsConst(contPos)) { QString &bline = (*lines)[pos.first]; bline.remove(pos.second, 1); if (pos.second == bline.length()) @@ -562,12 +565,12 @@ QStringList ProWriter::removeFiles(ProFile *profile, QStringList *lines, // This is a tad stupid - basically, it can remove only entries which // the above code added. QStringList valuesToFind; - foreach (const QString &absoluteFilePath, values) + for (const QString &absoluteFilePath : values) valuesToFind << proFileDir.relativeFilePath(absoluteFilePath); - QStringList notYetChanged; - foreach (int i, removeVarValues(profile, lines, valuesToFind, vars)) - notYetChanged.append(values.at(i)); + const QStringList notYetChanged = + Utils::transform(removeVarValues(profile, lines, valuesToFind, vars), + [values](int i) { return values.at(i); }); if (!profile->fileName().endsWith(QLatin1String(".pri"))) return notYetChanged; @@ -578,12 +581,12 @@ QStringList ProWriter::removeFiles(ProFile *profile, QStringList *lines, valuesToFind.clear(); const QDir baseDir = QFileInfo(profile->fileName()).absoluteDir(); const QString prefixPwd = QLatin1String("$$PWD/"); - foreach (const QString &absoluteFilePath, notYetChanged) + for (const QString &absoluteFilePath : notYetChanged) valuesToFind << (prefixPwd + baseDir.relativeFilePath(absoluteFilePath)); - QStringList notChanged; - foreach (int i, removeVarValues(profile, lines, valuesToFind, vars)) - notChanged.append(notYetChanged.at(i)); + const QStringList notChanged = + Utils::transform(removeVarValues(profile, lines, valuesToFind, vars), + [notYetChanged](int i) { return notYetChanged.at(i); }); return notChanged; } diff --git a/tests/auto/profilewriter/profilewriter.qbs b/tests/auto/profilewriter/profilewriter.qbs index ba420c4817f..7091472f308 100644 --- a/tests/auto/profilewriter/profilewriter.qbs +++ b/tests/auto/profilewriter/profilewriter.qbs @@ -3,6 +3,7 @@ import qbs QtcAutotest { name: "ProFileWriter autotest" Depends { name: "Qt.xml" } + Depends { name: "Utils"; cpp.link: false } Group { name: "Sources from ProParser" id: proParserGroup From a6e72c4c6e7a35bd394299ba6db6b5c45a5c41af Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Mon, 11 Feb 2019 17:16:34 +0100 Subject: [PATCH 35/55] Docs: Acknowledge LLVM/Clang and Clazy ...Just as they are acknowledged in the README.md Change-Id: Ia5ee50dbef98f9a9313c094f5daad7ee6f59c993 Reviewed-by: Nikolai Kosjar Reviewed-by: Alessandro Portale Reviewed-by: Leena Miettinen --- .../overview/creator-acknowledgements.qdoc | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/doc/src/overview/creator-acknowledgements.qdoc b/doc/src/overview/creator-acknowledgements.qdoc index e12926398fb..09d9c7d9d3a 100644 --- a/doc/src/overview/creator-acknowledgements.qdoc +++ b/doc/src/overview/creator-acknowledgements.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -90,6 +90,39 @@ \li \l{https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/src/libs/3rdparty/syntax-highlighting} \endlist + \li \b{Clazy} + + \l {https://github.com/KDE/clazy} + + Copyright (C) 2015-2019 Clazy Team + + Distributed under the \l {https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html} + {GNU LIBRARY GENERAL PUBLIC LICENSE Version 2 (LGPL2)}. + + Integrated with patches from + \list + \li \l{http://code.qt.io/cgit/clang/clang-tools-extra.git} + \endlist + + \li \b{LLVM/Clang} + + \list + \li \l{http://llvm.org/svn/llvm-project/llvm} + \li \l{http://llvm.org/svn/llvm-project/cfe/trunk} + \li \l{http://llvm.org/svn/llvm-project/clang-tools-extra/trunk} + \endlist + + Copyright (C) 2003-2019 LLVM Team + + Distributed under the \l {https://github.com/llvm-mirror/llvm/blob/master/LICENSE.TXT} + {University of Illinois/NCSA Open Source License (NCSA)}. + + With backported/additional patches from + \list + \li \l{http://code.qt.io/cgit/clang/llvm.git} + \li \l{http://code.qt.io/cgit/clang/clang.git} + \endlist + \li \b{Reference implementation for std::experimental::optional} Copyright (C) 2011-2012 Andrzej Krzemienski From 3d67de6b3906fbc3b0b6dbb81dca0e336f00d153 Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Sun, 10 Feb 2019 11:57:34 +0100 Subject: [PATCH 36/55] ProWriter: Fix some Clang warnings There are more in this file (mostly sign conversion), but not that easy to fix. Change-Id: Icf4354836ad791982d442236077d7e1e5df18f74 Reviewed-by: Orgad Shaneh --- src/shared/proparser/prowriter.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/shared/proparser/prowriter.cpp b/src/shared/proparser/prowriter.cpp index e9514e07bf1..668820ba433 100644 --- a/src/shared/proparser/prowriter.cpp +++ b/src/shared/proparser/prowriter.cpp @@ -38,7 +38,7 @@ using namespace QmakeProjectManager::Internal; static uint getBlockLen(const ushort *&tokPtr) { uint len = *tokPtr++; - len |= (uint)*tokPtr++ << 16; + len |= uint(*tokPtr++ << 16); return len; } @@ -53,10 +53,10 @@ static bool getLiteral(const ushort *tokPtr, const ushort *tokEnd, QString &tmp) break; case TokHashLiteral: tokPtr += 2; - // fallthrough + Q_FALLTHROUGH(); case TokLiteral: { - uint len = *tokPtr++; - tmp.setRawData((const QChar *)tokPtr, len); + int len = *tokPtr++; + tmp.setRawData(reinterpret_cast(tokPtr), len); count++; tokPtr += len; break; } @@ -138,13 +138,13 @@ static const ushort *skipToken(ushort tok, const ushort *&tokPtr, int &lineNo) case TokRemove: case TokReplace: tokPtr++; - // fallthrough + Q_FALLTHROUGH(); case TokTestCall: skipExpression(tokPtr, lineNo); break; case TokForLoop: skipHashStr(tokPtr); - // fallthrough + Q_FALLTHROUGH(); case TokBranch: skipBlock(tokPtr); skipBlock(tokPtr); @@ -170,14 +170,14 @@ static const ushort *skipToken(ushort tok, const ushort *&tokPtr, int &lineNo) } Q_ASSERT_X(false, "skipToken", "unexpected item type"); } - return 0; + return nullptr; } QString ProWriter::compileScope(const QString &scope) { if (scope.isEmpty()) return QString(); - QMakeParser parser(0, 0, 0); + QMakeParser parser(nullptr, nullptr, nullptr); ProFile *includeFile = parser.parsedProBlock(QStringRef(&scope), 0, QLatin1String("no-file"), 1); if (!includeFile) return QString(); @@ -206,11 +206,11 @@ bool ProWriter::locateVarValues(const ushort *tokPtr, const ushort *tokPtrEnd, const bool inScope = scope.isEmpty(); int lineNo = *scopeStart + 1; QString tmp; - const ushort *lastXpr = 0; + const ushort *lastXpr = nullptr; bool fresh = true; QString compiledScope = compileScope(scope); - const ushort *cTokPtr = (const ushort *)compiledScope.constData(); + const ushort *cTokPtr = reinterpret_cast(compiledScope.constData()); while (ushort tok = *tokPtr++) { if (inScope && (tok == TokAssign || tok == TokAppend || tok == TokAppendUnique)) { @@ -418,7 +418,7 @@ static void findProVariables(const ushort *tokPtr, const QStringList &vars, { int lineNo = firstLine; QString tmp; - const ushort *lastXpr = 0; + const ushort *lastXpr = nullptr; while (ushort tok = *tokPtr++) { if (tok == TokBranch) { uint blockLen = getBlockLen(tokPtr); From 0b6a36df7e7d9e5c6b1eeef418923ec508977ac3 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 12 Feb 2019 13:30:54 +0100 Subject: [PATCH 37/55] Update qbs submodule To HEAD of 1.13 branch. Also adapt to API changes. Change-Id: Ibe35dfd19dea5f8cde254656cd471618645a0b07 Reviewed-by: Joerg Bornemann --- .../qbsprojectmanager/qbsprojectmanager.cpp | 43 ++----------------- .../qbsprojectmanager/qbsprojectmanager.pro | 2 - .../qbsprojectmanager/qbsprojectmanager.qbs | 6 +-- src/shared/qbs | 2 +- src/shared/shared.pro | 5 +-- 5 files changed, 6 insertions(+), 52 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp index 978ca571484..b82a93987f9 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp @@ -46,7 +46,6 @@ #include #include -#include const QChar sep = QLatin1Char('.'); @@ -166,45 +165,9 @@ void QbsManager::addProfile(const QString &name, const QVariantMap &data) void QbsManager::addQtProfileFromKit(const QString &profileName, const ProjectExplorer::Kit *k) { - const QtSupport::BaseQtVersion * const qt = QtSupport::QtKitInformation::qtVersion(k); - if (!qt) - return; - - qbs::QtEnvironment qtEnv; - const QList abi = qt->qtAbis(); - if (!abi.empty()) { - qtEnv.architecture = ProjectExplorer::Abi::toString(abi.first().architecture()); - if (abi.first().wordWidth() == 64) - qtEnv.architecture.append(QLatin1String("_64")); - } - qtEnv.binaryPath = qt->binPath().toString(); - qtEnv.documentationPath = qt->docsPath().toString(); - qtEnv.includePath = qt->headerPath().toString(); - qtEnv.libraryPath = qt->libraryPath().toString(); - qtEnv.pluginPath = qt->pluginPath().toString(); - qtEnv.mkspecBasePath = qt->mkspecsPath().toString(); - qtEnv.mkspecName = qt->mkspec().toString(); - qtEnv.mkspecPath = qt->mkspecPath().toString(); - qtEnv.qtNameSpace = qt->qtNamespace(); - qtEnv.qtLibInfix = qt->qtLibInfix(); - qtEnv.qtVersion = qt->qtVersionString(); - qtEnv.qtMajorVersion = qt->qtVersion().majorVersion; - qtEnv.qtMinorVersion = qt->qtVersion().minorVersion; - qtEnv.qtPatchVersion = qt->qtVersion().patchVersion; - qtEnv.frameworkBuild = qt->isFrameworkBuild(); - qtEnv.configItems = qt->configValues(); - qtEnv.qtConfigItems = qt->qtConfigValues(); - foreach (const QString &buildVariant, - QStringList() << QLatin1String("debug") << QLatin1String("release")) { - if (qtEnv.qtConfigItems.contains(buildVariant)) - qtEnv.buildVariant << buildVariant; - } - qtEnv.qmlPath = qt->qmlPath().toString(); - qtEnv.qmlImportPath = qt->qmakeProperty("QT_INSTALL_IMPORTS"); - const qbs::ErrorInfo errorInfo = qbs::setupQtProfile(profileName, settings(), qtEnv); - if (errorInfo.hasError()) { - Core::MessageManager::write(tr("Failed to set up kit for Qbs: %1") - .arg(errorInfo.toString()), Core::MessageManager::ModeSwitch); + if (const QtSupport::BaseQtVersion * const qt = QtSupport::QtKitInformation::qtVersion(k)) { + qbs::Profile(profileName, settings()).setValue("moduleProviders.Qt.qmakeFilePaths", + qt->qmakeCommand().toString()); } } diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro index d5d0b1b79a8..bef7cd2a059 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro @@ -5,11 +5,9 @@ isEmpty(QBS_INSTALL_DIR): QBS_INSTALL_DIR = $$(QBS_INSTALL_DIR) isEmpty(QBS_INSTALL_DIR) { QBS_SOURCE_DIR = $$PWD/../../shared/qbs include($$QBS_SOURCE_DIR/src/lib/corelib/use_corelib.pri) - include($$QBS_SOURCE_DIR/src/lib/qtprofilesetup/use_qtprofilesetup.pri) osx:QMAKE_LFLAGS += -Wl,-rpath,@loader_path/../Frameworks # OS X: fix rpath for qbscore soname } else { include($${QBS_INSTALL_DIR}/include/qbs/use_installed_corelib.pri) - include($${QBS_INSTALL_DIR}/include/qbs/use_installed_qtprofilesetup.pri) } QBS_INSTALL_DIR_FWD_SLASHES = $$replace(QBS_INSTALL_DIR, \\\\, /) DEFINES += QBS_INSTALL_DIR=\\\"$$QBS_INSTALL_DIR_FWD_SLASHES\\\" diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs index 6c7793db557..45e5d1f3a4c 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs @@ -20,7 +20,7 @@ QtcPlugin { if (qbs.enableDebugCode) suffix = "d"; } - libs.push("qbscore" + suffix, "qbsqtprofilesetup" + suffix); + libs.push("qbscore" + suffix); return libs } @@ -33,10 +33,6 @@ QtcPlugin { name: "qbscore" condition: product.useInternalQbsProducts } - Depends { - name: "qbsqtprofilesetup" - condition: product.useInternalQbsProducts - } Depends { name: "QmlJS" } Depends { name: "Utils" } diff --git a/src/shared/qbs b/src/shared/qbs index 9b7be5fca8d..6fcbc1a996d 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 9b7be5fca8dbe6be51c3a869ca1700b96ceada5b +Subproject commit 6fcbc1a996d1726d7df5e078663a095b235d5b00 diff --git a/src/shared/shared.pro b/src/shared/shared.pro index e75970c0fb3..e94abae8043 100644 --- a/src/shared/shared.pro +++ b/src/shared/shared.pro @@ -2,17 +2,14 @@ TEMPLATE = subdirs QBS_DIRS = \ qbscorelib \ - qbsqtprofilesetup \ qbsapps \ qbslibexec \ qbsplugins \ qbsstatic qbscorelib.subdir = qbs/src/lib/corelib -qbsqtprofilesetup.subdir = qbs/src/lib/qtprofilesetup -qbsqtprofilesetup.depends = qbscorelib qbsapps.subdir = qbs/src/app -qbsapps.depends = qbsqtprofilesetup +qbsapps.depends = qbscorelib qbslibexec.subdir = qbs/src/libexec qbslibexec.depends = qbscorelib qbsplugins.subdir = qbs/src/plugins From 4b8200086bfc9acc8d25eca40b271ba33c0fcc35 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Tue, 12 Feb 2019 18:01:38 +0100 Subject: [PATCH 38/55] Squish: Fix handling of "Take a Tour" in startCreatorVerifyingClang Change-Id: Ica4414c6e284af69aedf06b7d56b7e72587c7e90 Reviewed-by: Christian Stenger --- tests/system/shared/clang.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/system/shared/clang.py b/tests/system/shared/clang.py index f012b12c548..810f652b0b3 100644 --- a/tests/system/shared/clang.py +++ b/tests/system/shared/clang.py @@ -23,11 +23,15 @@ # ############################################################################ +firstStart = True + def startCreatorVerifyingClang(useClang): + global firstStart try: # start Qt Creator with / without enabled ClangCodeModel plugin (without modifying settings) loadOrNoLoad = '-load' if useClang else '-noload' - startQC([loadOrNoLoad, 'ClangCodeModel']) + startQC([loadOrNoLoad, 'ClangCodeModel'], cancelTour=firstStart) + firstStart = False except RuntimeError: t, v = sys.exc_info()[:2] strv = str(v) From e985290444400c231a3628bc691ea19b70a569f8 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 12 Feb 2019 20:08:55 +0100 Subject: [PATCH 39/55] Syntax highlighting: Add patches for KSyntaxHighlighting adaptation The patches which lead from "syntax-highlighting"'s SHA e07306d9c22f6426d6b50287eee532555d74ac75 to the current state in qtcreator's repo This is useful to document what changed, and to ease further code merges from "syntax-highlighting". Change-Id: I4be45d12aa4237558b6e381a70947326829e79cb Reviewed-by: David Schulz --- ...-definitions-with-incompatible-licen.patch | 1381 ++++++++ .../patches/0002-Remove-autotests.patch | 2901 +++++++++++++++++ ...s-files-and-files-generated-by-CMake.patch | 389 +++ .../0004-Compile-with-namespaced-Qt.patch | 281 ++ ...-Prevent-assertion-in-RegExpr-doLoad.patch | 29 + ...er-return-all-definitions-for-a-file.patch | 101 + 6 files changed, 5082 insertions(+) create mode 100644 src/libs/3rdparty/syntax-highlighting/patches/0001-Remove-highlight-definitions-with-incompatible-licen.patch create mode 100644 src/libs/3rdparty/syntax-highlighting/patches/0002-Remove-autotests.patch create mode 100644 src/libs/3rdparty/syntax-highlighting/patches/0003-Add-qmake-Qbs-files-and-files-generated-by-CMake.patch create mode 100644 src/libs/3rdparty/syntax-highlighting/patches/0004-Compile-with-namespaced-Qt.patch create mode 100644 src/libs/3rdparty/syntax-highlighting/patches/0005-Prevent-assertion-in-RegExpr-doLoad.patch create mode 100644 src/libs/3rdparty/syntax-highlighting/patches/0006-Syntax-Highlighter-return-all-definitions-for-a-file.patch diff --git a/src/libs/3rdparty/syntax-highlighting/patches/0001-Remove-highlight-definitions-with-incompatible-licen.patch b/src/libs/3rdparty/syntax-highlighting/patches/0001-Remove-highlight-definitions-with-incompatible-licen.patch new file mode 100644 index 00000000000..7854f3a2189 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/patches/0001-Remove-highlight-definitions-with-incompatible-licen.patch @@ -0,0 +1,1381 @@ +From 40ee252983bd0d74b43d204de195ef4426ccb690 Mon Sep 17 00:00:00 2001 +From: Alessandro Portale +Date: Tue, 12 Feb 2019 19:43:26 +0100 +Subject: [PATCH 1/6] Remove highlight definitions with incompatible license + +--- + data/syntax/4dos.xml | 924 ---- + data/syntax/abap.xml | 285 -- + data/syntax/abc.xml | 86 - + data/syntax/actionscript.xml | 336 -- + data/syntax/ada.xml | 201 - + data/syntax/adblock.xml | 87 - + data/syntax/agda.xml | 107 - + data/syntax/ahdl.xml | 145 - + data/syntax/ahk.xml | 1143 ----- + data/syntax/ample.xml | 3234 ------------ + data/syntax/ansforth94.xml | 595 --- + data/syntax/ansic89.xml | 134 - + data/syntax/ansys.xml | 2056 -------- + data/syntax/apache.xml | 633 --- + data/syntax/apparmor.xml | 1555 ------ + data/syntax/asm-avr.xml | 212 - + data/syntax/asm-dsp56k.xml | 329 -- + data/syntax/asm-m68k.xml | 651 --- + data/syntax/asm6502.xml | 117 - + data/syntax/asn1.xml | 70 - + data/syntax/asp.xml | 389 -- + data/syntax/awk.xml | 288 -- + data/syntax/bibtex.xml | 108 - + data/syntax/bitbake.xml | 183 - + data/syntax/bmethod.xml | 96 - + data/syntax/boo.xml | 304 -- + data/syntax/c.xml | 260 - + data/syntax/carto-css.xml | 405 -- + data/syntax/ccss.xml | 655 --- + data/syntax/cg.xml | 273 - + data/syntax/cgis.xml | 134 - + data/syntax/changelog.xml | 29 - + data/syntax/chicken.xml | 435 -- + data/syntax/cisco.xml | 302 -- + data/syntax/clipper.xml | 498 -- + data/syntax/clojure.xml | 883 ---- + data/syntax/coffee.xml | 340 -- + data/syntax/coldfusion.xml | 731 --- + data/syntax/commonlisp.xml | 1177 ----- + data/syntax/component-pascal.xml | 172 - + data/syntax/context.xml | 130 - + data/syntax/cpp.xml | 2030 -------- + data/syntax/crk.xml | 163 - + data/syntax/cs.xml | 168 - + data/syntax/cubescript.xml | 456 -- + data/syntax/cue.xml | 74 - + data/syntax/curry.xml | 364 -- + data/syntax/d.xml | 819 --- + data/syntax/debianchangelog.xml | 241 - + data/syntax/debiancontrol.xml | 65 - + data/syntax/desktop.xml | 30 - + data/syntax/diff.xml | 118 - + data/syntax/djangotemplate.xml | 330 -- + data/syntax/dockerfile.xml | 67 - + data/syntax/dosbat.xml | 309 -- + data/syntax/dot.xml | 172 - + data/syntax/doxyfile.xml | 350 -- + data/syntax/doxygenlua.xml | 497 -- + data/syntax/e.xml | 260 - + data/syntax/eiffel.xml | 125 - + data/syntax/elixir.xml | 225 - + data/syntax/email.xml | 101 - + data/syntax/erlang.xml | 250 - + data/syntax/euphoria.xml | 378 -- + data/syntax/fasm.xml | 898 ---- + data/syntax/fastq.xml | 35 - + data/syntax/ferite.xml | 117 - + data/syntax/fgl-4gl.xml | 363 -- + data/syntax/fgl-per.xml | 172 - + data/syntax/fortran.xml | 584 --- + data/syntax/freebasic.xml | 573 --- + data/syntax/fsharp.xml | 283 -- + data/syntax/fstab.xml | 96 - + data/syntax/ftl.xml | 84 - + data/syntax/gap.xml | 7835 ----------------------------- + data/syntax/gcc.xml | 610 --- + data/syntax/gcode.xml | 202 - + data/syntax/gdb-bt.xml | 53 - + data/syntax/gdb.xml | 72 - + data/syntax/gdbinit.xml | 24 - + data/syntax/gdl.xml | 313 -- + data/syntax/gettext.xml | 170 - + data/syntax/git-ignore.xml | 41 - + data/syntax/git-rebase.xml | 65 - + data/syntax/gitolite.xml | 44 - + data/syntax/glosstex.xml | 45 - + data/syntax/glsl.xml | 1217 ----- + data/syntax/gnuassembler.xml | 303 -- + data/syntax/gnuplot.xml | 890 ---- + data/syntax/go.xml | 175 - + data/syntax/grammar.xml | 145 - + data/syntax/groovy.xml | 3889 -------------- + data/syntax/haml.xml | 500 -- + data/syntax/hamlet.xml | 104 - + data/syntax/haskell.xml | 649 --- + data/syntax/haxe.xml | 181 - + data/syntax/hunspell-aff.xml | 239 - + data/syntax/hunspell-dat.xml | 48 - + data/syntax/hunspell-dic.xml | 85 - + data/syntax/hunspell-idx.xml | 40 - + data/syntax/idconsole.xml | 2145 -------- + data/syntax/idl.xml | 114 - + data/syntax/ilerpg.xml | 701 --- + data/syntax/inform.xml | 405 -- + data/syntax/intelhex.xml | 41 - + data/syntax/isocpp.xml | 825 --- + data/syntax/j.xml | 119 - + data/syntax/jam.xml | 340 -- + data/syntax/javascript-react.xml | 259 - + data/syntax/javascript.xml | 283 -- + data/syntax/jira.xml | 718 --- + data/syntax/jsp.xml | 3061 ----------- + data/syntax/julia.xml | 289 -- + data/syntax/k.xml | 430 -- + data/syntax/kbasic.xml | 97 - + data/syntax/kconfig.xml | 1144 ----- + data/syntax/kdesrc-buildrc.xml | 247 - + data/syntax/kotlin.xml | 298 -- + data/syntax/latex.xml | 697 --- + data/syntax/ld.xml | 84 - + data/syntax/ldif.xml | 304 -- + data/syntax/less.xml | 1467 ------ + data/syntax/lex.xml | 144 - + data/syntax/lilypond.xml | 1199 ----- + data/syntax/literate-curry.xml | 50 - + data/syntax/literate-haskell.xml | 38 - + data/syntax/logcat.xml | 202 - + data/syntax/logtalk.xml | 248 - + data/syntax/lpc.xml | 167 - + data/syntax/lsl.xml | 1050 ---- + data/syntax/lua.xml | 538 -- + data/syntax/m3u.xml | 51 - + data/syntax/m4.xml | 193 - + data/syntax/mab.xml | 30 - + data/syntax/magma.xml | 154 - + data/syntax/mako.xml | 253 - + data/syntax/mandoc.xml | 88 - + data/syntax/mason.xml | 233 - + data/syntax/mathematica.xml | 3229 ------------ + data/syntax/matlab.xml | 230 - + data/syntax/maxima.xml | 1890 ------- + data/syntax/mediawiki.xml | 622 --- + data/syntax/mel.xml | 1380 ----- + data/syntax/mergetagtext.xml | 145 - + data/syntax/meson.xml | 117 - + data/syntax/metafont.xml | 986 ---- + data/syntax/metamath.xml | 122 - + data/syntax/mib.xml | 182 - + data/syntax/mips.xml | 359 -- + data/syntax/modelica.xml | 260 - + data/syntax/modelines.xml | 197 - + data/syntax/modula-2-iso-only.xml | 342 -- + data/syntax/modula-2-pim-only.xml | 308 -- + data/syntax/modula-2-r10-only.xml | 347 -- + data/syntax/modula-2.xml | 1191 ----- + data/syntax/monobasic.xml | 216 - + data/syntax/mup.xml | 865 ---- + data/syntax/nagios.xml | 83 - + data/syntax/nasm.xml | 893 ---- + data/syntax/nemerle.xml | 208 - + data/syntax/nesc.xml | 185 - + data/syntax/noweb.xml | 52 - + data/syntax/nsis.xml | 494 -- + data/syntax/objectivec.xml | 130 - + data/syntax/objectivecpp.xml | 300 -- + data/syntax/ocaml.xml | 624 --- + data/syntax/ocamllex.xml | 81 - + data/syntax/ocamlyacc.xml | 160 - + data/syntax/octave.xml | 2218 -------- + data/syntax/oors.xml | 87 - + data/syntax/opal.xml | 331 -- + data/syntax/opencl.xml | 260 - + data/syntax/openscad.xml | 164 - + data/syntax/pango.xml | 160 - + data/syntax/pascal.xml | 219 - + data/syntax/pgn.xml | 108 - + data/syntax/php.xml | 5705 --------------------- + data/syntax/picsrc.xml | 401 -- + data/syntax/pig.xml | 205 - + data/syntax/pike.xml | 121 - + data/syntax/pli.xml | 454 -- + data/syntax/ply.xml | 54 - + data/syntax/pony.xml | 314 -- + data/syntax/postscript.xml | 434 -- + data/syntax/povray.xml | 967 ---- + data/syntax/ppd.xml | 58 - + data/syntax/praat.xml | 510 -- + data/syntax/progress.xml | 1707 ------- + data/syntax/prolog.xml | 1031 ---- + data/syntax/protobuf.xml | 120 - + data/syntax/pug.xml | 118 - + data/syntax/puppet.xml | 711 --- + data/syntax/purebasic.xml | 1767 ------- + data/syntax/q.xml | 210 - + data/syntax/qmake.xml | 659 --- + data/syntax/qml.xml | 168 - + data/syntax/r.xml | 152 - + data/syntax/rapidq.xml | 432 -- + data/syntax/rdoc.xml | 388 -- + data/syntax/relaxng.xml | 119 - + data/syntax/relaxngcompact.xml | 108 - + data/syntax/replicode.xml | 196 - + data/syntax/rest.xml | 108 - + data/syntax/rexx.xml | 199 - + data/syntax/rhtml.xml | 1237 ----- + data/syntax/rib.xml | 143 - + data/syntax/rmarkdown.xml | 81 - + data/syntax/roff.xml | 197 - + data/syntax/rpmspec.xml | 505 -- + data/syntax/rsiidl.xml | 440 -- + data/syntax/rtf.xml | 49 - + data/syntax/rust.xml | 374 -- + data/syntax/sather.xml | 141 - + data/syntax/scala.xml | 3505 ------------- + data/syntax/scheme.xml | 394 -- + data/syntax/sci.xml | 1191 ----- + data/syntax/scss.xml | 2242 --------- + data/syntax/sed.xml | 267 - + data/syntax/selinux-cil.xml | 683 --- + data/syntax/selinux-fc.xml | 299 -- + data/syntax/selinux.xml | 1627 ------ + data/syntax/sgml.xml | 46 - + data/syntax/sieve.xml | 152 - + data/syntax/sisu.xml | 154 - + data/syntax/sml.xml | 104 - + data/syntax/spice.xml | 51 - + data/syntax/sql-mysql.xml | 481 -- + data/syntax/sql-oracle.xml | 1954 ------- + data/syntax/sql-postgresql.xml | 1074 ---- + data/syntax/sql.xml | 955 ---- + data/syntax/stan.xml | 129 - + data/syntax/stata.xml | 3223 ------------ + data/syntax/stl.xml | 31 - + data/syntax/systemc.xml | 133 - + data/syntax/systemverilog.xml | 1005 ---- + data/syntax/tads3.xml | 176 - + data/syntax/taskjuggler.xml | 390 -- + data/syntax/tcl.xml | 565 --- + data/syntax/tcsh.xml | 810 --- + data/syntax/template-toolkit.xml | 321 -- + data/syntax/texinfo.xml | 63 - + data/syntax/textile.xml | 100 - + data/syntax/tibasic.xml | 71 - + data/syntax/tiger.xml | 96 - + data/syntax/toml.xml | 135 - + data/syntax/txt2tags.xml | 67 - + data/syntax/uscript.xml | 188 - + data/syntax/vala.xml | 288 -- + data/syntax/varnish.xml | 349 -- + data/syntax/varnish4.xml | 372 -- + data/syntax/varnishcc.xml | 101 - + data/syntax/varnishcc4.xml | 128 - + data/syntax/varnishtest.xml | 547 -- + data/syntax/varnishtest4.xml | 706 --- + data/syntax/vcard.xml | 45 - + data/syntax/velocity.xml | 51 - + data/syntax/vera.xml | 648 --- + data/syntax/verilog.xml | 252 - + data/syntax/vhdl.xml | 654 --- + data/syntax/vrml.xml | 139 - + data/syntax/wavefront-obj.xml | 69 - + data/syntax/winehq.xml | 34 - + data/syntax/wml.xml | 209 - + data/syntax/xharbour.xml | 539 -- + data/syntax/xmldebug.xml | 592 --- + data/syntax/xonotic-console.xml | 5660 --------------------- + data/syntax/xorg.xml | 65 - + data/syntax/xslt.xml | 440 -- + data/syntax/xul.xml | 624 --- + data/syntax/yacas.xml | 236 - + data/syntax/yaml.xml | 572 --- + data/syntax/yang.xml | 155 - + data/syntax/zonnon.xml | 144 - + data/syntax/zsh.xml | 959 ---- + 274 files changed, 145722 deletions(-) + delete mode 100644 data/syntax/4dos.xml + delete mode 100644 data/syntax/abap.xml + delete mode 100644 data/syntax/abc.xml + delete mode 100644 data/syntax/actionscript.xml + delete mode 100644 data/syntax/ada.xml + delete mode 100644 data/syntax/adblock.xml + delete mode 100644 data/syntax/agda.xml + delete mode 100644 data/syntax/ahdl.xml + delete mode 100644 data/syntax/ahk.xml + delete mode 100644 data/syntax/ample.xml + delete mode 100644 data/syntax/ansforth94.xml + delete mode 100644 data/syntax/ansic89.xml + delete mode 100644 data/syntax/ansys.xml + delete mode 100644 data/syntax/apache.xml + delete mode 100644 data/syntax/apparmor.xml + delete mode 100644 data/syntax/asm-avr.xml + delete mode 100644 data/syntax/asm-dsp56k.xml + delete mode 100644 data/syntax/asm-m68k.xml + delete mode 100644 data/syntax/asm6502.xml + delete mode 100644 data/syntax/asn1.xml + delete mode 100644 data/syntax/asp.xml + delete mode 100644 data/syntax/awk.xml + delete mode 100644 data/syntax/bibtex.xml + delete mode 100644 data/syntax/bitbake.xml + delete mode 100644 data/syntax/bmethod.xml + delete mode 100644 data/syntax/boo.xml + delete mode 100644 data/syntax/c.xml + delete mode 100644 data/syntax/carto-css.xml + delete mode 100644 data/syntax/ccss.xml + delete mode 100644 data/syntax/cg.xml + delete mode 100644 data/syntax/cgis.xml + delete mode 100644 data/syntax/changelog.xml + delete mode 100644 data/syntax/chicken.xml + delete mode 100644 data/syntax/cisco.xml + delete mode 100644 data/syntax/clipper.xml + delete mode 100644 data/syntax/clojure.xml + delete mode 100644 data/syntax/coffee.xml + delete mode 100644 data/syntax/coldfusion.xml + delete mode 100644 data/syntax/commonlisp.xml + delete mode 100644 data/syntax/component-pascal.xml + delete mode 100644 data/syntax/context.xml + delete mode 100644 data/syntax/cpp.xml + delete mode 100644 data/syntax/crk.xml + delete mode 100644 data/syntax/cs.xml + delete mode 100644 data/syntax/cubescript.xml + delete mode 100644 data/syntax/cue.xml + delete mode 100644 data/syntax/curry.xml + delete mode 100644 data/syntax/d.xml + delete mode 100644 data/syntax/debianchangelog.xml + delete mode 100644 data/syntax/debiancontrol.xml + delete mode 100644 data/syntax/desktop.xml + delete mode 100644 data/syntax/diff.xml + delete mode 100644 data/syntax/djangotemplate.xml + delete mode 100644 data/syntax/dockerfile.xml + delete mode 100644 data/syntax/dosbat.xml + delete mode 100644 data/syntax/dot.xml + delete mode 100644 data/syntax/doxyfile.xml + delete mode 100644 data/syntax/doxygenlua.xml + delete mode 100644 data/syntax/e.xml + delete mode 100644 data/syntax/eiffel.xml + delete mode 100644 data/syntax/elixir.xml + delete mode 100644 data/syntax/email.xml + delete mode 100644 data/syntax/erlang.xml + delete mode 100644 data/syntax/euphoria.xml + delete mode 100644 data/syntax/fasm.xml + delete mode 100644 data/syntax/fastq.xml + delete mode 100644 data/syntax/ferite.xml + delete mode 100644 data/syntax/fgl-4gl.xml + delete mode 100644 data/syntax/fgl-per.xml + delete mode 100644 data/syntax/fortran.xml + delete mode 100644 data/syntax/freebasic.xml + delete mode 100644 data/syntax/fsharp.xml + delete mode 100644 data/syntax/fstab.xml + delete mode 100644 data/syntax/ftl.xml + delete mode 100644 data/syntax/gap.xml + delete mode 100644 data/syntax/gcc.xml + delete mode 100644 data/syntax/gcode.xml + delete mode 100644 data/syntax/gdb-bt.xml + delete mode 100644 data/syntax/gdb.xml + delete mode 100644 data/syntax/gdbinit.xml + delete mode 100644 data/syntax/gdl.xml + delete mode 100644 data/syntax/gettext.xml + delete mode 100644 data/syntax/git-ignore.xml + delete mode 100644 data/syntax/git-rebase.xml + delete mode 100644 data/syntax/gitolite.xml + delete mode 100644 data/syntax/glosstex.xml + delete mode 100644 data/syntax/glsl.xml + delete mode 100644 data/syntax/gnuassembler.xml + delete mode 100644 data/syntax/gnuplot.xml + delete mode 100644 data/syntax/go.xml + delete mode 100644 data/syntax/grammar.xml + delete mode 100644 data/syntax/groovy.xml + delete mode 100644 data/syntax/haml.xml + delete mode 100644 data/syntax/hamlet.xml + delete mode 100644 data/syntax/haskell.xml + delete mode 100644 data/syntax/haxe.xml + delete mode 100644 data/syntax/hunspell-aff.xml + delete mode 100644 data/syntax/hunspell-dat.xml + delete mode 100644 data/syntax/hunspell-dic.xml + delete mode 100644 data/syntax/hunspell-idx.xml + delete mode 100644 data/syntax/idconsole.xml + delete mode 100644 data/syntax/idl.xml + delete mode 100644 data/syntax/ilerpg.xml + delete mode 100644 data/syntax/inform.xml + delete mode 100644 data/syntax/intelhex.xml + delete mode 100644 data/syntax/isocpp.xml + delete mode 100644 data/syntax/j.xml + delete mode 100644 data/syntax/jam.xml + delete mode 100644 data/syntax/javascript-react.xml + delete mode 100644 data/syntax/javascript.xml + delete mode 100644 data/syntax/jira.xml + delete mode 100644 data/syntax/jsp.xml + delete mode 100644 data/syntax/julia.xml + delete mode 100644 data/syntax/k.xml + delete mode 100644 data/syntax/kbasic.xml + delete mode 100644 data/syntax/kconfig.xml + delete mode 100644 data/syntax/kdesrc-buildrc.xml + delete mode 100644 data/syntax/kotlin.xml + delete mode 100644 data/syntax/latex.xml + delete mode 100644 data/syntax/ld.xml + delete mode 100644 data/syntax/ldif.xml + delete mode 100644 data/syntax/less.xml + delete mode 100644 data/syntax/lex.xml + delete mode 100644 data/syntax/lilypond.xml + delete mode 100644 data/syntax/literate-curry.xml + delete mode 100644 data/syntax/literate-haskell.xml + delete mode 100644 data/syntax/logcat.xml + delete mode 100644 data/syntax/logtalk.xml + delete mode 100644 data/syntax/lpc.xml + delete mode 100644 data/syntax/lsl.xml + delete mode 100644 data/syntax/lua.xml + delete mode 100644 data/syntax/m3u.xml + delete mode 100644 data/syntax/m4.xml + delete mode 100644 data/syntax/mab.xml + delete mode 100644 data/syntax/magma.xml + delete mode 100644 data/syntax/mako.xml + delete mode 100644 data/syntax/mandoc.xml + delete mode 100644 data/syntax/mason.xml + delete mode 100644 data/syntax/mathematica.xml + delete mode 100644 data/syntax/matlab.xml + delete mode 100644 data/syntax/maxima.xml + delete mode 100644 data/syntax/mediawiki.xml + delete mode 100644 data/syntax/mel.xml + delete mode 100644 data/syntax/mergetagtext.xml + delete mode 100644 data/syntax/meson.xml + delete mode 100644 data/syntax/metafont.xml + delete mode 100644 data/syntax/metamath.xml + delete mode 100644 data/syntax/mib.xml + delete mode 100644 data/syntax/mips.xml + delete mode 100644 data/syntax/modelica.xml + delete mode 100644 data/syntax/modelines.xml + delete mode 100644 data/syntax/modula-2-iso-only.xml + delete mode 100644 data/syntax/modula-2-pim-only.xml + delete mode 100644 data/syntax/modula-2-r10-only.xml + delete mode 100644 data/syntax/modula-2.xml + delete mode 100644 data/syntax/monobasic.xml + delete mode 100644 data/syntax/mup.xml + delete mode 100644 data/syntax/nagios.xml + delete mode 100644 data/syntax/nasm.xml + delete mode 100644 data/syntax/nemerle.xml + delete mode 100644 data/syntax/nesc.xml + delete mode 100644 data/syntax/noweb.xml + delete mode 100644 data/syntax/nsis.xml + delete mode 100644 data/syntax/objectivec.xml + delete mode 100644 data/syntax/objectivecpp.xml + delete mode 100644 data/syntax/ocaml.xml + delete mode 100644 data/syntax/ocamllex.xml + delete mode 100644 data/syntax/ocamlyacc.xml + delete mode 100644 data/syntax/octave.xml + delete mode 100644 data/syntax/oors.xml + delete mode 100644 data/syntax/opal.xml + delete mode 100644 data/syntax/opencl.xml + delete mode 100644 data/syntax/openscad.xml + delete mode 100644 data/syntax/pango.xml + delete mode 100644 data/syntax/pascal.xml + delete mode 100644 data/syntax/pgn.xml + delete mode 100644 data/syntax/php.xml + delete mode 100644 data/syntax/picsrc.xml + delete mode 100644 data/syntax/pig.xml + delete mode 100644 data/syntax/pike.xml + delete mode 100644 data/syntax/pli.xml + delete mode 100644 data/syntax/ply.xml + delete mode 100644 data/syntax/pony.xml + delete mode 100644 data/syntax/postscript.xml + delete mode 100644 data/syntax/povray.xml + delete mode 100644 data/syntax/ppd.xml + delete mode 100644 data/syntax/praat.xml + delete mode 100644 data/syntax/progress.xml + delete mode 100644 data/syntax/prolog.xml + delete mode 100644 data/syntax/protobuf.xml + delete mode 100644 data/syntax/pug.xml + delete mode 100644 data/syntax/puppet.xml + delete mode 100644 data/syntax/purebasic.xml + delete mode 100644 data/syntax/q.xml + delete mode 100644 data/syntax/qmake.xml + delete mode 100644 data/syntax/qml.xml + delete mode 100644 data/syntax/r.xml + delete mode 100644 data/syntax/rapidq.xml + delete mode 100644 data/syntax/rdoc.xml + delete mode 100644 data/syntax/relaxng.xml + delete mode 100644 data/syntax/relaxngcompact.xml + delete mode 100644 data/syntax/replicode.xml + delete mode 100644 data/syntax/rest.xml + delete mode 100644 data/syntax/rexx.xml + delete mode 100644 data/syntax/rhtml.xml + delete mode 100644 data/syntax/rib.xml + delete mode 100644 data/syntax/rmarkdown.xml + delete mode 100644 data/syntax/roff.xml + delete mode 100644 data/syntax/rpmspec.xml + delete mode 100644 data/syntax/rsiidl.xml + delete mode 100644 data/syntax/rtf.xml + delete mode 100644 data/syntax/rust.xml + delete mode 100644 data/syntax/sather.xml + delete mode 100644 data/syntax/scala.xml + delete mode 100644 data/syntax/scheme.xml + delete mode 100644 data/syntax/sci.xml + delete mode 100644 data/syntax/scss.xml + delete mode 100644 data/syntax/sed.xml + delete mode 100644 data/syntax/selinux-cil.xml + delete mode 100644 data/syntax/selinux-fc.xml + delete mode 100644 data/syntax/selinux.xml + delete mode 100644 data/syntax/sgml.xml + delete mode 100644 data/syntax/sieve.xml + delete mode 100644 data/syntax/sisu.xml + delete mode 100644 data/syntax/sml.xml + delete mode 100644 data/syntax/spice.xml + delete mode 100644 data/syntax/sql-mysql.xml + delete mode 100644 data/syntax/sql-oracle.xml + delete mode 100644 data/syntax/sql-postgresql.xml + delete mode 100644 data/syntax/sql.xml + delete mode 100644 data/syntax/stan.xml + delete mode 100644 data/syntax/stata.xml + delete mode 100644 data/syntax/stl.xml + delete mode 100644 data/syntax/systemc.xml + delete mode 100644 data/syntax/systemverilog.xml + delete mode 100644 data/syntax/tads3.xml + delete mode 100644 data/syntax/taskjuggler.xml + delete mode 100644 data/syntax/tcl.xml + delete mode 100644 data/syntax/tcsh.xml + delete mode 100644 data/syntax/template-toolkit.xml + delete mode 100644 data/syntax/texinfo.xml + delete mode 100644 data/syntax/textile.xml + delete mode 100644 data/syntax/tibasic.xml + delete mode 100644 data/syntax/tiger.xml + delete mode 100644 data/syntax/toml.xml + delete mode 100644 data/syntax/txt2tags.xml + delete mode 100644 data/syntax/uscript.xml + delete mode 100644 data/syntax/vala.xml + delete mode 100644 data/syntax/varnish.xml + delete mode 100644 data/syntax/varnish4.xml + delete mode 100644 data/syntax/varnishcc.xml + delete mode 100644 data/syntax/varnishcc4.xml + delete mode 100644 data/syntax/varnishtest.xml + delete mode 100644 data/syntax/varnishtest4.xml + delete mode 100644 data/syntax/vcard.xml + delete mode 100644 data/syntax/velocity.xml + delete mode 100644 data/syntax/vera.xml + delete mode 100644 data/syntax/verilog.xml + delete mode 100644 data/syntax/vhdl.xml + delete mode 100644 data/syntax/vrml.xml + delete mode 100644 data/syntax/wavefront-obj.xml + delete mode 100644 data/syntax/winehq.xml + delete mode 100644 data/syntax/wml.xml + delete mode 100644 data/syntax/xharbour.xml + delete mode 100644 data/syntax/xmldebug.xml + delete mode 100644 data/syntax/xonotic-console.xml + delete mode 100644 data/syntax/xorg.xml + delete mode 100644 data/syntax/xslt.xml + delete mode 100644 data/syntax/xul.xml + delete mode 100644 data/syntax/yacas.xml + delete mode 100644 data/syntax/yaml.xml + delete mode 100644 data/syntax/yang.xml + delete mode 100644 data/syntax/zonnon.xml + delete mode 100644 data/syntax/zsh.xml + +diff --git a/data/syntax/4dos.xml b/data/syntax/4dos.xml +deleted file mode 100644 +index b5f72ec..0000000 +diff --git a/data/syntax/abap.xml b/data/syntax/abap.xml +deleted file mode 100644 +index 12c604a..0000000 +diff --git a/data/syntax/abc.xml b/data/syntax/abc.xml +deleted file mode 100644 +index a4c3d9f..0000000 +diff --git a/data/syntax/actionscript.xml b/data/syntax/actionscript.xml +deleted file mode 100644 +index 89c91a9..0000000 +diff --git a/data/syntax/ada.xml b/data/syntax/ada.xml +deleted file mode 100644 +index 64bb9b6..0000000 +diff --git a/data/syntax/adblock.xml b/data/syntax/adblock.xml +deleted file mode 100644 +index 796b299..0000000 +diff --git a/data/syntax/agda.xml b/data/syntax/agda.xml +deleted file mode 100644 +index 958bc95..0000000 +diff --git a/data/syntax/ahdl.xml b/data/syntax/ahdl.xml +deleted file mode 100644 +index 76bd335..0000000 +diff --git a/data/syntax/ahk.xml b/data/syntax/ahk.xml +deleted file mode 100644 +index 79965c4..0000000 +diff --git a/data/syntax/ample.xml b/data/syntax/ample.xml +deleted file mode 100644 +index 2c77865..0000000 +diff --git a/data/syntax/ansforth94.xml b/data/syntax/ansforth94.xml +deleted file mode 100644 +index 44876e8..0000000 +diff --git a/data/syntax/ansic89.xml b/data/syntax/ansic89.xml +deleted file mode 100644 +index e442560..0000000 +diff --git a/data/syntax/ansys.xml b/data/syntax/ansys.xml +deleted file mode 100644 +index d405220..0000000 +diff --git a/data/syntax/apache.xml b/data/syntax/apache.xml +deleted file mode 100644 +index 732d769..0000000 +diff --git a/data/syntax/apparmor.xml b/data/syntax/apparmor.xml +deleted file mode 100644 +index 0b81467..0000000 +diff --git a/data/syntax/asm-avr.xml b/data/syntax/asm-avr.xml +deleted file mode 100644 +index 7075d10..0000000 +diff --git a/data/syntax/asm-dsp56k.xml b/data/syntax/asm-dsp56k.xml +deleted file mode 100644 +index c9d7cd1..0000000 +diff --git a/data/syntax/asm-m68k.xml b/data/syntax/asm-m68k.xml +deleted file mode 100644 +index bd5c36f..0000000 +diff --git a/data/syntax/asm6502.xml b/data/syntax/asm6502.xml +deleted file mode 100644 +index 47e1179..0000000 +diff --git a/data/syntax/asn1.xml b/data/syntax/asn1.xml +deleted file mode 100644 +index ec3432a..0000000 +diff --git a/data/syntax/asp.xml b/data/syntax/asp.xml +deleted file mode 100644 +index e03e23b..0000000 +diff --git a/data/syntax/awk.xml b/data/syntax/awk.xml +deleted file mode 100644 +index 9288a13..0000000 +diff --git a/data/syntax/bibtex.xml b/data/syntax/bibtex.xml +deleted file mode 100644 +index 339f477..0000000 +diff --git a/data/syntax/bitbake.xml b/data/syntax/bitbake.xml +deleted file mode 100644 +index 056edf6..0000000 +diff --git a/data/syntax/bmethod.xml b/data/syntax/bmethod.xml +deleted file mode 100644 +index 153b114..0000000 +diff --git a/data/syntax/boo.xml b/data/syntax/boo.xml +deleted file mode 100644 +index 26ec818..0000000 +diff --git a/data/syntax/c.xml b/data/syntax/c.xml +deleted file mode 100644 +index 6f224fc..0000000 +diff --git a/data/syntax/carto-css.xml b/data/syntax/carto-css.xml +deleted file mode 100644 +index 5ce4474..0000000 +diff --git a/data/syntax/ccss.xml b/data/syntax/ccss.xml +deleted file mode 100644 +index 4648420..0000000 +diff --git a/data/syntax/cg.xml b/data/syntax/cg.xml +deleted file mode 100644 +index 0ad61f1..0000000 +diff --git a/data/syntax/cgis.xml b/data/syntax/cgis.xml +deleted file mode 100644 +index 5b718c7..0000000 +diff --git a/data/syntax/changelog.xml b/data/syntax/changelog.xml +deleted file mode 100644 +index e004816..0000000 +diff --git a/data/syntax/chicken.xml b/data/syntax/chicken.xml +deleted file mode 100644 +index eaa9e97..0000000 +diff --git a/data/syntax/cisco.xml b/data/syntax/cisco.xml +deleted file mode 100644 +index c3d78f9..0000000 +diff --git a/data/syntax/clipper.xml b/data/syntax/clipper.xml +deleted file mode 100644 +index 898ff31..0000000 +diff --git a/data/syntax/clojure.xml b/data/syntax/clojure.xml +deleted file mode 100644 +index 855e01a..0000000 +diff --git a/data/syntax/coffee.xml b/data/syntax/coffee.xml +deleted file mode 100644 +index 58dc498..0000000 +diff --git a/data/syntax/coldfusion.xml b/data/syntax/coldfusion.xml +deleted file mode 100644 +index 1875eee..0000000 +diff --git a/data/syntax/commonlisp.xml b/data/syntax/commonlisp.xml +deleted file mode 100644 +index 49dd7f5..0000000 +diff --git a/data/syntax/component-pascal.xml b/data/syntax/component-pascal.xml +deleted file mode 100644 +index 5017e06..0000000 +diff --git a/data/syntax/context.xml b/data/syntax/context.xml +deleted file mode 100644 +index c1f1296..0000000 +diff --git a/data/syntax/cpp.xml b/data/syntax/cpp.xml +deleted file mode 100644 +index e370efb..0000000 +diff --git a/data/syntax/crk.xml b/data/syntax/crk.xml +deleted file mode 100644 +index 211ddcc..0000000 +diff --git a/data/syntax/cs.xml b/data/syntax/cs.xml +deleted file mode 100644 +index 264d1f4..0000000 +diff --git a/data/syntax/cubescript.xml b/data/syntax/cubescript.xml +deleted file mode 100644 +index 5677dbf..0000000 +diff --git a/data/syntax/cue.xml b/data/syntax/cue.xml +deleted file mode 100644 +index fc4eb1b..0000000 +diff --git a/data/syntax/curry.xml b/data/syntax/curry.xml +deleted file mode 100644 +index b289f1c..0000000 +diff --git a/data/syntax/d.xml b/data/syntax/d.xml +deleted file mode 100644 +index 91cb3e8..0000000 +diff --git a/data/syntax/debianchangelog.xml b/data/syntax/debianchangelog.xml +deleted file mode 100644 +index 5de2900..0000000 +diff --git a/data/syntax/debiancontrol.xml b/data/syntax/debiancontrol.xml +deleted file mode 100644 +index d3149c6..0000000 +diff --git a/data/syntax/desktop.xml b/data/syntax/desktop.xml +deleted file mode 100644 +index fc508c4..0000000 +diff --git a/data/syntax/diff.xml b/data/syntax/diff.xml +deleted file mode 100644 +index 0d2ade7..0000000 +diff --git a/data/syntax/djangotemplate.xml b/data/syntax/djangotemplate.xml +deleted file mode 100644 +index 6b1fa4f..0000000 +diff --git a/data/syntax/dockerfile.xml b/data/syntax/dockerfile.xml +deleted file mode 100644 +index 980fd04..0000000 +diff --git a/data/syntax/dosbat.xml b/data/syntax/dosbat.xml +deleted file mode 100644 +index 807763b..0000000 +diff --git a/data/syntax/dot.xml b/data/syntax/dot.xml +deleted file mode 100644 +index 6f8aacf..0000000 +diff --git a/data/syntax/doxyfile.xml b/data/syntax/doxyfile.xml +deleted file mode 100644 +index 1002d67..0000000 +diff --git a/data/syntax/doxygenlua.xml b/data/syntax/doxygenlua.xml +deleted file mode 100644 +index f3298b5..0000000 +diff --git a/data/syntax/e.xml b/data/syntax/e.xml +deleted file mode 100644 +index 0b96d97..0000000 +diff --git a/data/syntax/eiffel.xml b/data/syntax/eiffel.xml +deleted file mode 100644 +index 51420ec..0000000 +diff --git a/data/syntax/elixir.xml b/data/syntax/elixir.xml +deleted file mode 100644 +index f7a4cab..0000000 +diff --git a/data/syntax/email.xml b/data/syntax/email.xml +deleted file mode 100644 +index de1d44c..0000000 +diff --git a/data/syntax/erlang.xml b/data/syntax/erlang.xml +deleted file mode 100644 +index 7bbcbc9..0000000 +diff --git a/data/syntax/euphoria.xml b/data/syntax/euphoria.xml +deleted file mode 100644 +index ef28077..0000000 +diff --git a/data/syntax/fasm.xml b/data/syntax/fasm.xml +deleted file mode 100644 +index 04158a5..0000000 +diff --git a/data/syntax/fastq.xml b/data/syntax/fastq.xml +deleted file mode 100644 +index 30387fc..0000000 +diff --git a/data/syntax/ferite.xml b/data/syntax/ferite.xml +deleted file mode 100644 +index 13951c7..0000000 +diff --git a/data/syntax/fgl-4gl.xml b/data/syntax/fgl-4gl.xml +deleted file mode 100644 +index b546243..0000000 +diff --git a/data/syntax/fgl-per.xml b/data/syntax/fgl-per.xml +deleted file mode 100644 +index b3cea4d..0000000 +diff --git a/data/syntax/fortran.xml b/data/syntax/fortran.xml +deleted file mode 100644 +index 3baf579..0000000 +diff --git a/data/syntax/freebasic.xml b/data/syntax/freebasic.xml +deleted file mode 100644 +index e7f3831..0000000 +diff --git a/data/syntax/fsharp.xml b/data/syntax/fsharp.xml +deleted file mode 100644 +index ad42ca0..0000000 +diff --git a/data/syntax/fstab.xml b/data/syntax/fstab.xml +deleted file mode 100644 +index c047037..0000000 +diff --git a/data/syntax/ftl.xml b/data/syntax/ftl.xml +deleted file mode 100644 +index e20db76..0000000 +diff --git a/data/syntax/gap.xml b/data/syntax/gap.xml +deleted file mode 100644 +index 43bcaff..0000000 +diff --git a/data/syntax/gcc.xml b/data/syntax/gcc.xml +deleted file mode 100644 +index 258686d..0000000 +diff --git a/data/syntax/gcode.xml b/data/syntax/gcode.xml +deleted file mode 100644 +index 23b6318..0000000 +diff --git a/data/syntax/gdb-bt.xml b/data/syntax/gdb-bt.xml +deleted file mode 100644 +index 2ebe7e1..0000000 +diff --git a/data/syntax/gdb.xml b/data/syntax/gdb.xml +deleted file mode 100644 +index ec385de..0000000 +diff --git a/data/syntax/gdbinit.xml b/data/syntax/gdbinit.xml +deleted file mode 100644 +index 7999bf5..0000000 +diff --git a/data/syntax/gdl.xml b/data/syntax/gdl.xml +deleted file mode 100644 +index 8966f5b..0000000 +diff --git a/data/syntax/gettext.xml b/data/syntax/gettext.xml +deleted file mode 100644 +index 858fcf2..0000000 +diff --git a/data/syntax/git-ignore.xml b/data/syntax/git-ignore.xml +deleted file mode 100644 +index ceb25e4..0000000 +diff --git a/data/syntax/git-rebase.xml b/data/syntax/git-rebase.xml +deleted file mode 100644 +index 49c2dae..0000000 +diff --git a/data/syntax/gitolite.xml b/data/syntax/gitolite.xml +deleted file mode 100644 +index d82838e..0000000 +diff --git a/data/syntax/glosstex.xml b/data/syntax/glosstex.xml +deleted file mode 100644 +index 751cce4..0000000 +diff --git a/data/syntax/glsl.xml b/data/syntax/glsl.xml +deleted file mode 100644 +index 09d171a..0000000 +diff --git a/data/syntax/gnuassembler.xml b/data/syntax/gnuassembler.xml +deleted file mode 100644 +index 3820342..0000000 +diff --git a/data/syntax/gnuplot.xml b/data/syntax/gnuplot.xml +deleted file mode 100644 +index 97ee96a..0000000 +diff --git a/data/syntax/go.xml b/data/syntax/go.xml +deleted file mode 100644 +index 61d422d..0000000 +diff --git a/data/syntax/grammar.xml b/data/syntax/grammar.xml +deleted file mode 100644 +index b797f3c..0000000 +diff --git a/data/syntax/groovy.xml b/data/syntax/groovy.xml +deleted file mode 100644 +index 16118a9..0000000 +diff --git a/data/syntax/haml.xml b/data/syntax/haml.xml +deleted file mode 100644 +index 1358edd..0000000 +diff --git a/data/syntax/hamlet.xml b/data/syntax/hamlet.xml +deleted file mode 100644 +index 9d5b61b..0000000 +diff --git a/data/syntax/haskell.xml b/data/syntax/haskell.xml +deleted file mode 100644 +index c105be9..0000000 +diff --git a/data/syntax/haxe.xml b/data/syntax/haxe.xml +deleted file mode 100644 +index 3c8cd0d..0000000 +diff --git a/data/syntax/hunspell-aff.xml b/data/syntax/hunspell-aff.xml +deleted file mode 100644 +index 843d505..0000000 +diff --git a/data/syntax/hunspell-dat.xml b/data/syntax/hunspell-dat.xml +deleted file mode 100644 +index a57fd58..0000000 +diff --git a/data/syntax/hunspell-dic.xml b/data/syntax/hunspell-dic.xml +deleted file mode 100644 +index d714d8d..0000000 +diff --git a/data/syntax/hunspell-idx.xml b/data/syntax/hunspell-idx.xml +deleted file mode 100644 +index 27ba59a..0000000 +diff --git a/data/syntax/idconsole.xml b/data/syntax/idconsole.xml +deleted file mode 100644 +index 5464bd9..0000000 +diff --git a/data/syntax/idl.xml b/data/syntax/idl.xml +deleted file mode 100644 +index a8a2787..0000000 +diff --git a/data/syntax/ilerpg.xml b/data/syntax/ilerpg.xml +deleted file mode 100644 +index 4858efb..0000000 +diff --git a/data/syntax/inform.xml b/data/syntax/inform.xml +deleted file mode 100644 +index 8bc04a2..0000000 +diff --git a/data/syntax/intelhex.xml b/data/syntax/intelhex.xml +deleted file mode 100644 +index cfadf67..0000000 +diff --git a/data/syntax/isocpp.xml b/data/syntax/isocpp.xml +deleted file mode 100644 +index 56f171b..0000000 +diff --git a/data/syntax/j.xml b/data/syntax/j.xml +deleted file mode 100644 +index fae5b2f..0000000 +diff --git a/data/syntax/jam.xml b/data/syntax/jam.xml +deleted file mode 100644 +index 0d8e520..0000000 +diff --git a/data/syntax/javascript-react.xml b/data/syntax/javascript-react.xml +deleted file mode 100644 +index 98d0612..0000000 +diff --git a/data/syntax/javascript.xml b/data/syntax/javascript.xml +deleted file mode 100644 +index a76e9cc..0000000 +diff --git a/data/syntax/jira.xml b/data/syntax/jira.xml +deleted file mode 100644 +index 8274223..0000000 +diff --git a/data/syntax/jsp.xml b/data/syntax/jsp.xml +deleted file mode 100644 +index 90614ac..0000000 +diff --git a/data/syntax/julia.xml b/data/syntax/julia.xml +deleted file mode 100644 +index ed21005..0000000 +diff --git a/data/syntax/k.xml b/data/syntax/k.xml +deleted file mode 100644 +index 9cd0fe3..0000000 +diff --git a/data/syntax/kbasic.xml b/data/syntax/kbasic.xml +deleted file mode 100644 +index 41fc705..0000000 +diff --git a/data/syntax/kconfig.xml b/data/syntax/kconfig.xml +deleted file mode 100644 +index c430772..0000000 +diff --git a/data/syntax/kdesrc-buildrc.xml b/data/syntax/kdesrc-buildrc.xml +deleted file mode 100644 +index 6eaddff..0000000 +diff --git a/data/syntax/kotlin.xml b/data/syntax/kotlin.xml +deleted file mode 100644 +index db58f67..0000000 +diff --git a/data/syntax/latex.xml b/data/syntax/latex.xml +deleted file mode 100644 +index 9583e55..0000000 +diff --git a/data/syntax/ld.xml b/data/syntax/ld.xml +deleted file mode 100644 +index 0f7a8af..0000000 +diff --git a/data/syntax/ldif.xml b/data/syntax/ldif.xml +deleted file mode 100644 +index c49dbf7..0000000 +diff --git a/data/syntax/less.xml b/data/syntax/less.xml +deleted file mode 100644 +index 38eb490..0000000 +diff --git a/data/syntax/lex.xml b/data/syntax/lex.xml +deleted file mode 100644 +index 7f60575..0000000 +diff --git a/data/syntax/lilypond.xml b/data/syntax/lilypond.xml +deleted file mode 100644 +index fc92d54..0000000 +diff --git a/data/syntax/literate-curry.xml b/data/syntax/literate-curry.xml +deleted file mode 100644 +index ceb53b2..0000000 +diff --git a/data/syntax/literate-haskell.xml b/data/syntax/literate-haskell.xml +deleted file mode 100644 +index 0089cb1..0000000 +diff --git a/data/syntax/logcat.xml b/data/syntax/logcat.xml +deleted file mode 100644 +index 3481bdc..0000000 +diff --git a/data/syntax/logtalk.xml b/data/syntax/logtalk.xml +deleted file mode 100644 +index 43d063c..0000000 +diff --git a/data/syntax/lpc.xml b/data/syntax/lpc.xml +deleted file mode 100644 +index bf1dac5..0000000 +diff --git a/data/syntax/lsl.xml b/data/syntax/lsl.xml +deleted file mode 100644 +index 2d0fc51..0000000 +diff --git a/data/syntax/lua.xml b/data/syntax/lua.xml +deleted file mode 100644 +index cb842c9..0000000 +diff --git a/data/syntax/m3u.xml b/data/syntax/m3u.xml +deleted file mode 100644 +index 99171b0..0000000 +diff --git a/data/syntax/m4.xml b/data/syntax/m4.xml +deleted file mode 100644 +index 687c3ea..0000000 +diff --git a/data/syntax/mab.xml b/data/syntax/mab.xml +deleted file mode 100644 +index 387432d..0000000 +diff --git a/data/syntax/magma.xml b/data/syntax/magma.xml +deleted file mode 100644 +index a2fe461..0000000 +diff --git a/data/syntax/mako.xml b/data/syntax/mako.xml +deleted file mode 100644 +index 7e9a071..0000000 +diff --git a/data/syntax/mandoc.xml b/data/syntax/mandoc.xml +deleted file mode 100644 +index ed23b82..0000000 +diff --git a/data/syntax/mason.xml b/data/syntax/mason.xml +deleted file mode 100644 +index 32c2885..0000000 +diff --git a/data/syntax/mathematica.xml b/data/syntax/mathematica.xml +deleted file mode 100644 +index 3deb3de..0000000 +diff --git a/data/syntax/matlab.xml b/data/syntax/matlab.xml +deleted file mode 100644 +index 1a93ccc..0000000 +diff --git a/data/syntax/maxima.xml b/data/syntax/maxima.xml +deleted file mode 100644 +index cd06a3a..0000000 +diff --git a/data/syntax/mediawiki.xml b/data/syntax/mediawiki.xml +deleted file mode 100644 +index accd0ec..0000000 +diff --git a/data/syntax/mel.xml b/data/syntax/mel.xml +deleted file mode 100644 +index 8806852..0000000 +diff --git a/data/syntax/mergetagtext.xml b/data/syntax/mergetagtext.xml +deleted file mode 100644 +index efcc1f7..0000000 +diff --git a/data/syntax/meson.xml b/data/syntax/meson.xml +deleted file mode 100644 +index 4ecf547..0000000 +diff --git a/data/syntax/metafont.xml b/data/syntax/metafont.xml +deleted file mode 100644 +index 88166ef..0000000 +diff --git a/data/syntax/metamath.xml b/data/syntax/metamath.xml +deleted file mode 100644 +index 232603a..0000000 +diff --git a/data/syntax/mib.xml b/data/syntax/mib.xml +deleted file mode 100644 +index 0455206..0000000 +diff --git a/data/syntax/mips.xml b/data/syntax/mips.xml +deleted file mode 100644 +index 6802706..0000000 +diff --git a/data/syntax/modelica.xml b/data/syntax/modelica.xml +deleted file mode 100644 +index 76cf281..0000000 +diff --git a/data/syntax/modelines.xml b/data/syntax/modelines.xml +deleted file mode 100644 +index 0f3c882..0000000 +diff --git a/data/syntax/modula-2-iso-only.xml b/data/syntax/modula-2-iso-only.xml +deleted file mode 100644 +index 9da7ae3..0000000 +diff --git a/data/syntax/modula-2-pim-only.xml b/data/syntax/modula-2-pim-only.xml +deleted file mode 100644 +index 9906339..0000000 +diff --git a/data/syntax/modula-2-r10-only.xml b/data/syntax/modula-2-r10-only.xml +deleted file mode 100644 +index de4fd1b..0000000 +diff --git a/data/syntax/modula-2.xml b/data/syntax/modula-2.xml +deleted file mode 100644 +index da3676b..0000000 +diff --git a/data/syntax/monobasic.xml b/data/syntax/monobasic.xml +deleted file mode 100644 +index 558dded..0000000 +diff --git a/data/syntax/mup.xml b/data/syntax/mup.xml +deleted file mode 100644 +index a33fb49..0000000 +diff --git a/data/syntax/nagios.xml b/data/syntax/nagios.xml +deleted file mode 100644 +index 20b81ea..0000000 +diff --git a/data/syntax/nasm.xml b/data/syntax/nasm.xml +deleted file mode 100644 +index ba50d50..0000000 +diff --git a/data/syntax/nemerle.xml b/data/syntax/nemerle.xml +deleted file mode 100644 +index 208d70d..0000000 +diff --git a/data/syntax/nesc.xml b/data/syntax/nesc.xml +deleted file mode 100644 +index 5a5d0db..0000000 +diff --git a/data/syntax/noweb.xml b/data/syntax/noweb.xml +deleted file mode 100644 +index 09641af..0000000 +diff --git a/data/syntax/nsis.xml b/data/syntax/nsis.xml +deleted file mode 100644 +index 567419d..0000000 +diff --git a/data/syntax/objectivec.xml b/data/syntax/objectivec.xml +deleted file mode 100644 +index bdad6fe..0000000 +diff --git a/data/syntax/objectivecpp.xml b/data/syntax/objectivecpp.xml +deleted file mode 100644 +index a48f9c9..0000000 +diff --git a/data/syntax/ocaml.xml b/data/syntax/ocaml.xml +deleted file mode 100644 +index 4d47d7b..0000000 +diff --git a/data/syntax/ocamllex.xml b/data/syntax/ocamllex.xml +deleted file mode 100644 +index 14b5837..0000000 +diff --git a/data/syntax/ocamlyacc.xml b/data/syntax/ocamlyacc.xml +deleted file mode 100644 +index 6d4d7ba..0000000 +diff --git a/data/syntax/octave.xml b/data/syntax/octave.xml +deleted file mode 100644 +index 5cdd261..0000000 +diff --git a/data/syntax/oors.xml b/data/syntax/oors.xml +deleted file mode 100644 +index d28011c..0000000 +diff --git a/data/syntax/opal.xml b/data/syntax/opal.xml +deleted file mode 100644 +index e390d13..0000000 +diff --git a/data/syntax/opencl.xml b/data/syntax/opencl.xml +deleted file mode 100644 +index f18ac7f..0000000 +diff --git a/data/syntax/openscad.xml b/data/syntax/openscad.xml +deleted file mode 100644 +index b5005df..0000000 +diff --git a/data/syntax/pango.xml b/data/syntax/pango.xml +deleted file mode 100644 +index 2a4f420..0000000 +diff --git a/data/syntax/pascal.xml b/data/syntax/pascal.xml +deleted file mode 100644 +index 54ae266..0000000 +diff --git a/data/syntax/pgn.xml b/data/syntax/pgn.xml +deleted file mode 100644 +index ee508df..0000000 +diff --git a/data/syntax/php.xml b/data/syntax/php.xml +deleted file mode 100644 +index acad510..0000000 +diff --git a/data/syntax/picsrc.xml b/data/syntax/picsrc.xml +deleted file mode 100644 +index a60c890..0000000 +diff --git a/data/syntax/pig.xml b/data/syntax/pig.xml +deleted file mode 100644 +index fe2a6f1..0000000 +diff --git a/data/syntax/pike.xml b/data/syntax/pike.xml +deleted file mode 100644 +index 5a111e2..0000000 +diff --git a/data/syntax/pli.xml b/data/syntax/pli.xml +deleted file mode 100644 +index 15148bc..0000000 +diff --git a/data/syntax/ply.xml b/data/syntax/ply.xml +deleted file mode 100644 +index 852f4b3..0000000 +diff --git a/data/syntax/pony.xml b/data/syntax/pony.xml +deleted file mode 100644 +index 43c24ae..0000000 +diff --git a/data/syntax/postscript.xml b/data/syntax/postscript.xml +deleted file mode 100644 +index 474167d..0000000 +diff --git a/data/syntax/povray.xml b/data/syntax/povray.xml +deleted file mode 100644 +index 152559a..0000000 +diff --git a/data/syntax/ppd.xml b/data/syntax/ppd.xml +deleted file mode 100644 +index a049512..0000000 +diff --git a/data/syntax/praat.xml b/data/syntax/praat.xml +deleted file mode 100644 +index a10219d..0000000 +diff --git a/data/syntax/progress.xml b/data/syntax/progress.xml +deleted file mode 100644 +index c467ae1..0000000 +diff --git a/data/syntax/prolog.xml b/data/syntax/prolog.xml +deleted file mode 100644 +index 7c1b15b..0000000 +diff --git a/data/syntax/protobuf.xml b/data/syntax/protobuf.xml +deleted file mode 100644 +index bc05a15..0000000 +diff --git a/data/syntax/pug.xml b/data/syntax/pug.xml +deleted file mode 100644 +index b960317..0000000 +diff --git a/data/syntax/puppet.xml b/data/syntax/puppet.xml +deleted file mode 100644 +index 57b6eea..0000000 +diff --git a/data/syntax/purebasic.xml b/data/syntax/purebasic.xml +deleted file mode 100644 +index be1a33b..0000000 +diff --git a/data/syntax/q.xml b/data/syntax/q.xml +deleted file mode 100644 +index c8fbc8b..0000000 +diff --git a/data/syntax/qmake.xml b/data/syntax/qmake.xml +deleted file mode 100644 +index bae7296..0000000 +diff --git a/data/syntax/qml.xml b/data/syntax/qml.xml +deleted file mode 100644 +index b41680d..0000000 +diff --git a/data/syntax/r.xml b/data/syntax/r.xml +deleted file mode 100644 +index 144418a..0000000 +diff --git a/data/syntax/rapidq.xml b/data/syntax/rapidq.xml +deleted file mode 100644 +index 67a7a8e..0000000 +diff --git a/data/syntax/rdoc.xml b/data/syntax/rdoc.xml +deleted file mode 100644 +index e6d73cd..0000000 +diff --git a/data/syntax/relaxng.xml b/data/syntax/relaxng.xml +deleted file mode 100644 +index 28fdb31..0000000 +diff --git a/data/syntax/relaxngcompact.xml b/data/syntax/relaxngcompact.xml +deleted file mode 100644 +index 6bcc484..0000000 +diff --git a/data/syntax/replicode.xml b/data/syntax/replicode.xml +deleted file mode 100644 +index 189a0ff..0000000 +diff --git a/data/syntax/rest.xml b/data/syntax/rest.xml +deleted file mode 100644 +index 6ca3a1a..0000000 +diff --git a/data/syntax/rexx.xml b/data/syntax/rexx.xml +deleted file mode 100644 +index a51eb3f..0000000 +diff --git a/data/syntax/rhtml.xml b/data/syntax/rhtml.xml +deleted file mode 100644 +index 291cea5..0000000 +diff --git a/data/syntax/rib.xml b/data/syntax/rib.xml +deleted file mode 100644 +index e8ec3da..0000000 +diff --git a/data/syntax/rmarkdown.xml b/data/syntax/rmarkdown.xml +deleted file mode 100644 +index 6d27305..0000000 +diff --git a/data/syntax/roff.xml b/data/syntax/roff.xml +deleted file mode 100644 +index 6b428be..0000000 +diff --git a/data/syntax/rpmspec.xml b/data/syntax/rpmspec.xml +deleted file mode 100644 +index 3ae4eb9..0000000 +diff --git a/data/syntax/rsiidl.xml b/data/syntax/rsiidl.xml +deleted file mode 100644 +index 11c5c69..0000000 +diff --git a/data/syntax/rtf.xml b/data/syntax/rtf.xml +deleted file mode 100644 +index 42ce267..0000000 +diff --git a/data/syntax/rust.xml b/data/syntax/rust.xml +deleted file mode 100644 +index 6657cf2..0000000 +diff --git a/data/syntax/sather.xml b/data/syntax/sather.xml +deleted file mode 100644 +index 89819cf..0000000 +diff --git a/data/syntax/scala.xml b/data/syntax/scala.xml +deleted file mode 100644 +index 284281e..0000000 +diff --git a/data/syntax/scheme.xml b/data/syntax/scheme.xml +deleted file mode 100644 +index 749a913..0000000 +diff --git a/data/syntax/sci.xml b/data/syntax/sci.xml +deleted file mode 100644 +index 20af7ac..0000000 +diff --git a/data/syntax/scss.xml b/data/syntax/scss.xml +deleted file mode 100644 +index e4efc0a..0000000 +diff --git a/data/syntax/sed.xml b/data/syntax/sed.xml +deleted file mode 100644 +index 10e4b8c..0000000 +diff --git a/data/syntax/selinux-cil.xml b/data/syntax/selinux-cil.xml +deleted file mode 100644 +index 8f6f972..0000000 +diff --git a/data/syntax/selinux-fc.xml b/data/syntax/selinux-fc.xml +deleted file mode 100644 +index 5bab65f..0000000 +diff --git a/data/syntax/selinux.xml b/data/syntax/selinux.xml +deleted file mode 100644 +index cb396d1..0000000 +diff --git a/data/syntax/sgml.xml b/data/syntax/sgml.xml +deleted file mode 100644 +index 87f2fe3..0000000 +diff --git a/data/syntax/sieve.xml b/data/syntax/sieve.xml +deleted file mode 100644 +index 448766a..0000000 +diff --git a/data/syntax/sisu.xml b/data/syntax/sisu.xml +deleted file mode 100644 +index 8376855..0000000 +diff --git a/data/syntax/sml.xml b/data/syntax/sml.xml +deleted file mode 100644 +index 7d63002..0000000 +diff --git a/data/syntax/spice.xml b/data/syntax/spice.xml +deleted file mode 100644 +index b67763c..0000000 +diff --git a/data/syntax/sql-mysql.xml b/data/syntax/sql-mysql.xml +deleted file mode 100644 +index f37b706..0000000 +diff --git a/data/syntax/sql-oracle.xml b/data/syntax/sql-oracle.xml +deleted file mode 100644 +index 7bb32fc..0000000 +diff --git a/data/syntax/sql-postgresql.xml b/data/syntax/sql-postgresql.xml +deleted file mode 100644 +index 6cf5a6a..0000000 +diff --git a/data/syntax/sql.xml b/data/syntax/sql.xml +deleted file mode 100644 +index 1e33b86..0000000 +diff --git a/data/syntax/stan.xml b/data/syntax/stan.xml +deleted file mode 100644 +index 10c1696..0000000 +diff --git a/data/syntax/stata.xml b/data/syntax/stata.xml +deleted file mode 100644 +index ce3b435..0000000 +diff --git a/data/syntax/stl.xml b/data/syntax/stl.xml +deleted file mode 100644 +index 41f4856..0000000 +diff --git a/data/syntax/systemc.xml b/data/syntax/systemc.xml +deleted file mode 100644 +index eb43a8e..0000000 +diff --git a/data/syntax/systemverilog.xml b/data/syntax/systemverilog.xml +deleted file mode 100644 +index b0e78aa..0000000 +diff --git a/data/syntax/tads3.xml b/data/syntax/tads3.xml +deleted file mode 100644 +index 7df8690..0000000 +diff --git a/data/syntax/taskjuggler.xml b/data/syntax/taskjuggler.xml +deleted file mode 100644 +index bb81dfe..0000000 +diff --git a/data/syntax/tcl.xml b/data/syntax/tcl.xml +deleted file mode 100644 +index 3de1876..0000000 +diff --git a/data/syntax/tcsh.xml b/data/syntax/tcsh.xml +deleted file mode 100644 +index dc63b3c..0000000 +diff --git a/data/syntax/template-toolkit.xml b/data/syntax/template-toolkit.xml +deleted file mode 100644 +index b004cb5..0000000 +diff --git a/data/syntax/texinfo.xml b/data/syntax/texinfo.xml +deleted file mode 100644 +index a43394a..0000000 +diff --git a/data/syntax/textile.xml b/data/syntax/textile.xml +deleted file mode 100644 +index b0e8250..0000000 +diff --git a/data/syntax/tibasic.xml b/data/syntax/tibasic.xml +deleted file mode 100644 +index d1a0fca..0000000 +diff --git a/data/syntax/tiger.xml b/data/syntax/tiger.xml +deleted file mode 100644 +index 482fdc4..0000000 +diff --git a/data/syntax/toml.xml b/data/syntax/toml.xml +deleted file mode 100644 +index 2369854..0000000 +diff --git a/data/syntax/txt2tags.xml b/data/syntax/txt2tags.xml +deleted file mode 100644 +index 1635f99..0000000 +diff --git a/data/syntax/uscript.xml b/data/syntax/uscript.xml +deleted file mode 100644 +index 13d3262..0000000 +diff --git a/data/syntax/vala.xml b/data/syntax/vala.xml +deleted file mode 100644 +index 8f9aab7..0000000 +diff --git a/data/syntax/varnish.xml b/data/syntax/varnish.xml +deleted file mode 100644 +index 5916872..0000000 +diff --git a/data/syntax/varnish4.xml b/data/syntax/varnish4.xml +deleted file mode 100644 +index 03ad852..0000000 +diff --git a/data/syntax/varnishcc.xml b/data/syntax/varnishcc.xml +deleted file mode 100644 +index 0a0052b..0000000 +diff --git a/data/syntax/varnishcc4.xml b/data/syntax/varnishcc4.xml +deleted file mode 100644 +index 481ad93..0000000 +diff --git a/data/syntax/varnishtest.xml b/data/syntax/varnishtest.xml +deleted file mode 100644 +index ceb94d2..0000000 +diff --git a/data/syntax/varnishtest4.xml b/data/syntax/varnishtest4.xml +deleted file mode 100644 +index ec0d96f..0000000 +diff --git a/data/syntax/vcard.xml b/data/syntax/vcard.xml +deleted file mode 100644 +index 5eafaa0..0000000 +diff --git a/data/syntax/velocity.xml b/data/syntax/velocity.xml +deleted file mode 100644 +index cf901d8..0000000 +diff --git a/data/syntax/vera.xml b/data/syntax/vera.xml +deleted file mode 100644 +index c3802c8..0000000 +diff --git a/data/syntax/verilog.xml b/data/syntax/verilog.xml +deleted file mode 100644 +index 9f113b4..0000000 +diff --git a/data/syntax/vhdl.xml b/data/syntax/vhdl.xml +deleted file mode 100644 +index 6a59911..0000000 +diff --git a/data/syntax/vrml.xml b/data/syntax/vrml.xml +deleted file mode 100644 +index 25839fd..0000000 +diff --git a/data/syntax/wavefront-obj.xml b/data/syntax/wavefront-obj.xml +deleted file mode 100644 +index 46d6ea7..0000000 +diff --git a/data/syntax/winehq.xml b/data/syntax/winehq.xml +deleted file mode 100644 +index 112f67d..0000000 +diff --git a/data/syntax/wml.xml b/data/syntax/wml.xml +deleted file mode 100644 +index 433649c..0000000 +diff --git a/data/syntax/xharbour.xml b/data/syntax/xharbour.xml +deleted file mode 100644 +index 43336fd..0000000 +diff --git a/data/syntax/xmldebug.xml b/data/syntax/xmldebug.xml +deleted file mode 100644 +index 68a1e8d..0000000 +diff --git a/data/syntax/xonotic-console.xml b/data/syntax/xonotic-console.xml +deleted file mode 100644 +index 13ef083..0000000 +diff --git a/data/syntax/xorg.xml b/data/syntax/xorg.xml +deleted file mode 100644 +index 8ea8855..0000000 +diff --git a/data/syntax/xslt.xml b/data/syntax/xslt.xml +deleted file mode 100644 +index 37b8577..0000000 +diff --git a/data/syntax/xul.xml b/data/syntax/xul.xml +deleted file mode 100644 +index 8dc6b65..0000000 +diff --git a/data/syntax/yacas.xml b/data/syntax/yacas.xml +deleted file mode 100644 +index 12dd078..0000000 +diff --git a/data/syntax/yaml.xml b/data/syntax/yaml.xml +deleted file mode 100644 +index 7c69ab6..0000000 +diff --git a/data/syntax/yang.xml b/data/syntax/yang.xml +deleted file mode 100644 +index 051be6a..0000000 +diff --git a/data/syntax/zonnon.xml b/data/syntax/zonnon.xml +deleted file mode 100644 +index ebe51e1..0000000 +diff --git a/data/syntax/zsh.xml b/data/syntax/zsh.xml +deleted file mode 100644 +index be40144..0000000 +-- +2.20.1.windows.1 + diff --git a/src/libs/3rdparty/syntax-highlighting/patches/0002-Remove-autotests.patch b/src/libs/3rdparty/syntax-highlighting/patches/0002-Remove-autotests.patch new file mode 100644 index 00000000000..a7174cabead --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/patches/0002-Remove-autotests.patch @@ -0,0 +1,2901 @@ +From 5191890626af72cabcf49a2b6197ef2e29af218b Mon Sep 17 00:00:00 2001 +From: Alessandro Portale +Date: Tue, 12 Feb 2019 19:35:08 +0100 +Subject: [PATCH 2/6] Remove autotests + +--- + CMakeLists.txt | 3 - + autotests/CMakeLists.txt | 49 - + autotests/folding/Dockerfile.fold | 19 - + autotests/folding/Doxyfile.example.fold | 2406 ---------------- + autotests/folding/Kconfig.fold | 15 - + autotests/folding/Makefile.fold | 28 - + autotests/folding/adblock.txt.fold | 53 - + autotests/folding/apache.conf.fold | 67 - + autotests/folding/basic.markdown.fold | 6 - + autotests/folding/basic.xml.fold | 4 - + autotests/folding/build.gradle.fold | 57 - + autotests/folding/clojure.clj.fold | 73 - + autotests/folding/complex.xml.fold | 13 - + autotests/folding/craftenv.ps1.fold | 109 - + autotests/folding/csharp.cs.fold | 38 - + autotests/folding/cube.obj.fold | 33 - + autotests/folding/cube.ply.fold | 26 - + autotests/folding/cube.stl.fold | 30 - + autotests/folding/example.rmd.fold | 39 - + autotests/folding/firstNonSpace.c.fold | 7 - + autotests/folding/folding.cpp.fold | 15 - + autotests/folding/git-rebase.fold | 32 - + autotests/folding/hello.exs.fold | 11 - + autotests/folding/highlight.ahdl.fold | 43 - + autotests/folding/highlight.asm-avr.fold | 75 - + autotests/folding/highlight.asm-nasm.fold | 27 - + autotests/folding/highlight.asp.fold | 58 - + autotests/folding/highlight.awk.fold | 52 - + autotests/folding/highlight.bib.fold | 31 - + autotests/folding/highlight.bt.fold | 31 - + autotests/folding/highlight.cmake.fold | 111 - + autotests/folding/highlight.cpp.fold | 507 ---- + autotests/folding/highlight.css.fold | 286 -- + autotests/folding/highlight.d.fold | 195 -- + autotests/folding/highlight.do.fold | 89 - + autotests/folding/highlight.dox.fold | 227 -- + autotests/folding/highlight.erl.fold | 68 - + autotests/folding/highlight.exu.fold | 97 - + autotests/folding/highlight.f90.fold | 181 -- + autotests/folding/highlight.gdb.fold | 156 -- + autotests/folding/highlight.gdbinit.fold | 9 - + autotests/folding/highlight.glsl.fold | 62 - + autotests/folding/highlight.hex.fold | 8 - + autotests/folding/highlight.hs.fold | 139 - + autotests/folding/highlight.java.fold | 48 - + autotests/folding/highlight.js.fold | 139 - + autotests/folding/highlight.jsp.fold | 170 -- + autotests/folding/highlight.less.fold | 701 ----- + autotests/folding/highlight.lex.fold | 82 - + autotests/folding/highlight.lgt.fold | 448 --- + autotests/folding/highlight.lhs.fold | 124 - + autotests/folding/highlight.lisp.fold | 36 - + autotests/folding/highlight.lua.fold | 160 -- + autotests/folding/highlight.ly.fold | 114 - + autotests/folding/highlight.m.fold | 61 - + autotests/folding/highlight.mac.fold | 145 - + autotests/folding/highlight.mup.fold | 103 - + autotests/folding/highlight.pb.fold | 87 - + autotests/folding/highlight.php.fold | 26 - + autotests/folding/highlight.pike.fold | 24 - + autotests/folding/highlight.pl.fold | 75 - + autotests/folding/highlight.pony.fold | 219 -- + autotests/folding/highlight.pov.fold | 76 - + autotests/folding/highlight.prg.fold | 71 - + autotests/folding/highlight.qml.fold | 59 - + autotests/folding/highlight.rb.fold | 551 ---- + autotests/folding/highlight.scad.fold | 23 - + autotests/folding/highlight.scheme.fold | 186 -- + autotests/folding/highlight.scss.fold | 693 ----- + autotests/folding/highlight.sh.fold | 207 -- + autotests/folding/highlight.spec.fold | 212 -- + autotests/folding/highlight.stan.fold | 380 --- + autotests/folding/highlight.t2t.fold | 90 - + autotests/folding/highlight.tcl.fold | 50 - + autotests/folding/highlight.tex.fold | 85 - + autotests/folding/highlight.tig.fold | 78 - + autotests/folding/highlight.wrl.fold | 41 - + autotests/folding/highlight.xml.fold | 67 - + autotests/folding/highlight.xsl.fold | 109 - + autotests/folding/highlight.y.fold | 93 - + autotests/folding/highlight.yang.fold | 38 - + autotests/folding/highlight_lpc.c.fold | 64 - + autotests/folding/highlight_ocaml.ml.fold | 105 - + autotests/folding/highlight_octave.m.fold | 74 - + autotests/folding/learnelixir.exs.fold | 397 --- + autotests/folding/light52_muldiv.vhdl.fold | 239 -- + autotests/folding/light52_tb.vhdl.fold | 186 -- + autotests/folding/meson.build.fold | 21 - + autotests/folding/modelines.py.fold | 10 - + autotests/folding/or1200_dc_fsm.v.fold | 563 ---- + autotests/folding/or1200_du.v.fold | 1803 ------------ + .../folding/preprocessor-bug363280.c.fold | 8 - + .../folding/preprocessor-bug363280.cpp.fold | 8 - + autotests/folding/review128925-1.css.fold | 112 - + autotests/folding/review128925-1.scss.fold | 211 -- + autotests/folding/review128925-2.css.fold | 62 - + autotests/folding/review128925-2.scss.fold | 81 - + autotests/folding/review128935.html.fold | 164 -- + autotests/folding/test-iso.mod.fold | 96 - + autotests/folding/test-pim.mod.fold | 90 - + autotests/folding/test-r10.mod.fold | 112 - + autotests/folding/test.Rd.fold | 51 - + autotests/folding/test.bash.fold | 23 - + autotests/folding/test.bb.fold | 34 - + autotests/folding/test.c.fold | 56 - + autotests/folding/test.cil.fold | 153 -- + autotests/folding/test.coffee.fold | 71 - + autotests/folding/test.css.fold | 18 - + autotests/folding/test.desktop.fold | 19 - + autotests/folding/test.diff.fold | 48 - + autotests/folding/test.eml.fold | 94 - + autotests/folding/test.fc.fold | 116 - + autotests/folding/test.frag.fold | 26 - + autotests/folding/test.htm.fold | 17 - + autotests/folding/test.ijs.fold | 61 - + autotests/folding/test.ini.fold | 18 - + autotests/folding/test.js.fold | 23 - + autotests/folding/test.json.fold | 13 - + autotests/folding/test.jsx.fold | 50 - + autotests/folding/test.logcat.fold | 90 - + autotests/folding/test.markdown.fold | 67 - + autotests/folding/test.mib.fold | 526 ---- + autotests/folding/test.mm.fold | 42 - + autotests/folding/test.mod.fold | 96 - + autotests/folding/test.mss.fold | 215 -- + autotests/folding/test.py.fold | 50 - + autotests/folding/test.qdocconf.fold | 65 - + autotests/folding/test.qml.fold | 23 - + autotests/folding/test.rexx.fold | 52 - + autotests/folding/test.rs.fold | 87 - + autotests/folding/test.sieve.fold | 387 --- + autotests/folding/test.sql.fold | 65 - + autotests/folding/test.sql_oracle.fold | 54 - + autotests/folding/test.te.fold | 139 - + autotests/folding/test.tex.fold | 5 - + autotests/folding/test.yaml.fold | 151 -- + autotests/folding/test.zsh.fold | 66 - + .../usr.bin.apparmor-profile-test.fold | 270 -- + autotests/foldingtest.cpp | 191 -- + autotests/highlighter_benchmark.cpp | 145 - + autotests/html/Dockerfile.html | 26 - + autotests/html/Doxyfile.example.html | 2413 ----------------- + autotests/html/Kconfig.html | 22 - + autotests/html/Makefile.html | 35 - + autotests/html/adblock.txt.html | 60 - + autotests/html/apache.conf.html | 74 - + autotests/html/basic.markdown.html | 13 - + autotests/html/basic.xml.html | 11 - + autotests/html/build.gradle.html | 64 - + autotests/html/clojure.clj.html | 80 - + autotests/html/complex.xml.html | 20 - + autotests/html/craftenv.ps1.html | 116 - + autotests/html/csharp.cs.html | 45 - + autotests/html/cube.obj.html | 40 - + autotests/html/cube.ply.html | 33 - + autotests/html/cube.stl.html | 37 - + autotests/html/example.rmd.html | 46 - + autotests/html/firstNonSpace.c.html | 14 - + autotests/html/folding.cpp.html | 22 - + autotests/html/git-rebase.html | 39 - + autotests/html/hello.exs.html | 18 - + autotests/html/highlight.ahdl.html | 50 - + autotests/html/highlight.asm-avr.html | 82 - + autotests/html/highlight.asm-nasm.html | 34 - + autotests/html/highlight.asp.html | 65 - + autotests/html/highlight.awk.html | 59 - + autotests/html/highlight.bib.html | 38 - + autotests/html/highlight.bt.html | 38 - + autotests/html/highlight.cmake.html | 118 - + autotests/html/highlight.cpp.html | 514 ---- + autotests/html/highlight.css.html | 293 -- + autotests/html/highlight.d.html | 202 -- + autotests/html/highlight.do.html | 96 - + autotests/html/highlight.dox.html | 234 -- + autotests/html/highlight.erl.html | 75 - + autotests/html/highlight.exu.html | 104 - + autotests/html/highlight.f90.html | 188 -- + autotests/html/highlight.gdb.html | 163 -- + autotests/html/highlight.gdbinit.html | 16 - + autotests/html/highlight.glsl.html | 69 - + autotests/html/highlight.hex.html | 15 - + autotests/html/highlight.hs.html | 146 - + autotests/html/highlight.java.html | 55 - + autotests/html/highlight.js.html | 146 - + autotests/html/highlight.jsp.html | 177 -- + autotests/html/highlight.less.html | 708 ----- + autotests/html/highlight.lex.html | 89 - + autotests/html/highlight.lgt.html | 455 ---- + autotests/html/highlight.lhs.html | 131 - + autotests/html/highlight.lisp.html | 43 - + autotests/html/highlight.lua.html | 167 -- + autotests/html/highlight.ly.html | 121 - + autotests/html/highlight.m.html | 68 - + autotests/html/highlight.mac.html | 152 -- + autotests/html/highlight.mup.html | 110 - + autotests/html/highlight.pb.html | 94 - + autotests/html/highlight.php.html | 33 - + autotests/html/highlight.pike.html | 31 - + autotests/html/highlight.pl.html | 82 - + autotests/html/highlight.pony.html | 226 -- + autotests/html/highlight.pov.html | 83 - + autotests/html/highlight.prg.html | 78 - + autotests/html/highlight.qml.html | 66 - + autotests/html/highlight.rb.html | 558 ---- + autotests/html/highlight.scad.html | 30 - + autotests/html/highlight.scheme.html | 193 -- + autotests/html/highlight.scss.html | 700 ----- + autotests/html/highlight.sh.html | 214 -- + autotests/html/highlight.spec.html | 219 -- + autotests/html/highlight.stan.html | 387 --- + autotests/html/highlight.t2t.html | 97 - + autotests/html/highlight.tcl.html | 57 - + autotests/html/highlight.tex.html | 92 - + autotests/html/highlight.tig.html | 85 - + autotests/html/highlight.wrl.html | 48 - + autotests/html/highlight.xml.html | 74 - + autotests/html/highlight.xsl.html | 116 - + autotests/html/highlight.y.html | 100 - + autotests/html/highlight.yang.html | 45 - + autotests/html/highlight_lpc.c.html | 71 - + autotests/html/highlight_ocaml.ml.html | 112 - + autotests/html/highlight_octave.m.html | 81 - + autotests/html/learnelixir.exs.html | 404 --- + autotests/html/light52_muldiv.vhdl.html | 246 -- + autotests/html/light52_tb.vhdl.html | 193 -- + autotests/html/meson.build.html | 28 - + autotests/html/modelines.py.html | 17 - + autotests/html/or1200_dc_fsm.v.html | 570 ---- + autotests/html/or1200_du.v.html | 1810 ------------- + autotests/html/preprocessor-bug363280.c.html | 15 - + .../html/preprocessor-bug363280.cpp.html | 15 - + autotests/html/review128925-1.css.html | 119 - + autotests/html/review128925-1.scss.html | 218 -- + autotests/html/review128925-2.css.html | 69 - + autotests/html/review128925-2.scss.html | 88 - + autotests/html/review128935.html.html | 171 -- + autotests/html/test-iso.mod.html | 103 - + autotests/html/test-pim.mod.html | 97 - + autotests/html/test-r10.mod.html | 119 - + autotests/html/test.Rd.html | 58 - + autotests/html/test.bash.html | 30 - + autotests/html/test.bb.html | 41 - + autotests/html/test.c.html | 63 - + autotests/html/test.cil.html | 160 -- + autotests/html/test.coffee.html | 78 - + autotests/html/test.css.html | 25 - + autotests/html/test.desktop.html | 26 - + autotests/html/test.diff.html | 55 - + autotests/html/test.eml.html | 101 - + autotests/html/test.fc.html | 123 - + autotests/html/test.frag.html | 33 - + autotests/html/test.htm.html | 24 - + autotests/html/test.ijs.html | 68 - + autotests/html/test.ini.html | 25 - + autotests/html/test.js.html | 30 - + autotests/html/test.json.html | 20 - + autotests/html/test.jsx.html | 57 - + autotests/html/test.logcat.html | 97 - + autotests/html/test.markdown.html | 74 - + autotests/html/test.mib.html | 533 ---- + autotests/html/test.mm.html | 49 - + autotests/html/test.mod.html | 103 - + autotests/html/test.mss.html | 222 -- + autotests/html/test.py.html | 57 - + autotests/html/test.qdocconf.html | 72 - + autotests/html/test.qml.html | 30 - + autotests/html/test.rexx.html | 59 - + autotests/html/test.rs.html | 94 - + autotests/html/test.sieve.html | 394 --- + autotests/html/test.sql.html | 72 - + autotests/html/test.sql_oracle.html | 61 - + autotests/html/test.te.html | 146 - + autotests/html/test.tex.html | 12 - + autotests/html/test.yaml.html | 158 -- + autotests/html/test.zsh.html | 73 - + .../html/usr.bin.apparmor-profile-test.html | 277 -- + autotests/htmlhighlighter_test.cpp | 121 - + autotests/input/Dockerfile | 19 - + autotests/input/Doxyfile.example | 2406 ---------------- + autotests/input/Kconfig | 15 - + autotests/input/Makefile | 28 - + autotests/input/adblock.txt | 53 - + autotests/input/adblock.txt.syntax | 1 - + autotests/input/apache.conf | 67 - + autotests/input/apache.conf.syntax | 1 - + autotests/input/basic.markdown | 6 - + autotests/input/basic.xml | 4 - + autotests/input/build.gradle | 57 - + autotests/input/clojure.clj | 73 - + autotests/input/complex.xml | 13 - + autotests/input/craftenv.ps1 | 109 - + autotests/input/csharp.cs | 38 - + autotests/input/cube.obj | 33 - + autotests/input/cube.ply | 26 - + autotests/input/cube.stl | 30 - + autotests/input/example.rmd | 39 - + autotests/input/firstNonSpace.c | 7 - + autotests/input/folding.cpp | 15 - + autotests/input/git-rebase | 32 - + autotests/input/git-rebase.syntax | 1 - + autotests/input/hello.exs | 11 - + autotests/input/highlight.ahdl | 43 - + autotests/input/highlight.asm-avr | 75 - + autotests/input/highlight.asm-nasm | 27 - + autotests/input/highlight.asm-nasm.syntax | 1 - + autotests/input/highlight.asp | 58 - + autotests/input/highlight.awk | 52 - + autotests/input/highlight.bib | 31 - + autotests/input/highlight.bt | 31 - + autotests/input/highlight.cmake | 111 - + autotests/input/highlight.cpp | 507 ---- + autotests/input/highlight.css | 286 -- + autotests/input/highlight.d | 195 -- + autotests/input/highlight.do | 89 - + autotests/input/highlight.dox | 227 -- + autotests/input/highlight.erl | 68 - + autotests/input/highlight.exu | 97 - + autotests/input/highlight.f90 | 181 -- + autotests/input/highlight.gdb | 156 -- + autotests/input/highlight.gdbinit | 9 - + autotests/input/highlight.glsl | 62 - + autotests/input/highlight.hex | 8 - + autotests/input/highlight.hs | 139 - + autotests/input/highlight.java | 48 - + autotests/input/highlight.js | 139 - + autotests/input/highlight.jsp | 170 -- + autotests/input/highlight.less | 701 ----- + autotests/input/highlight.lex | 82 - + autotests/input/highlight.lgt | 448 --- + autotests/input/highlight.lhs | 124 - + autotests/input/highlight.lisp | 36 - + autotests/input/highlight.lua | 160 -- + autotests/input/highlight.ly | 114 - + autotests/input/highlight.m | 61 - + autotests/input/highlight.m.syntax | 1 - + autotests/input/highlight.mac | 145 - + autotests/input/highlight.mup | 103 - + autotests/input/highlight.pb | 87 - + autotests/input/highlight.php | 26 - + autotests/input/highlight.pike | 24 - + autotests/input/highlight.pl | 75 - + autotests/input/highlight.pony | 219 -- + autotests/input/highlight.pov | 76 - + autotests/input/highlight.prg | 71 - + autotests/input/highlight.prg.syntax | 1 - + autotests/input/highlight.qml | 59 - + autotests/input/highlight.rb | 551 ---- + autotests/input/highlight.scad | 23 - + autotests/input/highlight.scheme | 186 -- + autotests/input/highlight.scss | 693 ----- + autotests/input/highlight.sh | 207 -- + autotests/input/highlight.sh.syntax | 1 - + autotests/input/highlight.spec | 212 -- + autotests/input/highlight.stan | 380 --- + autotests/input/highlight.t2t | 90 - + autotests/input/highlight.tcl | 50 - + autotests/input/highlight.tex | 85 - + autotests/input/highlight.tig | 78 - + autotests/input/highlight.wrl | 41 - + autotests/input/highlight.xml | 67 - + autotests/input/highlight.xsl | 109 - + autotests/input/highlight.y | 93 - + autotests/input/highlight.yang | 38 - + autotests/input/highlight_lpc.c | 64 - + autotests/input/highlight_lpc.c.syntax | 1 - + autotests/input/highlight_ocaml.ml | 105 - + autotests/input/highlight_octave.m | 74 - + autotests/input/highlight_octave.m.syntax | 1 - + autotests/input/learnelixir.exs | 397 --- + autotests/input/light52_muldiv.vhdl | 239 -- + autotests/input/light52_tb.vhdl | 186 -- + autotests/input/meson.build | 21 - + autotests/input/modelines.py | 10 - + autotests/input/or1200_dc_fsm.v | 563 ---- + autotests/input/or1200_du.v | 1803 ------------ + autotests/input/preprocessor-bug363280.c | 8 - + autotests/input/preprocessor-bug363280.cpp | 8 - + autotests/input/review128925-1.css | 112 - + autotests/input/review128925-1.scss | 211 -- + autotests/input/review128925-2.css | 62 - + autotests/input/review128925-2.scss | 81 - + autotests/input/review128935.html | 164 -- + autotests/input/syntax/testlang.xml | 27 - + autotests/input/test-iso.mod | 96 - + autotests/input/test-iso.mod.syntax | 1 - + autotests/input/test-pim.mod | 90 - + autotests/input/test-pim.mod.syntax | 1 - + autotests/input/test-r10.mod | 112 - + autotests/input/test-r10.mod.syntax | 1 - + autotests/input/test.Rd | 51 - + autotests/input/test.bash | 23 - + autotests/input/test.bb | 34 - + autotests/input/test.c | 56 - + autotests/input/test.c.syntax | 1 - + autotests/input/test.cil | 153 -- + autotests/input/test.coffee | 71 - + autotests/input/test.css | 18 - + autotests/input/test.css.syntax | 1 - + autotests/input/test.desktop | 19 - + autotests/input/test.diff | 48 - + autotests/input/test.eml | 94 - + autotests/input/test.fc | 116 - + autotests/input/test.frag | 26 - + autotests/input/test.htm | 17 - + autotests/input/test.htm.syntax | 1 - + autotests/input/test.ijs | 61 - + autotests/input/test.ini | 18 - + autotests/input/test.js | 23 - + autotests/input/test.json | 13 - + autotests/input/test.jsx | 50 - + autotests/input/test.logcat | 90 - + autotests/input/test.markdown | 67 - + autotests/input/test.mib | 526 ---- + autotests/input/test.mm | 42 - + autotests/input/test.mm.syntax | 1 - + autotests/input/test.mod | 96 - + autotests/input/test.mss | 215 -- + autotests/input/test.py | 50 - + autotests/input/test.qdocconf | 65 - + autotests/input/test.qml | 23 - + autotests/input/test.rexx | 52 - + autotests/input/test.rs | 87 - + autotests/input/test.sieve | 387 --- + autotests/input/test.sql | 65 - + autotests/input/test.sql.syntax | 1 - + autotests/input/test.sql_oracle | 54 - + autotests/input/test.sql_oracle.syntax | 1 - + autotests/input/test.te | 139 - + autotests/input/test.tex | 5 - + autotests/input/test.yaml | 151 -- + autotests/input/test.zsh | 66 - + autotests/input/themes/customtheme.theme | 46 - + autotests/input/usr.bin.apparmor-profile-test | 270 -- + autotests/reference/Dockerfile.ref | 19 - + autotests/reference/Doxyfile.example.ref | 2406 ---------------- + autotests/reference/Kconfig.ref | 15 - + autotests/reference/Makefile.ref | 28 - + autotests/reference/adblock.txt.ref | 53 - + autotests/reference/apache.conf.ref | 67 - + autotests/reference/basic.markdown.ref | 6 - + autotests/reference/basic.xml.ref | 4 - + autotests/reference/build.gradle.ref | 57 - + autotests/reference/clojure.clj.ref | 73 - + autotests/reference/complex.xml.ref | 13 - + autotests/reference/craftenv.ps1.ref | 109 - + autotests/reference/csharp.cs.ref | 38 - + autotests/reference/cube.obj.ref | 33 - + autotests/reference/cube.ply.ref | 26 - + autotests/reference/cube.stl.ref | 30 - + autotests/reference/example.rmd.ref | 39 - + autotests/reference/firstNonSpace.c.ref | 7 - + autotests/reference/folding.cpp.ref | 15 - + autotests/reference/git-rebase.ref | 32 - + autotests/reference/hello.exs.ref | 11 - + autotests/reference/highlight.ahdl.ref | 43 - + autotests/reference/highlight.asm-avr.ref | 75 - + autotests/reference/highlight.asm-nasm.ref | 27 - + autotests/reference/highlight.asp.ref | 58 - + autotests/reference/highlight.awk.ref | 52 - + autotests/reference/highlight.bib.ref | 31 - + autotests/reference/highlight.bt.ref | 31 - + autotests/reference/highlight.cmake.ref | 111 - + autotests/reference/highlight.cpp.ref | 507 ---- + autotests/reference/highlight.css.ref | 286 -- + autotests/reference/highlight.d.ref | 195 -- + autotests/reference/highlight.do.ref | 89 - + autotests/reference/highlight.dox.ref | 227 -- + autotests/reference/highlight.erl.ref | 68 - + autotests/reference/highlight.exu.ref | 97 - + autotests/reference/highlight.f90.ref | 181 -- + autotests/reference/highlight.gdb.ref | 156 -- + autotests/reference/highlight.gdbinit.ref | 9 - + autotests/reference/highlight.glsl.ref | 62 - + autotests/reference/highlight.hex.ref | 8 - + autotests/reference/highlight.hs.ref | 139 - + autotests/reference/highlight.java.ref | 48 - + autotests/reference/highlight.js.ref | 139 - + autotests/reference/highlight.jsp.ref | 170 -- + autotests/reference/highlight.less.ref | 701 ----- + autotests/reference/highlight.lex.ref | 82 - + autotests/reference/highlight.lgt.ref | 448 --- + autotests/reference/highlight.lhs.ref | 124 - + autotests/reference/highlight.lisp.ref | 36 - + autotests/reference/highlight.lua.ref | 160 -- + autotests/reference/highlight.ly.ref | 114 - + autotests/reference/highlight.m.ref | 61 - + autotests/reference/highlight.mac.ref | 145 - + autotests/reference/highlight.mup.ref | 103 - + autotests/reference/highlight.pb.ref | 87 - + autotests/reference/highlight.php.ref | 26 - + autotests/reference/highlight.pike.ref | 24 - + autotests/reference/highlight.pl.ref | 75 - + autotests/reference/highlight.pony.ref | 219 -- + autotests/reference/highlight.pov.ref | 76 - + autotests/reference/highlight.prg.ref | 71 - + autotests/reference/highlight.qml.ref | 59 - + autotests/reference/highlight.rb.ref | 551 ---- + autotests/reference/highlight.scad.ref | 23 - + autotests/reference/highlight.scheme.ref | 186 -- + autotests/reference/highlight.scss.ref | 693 ----- + autotests/reference/highlight.sh.ref | 207 -- + autotests/reference/highlight.spec.ref | 212 -- + autotests/reference/highlight.stan.ref | 380 --- + autotests/reference/highlight.t2t.ref | 90 - + autotests/reference/highlight.tcl.ref | 50 - + autotests/reference/highlight.tex.ref | 85 - + autotests/reference/highlight.tig.ref | 78 - + autotests/reference/highlight.wrl.ref | 41 - + autotests/reference/highlight.xml.ref | 67 - + autotests/reference/highlight.xsl.ref | 109 - + autotests/reference/highlight.y.ref | 93 - + autotests/reference/highlight.yang.ref | 38 - + autotests/reference/highlight_lpc.c.ref | 64 - + autotests/reference/highlight_ocaml.ml.ref | 105 - + autotests/reference/highlight_octave.m.ref | 74 - + autotests/reference/learnelixir.exs.ref | 397 --- + autotests/reference/light52_muldiv.vhdl.ref | 239 -- + autotests/reference/light52_tb.vhdl.ref | 186 -- + autotests/reference/meson.build.ref | 21 - + autotests/reference/modelines.py.ref | 10 - + autotests/reference/or1200_dc_fsm.v.ref | 563 ---- + autotests/reference/or1200_du.v.ref | 1803 ------------ + .../reference/preprocessor-bug363280.c.ref | 8 - + .../reference/preprocessor-bug363280.cpp.ref | 8 - + autotests/reference/review128925-1.css.ref | 112 - + autotests/reference/review128925-1.scss.ref | 211 -- + autotests/reference/review128925-2.css.ref | 62 - + autotests/reference/review128925-2.scss.ref | 81 - + autotests/reference/review128935.html.ref | 164 -- + autotests/reference/test-iso.mod.ref | 96 - + autotests/reference/test-pim.mod.ref | 90 - + autotests/reference/test-r10.mod.ref | 112 - + autotests/reference/test.Rd.ref | 51 - + autotests/reference/test.bash.ref | 23 - + autotests/reference/test.bb.ref | 34 - + autotests/reference/test.c.ref | 56 - + autotests/reference/test.cil.ref | 153 -- + autotests/reference/test.coffee.ref | 71 - + autotests/reference/test.css.ref | 18 - + autotests/reference/test.desktop.ref | 19 - + autotests/reference/test.diff.ref | 48 - + autotests/reference/test.eml.ref | 94 - + autotests/reference/test.fc.ref | 116 - + autotests/reference/test.frag.ref | 26 - + autotests/reference/test.htm.ref | 17 - + autotests/reference/test.ijs.ref | 61 - + autotests/reference/test.ini.ref | 18 - + autotests/reference/test.js.ref | 23 - + autotests/reference/test.json.ref | 13 - + autotests/reference/test.jsx.ref | 50 - + autotests/reference/test.logcat.ref | 90 - + autotests/reference/test.markdown.ref | 67 - + autotests/reference/test.mib.ref | 526 ---- + autotests/reference/test.mm.ref | 42 - + autotests/reference/test.mod.ref | 96 - + autotests/reference/test.mss.ref | 215 -- + autotests/reference/test.py.ref | 50 - + autotests/reference/test.qdocconf.ref | 65 - + autotests/reference/test.qml.ref | 23 - + autotests/reference/test.rexx.ref | 52 - + autotests/reference/test.rs.ref | 87 - + autotests/reference/test.sieve.ref | 387 --- + autotests/reference/test.sql.ref | 65 - + autotests/reference/test.sql_oracle.ref | 54 - + autotests/reference/test.te.ref | 139 - + autotests/reference/test.tex.ref | 5 - + autotests/reference/test.yaml.ref | 151 -- + autotests/reference/test.zsh.ref | 66 - + .../usr.bin.apparmor-profile-test.ref | 270 -- + autotests/repository_benchmark.cpp | 49 - + autotests/syntaxrepository_test.cpp | 406 --- + autotests/test-config.h.in | 103 - + autotests/testhighlighter.cpp | 189 -- + autotests/theme_test.cpp | 311 --- + autotests/update-reference-data.sh.in | 5 - + autotests/wildcardmatcher_test.cpp | 91 - + 576 files changed, 79310 deletions(-) + delete mode 100644 autotests/CMakeLists.txt + delete mode 100644 autotests/folding/Dockerfile.fold + delete mode 100644 autotests/folding/Doxyfile.example.fold + delete mode 100644 autotests/folding/Kconfig.fold + delete mode 100644 autotests/folding/Makefile.fold + delete mode 100644 autotests/folding/adblock.txt.fold + delete mode 100644 autotests/folding/apache.conf.fold + delete mode 100644 autotests/folding/basic.markdown.fold + delete mode 100644 autotests/folding/basic.xml.fold + delete mode 100644 autotests/folding/build.gradle.fold + delete mode 100644 autotests/folding/clojure.clj.fold + delete mode 100644 autotests/folding/complex.xml.fold + delete mode 100644 autotests/folding/craftenv.ps1.fold + delete mode 100644 autotests/folding/csharp.cs.fold + delete mode 100644 autotests/folding/cube.obj.fold + delete mode 100644 autotests/folding/cube.ply.fold + delete mode 100644 autotests/folding/cube.stl.fold + delete mode 100644 autotests/folding/example.rmd.fold + delete mode 100644 autotests/folding/firstNonSpace.c.fold + delete mode 100644 autotests/folding/folding.cpp.fold + delete mode 100644 autotests/folding/git-rebase.fold + delete mode 100644 autotests/folding/hello.exs.fold + delete mode 100644 autotests/folding/highlight.ahdl.fold + delete mode 100644 autotests/folding/highlight.asm-avr.fold + delete mode 100644 autotests/folding/highlight.asm-nasm.fold + delete mode 100644 autotests/folding/highlight.asp.fold + delete mode 100644 autotests/folding/highlight.awk.fold + delete mode 100644 autotests/folding/highlight.bib.fold + delete mode 100644 autotests/folding/highlight.bt.fold + delete mode 100644 autotests/folding/highlight.cmake.fold + delete mode 100644 autotests/folding/highlight.cpp.fold + delete mode 100644 autotests/folding/highlight.css.fold + delete mode 100644 autotests/folding/highlight.d.fold + delete mode 100644 autotests/folding/highlight.do.fold + delete mode 100644 autotests/folding/highlight.dox.fold + delete mode 100644 autotests/folding/highlight.erl.fold + delete mode 100644 autotests/folding/highlight.exu.fold + delete mode 100644 autotests/folding/highlight.f90.fold + delete mode 100644 autotests/folding/highlight.gdb.fold + delete mode 100644 autotests/folding/highlight.gdbinit.fold + delete mode 100644 autotests/folding/highlight.glsl.fold + delete mode 100644 autotests/folding/highlight.hex.fold + delete mode 100644 autotests/folding/highlight.hs.fold + delete mode 100644 autotests/folding/highlight.java.fold + delete mode 100644 autotests/folding/highlight.js.fold + delete mode 100644 autotests/folding/highlight.jsp.fold + delete mode 100644 autotests/folding/highlight.less.fold + delete mode 100644 autotests/folding/highlight.lex.fold + delete mode 100644 autotests/folding/highlight.lgt.fold + delete mode 100644 autotests/folding/highlight.lhs.fold + delete mode 100644 autotests/folding/highlight.lisp.fold + delete mode 100644 autotests/folding/highlight.lua.fold + delete mode 100644 autotests/folding/highlight.ly.fold + delete mode 100644 autotests/folding/highlight.m.fold + delete mode 100644 autotests/folding/highlight.mac.fold + delete mode 100644 autotests/folding/highlight.mup.fold + delete mode 100644 autotests/folding/highlight.pb.fold + delete mode 100644 autotests/folding/highlight.php.fold + delete mode 100644 autotests/folding/highlight.pike.fold + delete mode 100644 autotests/folding/highlight.pl.fold + delete mode 100644 autotests/folding/highlight.pony.fold + delete mode 100644 autotests/folding/highlight.pov.fold + delete mode 100644 autotests/folding/highlight.prg.fold + delete mode 100644 autotests/folding/highlight.qml.fold + delete mode 100644 autotests/folding/highlight.rb.fold + delete mode 100644 autotests/folding/highlight.scad.fold + delete mode 100644 autotests/folding/highlight.scheme.fold + delete mode 100644 autotests/folding/highlight.scss.fold + delete mode 100644 autotests/folding/highlight.sh.fold + delete mode 100644 autotests/folding/highlight.spec.fold + delete mode 100644 autotests/folding/highlight.stan.fold + delete mode 100644 autotests/folding/highlight.t2t.fold + delete mode 100644 autotests/folding/highlight.tcl.fold + delete mode 100644 autotests/folding/highlight.tex.fold + delete mode 100644 autotests/folding/highlight.tig.fold + delete mode 100644 autotests/folding/highlight.wrl.fold + delete mode 100644 autotests/folding/highlight.xml.fold + delete mode 100644 autotests/folding/highlight.xsl.fold + delete mode 100644 autotests/folding/highlight.y.fold + delete mode 100644 autotests/folding/highlight.yang.fold + delete mode 100644 autotests/folding/highlight_lpc.c.fold + delete mode 100644 autotests/folding/highlight_ocaml.ml.fold + delete mode 100644 autotests/folding/highlight_octave.m.fold + delete mode 100644 autotests/folding/learnelixir.exs.fold + delete mode 100644 autotests/folding/light52_muldiv.vhdl.fold + delete mode 100644 autotests/folding/light52_tb.vhdl.fold + delete mode 100644 autotests/folding/meson.build.fold + delete mode 100644 autotests/folding/modelines.py.fold + delete mode 100644 autotests/folding/or1200_dc_fsm.v.fold + delete mode 100644 autotests/folding/or1200_du.v.fold + delete mode 100644 autotests/folding/preprocessor-bug363280.c.fold + delete mode 100644 autotests/folding/preprocessor-bug363280.cpp.fold + delete mode 100644 autotests/folding/review128925-1.css.fold + delete mode 100644 autotests/folding/review128925-1.scss.fold + delete mode 100644 autotests/folding/review128925-2.css.fold + delete mode 100644 autotests/folding/review128925-2.scss.fold + delete mode 100644 autotests/folding/review128935.html.fold + delete mode 100644 autotests/folding/test-iso.mod.fold + delete mode 100644 autotests/folding/test-pim.mod.fold + delete mode 100644 autotests/folding/test-r10.mod.fold + delete mode 100644 autotests/folding/test.Rd.fold + delete mode 100644 autotests/folding/test.bash.fold + delete mode 100644 autotests/folding/test.bb.fold + delete mode 100644 autotests/folding/test.c.fold + delete mode 100644 autotests/folding/test.cil.fold + delete mode 100644 autotests/folding/test.coffee.fold + delete mode 100644 autotests/folding/test.css.fold + delete mode 100644 autotests/folding/test.desktop.fold + delete mode 100644 autotests/folding/test.diff.fold + delete mode 100644 autotests/folding/test.eml.fold + delete mode 100644 autotests/folding/test.fc.fold + delete mode 100644 autotests/folding/test.frag.fold + delete mode 100644 autotests/folding/test.htm.fold + delete mode 100644 autotests/folding/test.ijs.fold + delete mode 100644 autotests/folding/test.ini.fold + delete mode 100644 autotests/folding/test.js.fold + delete mode 100644 autotests/folding/test.json.fold + delete mode 100644 autotests/folding/test.jsx.fold + delete mode 100644 autotests/folding/test.logcat.fold + delete mode 100644 autotests/folding/test.markdown.fold + delete mode 100644 autotests/folding/test.mib.fold + delete mode 100644 autotests/folding/test.mm.fold + delete mode 100644 autotests/folding/test.mod.fold + delete mode 100644 autotests/folding/test.mss.fold + delete mode 100644 autotests/folding/test.py.fold + delete mode 100644 autotests/folding/test.qdocconf.fold + delete mode 100644 autotests/folding/test.qml.fold + delete mode 100644 autotests/folding/test.rexx.fold + delete mode 100644 autotests/folding/test.rs.fold + delete mode 100644 autotests/folding/test.sieve.fold + delete mode 100644 autotests/folding/test.sql.fold + delete mode 100644 autotests/folding/test.sql_oracle.fold + delete mode 100644 autotests/folding/test.te.fold + delete mode 100644 autotests/folding/test.tex.fold + delete mode 100644 autotests/folding/test.yaml.fold + delete mode 100644 autotests/folding/test.zsh.fold + delete mode 100644 autotests/folding/usr.bin.apparmor-profile-test.fold + delete mode 100644 autotests/foldingtest.cpp + delete mode 100644 autotests/highlighter_benchmark.cpp + delete mode 100644 autotests/html/Dockerfile.html + delete mode 100644 autotests/html/Doxyfile.example.html + delete mode 100644 autotests/html/Kconfig.html + delete mode 100644 autotests/html/Makefile.html + delete mode 100644 autotests/html/adblock.txt.html + delete mode 100644 autotests/html/apache.conf.html + delete mode 100644 autotests/html/basic.markdown.html + delete mode 100644 autotests/html/basic.xml.html + delete mode 100644 autotests/html/build.gradle.html + delete mode 100644 autotests/html/clojure.clj.html + delete mode 100644 autotests/html/complex.xml.html + delete mode 100644 autotests/html/craftenv.ps1.html + delete mode 100644 autotests/html/csharp.cs.html + delete mode 100644 autotests/html/cube.obj.html + delete mode 100644 autotests/html/cube.ply.html + delete mode 100644 autotests/html/cube.stl.html + delete mode 100644 autotests/html/example.rmd.html + delete mode 100644 autotests/html/firstNonSpace.c.html + delete mode 100644 autotests/html/folding.cpp.html + delete mode 100644 autotests/html/git-rebase.html + delete mode 100644 autotests/html/hello.exs.html + delete mode 100644 autotests/html/highlight.ahdl.html + delete mode 100644 autotests/html/highlight.asm-avr.html + delete mode 100644 autotests/html/highlight.asm-nasm.html + delete mode 100644 autotests/html/highlight.asp.html + delete mode 100644 autotests/html/highlight.awk.html + delete mode 100644 autotests/html/highlight.bib.html + delete mode 100644 autotests/html/highlight.bt.html + delete mode 100644 autotests/html/highlight.cmake.html + delete mode 100644 autotests/html/highlight.cpp.html + delete mode 100644 autotests/html/highlight.css.html + delete mode 100644 autotests/html/highlight.d.html + delete mode 100644 autotests/html/highlight.do.html + delete mode 100644 autotests/html/highlight.dox.html + delete mode 100644 autotests/html/highlight.erl.html + delete mode 100644 autotests/html/highlight.exu.html + delete mode 100644 autotests/html/highlight.f90.html + delete mode 100644 autotests/html/highlight.gdb.html + delete mode 100644 autotests/html/highlight.gdbinit.html + delete mode 100644 autotests/html/highlight.glsl.html + delete mode 100644 autotests/html/highlight.hex.html + delete mode 100644 autotests/html/highlight.hs.html + delete mode 100644 autotests/html/highlight.java.html + delete mode 100644 autotests/html/highlight.js.html + delete mode 100644 autotests/html/highlight.jsp.html + delete mode 100644 autotests/html/highlight.less.html + delete mode 100644 autotests/html/highlight.lex.html + delete mode 100644 autotests/html/highlight.lgt.html + delete mode 100644 autotests/html/highlight.lhs.html + delete mode 100644 autotests/html/highlight.lisp.html + delete mode 100644 autotests/html/highlight.lua.html + delete mode 100644 autotests/html/highlight.ly.html + delete mode 100644 autotests/html/highlight.m.html + delete mode 100644 autotests/html/highlight.mac.html + delete mode 100644 autotests/html/highlight.mup.html + delete mode 100644 autotests/html/highlight.pb.html + delete mode 100644 autotests/html/highlight.php.html + delete mode 100644 autotests/html/highlight.pike.html + delete mode 100644 autotests/html/highlight.pl.html + delete mode 100644 autotests/html/highlight.pony.html + delete mode 100644 autotests/html/highlight.pov.html + delete mode 100644 autotests/html/highlight.prg.html + delete mode 100644 autotests/html/highlight.qml.html + delete mode 100644 autotests/html/highlight.rb.html + delete mode 100644 autotests/html/highlight.scad.html + delete mode 100644 autotests/html/highlight.scheme.html + delete mode 100644 autotests/html/highlight.scss.html + delete mode 100644 autotests/html/highlight.sh.html + delete mode 100644 autotests/html/highlight.spec.html + delete mode 100644 autotests/html/highlight.stan.html + delete mode 100644 autotests/html/highlight.t2t.html + delete mode 100644 autotests/html/highlight.tcl.html + delete mode 100644 autotests/html/highlight.tex.html + delete mode 100644 autotests/html/highlight.tig.html + delete mode 100644 autotests/html/highlight.wrl.html + delete mode 100644 autotests/html/highlight.xml.html + delete mode 100644 autotests/html/highlight.xsl.html + delete mode 100644 autotests/html/highlight.y.html + delete mode 100644 autotests/html/highlight.yang.html + delete mode 100644 autotests/html/highlight_lpc.c.html + delete mode 100644 autotests/html/highlight_ocaml.ml.html + delete mode 100644 autotests/html/highlight_octave.m.html + delete mode 100644 autotests/html/learnelixir.exs.html + delete mode 100644 autotests/html/light52_muldiv.vhdl.html + delete mode 100644 autotests/html/light52_tb.vhdl.html + delete mode 100644 autotests/html/meson.build.html + delete mode 100644 autotests/html/modelines.py.html + delete mode 100644 autotests/html/or1200_dc_fsm.v.html + delete mode 100644 autotests/html/or1200_du.v.html + delete mode 100644 autotests/html/preprocessor-bug363280.c.html + delete mode 100644 autotests/html/preprocessor-bug363280.cpp.html + delete mode 100644 autotests/html/review128925-1.css.html + delete mode 100644 autotests/html/review128925-1.scss.html + delete mode 100644 autotests/html/review128925-2.css.html + delete mode 100644 autotests/html/review128925-2.scss.html + delete mode 100644 autotests/html/review128935.html.html + delete mode 100644 autotests/html/test-iso.mod.html + delete mode 100644 autotests/html/test-pim.mod.html + delete mode 100644 autotests/html/test-r10.mod.html + delete mode 100644 autotests/html/test.Rd.html + delete mode 100644 autotests/html/test.bash.html + delete mode 100644 autotests/html/test.bb.html + delete mode 100644 autotests/html/test.c.html + delete mode 100644 autotests/html/test.cil.html + delete mode 100644 autotests/html/test.coffee.html + delete mode 100644 autotests/html/test.css.html + delete mode 100644 autotests/html/test.desktop.html + delete mode 100644 autotests/html/test.diff.html + delete mode 100644 autotests/html/test.eml.html + delete mode 100644 autotests/html/test.fc.html + delete mode 100644 autotests/html/test.frag.html + delete mode 100644 autotests/html/test.htm.html + delete mode 100644 autotests/html/test.ijs.html + delete mode 100644 autotests/html/test.ini.html + delete mode 100644 autotests/html/test.js.html + delete mode 100644 autotests/html/test.json.html + delete mode 100644 autotests/html/test.jsx.html + delete mode 100644 autotests/html/test.logcat.html + delete mode 100644 autotests/html/test.markdown.html + delete mode 100644 autotests/html/test.mib.html + delete mode 100644 autotests/html/test.mm.html + delete mode 100644 autotests/html/test.mod.html + delete mode 100644 autotests/html/test.mss.html + delete mode 100644 autotests/html/test.py.html + delete mode 100644 autotests/html/test.qdocconf.html + delete mode 100644 autotests/html/test.qml.html + delete mode 100644 autotests/html/test.rexx.html + delete mode 100644 autotests/html/test.rs.html + delete mode 100644 autotests/html/test.sieve.html + delete mode 100644 autotests/html/test.sql.html + delete mode 100644 autotests/html/test.sql_oracle.html + delete mode 100644 autotests/html/test.te.html + delete mode 100644 autotests/html/test.tex.html + delete mode 100644 autotests/html/test.yaml.html + delete mode 100644 autotests/html/test.zsh.html + delete mode 100644 autotests/html/usr.bin.apparmor-profile-test.html + delete mode 100644 autotests/htmlhighlighter_test.cpp + delete mode 100644 autotests/input/Dockerfile + delete mode 100644 autotests/input/Doxyfile.example + delete mode 100644 autotests/input/Kconfig + delete mode 100644 autotests/input/Makefile + delete mode 100644 autotests/input/adblock.txt + delete mode 100644 autotests/input/adblock.txt.syntax + delete mode 100644 autotests/input/apache.conf + delete mode 100644 autotests/input/apache.conf.syntax + delete mode 100644 autotests/input/basic.markdown + delete mode 100644 autotests/input/basic.xml + delete mode 100644 autotests/input/build.gradle + delete mode 100644 autotests/input/clojure.clj + delete mode 100644 autotests/input/complex.xml + delete mode 100644 autotests/input/craftenv.ps1 + delete mode 100644 autotests/input/csharp.cs + delete mode 100644 autotests/input/cube.obj + delete mode 100644 autotests/input/cube.ply + delete mode 100644 autotests/input/cube.stl + delete mode 100644 autotests/input/example.rmd + delete mode 100644 autotests/input/firstNonSpace.c + delete mode 100644 autotests/input/folding.cpp + delete mode 100644 autotests/input/git-rebase + delete mode 100644 autotests/input/git-rebase.syntax + delete mode 100644 autotests/input/hello.exs + delete mode 100644 autotests/input/highlight.ahdl + delete mode 100644 autotests/input/highlight.asm-avr + delete mode 100644 autotests/input/highlight.asm-nasm + delete mode 100644 autotests/input/highlight.asm-nasm.syntax + delete mode 100644 autotests/input/highlight.asp + delete mode 100644 autotests/input/highlight.awk + delete mode 100644 autotests/input/highlight.bib + delete mode 100644 autotests/input/highlight.bt + delete mode 100644 autotests/input/highlight.cmake + delete mode 100644 autotests/input/highlight.cpp + delete mode 100644 autotests/input/highlight.css + delete mode 100644 autotests/input/highlight.d + delete mode 100644 autotests/input/highlight.do + delete mode 100644 autotests/input/highlight.dox + delete mode 100644 autotests/input/highlight.erl + delete mode 100644 autotests/input/highlight.exu + delete mode 100644 autotests/input/highlight.f90 + delete mode 100644 autotests/input/highlight.gdb + delete mode 100644 autotests/input/highlight.gdbinit + delete mode 100644 autotests/input/highlight.glsl + delete mode 100644 autotests/input/highlight.hex + delete mode 100644 autotests/input/highlight.hs + delete mode 100644 autotests/input/highlight.java + delete mode 100644 autotests/input/highlight.js + delete mode 100644 autotests/input/highlight.jsp + delete mode 100644 autotests/input/highlight.less + delete mode 100644 autotests/input/highlight.lex + delete mode 100644 autotests/input/highlight.lgt + delete mode 100644 autotests/input/highlight.lhs + delete mode 100644 autotests/input/highlight.lisp + delete mode 100644 autotests/input/highlight.lua + delete mode 100644 autotests/input/highlight.ly + delete mode 100644 autotests/input/highlight.m + delete mode 100644 autotests/input/highlight.m.syntax + delete mode 100644 autotests/input/highlight.mac + delete mode 100644 autotests/input/highlight.mup + delete mode 100644 autotests/input/highlight.pb + delete mode 100644 autotests/input/highlight.php + delete mode 100644 autotests/input/highlight.pike + delete mode 100644 autotests/input/highlight.pl + delete mode 100644 autotests/input/highlight.pony + delete mode 100644 autotests/input/highlight.pov + delete mode 100644 autotests/input/highlight.prg + delete mode 100644 autotests/input/highlight.prg.syntax + delete mode 100644 autotests/input/highlight.qml + delete mode 100644 autotests/input/highlight.rb + delete mode 100644 autotests/input/highlight.scad + delete mode 100644 autotests/input/highlight.scheme + delete mode 100644 autotests/input/highlight.scss + delete mode 100644 autotests/input/highlight.sh + delete mode 100644 autotests/input/highlight.sh.syntax + delete mode 100644 autotests/input/highlight.spec + delete mode 100644 autotests/input/highlight.stan + delete mode 100644 autotests/input/highlight.t2t + delete mode 100644 autotests/input/highlight.tcl + delete mode 100644 autotests/input/highlight.tex + delete mode 100644 autotests/input/highlight.tig + delete mode 100644 autotests/input/highlight.wrl + delete mode 100644 autotests/input/highlight.xml + delete mode 100644 autotests/input/highlight.xsl + delete mode 100644 autotests/input/highlight.y + delete mode 100644 autotests/input/highlight.yang + delete mode 100644 autotests/input/highlight_lpc.c + delete mode 100644 autotests/input/highlight_lpc.c.syntax + delete mode 100644 autotests/input/highlight_ocaml.ml + delete mode 100644 autotests/input/highlight_octave.m + delete mode 100644 autotests/input/highlight_octave.m.syntax + delete mode 100644 autotests/input/learnelixir.exs + delete mode 100644 autotests/input/light52_muldiv.vhdl + delete mode 100644 autotests/input/light52_tb.vhdl + delete mode 100644 autotests/input/meson.build + delete mode 100644 autotests/input/modelines.py + delete mode 100644 autotests/input/or1200_dc_fsm.v + delete mode 100644 autotests/input/or1200_du.v + delete mode 100644 autotests/input/preprocessor-bug363280.c + delete mode 100644 autotests/input/preprocessor-bug363280.cpp + delete mode 100644 autotests/input/review128925-1.css + delete mode 100644 autotests/input/review128925-1.scss + delete mode 100644 autotests/input/review128925-2.css + delete mode 100644 autotests/input/review128925-2.scss + delete mode 100644 autotests/input/review128935.html + delete mode 100644 autotests/input/syntax/testlang.xml + delete mode 100644 autotests/input/test-iso.mod + delete mode 100644 autotests/input/test-iso.mod.syntax + delete mode 100644 autotests/input/test-pim.mod + delete mode 100644 autotests/input/test-pim.mod.syntax + delete mode 100644 autotests/input/test-r10.mod + delete mode 100644 autotests/input/test-r10.mod.syntax + delete mode 100644 autotests/input/test.Rd + delete mode 100644 autotests/input/test.bash + delete mode 100644 autotests/input/test.bb + delete mode 100644 autotests/input/test.c + delete mode 100644 autotests/input/test.c.syntax + delete mode 100644 autotests/input/test.cil + delete mode 100644 autotests/input/test.coffee + delete mode 100644 autotests/input/test.css + delete mode 100644 autotests/input/test.css.syntax + delete mode 100644 autotests/input/test.desktop + delete mode 100644 autotests/input/test.diff + delete mode 100644 autotests/input/test.eml + delete mode 100644 autotests/input/test.fc + delete mode 100644 autotests/input/test.frag + delete mode 100644 autotests/input/test.htm + delete mode 100644 autotests/input/test.htm.syntax + delete mode 100644 autotests/input/test.ijs + delete mode 100644 autotests/input/test.ini + delete mode 100644 autotests/input/test.js + delete mode 100644 autotests/input/test.json + delete mode 100644 autotests/input/test.jsx + delete mode 100644 autotests/input/test.logcat + delete mode 100644 autotests/input/test.markdown + delete mode 100644 autotests/input/test.mib + delete mode 100644 autotests/input/test.mm + delete mode 100644 autotests/input/test.mm.syntax + delete mode 100644 autotests/input/test.mod + delete mode 100644 autotests/input/test.mss + delete mode 100644 autotests/input/test.py + delete mode 100644 autotests/input/test.qdocconf + delete mode 100644 autotests/input/test.qml + delete mode 100644 autotests/input/test.rexx + delete mode 100644 autotests/input/test.rs + delete mode 100644 autotests/input/test.sieve + delete mode 100644 autotests/input/test.sql + delete mode 100644 autotests/input/test.sql.syntax + delete mode 100644 autotests/input/test.sql_oracle + delete mode 100644 autotests/input/test.sql_oracle.syntax + delete mode 100644 autotests/input/test.te + delete mode 100644 autotests/input/test.tex + delete mode 100644 autotests/input/test.yaml + delete mode 100644 autotests/input/test.zsh + delete mode 100644 autotests/input/themes/customtheme.theme + delete mode 100644 autotests/input/usr.bin.apparmor-profile-test + delete mode 100644 autotests/reference/Dockerfile.ref + delete mode 100644 autotests/reference/Doxyfile.example.ref + delete mode 100644 autotests/reference/Kconfig.ref + delete mode 100644 autotests/reference/Makefile.ref + delete mode 100644 autotests/reference/adblock.txt.ref + delete mode 100644 autotests/reference/apache.conf.ref + delete mode 100644 autotests/reference/basic.markdown.ref + delete mode 100644 autotests/reference/basic.xml.ref + delete mode 100644 autotests/reference/build.gradle.ref + delete mode 100644 autotests/reference/clojure.clj.ref + delete mode 100644 autotests/reference/complex.xml.ref + delete mode 100644 autotests/reference/craftenv.ps1.ref + delete mode 100644 autotests/reference/csharp.cs.ref + delete mode 100644 autotests/reference/cube.obj.ref + delete mode 100644 autotests/reference/cube.ply.ref + delete mode 100644 autotests/reference/cube.stl.ref + delete mode 100644 autotests/reference/example.rmd.ref + delete mode 100644 autotests/reference/firstNonSpace.c.ref + delete mode 100644 autotests/reference/folding.cpp.ref + delete mode 100644 autotests/reference/git-rebase.ref + delete mode 100644 autotests/reference/hello.exs.ref + delete mode 100644 autotests/reference/highlight.ahdl.ref + delete mode 100644 autotests/reference/highlight.asm-avr.ref + delete mode 100644 autotests/reference/highlight.asm-nasm.ref + delete mode 100644 autotests/reference/highlight.asp.ref + delete mode 100644 autotests/reference/highlight.awk.ref + delete mode 100644 autotests/reference/highlight.bib.ref + delete mode 100644 autotests/reference/highlight.bt.ref + delete mode 100644 autotests/reference/highlight.cmake.ref + delete mode 100644 autotests/reference/highlight.cpp.ref + delete mode 100644 autotests/reference/highlight.css.ref + delete mode 100644 autotests/reference/highlight.d.ref + delete mode 100644 autotests/reference/highlight.do.ref + delete mode 100644 autotests/reference/highlight.dox.ref + delete mode 100644 autotests/reference/highlight.erl.ref + delete mode 100644 autotests/reference/highlight.exu.ref + delete mode 100644 autotests/reference/highlight.f90.ref + delete mode 100644 autotests/reference/highlight.gdb.ref + delete mode 100644 autotests/reference/highlight.gdbinit.ref + delete mode 100644 autotests/reference/highlight.glsl.ref + delete mode 100644 autotests/reference/highlight.hex.ref + delete mode 100644 autotests/reference/highlight.hs.ref + delete mode 100644 autotests/reference/highlight.java.ref + delete mode 100644 autotests/reference/highlight.js.ref + delete mode 100644 autotests/reference/highlight.jsp.ref + delete mode 100644 autotests/reference/highlight.less.ref + delete mode 100644 autotests/reference/highlight.lex.ref + delete mode 100644 autotests/reference/highlight.lgt.ref + delete mode 100644 autotests/reference/highlight.lhs.ref + delete mode 100644 autotests/reference/highlight.lisp.ref + delete mode 100644 autotests/reference/highlight.lua.ref + delete mode 100644 autotests/reference/highlight.ly.ref + delete mode 100644 autotests/reference/highlight.m.ref + delete mode 100644 autotests/reference/highlight.mac.ref + delete mode 100644 autotests/reference/highlight.mup.ref + delete mode 100644 autotests/reference/highlight.pb.ref + delete mode 100644 autotests/reference/highlight.php.ref + delete mode 100644 autotests/reference/highlight.pike.ref + delete mode 100644 autotests/reference/highlight.pl.ref + delete mode 100644 autotests/reference/highlight.pony.ref + delete mode 100644 autotests/reference/highlight.pov.ref + delete mode 100644 autotests/reference/highlight.prg.ref + delete mode 100644 autotests/reference/highlight.qml.ref + delete mode 100644 autotests/reference/highlight.rb.ref + delete mode 100644 autotests/reference/highlight.scad.ref + delete mode 100644 autotests/reference/highlight.scheme.ref + delete mode 100644 autotests/reference/highlight.scss.ref + delete mode 100644 autotests/reference/highlight.sh.ref + delete mode 100644 autotests/reference/highlight.spec.ref + delete mode 100644 autotests/reference/highlight.stan.ref + delete mode 100644 autotests/reference/highlight.t2t.ref + delete mode 100644 autotests/reference/highlight.tcl.ref + delete mode 100644 autotests/reference/highlight.tex.ref + delete mode 100644 autotests/reference/highlight.tig.ref + delete mode 100644 autotests/reference/highlight.wrl.ref + delete mode 100644 autotests/reference/highlight.xml.ref + delete mode 100644 autotests/reference/highlight.xsl.ref + delete mode 100644 autotests/reference/highlight.y.ref + delete mode 100644 autotests/reference/highlight.yang.ref + delete mode 100644 autotests/reference/highlight_lpc.c.ref + delete mode 100644 autotests/reference/highlight_ocaml.ml.ref + delete mode 100644 autotests/reference/highlight_octave.m.ref + delete mode 100644 autotests/reference/learnelixir.exs.ref + delete mode 100644 autotests/reference/light52_muldiv.vhdl.ref + delete mode 100644 autotests/reference/light52_tb.vhdl.ref + delete mode 100644 autotests/reference/meson.build.ref + delete mode 100644 autotests/reference/modelines.py.ref + delete mode 100644 autotests/reference/or1200_dc_fsm.v.ref + delete mode 100644 autotests/reference/or1200_du.v.ref + delete mode 100644 autotests/reference/preprocessor-bug363280.c.ref + delete mode 100644 autotests/reference/preprocessor-bug363280.cpp.ref + delete mode 100644 autotests/reference/review128925-1.css.ref + delete mode 100644 autotests/reference/review128925-1.scss.ref + delete mode 100644 autotests/reference/review128925-2.css.ref + delete mode 100644 autotests/reference/review128925-2.scss.ref + delete mode 100644 autotests/reference/review128935.html.ref + delete mode 100644 autotests/reference/test-iso.mod.ref + delete mode 100644 autotests/reference/test-pim.mod.ref + delete mode 100644 autotests/reference/test-r10.mod.ref + delete mode 100644 autotests/reference/test.Rd.ref + delete mode 100644 autotests/reference/test.bash.ref + delete mode 100644 autotests/reference/test.bb.ref + delete mode 100644 autotests/reference/test.c.ref + delete mode 100644 autotests/reference/test.cil.ref + delete mode 100644 autotests/reference/test.coffee.ref + delete mode 100644 autotests/reference/test.css.ref + delete mode 100644 autotests/reference/test.desktop.ref + delete mode 100644 autotests/reference/test.diff.ref + delete mode 100644 autotests/reference/test.eml.ref + delete mode 100644 autotests/reference/test.fc.ref + delete mode 100644 autotests/reference/test.frag.ref + delete mode 100644 autotests/reference/test.htm.ref + delete mode 100644 autotests/reference/test.ijs.ref + delete mode 100644 autotests/reference/test.ini.ref + delete mode 100644 autotests/reference/test.js.ref + delete mode 100644 autotests/reference/test.json.ref + delete mode 100644 autotests/reference/test.jsx.ref + delete mode 100644 autotests/reference/test.logcat.ref + delete mode 100644 autotests/reference/test.markdown.ref + delete mode 100644 autotests/reference/test.mib.ref + delete mode 100644 autotests/reference/test.mm.ref + delete mode 100644 autotests/reference/test.mod.ref + delete mode 100644 autotests/reference/test.mss.ref + delete mode 100644 autotests/reference/test.py.ref + delete mode 100644 autotests/reference/test.qdocconf.ref + delete mode 100644 autotests/reference/test.qml.ref + delete mode 100644 autotests/reference/test.rexx.ref + delete mode 100644 autotests/reference/test.rs.ref + delete mode 100644 autotests/reference/test.sieve.ref + delete mode 100644 autotests/reference/test.sql.ref + delete mode 100644 autotests/reference/test.sql_oracle.ref + delete mode 100644 autotests/reference/test.te.ref + delete mode 100644 autotests/reference/test.tex.ref + delete mode 100644 autotests/reference/test.yaml.ref + delete mode 100644 autotests/reference/test.zsh.ref + delete mode 100644 autotests/reference/usr.bin.apparmor-profile-test.ref + delete mode 100644 autotests/repository_benchmark.cpp + delete mode 100644 autotests/syntaxrepository_test.cpp + delete mode 100644 autotests/test-config.h.in + delete mode 100644 autotests/testhighlighter.cpp + delete mode 100644 autotests/theme_test.cpp + delete mode 100755 autotests/update-reference-data.sh.in + delete mode 100644 autotests/wildcardmatcher_test.cpp + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b23d482..49923fb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -90,9 +90,6 @@ add_subdirectory(data) + add_subdirectory(src) + if(TARGET Qt5::Gui) + add_subdirectory(examples) +- if (BUILD_TESTING) +- add_subdirectory(autotests) +- endif() + endif() + + # +diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt +deleted file mode 100644 +index 827a182..0000000 +diff --git a/autotests/folding/Dockerfile.fold b/autotests/folding/Dockerfile.fold +deleted file mode 100644 +index 95a81d3..0000000 +diff --git a/autotests/folding/Doxyfile.example.fold b/autotests/folding/Doxyfile.example.fold +deleted file mode 100644 +index ef39bfc..0000000 +diff --git a/autotests/folding/Kconfig.fold b/autotests/folding/Kconfig.fold +deleted file mode 100644 +index 26df6be..0000000 +diff --git a/autotests/folding/Makefile.fold b/autotests/folding/Makefile.fold +deleted file mode 100644 +index 1cea5dd..0000000 +diff --git a/autotests/folding/adblock.txt.fold b/autotests/folding/adblock.txt.fold +deleted file mode 100644 +index 7ad85dd..0000000 +diff --git a/autotests/folding/apache.conf.fold b/autotests/folding/apache.conf.fold +deleted file mode 100644 +index 8d8baa5..0000000 +diff --git a/autotests/folding/basic.markdown.fold b/autotests/folding/basic.markdown.fold +deleted file mode 100644 +index f9a5bb3..0000000 +diff --git a/autotests/folding/basic.xml.fold b/autotests/folding/basic.xml.fold +deleted file mode 100644 +index 1d6ab4b..0000000 +diff --git a/autotests/folding/build.gradle.fold b/autotests/folding/build.gradle.fold +deleted file mode 100644 +index 2d0d25f..0000000 +diff --git a/autotests/folding/clojure.clj.fold b/autotests/folding/clojure.clj.fold +deleted file mode 100644 +index b2f3768..0000000 +diff --git a/autotests/folding/complex.xml.fold b/autotests/folding/complex.xml.fold +deleted file mode 100644 +index 0c79e82..0000000 +diff --git a/autotests/folding/craftenv.ps1.fold b/autotests/folding/craftenv.ps1.fold +deleted file mode 100644 +index 9a8fbfc..0000000 +diff --git a/autotests/folding/csharp.cs.fold b/autotests/folding/csharp.cs.fold +deleted file mode 100644 +index 906705c..0000000 +diff --git a/autotests/folding/cube.obj.fold b/autotests/folding/cube.obj.fold +deleted file mode 100644 +index ef06c98..0000000 +diff --git a/autotests/folding/cube.ply.fold b/autotests/folding/cube.ply.fold +deleted file mode 100644 +index 08d5f89..0000000 +diff --git a/autotests/folding/cube.stl.fold b/autotests/folding/cube.stl.fold +deleted file mode 100644 +index ae74fd9..0000000 +diff --git a/autotests/folding/example.rmd.fold b/autotests/folding/example.rmd.fold +deleted file mode 100644 +index c198d13..0000000 +diff --git a/autotests/folding/firstNonSpace.c.fold b/autotests/folding/firstNonSpace.c.fold +deleted file mode 100644 +index 570ba90..0000000 +diff --git a/autotests/folding/folding.cpp.fold b/autotests/folding/folding.cpp.fold +deleted file mode 100644 +index be50e40..0000000 +diff --git a/autotests/folding/git-rebase.fold b/autotests/folding/git-rebase.fold +deleted file mode 100644 +index 43041bb..0000000 +diff --git a/autotests/folding/hello.exs.fold b/autotests/folding/hello.exs.fold +deleted file mode 100644 +index cca72a1..0000000 +diff --git a/autotests/folding/highlight.ahdl.fold b/autotests/folding/highlight.ahdl.fold +deleted file mode 100644 +index 26924b4..0000000 +diff --git a/autotests/folding/highlight.asm-avr.fold b/autotests/folding/highlight.asm-avr.fold +deleted file mode 100644 +index 62e3ee9..0000000 +diff --git a/autotests/folding/highlight.asm-nasm.fold b/autotests/folding/highlight.asm-nasm.fold +deleted file mode 100644 +index a5da4d1..0000000 +diff --git a/autotests/folding/highlight.asp.fold b/autotests/folding/highlight.asp.fold +deleted file mode 100644 +index b938201..0000000 +diff --git a/autotests/folding/highlight.awk.fold b/autotests/folding/highlight.awk.fold +deleted file mode 100644 +index 2ad62f1..0000000 +diff --git a/autotests/folding/highlight.bib.fold b/autotests/folding/highlight.bib.fold +deleted file mode 100644 +index 9d521ee..0000000 +diff --git a/autotests/folding/highlight.bt.fold b/autotests/folding/highlight.bt.fold +deleted file mode 100644 +index 51d2075..0000000 +diff --git a/autotests/folding/highlight.cmake.fold b/autotests/folding/highlight.cmake.fold +deleted file mode 100644 +index 30688fa..0000000 +diff --git a/autotests/folding/highlight.cpp.fold b/autotests/folding/highlight.cpp.fold +deleted file mode 100644 +index 5f80fa2..0000000 +diff --git a/autotests/folding/highlight.css.fold b/autotests/folding/highlight.css.fold +deleted file mode 100644 +index ff27482..0000000 +diff --git a/autotests/folding/highlight.d.fold b/autotests/folding/highlight.d.fold +deleted file mode 100644 +index 44bcb09..0000000 +diff --git a/autotests/folding/highlight.do.fold b/autotests/folding/highlight.do.fold +deleted file mode 100644 +index 83ae062..0000000 +diff --git a/autotests/folding/highlight.dox.fold b/autotests/folding/highlight.dox.fold +deleted file mode 100644 +index ad907ab..0000000 +diff --git a/autotests/folding/highlight.erl.fold b/autotests/folding/highlight.erl.fold +deleted file mode 100644 +index 5b485cb..0000000 +diff --git a/autotests/folding/highlight.exu.fold b/autotests/folding/highlight.exu.fold +deleted file mode 100644 +index 84f561f..0000000 +diff --git a/autotests/folding/highlight.f90.fold b/autotests/folding/highlight.f90.fold +deleted file mode 100644 +index 2ea0f76..0000000 +diff --git a/autotests/folding/highlight.gdb.fold b/autotests/folding/highlight.gdb.fold +deleted file mode 100644 +index 7246b73..0000000 +diff --git a/autotests/folding/highlight.gdbinit.fold b/autotests/folding/highlight.gdbinit.fold +deleted file mode 100644 +index 70c9820..0000000 +diff --git a/autotests/folding/highlight.glsl.fold b/autotests/folding/highlight.glsl.fold +deleted file mode 100644 +index 53df4f1..0000000 +diff --git a/autotests/folding/highlight.hex.fold b/autotests/folding/highlight.hex.fold +deleted file mode 100644 +index 7c3f3ea..0000000 +diff --git a/autotests/folding/highlight.hs.fold b/autotests/folding/highlight.hs.fold +deleted file mode 100644 +index 71ee81f..0000000 +diff --git a/autotests/folding/highlight.java.fold b/autotests/folding/highlight.java.fold +deleted file mode 100644 +index e3b4cbc..0000000 +diff --git a/autotests/folding/highlight.js.fold b/autotests/folding/highlight.js.fold +deleted file mode 100644 +index 122c0ac..0000000 +diff --git a/autotests/folding/highlight.jsp.fold b/autotests/folding/highlight.jsp.fold +deleted file mode 100644 +index b938095..0000000 +diff --git a/autotests/folding/highlight.less.fold b/autotests/folding/highlight.less.fold +deleted file mode 100644 +index b6e9075..0000000 +diff --git a/autotests/folding/highlight.lex.fold b/autotests/folding/highlight.lex.fold +deleted file mode 100644 +index d2336c7..0000000 +diff --git a/autotests/folding/highlight.lgt.fold b/autotests/folding/highlight.lgt.fold +deleted file mode 100644 +index c444473..0000000 +diff --git a/autotests/folding/highlight.lhs.fold b/autotests/folding/highlight.lhs.fold +deleted file mode 100644 +index 9dc52e5..0000000 +diff --git a/autotests/folding/highlight.lisp.fold b/autotests/folding/highlight.lisp.fold +deleted file mode 100644 +index 5b6bf55..0000000 +diff --git a/autotests/folding/highlight.lua.fold b/autotests/folding/highlight.lua.fold +deleted file mode 100644 +index 183a258..0000000 +diff --git a/autotests/folding/highlight.ly.fold b/autotests/folding/highlight.ly.fold +deleted file mode 100644 +index a7e787b..0000000 +diff --git a/autotests/folding/highlight.m.fold b/autotests/folding/highlight.m.fold +deleted file mode 100644 +index 302659f..0000000 +diff --git a/autotests/folding/highlight.mac.fold b/autotests/folding/highlight.mac.fold +deleted file mode 100644 +index ad7ee63..0000000 +diff --git a/autotests/folding/highlight.mup.fold b/autotests/folding/highlight.mup.fold +deleted file mode 100644 +index e9afd19..0000000 +diff --git a/autotests/folding/highlight.pb.fold b/autotests/folding/highlight.pb.fold +deleted file mode 100644 +index aad9803..0000000 +diff --git a/autotests/folding/highlight.php.fold b/autotests/folding/highlight.php.fold +deleted file mode 100644 +index d0a5bc8..0000000 +diff --git a/autotests/folding/highlight.pike.fold b/autotests/folding/highlight.pike.fold +deleted file mode 100644 +index 5c65bae..0000000 +diff --git a/autotests/folding/highlight.pl.fold b/autotests/folding/highlight.pl.fold +deleted file mode 100644 +index 6845697..0000000 +diff --git a/autotests/folding/highlight.pony.fold b/autotests/folding/highlight.pony.fold +deleted file mode 100644 +index d89d314..0000000 +diff --git a/autotests/folding/highlight.pov.fold b/autotests/folding/highlight.pov.fold +deleted file mode 100644 +index 01e848c..0000000 +diff --git a/autotests/folding/highlight.prg.fold b/autotests/folding/highlight.prg.fold +deleted file mode 100644 +index 9f03189..0000000 +diff --git a/autotests/folding/highlight.qml.fold b/autotests/folding/highlight.qml.fold +deleted file mode 100644 +index 2494d70..0000000 +diff --git a/autotests/folding/highlight.rb.fold b/autotests/folding/highlight.rb.fold +deleted file mode 100644 +index 8ae2980..0000000 +diff --git a/autotests/folding/highlight.scad.fold b/autotests/folding/highlight.scad.fold +deleted file mode 100644 +index 68de2e0..0000000 +diff --git a/autotests/folding/highlight.scheme.fold b/autotests/folding/highlight.scheme.fold +deleted file mode 100644 +index c42b22f..0000000 +diff --git a/autotests/folding/highlight.scss.fold b/autotests/folding/highlight.scss.fold +deleted file mode 100644 +index afef111..0000000 +diff --git a/autotests/folding/highlight.sh.fold b/autotests/folding/highlight.sh.fold +deleted file mode 100644 +index 9f81112..0000000 +diff --git a/autotests/folding/highlight.spec.fold b/autotests/folding/highlight.spec.fold +deleted file mode 100644 +index 6ed00cf..0000000 +diff --git a/autotests/folding/highlight.stan.fold b/autotests/folding/highlight.stan.fold +deleted file mode 100644 +index 38bfe01..0000000 +diff --git a/autotests/folding/highlight.t2t.fold b/autotests/folding/highlight.t2t.fold +deleted file mode 100644 +index 428f204..0000000 +diff --git a/autotests/folding/highlight.tcl.fold b/autotests/folding/highlight.tcl.fold +deleted file mode 100644 +index 7b6264c..0000000 +diff --git a/autotests/folding/highlight.tex.fold b/autotests/folding/highlight.tex.fold +deleted file mode 100644 +index 772b210..0000000 +diff --git a/autotests/folding/highlight.tig.fold b/autotests/folding/highlight.tig.fold +deleted file mode 100644 +index 8f3d99e..0000000 +diff --git a/autotests/folding/highlight.wrl.fold b/autotests/folding/highlight.wrl.fold +deleted file mode 100644 +index c800b08..0000000 +diff --git a/autotests/folding/highlight.xml.fold b/autotests/folding/highlight.xml.fold +deleted file mode 100644 +index b120aea..0000000 +diff --git a/autotests/folding/highlight.xsl.fold b/autotests/folding/highlight.xsl.fold +deleted file mode 100644 +index feea15b..0000000 +diff --git a/autotests/folding/highlight.y.fold b/autotests/folding/highlight.y.fold +deleted file mode 100644 +index 4f6242b..0000000 +diff --git a/autotests/folding/highlight.yang.fold b/autotests/folding/highlight.yang.fold +deleted file mode 100644 +index 2de6183..0000000 +diff --git a/autotests/folding/highlight_lpc.c.fold b/autotests/folding/highlight_lpc.c.fold +deleted file mode 100644 +index 350ce06..0000000 +diff --git a/autotests/folding/highlight_ocaml.ml.fold b/autotests/folding/highlight_ocaml.ml.fold +deleted file mode 100644 +index 2403ed1..0000000 +diff --git a/autotests/folding/highlight_octave.m.fold b/autotests/folding/highlight_octave.m.fold +deleted file mode 100644 +index ee3fdbd..0000000 +diff --git a/autotests/folding/learnelixir.exs.fold b/autotests/folding/learnelixir.exs.fold +deleted file mode 100644 +index 1f51bd1..0000000 +diff --git a/autotests/folding/light52_muldiv.vhdl.fold b/autotests/folding/light52_muldiv.vhdl.fold +deleted file mode 100644 +index c5d461e..0000000 +diff --git a/autotests/folding/light52_tb.vhdl.fold b/autotests/folding/light52_tb.vhdl.fold +deleted file mode 100644 +index 17be507..0000000 +diff --git a/autotests/folding/meson.build.fold b/autotests/folding/meson.build.fold +deleted file mode 100644 +index f20c35b..0000000 +diff --git a/autotests/folding/modelines.py.fold b/autotests/folding/modelines.py.fold +deleted file mode 100644 +index 9c02779..0000000 +diff --git a/autotests/folding/or1200_dc_fsm.v.fold b/autotests/folding/or1200_dc_fsm.v.fold +deleted file mode 100644 +index c54fbe7..0000000 +diff --git a/autotests/folding/or1200_du.v.fold b/autotests/folding/or1200_du.v.fold +deleted file mode 100644 +index 97a6319..0000000 +diff --git a/autotests/folding/preprocessor-bug363280.c.fold b/autotests/folding/preprocessor-bug363280.c.fold +deleted file mode 100644 +index bf559fb..0000000 +diff --git a/autotests/folding/preprocessor-bug363280.cpp.fold b/autotests/folding/preprocessor-bug363280.cpp.fold +deleted file mode 100644 +index f9aabcc..0000000 +diff --git a/autotests/folding/review128925-1.css.fold b/autotests/folding/review128925-1.css.fold +deleted file mode 100644 +index 05621d3..0000000 +diff --git a/autotests/folding/review128925-1.scss.fold b/autotests/folding/review128925-1.scss.fold +deleted file mode 100644 +index 0b1f50b..0000000 +diff --git a/autotests/folding/review128925-2.css.fold b/autotests/folding/review128925-2.css.fold +deleted file mode 100644 +index f10e2f0..0000000 +diff --git a/autotests/folding/review128925-2.scss.fold b/autotests/folding/review128925-2.scss.fold +deleted file mode 100644 +index 056e331..0000000 +diff --git a/autotests/folding/review128935.html.fold b/autotests/folding/review128935.html.fold +deleted file mode 100644 +index 9a5887a..0000000 +diff --git a/autotests/folding/test-iso.mod.fold b/autotests/folding/test-iso.mod.fold +deleted file mode 100644 +index 57faabc..0000000 +diff --git a/autotests/folding/test-pim.mod.fold b/autotests/folding/test-pim.mod.fold +deleted file mode 100644 +index dd152a7..0000000 +diff --git a/autotests/folding/test-r10.mod.fold b/autotests/folding/test-r10.mod.fold +deleted file mode 100644 +index 7dc2e0d..0000000 +diff --git a/autotests/folding/test.Rd.fold b/autotests/folding/test.Rd.fold +deleted file mode 100644 +index 77d07c4..0000000 +diff --git a/autotests/folding/test.bash.fold b/autotests/folding/test.bash.fold +deleted file mode 100644 +index 216f11c..0000000 +diff --git a/autotests/folding/test.bb.fold b/autotests/folding/test.bb.fold +deleted file mode 100644 +index 98d9089..0000000 +diff --git a/autotests/folding/test.c.fold b/autotests/folding/test.c.fold +deleted file mode 100644 +index 7b43b2d..0000000 +diff --git a/autotests/folding/test.cil.fold b/autotests/folding/test.cil.fold +deleted file mode 100644 +index 6ff2ff2..0000000 +diff --git a/autotests/folding/test.coffee.fold b/autotests/folding/test.coffee.fold +deleted file mode 100644 +index de7ad09..0000000 +diff --git a/autotests/folding/test.css.fold b/autotests/folding/test.css.fold +deleted file mode 100644 +index 0edd45b..0000000 +diff --git a/autotests/folding/test.desktop.fold b/autotests/folding/test.desktop.fold +deleted file mode 100644 +index 77db817..0000000 +diff --git a/autotests/folding/test.diff.fold b/autotests/folding/test.diff.fold +deleted file mode 100644 +index 95ef591..0000000 +diff --git a/autotests/folding/test.eml.fold b/autotests/folding/test.eml.fold +deleted file mode 100644 +index 1e43110..0000000 +diff --git a/autotests/folding/test.fc.fold b/autotests/folding/test.fc.fold +deleted file mode 100644 +index 3b90d3c..0000000 +diff --git a/autotests/folding/test.frag.fold b/autotests/folding/test.frag.fold +deleted file mode 100644 +index a6a7bc1..0000000 +diff --git a/autotests/folding/test.htm.fold b/autotests/folding/test.htm.fold +deleted file mode 100644 +index 23df023..0000000 +diff --git a/autotests/folding/test.ijs.fold b/autotests/folding/test.ijs.fold +deleted file mode 100644 +index 7ff269b..0000000 +diff --git a/autotests/folding/test.ini.fold b/autotests/folding/test.ini.fold +deleted file mode 100644 +index 27d80c8..0000000 +diff --git a/autotests/folding/test.js.fold b/autotests/folding/test.js.fold +deleted file mode 100644 +index 90eecbf..0000000 +diff --git a/autotests/folding/test.json.fold b/autotests/folding/test.json.fold +deleted file mode 100644 +index 622ad42..0000000 +diff --git a/autotests/folding/test.jsx.fold b/autotests/folding/test.jsx.fold +deleted file mode 100644 +index bb0ffe8..0000000 +diff --git a/autotests/folding/test.logcat.fold b/autotests/folding/test.logcat.fold +deleted file mode 100644 +index 80f0657..0000000 +diff --git a/autotests/folding/test.markdown.fold b/autotests/folding/test.markdown.fold +deleted file mode 100644 +index 5078865..0000000 +diff --git a/autotests/folding/test.mib.fold b/autotests/folding/test.mib.fold +deleted file mode 100644 +index aa273c2..0000000 +diff --git a/autotests/folding/test.mm.fold b/autotests/folding/test.mm.fold +deleted file mode 100644 +index 6c8c39a..0000000 +diff --git a/autotests/folding/test.mod.fold b/autotests/folding/test.mod.fold +deleted file mode 100644 +index 57faabc..0000000 +diff --git a/autotests/folding/test.mss.fold b/autotests/folding/test.mss.fold +deleted file mode 100644 +index 49e0b97..0000000 +diff --git a/autotests/folding/test.py.fold b/autotests/folding/test.py.fold +deleted file mode 100644 +index 8f9cdf4..0000000 +diff --git a/autotests/folding/test.qdocconf.fold b/autotests/folding/test.qdocconf.fold +deleted file mode 100644 +index 0a382be..0000000 +diff --git a/autotests/folding/test.qml.fold b/autotests/folding/test.qml.fold +deleted file mode 100644 +index 316ff65..0000000 +diff --git a/autotests/folding/test.rexx.fold b/autotests/folding/test.rexx.fold +deleted file mode 100644 +index 378f8b7..0000000 +diff --git a/autotests/folding/test.rs.fold b/autotests/folding/test.rs.fold +deleted file mode 100644 +index 7e43837..0000000 +diff --git a/autotests/folding/test.sieve.fold b/autotests/folding/test.sieve.fold +deleted file mode 100644 +index c3344eb..0000000 +diff --git a/autotests/folding/test.sql.fold b/autotests/folding/test.sql.fold +deleted file mode 100644 +index b76fae2..0000000 +diff --git a/autotests/folding/test.sql_oracle.fold b/autotests/folding/test.sql_oracle.fold +deleted file mode 100644 +index e123cdf..0000000 +diff --git a/autotests/folding/test.te.fold b/autotests/folding/test.te.fold +deleted file mode 100644 +index e266975..0000000 +diff --git a/autotests/folding/test.tex.fold b/autotests/folding/test.tex.fold +deleted file mode 100644 +index 8da60c9..0000000 +diff --git a/autotests/folding/test.yaml.fold b/autotests/folding/test.yaml.fold +deleted file mode 100644 +index e044140..0000000 +diff --git a/autotests/folding/test.zsh.fold b/autotests/folding/test.zsh.fold +deleted file mode 100644 +index 924d798..0000000 +diff --git a/autotests/folding/usr.bin.apparmor-profile-test.fold b/autotests/folding/usr.bin.apparmor-profile-test.fold +deleted file mode 100644 +index 64deede..0000000 +diff --git a/autotests/foldingtest.cpp b/autotests/foldingtest.cpp +deleted file mode 100644 +index 5d10166..0000000 +diff --git a/autotests/highlighter_benchmark.cpp b/autotests/highlighter_benchmark.cpp +deleted file mode 100644 +index 0b945ff..0000000 +diff --git a/autotests/html/Dockerfile.html b/autotests/html/Dockerfile.html +deleted file mode 100644 +index ef324f6..0000000 +diff --git a/autotests/html/Doxyfile.example.html b/autotests/html/Doxyfile.example.html +deleted file mode 100644 +index 0f2a6a5..0000000 +diff --git a/autotests/html/Kconfig.html b/autotests/html/Kconfig.html +deleted file mode 100644 +index ab4ca14..0000000 +diff --git a/autotests/html/Makefile.html b/autotests/html/Makefile.html +deleted file mode 100644 +index 801c14a..0000000 +diff --git a/autotests/html/adblock.txt.html b/autotests/html/adblock.txt.html +deleted file mode 100644 +index 04dc5d1..0000000 +diff --git a/autotests/html/apache.conf.html b/autotests/html/apache.conf.html +deleted file mode 100644 +index 50f254c..0000000 +diff --git a/autotests/html/basic.markdown.html b/autotests/html/basic.markdown.html +deleted file mode 100644 +index 8ee1f19..0000000 +diff --git a/autotests/html/basic.xml.html b/autotests/html/basic.xml.html +deleted file mode 100644 +index 770b081..0000000 +diff --git a/autotests/html/build.gradle.html b/autotests/html/build.gradle.html +deleted file mode 100644 +index 5f0e056..0000000 +diff --git a/autotests/html/clojure.clj.html b/autotests/html/clojure.clj.html +deleted file mode 100644 +index 548e3ea..0000000 +diff --git a/autotests/html/complex.xml.html b/autotests/html/complex.xml.html +deleted file mode 100644 +index 117029d..0000000 +diff --git a/autotests/html/craftenv.ps1.html b/autotests/html/craftenv.ps1.html +deleted file mode 100644 +index cfdf0e2..0000000 +diff --git a/autotests/html/csharp.cs.html b/autotests/html/csharp.cs.html +deleted file mode 100644 +index fb4b469..0000000 +diff --git a/autotests/html/cube.obj.html b/autotests/html/cube.obj.html +deleted file mode 100644 +index 6ecd1df..0000000 +diff --git a/autotests/html/cube.ply.html b/autotests/html/cube.ply.html +deleted file mode 100644 +index 39d9102..0000000 +diff --git a/autotests/html/cube.stl.html b/autotests/html/cube.stl.html +deleted file mode 100644 +index 0a23eab..0000000 +diff --git a/autotests/html/example.rmd.html b/autotests/html/example.rmd.html +deleted file mode 100644 +index 9d7b639..0000000 +diff --git a/autotests/html/firstNonSpace.c.html b/autotests/html/firstNonSpace.c.html +deleted file mode 100644 +index 55e02dd..0000000 +diff --git a/autotests/html/folding.cpp.html b/autotests/html/folding.cpp.html +deleted file mode 100644 +index a920612..0000000 +diff --git a/autotests/html/git-rebase.html b/autotests/html/git-rebase.html +deleted file mode 100644 +index 17d6da9..0000000 +diff --git a/autotests/html/hello.exs.html b/autotests/html/hello.exs.html +deleted file mode 100644 +index 43d76a5..0000000 +diff --git a/autotests/html/highlight.ahdl.html b/autotests/html/highlight.ahdl.html +deleted file mode 100644 +index b833298..0000000 +diff --git a/autotests/html/highlight.asm-avr.html b/autotests/html/highlight.asm-avr.html +deleted file mode 100644 +index 867894e..0000000 +diff --git a/autotests/html/highlight.asm-nasm.html b/autotests/html/highlight.asm-nasm.html +deleted file mode 100644 +index 6ae4028..0000000 +diff --git a/autotests/html/highlight.asp.html b/autotests/html/highlight.asp.html +deleted file mode 100644 +index 85a1bba..0000000 +diff --git a/autotests/html/highlight.awk.html b/autotests/html/highlight.awk.html +deleted file mode 100644 +index d92268a..0000000 +diff --git a/autotests/html/highlight.bib.html b/autotests/html/highlight.bib.html +deleted file mode 100644 +index 48cc672..0000000 +diff --git a/autotests/html/highlight.bt.html b/autotests/html/highlight.bt.html +deleted file mode 100644 +index dca943a..0000000 +diff --git a/autotests/html/highlight.cmake.html b/autotests/html/highlight.cmake.html +deleted file mode 100644 +index a70c5ad..0000000 +diff --git a/autotests/html/highlight.cpp.html b/autotests/html/highlight.cpp.html +deleted file mode 100644 +index 07be9db..0000000 +diff --git a/autotests/html/highlight.css.html b/autotests/html/highlight.css.html +deleted file mode 100644 +index a3efe69..0000000 +diff --git a/autotests/html/highlight.d.html b/autotests/html/highlight.d.html +deleted file mode 100644 +index 5e97d7b..0000000 +diff --git a/autotests/html/highlight.do.html b/autotests/html/highlight.do.html +deleted file mode 100644 +index 40ac67d..0000000 +diff --git a/autotests/html/highlight.dox.html b/autotests/html/highlight.dox.html +deleted file mode 100644 +index 990dc60..0000000 +diff --git a/autotests/html/highlight.erl.html b/autotests/html/highlight.erl.html +deleted file mode 100644 +index 8424c84..0000000 +diff --git a/autotests/html/highlight.exu.html b/autotests/html/highlight.exu.html +deleted file mode 100644 +index 5631898..0000000 +diff --git a/autotests/html/highlight.f90.html b/autotests/html/highlight.f90.html +deleted file mode 100644 +index 897b853..0000000 +diff --git a/autotests/html/highlight.gdb.html b/autotests/html/highlight.gdb.html +deleted file mode 100644 +index 5341b3c..0000000 +diff --git a/autotests/html/highlight.gdbinit.html b/autotests/html/highlight.gdbinit.html +deleted file mode 100644 +index 84f3083..0000000 +diff --git a/autotests/html/highlight.glsl.html b/autotests/html/highlight.glsl.html +deleted file mode 100644 +index bb22782..0000000 +diff --git a/autotests/html/highlight.hex.html b/autotests/html/highlight.hex.html +deleted file mode 100644 +index b43e169..0000000 +diff --git a/autotests/html/highlight.hs.html b/autotests/html/highlight.hs.html +deleted file mode 100644 +index b0ae90c..0000000 +diff --git a/autotests/html/highlight.java.html b/autotests/html/highlight.java.html +deleted file mode 100644 +index e2b38e2..0000000 +diff --git a/autotests/html/highlight.js.html b/autotests/html/highlight.js.html +deleted file mode 100644 +index 9c0f8d3..0000000 +diff --git a/autotests/html/highlight.jsp.html b/autotests/html/highlight.jsp.html +deleted file mode 100644 +index 919297f..0000000 +diff --git a/autotests/html/highlight.less.html b/autotests/html/highlight.less.html +deleted file mode 100644 +index 1491037..0000000 +diff --git a/autotests/html/highlight.lex.html b/autotests/html/highlight.lex.html +deleted file mode 100644 +index dc1a884..0000000 +diff --git a/autotests/html/highlight.lgt.html b/autotests/html/highlight.lgt.html +deleted file mode 100644 +index 5edceb3..0000000 +diff --git a/autotests/html/highlight.lhs.html b/autotests/html/highlight.lhs.html +deleted file mode 100644 +index 086360e..0000000 +diff --git a/autotests/html/highlight.lisp.html b/autotests/html/highlight.lisp.html +deleted file mode 100644 +index 6d59f6b..0000000 +diff --git a/autotests/html/highlight.lua.html b/autotests/html/highlight.lua.html +deleted file mode 100644 +index 6ea0df4..0000000 +diff --git a/autotests/html/highlight.ly.html b/autotests/html/highlight.ly.html +deleted file mode 100644 +index 3eafd4b..0000000 +diff --git a/autotests/html/highlight.m.html b/autotests/html/highlight.m.html +deleted file mode 100644 +index 3296705..0000000 +diff --git a/autotests/html/highlight.mac.html b/autotests/html/highlight.mac.html +deleted file mode 100644 +index 62a6068..0000000 +diff --git a/autotests/html/highlight.mup.html b/autotests/html/highlight.mup.html +deleted file mode 100644 +index 48c6a3b..0000000 +diff --git a/autotests/html/highlight.pb.html b/autotests/html/highlight.pb.html +deleted file mode 100644 +index 09a3ee8..0000000 +diff --git a/autotests/html/highlight.php.html b/autotests/html/highlight.php.html +deleted file mode 100644 +index 08cf9ad..0000000 +diff --git a/autotests/html/highlight.pike.html b/autotests/html/highlight.pike.html +deleted file mode 100644 +index 7f63985..0000000 +diff --git a/autotests/html/highlight.pl.html b/autotests/html/highlight.pl.html +deleted file mode 100644 +index 4e31dda..0000000 +diff --git a/autotests/html/highlight.pony.html b/autotests/html/highlight.pony.html +deleted file mode 100644 +index 97ae59d..0000000 +diff --git a/autotests/html/highlight.pov.html b/autotests/html/highlight.pov.html +deleted file mode 100644 +index e566558..0000000 +diff --git a/autotests/html/highlight.prg.html b/autotests/html/highlight.prg.html +deleted file mode 100644 +index cc6f18a..0000000 +diff --git a/autotests/html/highlight.qml.html b/autotests/html/highlight.qml.html +deleted file mode 100644 +index e74d91c..0000000 +diff --git a/autotests/html/highlight.rb.html b/autotests/html/highlight.rb.html +deleted file mode 100644 +index 8e2bb99..0000000 +diff --git a/autotests/html/highlight.scad.html b/autotests/html/highlight.scad.html +deleted file mode 100644 +index 31a7b10..0000000 +diff --git a/autotests/html/highlight.scheme.html b/autotests/html/highlight.scheme.html +deleted file mode 100644 +index a561179..0000000 +diff --git a/autotests/html/highlight.scss.html b/autotests/html/highlight.scss.html +deleted file mode 100644 +index ec36e31..0000000 +diff --git a/autotests/html/highlight.sh.html b/autotests/html/highlight.sh.html +deleted file mode 100644 +index b661a14..0000000 +diff --git a/autotests/html/highlight.spec.html b/autotests/html/highlight.spec.html +deleted file mode 100644 +index 459655b..0000000 +diff --git a/autotests/html/highlight.stan.html b/autotests/html/highlight.stan.html +deleted file mode 100644 +index 44f7274..0000000 +diff --git a/autotests/html/highlight.t2t.html b/autotests/html/highlight.t2t.html +deleted file mode 100644 +index 044837e..0000000 +diff --git a/autotests/html/highlight.tcl.html b/autotests/html/highlight.tcl.html +deleted file mode 100644 +index cda9499..0000000 +diff --git a/autotests/html/highlight.tex.html b/autotests/html/highlight.tex.html +deleted file mode 100644 +index f277153..0000000 +diff --git a/autotests/html/highlight.tig.html b/autotests/html/highlight.tig.html +deleted file mode 100644 +index ea1b29e..0000000 +diff --git a/autotests/html/highlight.wrl.html b/autotests/html/highlight.wrl.html +deleted file mode 100644 +index 4ddc08f..0000000 +diff --git a/autotests/html/highlight.xml.html b/autotests/html/highlight.xml.html +deleted file mode 100644 +index cccbe3b..0000000 +diff --git a/autotests/html/highlight.xsl.html b/autotests/html/highlight.xsl.html +deleted file mode 100644 +index 44208fb..0000000 +diff --git a/autotests/html/highlight.y.html b/autotests/html/highlight.y.html +deleted file mode 100644 +index a11c230..0000000 +diff --git a/autotests/html/highlight.yang.html b/autotests/html/highlight.yang.html +deleted file mode 100644 +index 0be31a1..0000000 +diff --git a/autotests/html/highlight_lpc.c.html b/autotests/html/highlight_lpc.c.html +deleted file mode 100644 +index 2ac3653..0000000 +diff --git a/autotests/html/highlight_ocaml.ml.html b/autotests/html/highlight_ocaml.ml.html +deleted file mode 100644 +index 0e85e63..0000000 +diff --git a/autotests/html/highlight_octave.m.html b/autotests/html/highlight_octave.m.html +deleted file mode 100644 +index 25d8cd8..0000000 +diff --git a/autotests/html/learnelixir.exs.html b/autotests/html/learnelixir.exs.html +deleted file mode 100644 +index 9c0a390..0000000 +diff --git a/autotests/html/light52_muldiv.vhdl.html b/autotests/html/light52_muldiv.vhdl.html +deleted file mode 100644 +index e5e27d3..0000000 +diff --git a/autotests/html/light52_tb.vhdl.html b/autotests/html/light52_tb.vhdl.html +deleted file mode 100644 +index 8e73226..0000000 +diff --git a/autotests/html/meson.build.html b/autotests/html/meson.build.html +deleted file mode 100644 +index 66e7942..0000000 +diff --git a/autotests/html/modelines.py.html b/autotests/html/modelines.py.html +deleted file mode 100644 +index 0b3feff..0000000 +diff --git a/autotests/html/or1200_dc_fsm.v.html b/autotests/html/or1200_dc_fsm.v.html +deleted file mode 100644 +index 7f26b75..0000000 +diff --git a/autotests/html/or1200_du.v.html b/autotests/html/or1200_du.v.html +deleted file mode 100644 +index daf06ab..0000000 +diff --git a/autotests/html/preprocessor-bug363280.c.html b/autotests/html/preprocessor-bug363280.c.html +deleted file mode 100644 +index e7b930b..0000000 +diff --git a/autotests/html/preprocessor-bug363280.cpp.html b/autotests/html/preprocessor-bug363280.cpp.html +deleted file mode 100644 +index 1cdb7cc..0000000 +diff --git a/autotests/html/review128925-1.css.html b/autotests/html/review128925-1.css.html +deleted file mode 100644 +index 192353d..0000000 +diff --git a/autotests/html/review128925-1.scss.html b/autotests/html/review128925-1.scss.html +deleted file mode 100644 +index 79db0f9..0000000 +diff --git a/autotests/html/review128925-2.css.html b/autotests/html/review128925-2.css.html +deleted file mode 100644 +index f519726..0000000 +diff --git a/autotests/html/review128925-2.scss.html b/autotests/html/review128925-2.scss.html +deleted file mode 100644 +index 3c6d98e..0000000 +diff --git a/autotests/html/review128935.html.html b/autotests/html/review128935.html.html +deleted file mode 100644 +index 4e59fc3..0000000 +diff --git a/autotests/html/test-iso.mod.html b/autotests/html/test-iso.mod.html +deleted file mode 100644 +index e931d2c..0000000 +diff --git a/autotests/html/test-pim.mod.html b/autotests/html/test-pim.mod.html +deleted file mode 100644 +index 38457df..0000000 +diff --git a/autotests/html/test-r10.mod.html b/autotests/html/test-r10.mod.html +deleted file mode 100644 +index b35222f..0000000 +diff --git a/autotests/html/test.Rd.html b/autotests/html/test.Rd.html +deleted file mode 100644 +index de292d6..0000000 +diff --git a/autotests/html/test.bash.html b/autotests/html/test.bash.html +deleted file mode 100644 +index 161a975..0000000 +diff --git a/autotests/html/test.bb.html b/autotests/html/test.bb.html +deleted file mode 100644 +index 9be6849..0000000 +diff --git a/autotests/html/test.c.html b/autotests/html/test.c.html +deleted file mode 100644 +index 06d8a22..0000000 +diff --git a/autotests/html/test.cil.html b/autotests/html/test.cil.html +deleted file mode 100644 +index ef2aa91..0000000 +diff --git a/autotests/html/test.coffee.html b/autotests/html/test.coffee.html +deleted file mode 100644 +index 6fe3b4d..0000000 +diff --git a/autotests/html/test.css.html b/autotests/html/test.css.html +deleted file mode 100644 +index b08cd84..0000000 +diff --git a/autotests/html/test.desktop.html b/autotests/html/test.desktop.html +deleted file mode 100644 +index 66cdb27..0000000 +diff --git a/autotests/html/test.diff.html b/autotests/html/test.diff.html +deleted file mode 100644 +index 8aa506d..0000000 +diff --git a/autotests/html/test.eml.html b/autotests/html/test.eml.html +deleted file mode 100644 +index 7231c81..0000000 +diff --git a/autotests/html/test.fc.html b/autotests/html/test.fc.html +deleted file mode 100644 +index 7302ed7..0000000 +diff --git a/autotests/html/test.frag.html b/autotests/html/test.frag.html +deleted file mode 100644 +index 9ad3654..0000000 +diff --git a/autotests/html/test.htm.html b/autotests/html/test.htm.html +deleted file mode 100644 +index 4c5eca5..0000000 +diff --git a/autotests/html/test.ijs.html b/autotests/html/test.ijs.html +deleted file mode 100644 +index b9b91dd..0000000 +diff --git a/autotests/html/test.ini.html b/autotests/html/test.ini.html +deleted file mode 100644 +index e834c8a..0000000 +diff --git a/autotests/html/test.js.html b/autotests/html/test.js.html +deleted file mode 100644 +index fb47bde..0000000 +diff --git a/autotests/html/test.json.html b/autotests/html/test.json.html +deleted file mode 100644 +index 1c3ec27..0000000 +diff --git a/autotests/html/test.jsx.html b/autotests/html/test.jsx.html +deleted file mode 100644 +index 4af3ffa..0000000 +diff --git a/autotests/html/test.logcat.html b/autotests/html/test.logcat.html +deleted file mode 100644 +index 2b2f6ee..0000000 +diff --git a/autotests/html/test.markdown.html b/autotests/html/test.markdown.html +deleted file mode 100644 +index 2a6f8d7..0000000 +diff --git a/autotests/html/test.mib.html b/autotests/html/test.mib.html +deleted file mode 100644 +index 30c2806..0000000 +diff --git a/autotests/html/test.mm.html b/autotests/html/test.mm.html +deleted file mode 100644 +index 8ae2f11..0000000 +diff --git a/autotests/html/test.mod.html b/autotests/html/test.mod.html +deleted file mode 100644 +index c03fea4..0000000 +diff --git a/autotests/html/test.mss.html b/autotests/html/test.mss.html +deleted file mode 100644 +index 47b6292..0000000 +diff --git a/autotests/html/test.py.html b/autotests/html/test.py.html +deleted file mode 100644 +index 0420ef4..0000000 +diff --git a/autotests/html/test.qdocconf.html b/autotests/html/test.qdocconf.html +deleted file mode 100644 +index 3a000d5..0000000 +diff --git a/autotests/html/test.qml.html b/autotests/html/test.qml.html +deleted file mode 100644 +index 39cc95d..0000000 +diff --git a/autotests/html/test.rexx.html b/autotests/html/test.rexx.html +deleted file mode 100644 +index d528f24..0000000 +diff --git a/autotests/html/test.rs.html b/autotests/html/test.rs.html +deleted file mode 100644 +index dd4da52..0000000 +diff --git a/autotests/html/test.sieve.html b/autotests/html/test.sieve.html +deleted file mode 100644 +index f619d21..0000000 +diff --git a/autotests/html/test.sql.html b/autotests/html/test.sql.html +deleted file mode 100644 +index 91e2ff4..0000000 +diff --git a/autotests/html/test.sql_oracle.html b/autotests/html/test.sql_oracle.html +deleted file mode 100644 +index 72486e3..0000000 +diff --git a/autotests/html/test.te.html b/autotests/html/test.te.html +deleted file mode 100644 +index 88dac5e..0000000 +diff --git a/autotests/html/test.tex.html b/autotests/html/test.tex.html +deleted file mode 100644 +index e3ab47c..0000000 +diff --git a/autotests/html/test.yaml.html b/autotests/html/test.yaml.html +deleted file mode 100644 +index 94c5d71..0000000 +diff --git a/autotests/html/test.zsh.html b/autotests/html/test.zsh.html +deleted file mode 100644 +index 12683d7..0000000 +diff --git a/autotests/html/usr.bin.apparmor-profile-test.html b/autotests/html/usr.bin.apparmor-profile-test.html +deleted file mode 100644 +index 4e2a486..0000000 +diff --git a/autotests/htmlhighlighter_test.cpp b/autotests/htmlhighlighter_test.cpp +deleted file mode 100644 +index f7cc30a..0000000 +diff --git a/autotests/input/Dockerfile b/autotests/input/Dockerfile +deleted file mode 100644 +index 95a81d3..0000000 +diff --git a/autotests/input/Doxyfile.example b/autotests/input/Doxyfile.example +deleted file mode 100644 +index ef39bfc..0000000 +diff --git a/autotests/input/Kconfig b/autotests/input/Kconfig +deleted file mode 100644 +index 5ebfaf4..0000000 +diff --git a/autotests/input/Makefile b/autotests/input/Makefile +deleted file mode 100644 +index 05e4590..0000000 +diff --git a/autotests/input/adblock.txt b/autotests/input/adblock.txt +deleted file mode 100644 +index 7ad85dd..0000000 +diff --git a/autotests/input/adblock.txt.syntax b/autotests/input/adblock.txt.syntax +deleted file mode 100644 +index 0ce0446..0000000 +diff --git a/autotests/input/apache.conf b/autotests/input/apache.conf +deleted file mode 100644 +index 2afa0be..0000000 +diff --git a/autotests/input/apache.conf.syntax b/autotests/input/apache.conf.syntax +deleted file mode 100644 +index eab529d..0000000 +diff --git a/autotests/input/basic.markdown b/autotests/input/basic.markdown +deleted file mode 100644 +index f9a5bb3..0000000 +diff --git a/autotests/input/basic.xml b/autotests/input/basic.xml +deleted file mode 100644 +index 20feae1..0000000 +diff --git a/autotests/input/build.gradle b/autotests/input/build.gradle +deleted file mode 100644 +index 3ad9096..0000000 +diff --git a/autotests/input/clojure.clj b/autotests/input/clojure.clj +deleted file mode 100644 +index b2f3768..0000000 +diff --git a/autotests/input/complex.xml b/autotests/input/complex.xml +deleted file mode 100644 +index d738998..0000000 +diff --git a/autotests/input/craftenv.ps1 b/autotests/input/craftenv.ps1 +deleted file mode 100644 +index a58dfee..0000000 +diff --git a/autotests/input/csharp.cs b/autotests/input/csharp.cs +deleted file mode 100644 +index 8a91459..0000000 +diff --git a/autotests/input/cube.obj b/autotests/input/cube.obj +deleted file mode 100644 +index ef06c98..0000000 +diff --git a/autotests/input/cube.ply b/autotests/input/cube.ply +deleted file mode 100644 +index 08d5f89..0000000 +diff --git a/autotests/input/cube.stl b/autotests/input/cube.stl +deleted file mode 100644 +index ae74fd9..0000000 +diff --git a/autotests/input/example.rmd b/autotests/input/example.rmd +deleted file mode 100644 +index ef9a33e..0000000 +diff --git a/autotests/input/firstNonSpace.c b/autotests/input/firstNonSpace.c +deleted file mode 100644 +index 570ba90..0000000 +diff --git a/autotests/input/folding.cpp b/autotests/input/folding.cpp +deleted file mode 100644 +index 9e26b3f..0000000 +diff --git a/autotests/input/git-rebase b/autotests/input/git-rebase +deleted file mode 100644 +index 43041bb..0000000 +diff --git a/autotests/input/git-rebase.syntax b/autotests/input/git-rebase.syntax +deleted file mode 100644 +index abf0034..0000000 +diff --git a/autotests/input/hello.exs b/autotests/input/hello.exs +deleted file mode 100644 +index cca72a1..0000000 +diff --git a/autotests/input/highlight.ahdl b/autotests/input/highlight.ahdl +deleted file mode 100644 +index e059aa8..0000000 +diff --git a/autotests/input/highlight.asm-avr b/autotests/input/highlight.asm-avr +deleted file mode 100644 +index f1e0542..0000000 +diff --git a/autotests/input/highlight.asm-nasm b/autotests/input/highlight.asm-nasm +deleted file mode 100644 +index a5da4d1..0000000 +diff --git a/autotests/input/highlight.asm-nasm.syntax b/autotests/input/highlight.asm-nasm.syntax +deleted file mode 100644 +index 67140d2..0000000 +diff --git a/autotests/input/highlight.asp b/autotests/input/highlight.asp +deleted file mode 100644 +index 07a8619..0000000 +diff --git a/autotests/input/highlight.awk b/autotests/input/highlight.awk +deleted file mode 100644 +index a80c86a..0000000 +diff --git a/autotests/input/highlight.bib b/autotests/input/highlight.bib +deleted file mode 100644 +index 0ae404c..0000000 +diff --git a/autotests/input/highlight.bt b/autotests/input/highlight.bt +deleted file mode 100644 +index 51d2075..0000000 +diff --git a/autotests/input/highlight.cmake b/autotests/input/highlight.cmake +deleted file mode 100644 +index b8a1842..0000000 +diff --git a/autotests/input/highlight.cpp b/autotests/input/highlight.cpp +deleted file mode 100644 +index f293064..0000000 +diff --git a/autotests/input/highlight.css b/autotests/input/highlight.css +deleted file mode 100644 +index 7a5ea67..0000000 +diff --git a/autotests/input/highlight.d b/autotests/input/highlight.d +deleted file mode 100644 +index b3daaf6..0000000 +diff --git a/autotests/input/highlight.do b/autotests/input/highlight.do +deleted file mode 100644 +index 0b90b16..0000000 +diff --git a/autotests/input/highlight.dox b/autotests/input/highlight.dox +deleted file mode 100644 +index 39b404f..0000000 +diff --git a/autotests/input/highlight.erl b/autotests/input/highlight.erl +deleted file mode 100644 +index 5b485cb..0000000 +diff --git a/autotests/input/highlight.exu b/autotests/input/highlight.exu +deleted file mode 100644 +index 3651adf..0000000 +diff --git a/autotests/input/highlight.f90 b/autotests/input/highlight.f90 +deleted file mode 100644 +index e2008c2..0000000 +diff --git a/autotests/input/highlight.gdb b/autotests/input/highlight.gdb +deleted file mode 100644 +index a4b6459..0000000 +diff --git a/autotests/input/highlight.gdbinit b/autotests/input/highlight.gdbinit +deleted file mode 100644 +index d33f9ea..0000000 +diff --git a/autotests/input/highlight.glsl b/autotests/input/highlight.glsl +deleted file mode 100644 +index 3495757..0000000 +diff --git a/autotests/input/highlight.hex b/autotests/input/highlight.hex +deleted file mode 100644 +index 7c3f3ea..0000000 +diff --git a/autotests/input/highlight.hs b/autotests/input/highlight.hs +deleted file mode 100644 +index 8c0b145..0000000 +diff --git a/autotests/input/highlight.java b/autotests/input/highlight.java +deleted file mode 100644 +index c807d64..0000000 +diff --git a/autotests/input/highlight.js b/autotests/input/highlight.js +deleted file mode 100644 +index d0e7533..0000000 +diff --git a/autotests/input/highlight.jsp b/autotests/input/highlight.jsp +deleted file mode 100644 +index d912836..0000000 +diff --git a/autotests/input/highlight.less b/autotests/input/highlight.less +deleted file mode 100644 +index e178263..0000000 +diff --git a/autotests/input/highlight.lex b/autotests/input/highlight.lex +deleted file mode 100644 +index 33527bd..0000000 +diff --git a/autotests/input/highlight.lgt b/autotests/input/highlight.lgt +deleted file mode 100644 +index d39b45c..0000000 +diff --git a/autotests/input/highlight.lhs b/autotests/input/highlight.lhs +deleted file mode 100644 +index 9dc52e5..0000000 +diff --git a/autotests/input/highlight.lisp b/autotests/input/highlight.lisp +deleted file mode 100644 +index e86c85f..0000000 +diff --git a/autotests/input/highlight.lua b/autotests/input/highlight.lua +deleted file mode 100644 +index 85ac95d..0000000 +diff --git a/autotests/input/highlight.ly b/autotests/input/highlight.ly +deleted file mode 100644 +index 29aa7a6..0000000 +diff --git a/autotests/input/highlight.m b/autotests/input/highlight.m +deleted file mode 100644 +index f240138..0000000 +diff --git a/autotests/input/highlight.m.syntax b/autotests/input/highlight.m.syntax +deleted file mode 100644 +index d22d99a..0000000 +diff --git a/autotests/input/highlight.mac b/autotests/input/highlight.mac +deleted file mode 100644 +index cb9da2d..0000000 +diff --git a/autotests/input/highlight.mup b/autotests/input/highlight.mup +deleted file mode 100644 +index ed5a03d..0000000 +diff --git a/autotests/input/highlight.pb b/autotests/input/highlight.pb +deleted file mode 100644 +index 5560233..0000000 +diff --git a/autotests/input/highlight.php b/autotests/input/highlight.php +deleted file mode 100644 +index bb50951..0000000 +diff --git a/autotests/input/highlight.pike b/autotests/input/highlight.pike +deleted file mode 100644 +index 2f63144..0000000 +diff --git a/autotests/input/highlight.pl b/autotests/input/highlight.pl +deleted file mode 100644 +index 7d15d24..0000000 +diff --git a/autotests/input/highlight.pony b/autotests/input/highlight.pony +deleted file mode 100644 +index aefa3b7..0000000 +diff --git a/autotests/input/highlight.pov b/autotests/input/highlight.pov +deleted file mode 100644 +index 0bb3077..0000000 +diff --git a/autotests/input/highlight.prg b/autotests/input/highlight.prg +deleted file mode 100644 +index 713c605..0000000 +diff --git a/autotests/input/highlight.prg.syntax b/autotests/input/highlight.prg.syntax +deleted file mode 100644 +index 3355ff8..0000000 +diff --git a/autotests/input/highlight.qml b/autotests/input/highlight.qml +deleted file mode 100644 +index b860512..0000000 +diff --git a/autotests/input/highlight.rb b/autotests/input/highlight.rb +deleted file mode 100644 +index 2e52e5f..0000000 +diff --git a/autotests/input/highlight.scad b/autotests/input/highlight.scad +deleted file mode 100644 +index 3ca4ec3..0000000 +diff --git a/autotests/input/highlight.scheme b/autotests/input/highlight.scheme +deleted file mode 100644 +index 08c7351..0000000 +diff --git a/autotests/input/highlight.scss b/autotests/input/highlight.scss +deleted file mode 100644 +index 11a4028..0000000 +diff --git a/autotests/input/highlight.sh b/autotests/input/highlight.sh +deleted file mode 100644 +index a354757..0000000 +diff --git a/autotests/input/highlight.sh.syntax b/autotests/input/highlight.sh.syntax +deleted file mode 100644 +index 5b85af9..0000000 +diff --git a/autotests/input/highlight.spec b/autotests/input/highlight.spec +deleted file mode 100644 +index bc3b95b..0000000 +diff --git a/autotests/input/highlight.stan b/autotests/input/highlight.stan +deleted file mode 100644 +index a71c231..0000000 +diff --git a/autotests/input/highlight.t2t b/autotests/input/highlight.t2t +deleted file mode 100644 +index 5b5f379..0000000 +diff --git a/autotests/input/highlight.tcl b/autotests/input/highlight.tcl +deleted file mode 100644 +index d6b7276..0000000 +diff --git a/autotests/input/highlight.tex b/autotests/input/highlight.tex +deleted file mode 100644 +index 34c0890..0000000 +diff --git a/autotests/input/highlight.tig b/autotests/input/highlight.tig +deleted file mode 100644 +index 893cbfe..0000000 +diff --git a/autotests/input/highlight.wrl b/autotests/input/highlight.wrl +deleted file mode 100644 +index 2fb4b41..0000000 +diff --git a/autotests/input/highlight.xml b/autotests/input/highlight.xml +deleted file mode 100644 +index 007449c..0000000 +diff --git a/autotests/input/highlight.xsl b/autotests/input/highlight.xsl +deleted file mode 100644 +index f6e0efb..0000000 +diff --git a/autotests/input/highlight.y b/autotests/input/highlight.y +deleted file mode 100644 +index df42a54..0000000 +diff --git a/autotests/input/highlight.yang b/autotests/input/highlight.yang +deleted file mode 100644 +index bd95152..0000000 +diff --git a/autotests/input/highlight_lpc.c b/autotests/input/highlight_lpc.c +deleted file mode 100644 +index fe5c629..0000000 +diff --git a/autotests/input/highlight_lpc.c.syntax b/autotests/input/highlight_lpc.c.syntax +deleted file mode 100644 +index 2016d4f..0000000 +diff --git a/autotests/input/highlight_ocaml.ml b/autotests/input/highlight_ocaml.ml +deleted file mode 100644 +index dc1717a..0000000 +diff --git a/autotests/input/highlight_octave.m b/autotests/input/highlight_octave.m +deleted file mode 100644 +index 1f96036..0000000 +diff --git a/autotests/input/highlight_octave.m.syntax b/autotests/input/highlight_octave.m.syntax +deleted file mode 100644 +index 65d755f..0000000 +diff --git a/autotests/input/learnelixir.exs b/autotests/input/learnelixir.exs +deleted file mode 100644 +index 1f51bd1..0000000 +diff --git a/autotests/input/light52_muldiv.vhdl b/autotests/input/light52_muldiv.vhdl +deleted file mode 100644 +index 723f154..0000000 +diff --git a/autotests/input/light52_tb.vhdl b/autotests/input/light52_tb.vhdl +deleted file mode 100644 +index c110c5a..0000000 +diff --git a/autotests/input/meson.build b/autotests/input/meson.build +deleted file mode 100644 +index d6dd6e6..0000000 +diff --git a/autotests/input/modelines.py b/autotests/input/modelines.py +deleted file mode 100644 +index cd624ea..0000000 +diff --git a/autotests/input/or1200_dc_fsm.v b/autotests/input/or1200_dc_fsm.v +deleted file mode 100644 +index e3d80ec..0000000 +diff --git a/autotests/input/or1200_du.v b/autotests/input/or1200_du.v +deleted file mode 100644 +index dbd3614..0000000 +diff --git a/autotests/input/preprocessor-bug363280.c b/autotests/input/preprocessor-bug363280.c +deleted file mode 100644 +index 9908bf7..0000000 +diff --git a/autotests/input/preprocessor-bug363280.cpp b/autotests/input/preprocessor-bug363280.cpp +deleted file mode 100644 +index 9908bf7..0000000 +diff --git a/autotests/input/review128925-1.css b/autotests/input/review128925-1.css +deleted file mode 100644 +index b61b616..0000000 +diff --git a/autotests/input/review128925-1.scss b/autotests/input/review128925-1.scss +deleted file mode 100644 +index 6aa1da6..0000000 +diff --git a/autotests/input/review128925-2.css b/autotests/input/review128925-2.css +deleted file mode 100644 +index 05c20a8..0000000 +diff --git a/autotests/input/review128925-2.scss b/autotests/input/review128925-2.scss +deleted file mode 100644 +index c71fe3b..0000000 +diff --git a/autotests/input/review128935.html b/autotests/input/review128935.html +deleted file mode 100644 +index f373235..0000000 +diff --git a/autotests/input/syntax/testlang.xml b/autotests/input/syntax/testlang.xml +deleted file mode 100644 +index 0a1f9ba..0000000 +diff --git a/autotests/input/test-iso.mod b/autotests/input/test-iso.mod +deleted file mode 100644 +index c30b91f..0000000 +diff --git a/autotests/input/test-iso.mod.syntax b/autotests/input/test-iso.mod.syntax +deleted file mode 100644 +index 6179cd9..0000000 +diff --git a/autotests/input/test-pim.mod b/autotests/input/test-pim.mod +deleted file mode 100644 +index be72a09..0000000 +diff --git a/autotests/input/test-pim.mod.syntax b/autotests/input/test-pim.mod.syntax +deleted file mode 100644 +index 2580222..0000000 +diff --git a/autotests/input/test-r10.mod b/autotests/input/test-r10.mod +deleted file mode 100644 +index 5c8b97c..0000000 +diff --git a/autotests/input/test-r10.mod.syntax b/autotests/input/test-r10.mod.syntax +deleted file mode 100644 +index 55f4a6c..0000000 +diff --git a/autotests/input/test.Rd b/autotests/input/test.Rd +deleted file mode 100644 +index 392343e..0000000 +diff --git a/autotests/input/test.bash b/autotests/input/test.bash +deleted file mode 100644 +index 6241e5a..0000000 +diff --git a/autotests/input/test.bb b/autotests/input/test.bb +deleted file mode 100644 +index 98d9089..0000000 +diff --git a/autotests/input/test.c b/autotests/input/test.c +deleted file mode 100644 +index b2462d7..0000000 +diff --git a/autotests/input/test.c.syntax b/autotests/input/test.c.syntax +deleted file mode 100644 +index 3cc58df..0000000 +diff --git a/autotests/input/test.cil b/autotests/input/test.cil +deleted file mode 100644 +index 6ff2ff2..0000000 +diff --git a/autotests/input/test.coffee b/autotests/input/test.coffee +deleted file mode 100644 +index 56f8a69..0000000 +diff --git a/autotests/input/test.css b/autotests/input/test.css +deleted file mode 100644 +index 763e2d6..0000000 +diff --git a/autotests/input/test.css.syntax b/autotests/input/test.css.syntax +deleted file mode 100644 +index 30599f0..0000000 +diff --git a/autotests/input/test.desktop b/autotests/input/test.desktop +deleted file mode 100644 +index f3edd78..0000000 +diff --git a/autotests/input/test.diff b/autotests/input/test.diff +deleted file mode 100644 +index 7a6807c..0000000 +diff --git a/autotests/input/test.eml b/autotests/input/test.eml +deleted file mode 100644 +index 1e43110..0000000 +diff --git a/autotests/input/test.fc b/autotests/input/test.fc +deleted file mode 100644 +index 76935a1..0000000 +diff --git a/autotests/input/test.frag b/autotests/input/test.frag +deleted file mode 100644 +index 67ccc99..0000000 +diff --git a/autotests/input/test.htm b/autotests/input/test.htm +deleted file mode 100644 +index 24ed4aa..0000000 +diff --git a/autotests/input/test.htm.syntax b/autotests/input/test.htm.syntax +deleted file mode 100644 +index f05185c..0000000 +diff --git a/autotests/input/test.ijs b/autotests/input/test.ijs +deleted file mode 100644 +index 9acfe4b..0000000 +diff --git a/autotests/input/test.ini b/autotests/input/test.ini +deleted file mode 100644 +index d67d83d..0000000 +diff --git a/autotests/input/test.js b/autotests/input/test.js +deleted file mode 100644 +index 478bd6e..0000000 +diff --git a/autotests/input/test.json b/autotests/input/test.json +deleted file mode 100644 +index 6c16ee6..0000000 +diff --git a/autotests/input/test.jsx b/autotests/input/test.jsx +deleted file mode 100644 +index 52b35c5..0000000 +diff --git a/autotests/input/test.logcat b/autotests/input/test.logcat +deleted file mode 100644 +index 80f0657..0000000 +diff --git a/autotests/input/test.markdown b/autotests/input/test.markdown +deleted file mode 100644 +index 74bcb61..0000000 +diff --git a/autotests/input/test.mib b/autotests/input/test.mib +deleted file mode 100644 +index aa273c2..0000000 +diff --git a/autotests/input/test.mm b/autotests/input/test.mm +deleted file mode 100644 +index 7f2677a..0000000 +diff --git a/autotests/input/test.mm.syntax b/autotests/input/test.mm.syntax +deleted file mode 100644 +index b3ddb33..0000000 +diff --git a/autotests/input/test.mod b/autotests/input/test.mod +deleted file mode 100644 +index c30b91f..0000000 +diff --git a/autotests/input/test.mss b/autotests/input/test.mss +deleted file mode 100644 +index 4f742c1..0000000 +diff --git a/autotests/input/test.py b/autotests/input/test.py +deleted file mode 100644 +index ac2ad0d..0000000 +diff --git a/autotests/input/test.qdocconf b/autotests/input/test.qdocconf +deleted file mode 100644 +index 0a382be..0000000 +diff --git a/autotests/input/test.qml b/autotests/input/test.qml +deleted file mode 100644 +index d8f7cb5..0000000 +diff --git a/autotests/input/test.rexx b/autotests/input/test.rexx +deleted file mode 100644 +index 3e25125..0000000 +diff --git a/autotests/input/test.rs b/autotests/input/test.rs +deleted file mode 100644 +index ec0d188..0000000 +diff --git a/autotests/input/test.sieve b/autotests/input/test.sieve +deleted file mode 100644 +index 596ac45..0000000 +diff --git a/autotests/input/test.sql b/autotests/input/test.sql +deleted file mode 100644 +index b76fae2..0000000 +diff --git a/autotests/input/test.sql.syntax b/autotests/input/test.sql.syntax +deleted file mode 100644 +index b433cc9..0000000 +diff --git a/autotests/input/test.sql_oracle b/autotests/input/test.sql_oracle +deleted file mode 100644 +index 80ade14..0000000 +diff --git a/autotests/input/test.sql_oracle.syntax b/autotests/input/test.sql_oracle.syntax +deleted file mode 100644 +index 679c648..0000000 +diff --git a/autotests/input/test.te b/autotests/input/test.te +deleted file mode 100644 +index 4a5ec9d..0000000 +diff --git a/autotests/input/test.tex b/autotests/input/test.tex +deleted file mode 100644 +index 8da60c9..0000000 +diff --git a/autotests/input/test.yaml b/autotests/input/test.yaml +deleted file mode 100644 +index cebc411..0000000 +diff --git a/autotests/input/test.zsh b/autotests/input/test.zsh +deleted file mode 100644 +index 9da5db2..0000000 +diff --git a/autotests/input/themes/customtheme.theme b/autotests/input/themes/customtheme.theme +deleted file mode 100644 +index 9ef0eea..0000000 +diff --git a/autotests/input/usr.bin.apparmor-profile-test b/autotests/input/usr.bin.apparmor-profile-test +deleted file mode 100644 +index d112068..0000000 +diff --git a/autotests/reference/Dockerfile.ref b/autotests/reference/Dockerfile.ref +deleted file mode 100644 +index 4d075e5..0000000 +diff --git a/autotests/reference/Doxyfile.example.ref b/autotests/reference/Doxyfile.example.ref +deleted file mode 100644 +index 05100a4..0000000 +diff --git a/autotests/reference/Kconfig.ref b/autotests/reference/Kconfig.ref +deleted file mode 100644 +index 0871457..0000000 +diff --git a/autotests/reference/Makefile.ref b/autotests/reference/Makefile.ref +deleted file mode 100644 +index aa6a7c8..0000000 +diff --git a/autotests/reference/adblock.txt.ref b/autotests/reference/adblock.txt.ref +deleted file mode 100644 +index 0b70891..0000000 +diff --git a/autotests/reference/apache.conf.ref b/autotests/reference/apache.conf.ref +deleted file mode 100644 +index 9b48e0b..0000000 +diff --git a/autotests/reference/basic.markdown.ref b/autotests/reference/basic.markdown.ref +deleted file mode 100644 +index 8f32c5d..0000000 +diff --git a/autotests/reference/basic.xml.ref b/autotests/reference/basic.xml.ref +deleted file mode 100644 +index 9e61a57..0000000 +diff --git a/autotests/reference/build.gradle.ref b/autotests/reference/build.gradle.ref +deleted file mode 100644 +index fc3d280..0000000 +diff --git a/autotests/reference/clojure.clj.ref b/autotests/reference/clojure.clj.ref +deleted file mode 100644 +index 0c9ae6d..0000000 +diff --git a/autotests/reference/complex.xml.ref b/autotests/reference/complex.xml.ref +deleted file mode 100644 +index 4ffac2b..0000000 +diff --git a/autotests/reference/craftenv.ps1.ref b/autotests/reference/craftenv.ps1.ref +deleted file mode 100644 +index 7d7f496..0000000 +diff --git a/autotests/reference/csharp.cs.ref b/autotests/reference/csharp.cs.ref +deleted file mode 100644 +index bd5f806..0000000 +diff --git a/autotests/reference/cube.obj.ref b/autotests/reference/cube.obj.ref +deleted file mode 100644 +index ff41fa3..0000000 +diff --git a/autotests/reference/cube.ply.ref b/autotests/reference/cube.ply.ref +deleted file mode 100644 +index 2ba0fc5..0000000 +diff --git a/autotests/reference/cube.stl.ref b/autotests/reference/cube.stl.ref +deleted file mode 100644 +index d3e273d..0000000 +diff --git a/autotests/reference/example.rmd.ref b/autotests/reference/example.rmd.ref +deleted file mode 100644 +index 56eedaa..0000000 +diff --git a/autotests/reference/firstNonSpace.c.ref b/autotests/reference/firstNonSpace.c.ref +deleted file mode 100644 +index 6c14dd6..0000000 +diff --git a/autotests/reference/folding.cpp.ref b/autotests/reference/folding.cpp.ref +deleted file mode 100644 +index 5fb1ec8..0000000 +diff --git a/autotests/reference/git-rebase.ref b/autotests/reference/git-rebase.ref +deleted file mode 100644 +index a0a99ab..0000000 +diff --git a/autotests/reference/hello.exs.ref b/autotests/reference/hello.exs.ref +deleted file mode 100644 +index f81ebbf..0000000 +diff --git a/autotests/reference/highlight.ahdl.ref b/autotests/reference/highlight.ahdl.ref +deleted file mode 100644 +index ee149c2..0000000 +diff --git a/autotests/reference/highlight.asm-avr.ref b/autotests/reference/highlight.asm-avr.ref +deleted file mode 100644 +index af6b627..0000000 +diff --git a/autotests/reference/highlight.asm-nasm.ref b/autotests/reference/highlight.asm-nasm.ref +deleted file mode 100644 +index d674717..0000000 +diff --git a/autotests/reference/highlight.asp.ref b/autotests/reference/highlight.asp.ref +deleted file mode 100644 +index b64fd4e..0000000 +diff --git a/autotests/reference/highlight.awk.ref b/autotests/reference/highlight.awk.ref +deleted file mode 100644 +index 0560d4b..0000000 +diff --git a/autotests/reference/highlight.bib.ref b/autotests/reference/highlight.bib.ref +deleted file mode 100644 +index d3f79c4..0000000 +diff --git a/autotests/reference/highlight.bt.ref b/autotests/reference/highlight.bt.ref +deleted file mode 100644 +index b4559d7..0000000 +diff --git a/autotests/reference/highlight.cmake.ref b/autotests/reference/highlight.cmake.ref +deleted file mode 100644 +index 2f7136f..0000000 +diff --git a/autotests/reference/highlight.cpp.ref b/autotests/reference/highlight.cpp.ref +deleted file mode 100644 +index 295b447..0000000 +diff --git a/autotests/reference/highlight.css.ref b/autotests/reference/highlight.css.ref +deleted file mode 100644 +index a262282..0000000 +diff --git a/autotests/reference/highlight.d.ref b/autotests/reference/highlight.d.ref +deleted file mode 100644 +index 68962b9..0000000 +diff --git a/autotests/reference/highlight.do.ref b/autotests/reference/highlight.do.ref +deleted file mode 100644 +index afc5bac..0000000 +diff --git a/autotests/reference/highlight.dox.ref b/autotests/reference/highlight.dox.ref +deleted file mode 100644 +index 3e8346a..0000000 +diff --git a/autotests/reference/highlight.erl.ref b/autotests/reference/highlight.erl.ref +deleted file mode 100644 +index 3a38fb7..0000000 +diff --git a/autotests/reference/highlight.exu.ref b/autotests/reference/highlight.exu.ref +deleted file mode 100644 +index 5ec9969..0000000 +diff --git a/autotests/reference/highlight.f90.ref b/autotests/reference/highlight.f90.ref +deleted file mode 100644 +index 810a1d6..0000000 +diff --git a/autotests/reference/highlight.gdb.ref b/autotests/reference/highlight.gdb.ref +deleted file mode 100644 +index 3b0fdc0..0000000 +diff --git a/autotests/reference/highlight.gdbinit.ref b/autotests/reference/highlight.gdbinit.ref +deleted file mode 100644 +index ef8dc48..0000000 +diff --git a/autotests/reference/highlight.glsl.ref b/autotests/reference/highlight.glsl.ref +deleted file mode 100644 +index d7d0ef3..0000000 +diff --git a/autotests/reference/highlight.hex.ref b/autotests/reference/highlight.hex.ref +deleted file mode 100644 +index ae09fd7..0000000 +diff --git a/autotests/reference/highlight.hs.ref b/autotests/reference/highlight.hs.ref +deleted file mode 100644 +index e59f9d3..0000000 +diff --git a/autotests/reference/highlight.java.ref b/autotests/reference/highlight.java.ref +deleted file mode 100644 +index ce941bd..0000000 +diff --git a/autotests/reference/highlight.js.ref b/autotests/reference/highlight.js.ref +deleted file mode 100644 +index 7ddd8c9..0000000 +diff --git a/autotests/reference/highlight.jsp.ref b/autotests/reference/highlight.jsp.ref +deleted file mode 100644 +index de73f18..0000000 +diff --git a/autotests/reference/highlight.less.ref b/autotests/reference/highlight.less.ref +deleted file mode 100644 +index b5ac4ae..0000000 +diff --git a/autotests/reference/highlight.lex.ref b/autotests/reference/highlight.lex.ref +deleted file mode 100644 +index 85912dc..0000000 +diff --git a/autotests/reference/highlight.lgt.ref b/autotests/reference/highlight.lgt.ref +deleted file mode 100644 +index 354d3ad..0000000 +diff --git a/autotests/reference/highlight.lhs.ref b/autotests/reference/highlight.lhs.ref +deleted file mode 100644 +index 838c687..0000000 +diff --git a/autotests/reference/highlight.lisp.ref b/autotests/reference/highlight.lisp.ref +deleted file mode 100644 +index fe8cbf0..0000000 +diff --git a/autotests/reference/highlight.lua.ref b/autotests/reference/highlight.lua.ref +deleted file mode 100644 +index 26e640c..0000000 +diff --git a/autotests/reference/highlight.ly.ref b/autotests/reference/highlight.ly.ref +deleted file mode 100644 +index f11654d..0000000 +diff --git a/autotests/reference/highlight.m.ref b/autotests/reference/highlight.m.ref +deleted file mode 100644 +index e75ca5e..0000000 +diff --git a/autotests/reference/highlight.mac.ref b/autotests/reference/highlight.mac.ref +deleted file mode 100644 +index 79f336a..0000000 +diff --git a/autotests/reference/highlight.mup.ref b/autotests/reference/highlight.mup.ref +deleted file mode 100644 +index 7ec1480..0000000 +diff --git a/autotests/reference/highlight.pb.ref b/autotests/reference/highlight.pb.ref +deleted file mode 100644 +index d6adb56..0000000 +diff --git a/autotests/reference/highlight.php.ref b/autotests/reference/highlight.php.ref +deleted file mode 100644 +index b1d8139..0000000 +diff --git a/autotests/reference/highlight.pike.ref b/autotests/reference/highlight.pike.ref +deleted file mode 100644 +index f40f3d9..0000000 +diff --git a/autotests/reference/highlight.pl.ref b/autotests/reference/highlight.pl.ref +deleted file mode 100644 +index e9cedd1..0000000 +diff --git a/autotests/reference/highlight.pony.ref b/autotests/reference/highlight.pony.ref +deleted file mode 100644 +index 525f712..0000000 +diff --git a/autotests/reference/highlight.pov.ref b/autotests/reference/highlight.pov.ref +deleted file mode 100644 +index 4a21aaf..0000000 +diff --git a/autotests/reference/highlight.prg.ref b/autotests/reference/highlight.prg.ref +deleted file mode 100644 +index 2888283..0000000 +diff --git a/autotests/reference/highlight.qml.ref b/autotests/reference/highlight.qml.ref +deleted file mode 100644 +index 3df0de1..0000000 +diff --git a/autotests/reference/highlight.rb.ref b/autotests/reference/highlight.rb.ref +deleted file mode 100644 +index 139825f..0000000 +diff --git a/autotests/reference/highlight.scad.ref b/autotests/reference/highlight.scad.ref +deleted file mode 100644 +index 93d31eb..0000000 +diff --git a/autotests/reference/highlight.scheme.ref b/autotests/reference/highlight.scheme.ref +deleted file mode 100644 +index d6887a3..0000000 +diff --git a/autotests/reference/highlight.scss.ref b/autotests/reference/highlight.scss.ref +deleted file mode 100644 +index 081743f..0000000 +diff --git a/autotests/reference/highlight.sh.ref b/autotests/reference/highlight.sh.ref +deleted file mode 100644 +index fbfba05..0000000 +diff --git a/autotests/reference/highlight.spec.ref b/autotests/reference/highlight.spec.ref +deleted file mode 100644 +index 20b6c11..0000000 +diff --git a/autotests/reference/highlight.stan.ref b/autotests/reference/highlight.stan.ref +deleted file mode 100644 +index 581f8a2..0000000 +diff --git a/autotests/reference/highlight.t2t.ref b/autotests/reference/highlight.t2t.ref +deleted file mode 100644 +index 87bff65..0000000 +diff --git a/autotests/reference/highlight.tcl.ref b/autotests/reference/highlight.tcl.ref +deleted file mode 100644 +index de12b4c..0000000 +diff --git a/autotests/reference/highlight.tex.ref b/autotests/reference/highlight.tex.ref +deleted file mode 100644 +index bcd6926..0000000 +diff --git a/autotests/reference/highlight.tig.ref b/autotests/reference/highlight.tig.ref +deleted file mode 100644 +index 056b891..0000000 +diff --git a/autotests/reference/highlight.wrl.ref b/autotests/reference/highlight.wrl.ref +deleted file mode 100644 +index 0f2b724..0000000 +diff --git a/autotests/reference/highlight.xml.ref b/autotests/reference/highlight.xml.ref +deleted file mode 100644 +index dde97a6..0000000 +diff --git a/autotests/reference/highlight.xsl.ref b/autotests/reference/highlight.xsl.ref +deleted file mode 100644 +index 86c1736..0000000 +diff --git a/autotests/reference/highlight.y.ref b/autotests/reference/highlight.y.ref +deleted file mode 100644 +index b3defa7..0000000 +diff --git a/autotests/reference/highlight.yang.ref b/autotests/reference/highlight.yang.ref +deleted file mode 100644 +index d4708a6..0000000 +diff --git a/autotests/reference/highlight_lpc.c.ref b/autotests/reference/highlight_lpc.c.ref +deleted file mode 100644 +index 474d5f0..0000000 +diff --git a/autotests/reference/highlight_ocaml.ml.ref b/autotests/reference/highlight_ocaml.ml.ref +deleted file mode 100644 +index d036f0e..0000000 +diff --git a/autotests/reference/highlight_octave.m.ref b/autotests/reference/highlight_octave.m.ref +deleted file mode 100644 +index 4b93a73..0000000 +diff --git a/autotests/reference/learnelixir.exs.ref b/autotests/reference/learnelixir.exs.ref +deleted file mode 100644 +index d877463..0000000 +diff --git a/autotests/reference/light52_muldiv.vhdl.ref b/autotests/reference/light52_muldiv.vhdl.ref +deleted file mode 100644 +index 11338ac..0000000 +diff --git a/autotests/reference/light52_tb.vhdl.ref b/autotests/reference/light52_tb.vhdl.ref +deleted file mode 100644 +index b7a799b..0000000 +diff --git a/autotests/reference/meson.build.ref b/autotests/reference/meson.build.ref +deleted file mode 100644 +index 75efe1a..0000000 +diff --git a/autotests/reference/modelines.py.ref b/autotests/reference/modelines.py.ref +deleted file mode 100644 +index 59e5bf2..0000000 +diff --git a/autotests/reference/or1200_dc_fsm.v.ref b/autotests/reference/or1200_dc_fsm.v.ref +deleted file mode 100644 +index 10a80e5..0000000 +diff --git a/autotests/reference/or1200_du.v.ref b/autotests/reference/or1200_du.v.ref +deleted file mode 100644 +index a1e838c..0000000 +diff --git a/autotests/reference/preprocessor-bug363280.c.ref b/autotests/reference/preprocessor-bug363280.c.ref +deleted file mode 100644 +index 4c23041..0000000 +diff --git a/autotests/reference/preprocessor-bug363280.cpp.ref b/autotests/reference/preprocessor-bug363280.cpp.ref +deleted file mode 100644 +index 8025f16..0000000 +diff --git a/autotests/reference/review128925-1.css.ref b/autotests/reference/review128925-1.css.ref +deleted file mode 100644 +index 136dd6f..0000000 +diff --git a/autotests/reference/review128925-1.scss.ref b/autotests/reference/review128925-1.scss.ref +deleted file mode 100644 +index fee32c7..0000000 +diff --git a/autotests/reference/review128925-2.css.ref b/autotests/reference/review128925-2.css.ref +deleted file mode 100644 +index 0bef602..0000000 +diff --git a/autotests/reference/review128925-2.scss.ref b/autotests/reference/review128925-2.scss.ref +deleted file mode 100644 +index 082c1e4..0000000 +diff --git a/autotests/reference/review128935.html.ref b/autotests/reference/review128935.html.ref +deleted file mode 100644 +index 0936f9c..0000000 +diff --git a/autotests/reference/test-iso.mod.ref b/autotests/reference/test-iso.mod.ref +deleted file mode 100644 +index 027dfac..0000000 +diff --git a/autotests/reference/test-pim.mod.ref b/autotests/reference/test-pim.mod.ref +deleted file mode 100644 +index 4fac4d1..0000000 +diff --git a/autotests/reference/test-r10.mod.ref b/autotests/reference/test-r10.mod.ref +deleted file mode 100644 +index bc61067..0000000 +diff --git a/autotests/reference/test.Rd.ref b/autotests/reference/test.Rd.ref +deleted file mode 100644 +index ae77db2..0000000 +diff --git a/autotests/reference/test.bash.ref b/autotests/reference/test.bash.ref +deleted file mode 100644 +index adeaa9d..0000000 +diff --git a/autotests/reference/test.bb.ref b/autotests/reference/test.bb.ref +deleted file mode 100644 +index f0ea3b8..0000000 +diff --git a/autotests/reference/test.c.ref b/autotests/reference/test.c.ref +deleted file mode 100644 +index 61c3ca8..0000000 +diff --git a/autotests/reference/test.cil.ref b/autotests/reference/test.cil.ref +deleted file mode 100644 +index cbc0125..0000000 +diff --git a/autotests/reference/test.coffee.ref b/autotests/reference/test.coffee.ref +deleted file mode 100644 +index e499f72..0000000 +diff --git a/autotests/reference/test.css.ref b/autotests/reference/test.css.ref +deleted file mode 100644 +index 26de9f8..0000000 +diff --git a/autotests/reference/test.desktop.ref b/autotests/reference/test.desktop.ref +deleted file mode 100644 +index 12ca73f..0000000 +diff --git a/autotests/reference/test.diff.ref b/autotests/reference/test.diff.ref +deleted file mode 100644 +index b3d7bd4..0000000 +diff --git a/autotests/reference/test.eml.ref b/autotests/reference/test.eml.ref +deleted file mode 100644 +index 25de38c..0000000 +diff --git a/autotests/reference/test.fc.ref b/autotests/reference/test.fc.ref +deleted file mode 100644 +index dee4455..0000000 +diff --git a/autotests/reference/test.frag.ref b/autotests/reference/test.frag.ref +deleted file mode 100644 +index 1426b6e..0000000 +diff --git a/autotests/reference/test.htm.ref b/autotests/reference/test.htm.ref +deleted file mode 100644 +index c3d98ff..0000000 +diff --git a/autotests/reference/test.ijs.ref b/autotests/reference/test.ijs.ref +deleted file mode 100644 +index 30c9733..0000000 +diff --git a/autotests/reference/test.ini.ref b/autotests/reference/test.ini.ref +deleted file mode 100644 +index f2d5e79..0000000 +diff --git a/autotests/reference/test.js.ref b/autotests/reference/test.js.ref +deleted file mode 100644 +index ca23322..0000000 +diff --git a/autotests/reference/test.json.ref b/autotests/reference/test.json.ref +deleted file mode 100644 +index b7f0e52..0000000 +diff --git a/autotests/reference/test.jsx.ref b/autotests/reference/test.jsx.ref +deleted file mode 100644 +index e9eda2f..0000000 +diff --git a/autotests/reference/test.logcat.ref b/autotests/reference/test.logcat.ref +deleted file mode 100644 +index e4c1c80..0000000 +diff --git a/autotests/reference/test.markdown.ref b/autotests/reference/test.markdown.ref +deleted file mode 100644 +index aa5f06c..0000000 +diff --git a/autotests/reference/test.mib.ref b/autotests/reference/test.mib.ref +deleted file mode 100644 +index a83156b..0000000 +diff --git a/autotests/reference/test.mm.ref b/autotests/reference/test.mm.ref +deleted file mode 100644 +index 4412d36..0000000 +diff --git a/autotests/reference/test.mod.ref b/autotests/reference/test.mod.ref +deleted file mode 100644 +index 027dfac..0000000 +diff --git a/autotests/reference/test.mss.ref b/autotests/reference/test.mss.ref +deleted file mode 100644 +index f3f6ff7..0000000 +diff --git a/autotests/reference/test.py.ref b/autotests/reference/test.py.ref +deleted file mode 100644 +index a226875..0000000 +diff --git a/autotests/reference/test.qdocconf.ref b/autotests/reference/test.qdocconf.ref +deleted file mode 100644 +index a5e1727..0000000 +diff --git a/autotests/reference/test.qml.ref b/autotests/reference/test.qml.ref +deleted file mode 100644 +index 6a84875..0000000 +diff --git a/autotests/reference/test.rexx.ref b/autotests/reference/test.rexx.ref +deleted file mode 100644 +index 6e69ce4..0000000 +diff --git a/autotests/reference/test.rs.ref b/autotests/reference/test.rs.ref +deleted file mode 100644 +index 9a27445..0000000 +diff --git a/autotests/reference/test.sieve.ref b/autotests/reference/test.sieve.ref +deleted file mode 100644 +index a030180..0000000 +diff --git a/autotests/reference/test.sql.ref b/autotests/reference/test.sql.ref +deleted file mode 100644 +index ba869cd..0000000 +diff --git a/autotests/reference/test.sql_oracle.ref b/autotests/reference/test.sql_oracle.ref +deleted file mode 100644 +index d121a71..0000000 +diff --git a/autotests/reference/test.te.ref b/autotests/reference/test.te.ref +deleted file mode 100644 +index 5b3998d..0000000 +diff --git a/autotests/reference/test.tex.ref b/autotests/reference/test.tex.ref +deleted file mode 100644 +index 3f24c2a..0000000 +diff --git a/autotests/reference/test.yaml.ref b/autotests/reference/test.yaml.ref +deleted file mode 100644 +index eeeabc0..0000000 +diff --git a/autotests/reference/test.zsh.ref b/autotests/reference/test.zsh.ref +deleted file mode 100644 +index f8da406..0000000 +diff --git a/autotests/reference/usr.bin.apparmor-profile-test.ref b/autotests/reference/usr.bin.apparmor-profile-test.ref +deleted file mode 100644 +index c55bd5c..0000000 +diff --git a/autotests/repository_benchmark.cpp b/autotests/repository_benchmark.cpp +deleted file mode 100644 +index 80bba64..0000000 +diff --git a/autotests/syntaxrepository_test.cpp b/autotests/syntaxrepository_test.cpp +deleted file mode 100644 +index 3dc654d..0000000 +diff --git a/autotests/test-config.h.in b/autotests/test-config.h.in +deleted file mode 100644 +index 9e574d7..0000000 +diff --git a/autotests/testhighlighter.cpp b/autotests/testhighlighter.cpp +deleted file mode 100644 +index fad0300..0000000 +diff --git a/autotests/theme_test.cpp b/autotests/theme_test.cpp +deleted file mode 100644 +index 961cdb9..0000000 +diff --git a/autotests/update-reference-data.sh.in b/autotests/update-reference-data.sh.in +deleted file mode 100755 +index 1b5e45e..0000000 +diff --git a/autotests/wildcardmatcher_test.cpp b/autotests/wildcardmatcher_test.cpp +deleted file mode 100644 +index 8a2208a..0000000 +-- +2.20.1.windows.1 + diff --git a/src/libs/3rdparty/syntax-highlighting/patches/0003-Add-qmake-Qbs-files-and-files-generated-by-CMake.patch b/src/libs/3rdparty/syntax-highlighting/patches/0003-Add-qmake-Qbs-files-and-files-generated-by-CMake.patch new file mode 100644 index 00000000000..c35188fbec5 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/patches/0003-Add-qmake-Qbs-files-and-files-generated-by-CMake.patch @@ -0,0 +1,389 @@ +From c9f4bdaa0902c0fdb5ea750d11935e15777a090d Mon Sep 17 00:00:00 2001 +From: Alessandro Portale +Date: Tue, 12 Feb 2019 19:45:08 +0100 +Subject: [PATCH 3/6] Add qmake/Qbs files and files generated by CMake + +--- + autogenerated/autogenerated.pri | 9 ++ + autogenerated/ksyntaxhighlighting_version.h | 12 +++ + autogenerated/src/lib/AbstractHighlighter | 1 + + autogenerated/src/lib/Definition | 1 + + autogenerated/src/lib/FoldingRegion | 1 + + autogenerated/src/lib/Format | 1 + + autogenerated/src/lib/Repository | 1 + + autogenerated/src/lib/State | 1 + + autogenerated/src/lib/SyntaxHighlighter | 1 + + autogenerated/src/lib/Theme | 1 + + .../src/lib/ksyntaxhighlighting_logging.cpp | 11 +++ + .../src/lib/ksyntaxhighlighting_logging.h | 11 +++ + data/data.pro | 11 +++ + src/lib/ksyntaxhighlighting_export.h | 34 +++++++ + syntax-highlighting.pro | 55 ++++++++++++ + syntax-highlighting.qbs | 88 +++++++++++++++++++ + syntax-highlighting_dependencies.pri | 3 + + 17 files changed, 242 insertions(+) + create mode 100644 autogenerated/autogenerated.pri + create mode 100644 autogenerated/ksyntaxhighlighting_version.h + create mode 100644 autogenerated/src/lib/AbstractHighlighter + create mode 100644 autogenerated/src/lib/Definition + create mode 100644 autogenerated/src/lib/FoldingRegion + create mode 100644 autogenerated/src/lib/Format + create mode 100644 autogenerated/src/lib/Repository + create mode 100644 autogenerated/src/lib/State + create mode 100644 autogenerated/src/lib/SyntaxHighlighter + create mode 100644 autogenerated/src/lib/Theme + create mode 100644 autogenerated/src/lib/ksyntaxhighlighting_logging.cpp + create mode 100644 autogenerated/src/lib/ksyntaxhighlighting_logging.h + create mode 100644 data/data.pro + create mode 100644 src/lib/ksyntaxhighlighting_export.h + create mode 100644 syntax-highlighting.pro + create mode 100644 syntax-highlighting.qbs + create mode 100644 syntax-highlighting_dependencies.pri + +diff --git a/autogenerated/autogenerated.pri b/autogenerated/autogenerated.pri +new file mode 100644 +index 0000000..aee620a +--- /dev/null ++++ b/autogenerated/autogenerated.pri +@@ -0,0 +1,9 @@ ++INCLUDEPATH *= $$PWD/src/lib ++INCLUDEPATH *= $$PWD ++ ++SOURCES += \ ++ $$PWD/src/lib/ksyntaxhighlighting_logging.cpp ++ ++HEADERS += \ ++ $$PWD/ksyntaxhighlighting_version.h \ ++ $$PWD/src/lib/ksyntaxhighlighting_logging.h +diff --git a/autogenerated/ksyntaxhighlighting_version.h b/autogenerated/ksyntaxhighlighting_version.h +new file mode 100644 +index 0000000..bd31a4d +--- /dev/null ++++ b/autogenerated/ksyntaxhighlighting_version.h +@@ -0,0 +1,12 @@ ++// This file was generated by ecm_setup_version(): DO NOT EDIT! ++ ++#ifndef SyntaxHighlighting_VERSION_H ++#define SyntaxHighlighting_VERSION_H ++ ++#define SyntaxHighlighting_VERSION_STRING "5.52.0" ++#define SyntaxHighlighting_VERSION_MAJOR 5 ++#define SyntaxHighlighting_VERSION_MINOR 52 ++#define SyntaxHighlighting_VERSION_PATCH 0 ++#define SyntaxHighlighting_VERSION ((5<<16)|(52<<8)|(0)) ++ ++#endif +diff --git a/autogenerated/src/lib/AbstractHighlighter b/autogenerated/src/lib/AbstractHighlighter +new file mode 100644 +index 0000000..b787873 +--- /dev/null ++++ b/autogenerated/src/lib/AbstractHighlighter +@@ -0,0 +1 @@ ++#include "abstracthighlighter.h" +diff --git a/autogenerated/src/lib/Definition b/autogenerated/src/lib/Definition +new file mode 100644 +index 0000000..2c3241f +--- /dev/null ++++ b/autogenerated/src/lib/Definition +@@ -0,0 +1 @@ ++#include "definition.h" +diff --git a/autogenerated/src/lib/FoldingRegion b/autogenerated/src/lib/FoldingRegion +new file mode 100644 +index 0000000..005b829 +--- /dev/null ++++ b/autogenerated/src/lib/FoldingRegion +@@ -0,0 +1 @@ ++#include "foldingregion.h" +diff --git a/autogenerated/src/lib/Format b/autogenerated/src/lib/Format +new file mode 100644 +index 0000000..b0d6a10 +--- /dev/null ++++ b/autogenerated/src/lib/Format +@@ -0,0 +1 @@ ++#include "format.h" +diff --git a/autogenerated/src/lib/Repository b/autogenerated/src/lib/Repository +new file mode 100644 +index 0000000..189dbc2 +--- /dev/null ++++ b/autogenerated/src/lib/Repository +@@ -0,0 +1 @@ ++#include "repository.h" +diff --git a/autogenerated/src/lib/State b/autogenerated/src/lib/State +new file mode 100644 +index 0000000..e148d70 +--- /dev/null ++++ b/autogenerated/src/lib/State +@@ -0,0 +1 @@ ++#include "state.h" +diff --git a/autogenerated/src/lib/SyntaxHighlighter b/autogenerated/src/lib/SyntaxHighlighter +new file mode 100644 +index 0000000..b429824 +--- /dev/null ++++ b/autogenerated/src/lib/SyntaxHighlighter +@@ -0,0 +1 @@ ++#include "syntaxhighlighter.h" +diff --git a/autogenerated/src/lib/Theme b/autogenerated/src/lib/Theme +new file mode 100644 +index 0000000..34a3e98 +--- /dev/null ++++ b/autogenerated/src/lib/Theme +@@ -0,0 +1 @@ ++#include "theme.h" +diff --git a/autogenerated/src/lib/ksyntaxhighlighting_logging.cpp b/autogenerated/src/lib/ksyntaxhighlighting_logging.cpp +new file mode 100644 +index 0000000..4082ac4 +--- /dev/null ++++ b/autogenerated/src/lib/ksyntaxhighlighting_logging.cpp +@@ -0,0 +1,11 @@ ++// This file was generated by ecm_qt_declare_logging_category(): DO NOT EDIT! ++ ++#include "ksyntaxhighlighting_logging.h" ++ ++ namespace KSyntaxHighlighting { ++#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) ++Q_LOGGING_CATEGORY(Log, "org.kde.ksyntaxhighlighting", QtInfoMsg) ++#else ++Q_LOGGING_CATEGORY(Log, "org.kde.ksyntaxhighlighting") ++#endif ++} +diff --git a/autogenerated/src/lib/ksyntaxhighlighting_logging.h b/autogenerated/src/lib/ksyntaxhighlighting_logging.h +new file mode 100644 +index 0000000..c351b2c +--- /dev/null ++++ b/autogenerated/src/lib/ksyntaxhighlighting_logging.h +@@ -0,0 +1,11 @@ ++// This file was generated by ecm_qt_declare_logging_category(): DO NOT EDIT! ++ ++#ifndef ECM_QLOGGINGCATEGORY_KSYNTAXHIGHLIGHTING_LOG_KSYNTAXHIGHLIGHTING_LOGGING_H ++#define ECM_QLOGGINGCATEGORY_KSYNTAXHIGHLIGHTING_LOG_KSYNTAXHIGHLIGHTING_LOGGING_H ++ ++#include ++ namespace KSyntaxHighlighting { ++Q_DECLARE_LOGGING_CATEGORY(Log) ++} ++ ++#endif +diff --git a/data/data.pro b/data/data.pro +new file mode 100644 +index 0000000..1028ea1 +--- /dev/null ++++ b/data/data.pro +@@ -0,0 +1,11 @@ ++TEMPLATE = aux ++ ++include(../../../../../qtcreator.pri) ++ ++STATIC_BASE = $$PWD ++STATIC_OUTPUT_BASE = $$IDE_DATA_PATH/generic-highlighter ++STATIC_INSTALL_BASE = $$INSTALL_DATA_PATH/generic-highlighter ++ ++STATIC_FILES += $$files($$PWD/syntax/*, true) ++ ++include(../../../../../qtcreatordata.pri) +diff --git a/src/lib/ksyntaxhighlighting_export.h b/src/lib/ksyntaxhighlighting_export.h +new file mode 100644 +index 0000000..a39adb5 +--- /dev/null ++++ b/src/lib/ksyntaxhighlighting_export.h +@@ -0,0 +1,34 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2018 The Qt Company Ltd. ++** Contact: https://www.qt.io/licensing/ ++** ++** This file is part of Qt Creator. ++** ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and The Qt Company. For licensing terms ++** and conditions see https://www.qt.io/terms-conditions. For further ++** information use the contact form at https://www.qt.io/contact-us. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3 as published by the Free Software ++** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT ++** included in the packaging of this file. Please review the following ++** information to ensure the GNU General Public License requirements will ++** be met: https://www.gnu.org/licenses/gpl-3.0.html. ++** ++****************************************************************************/ ++ ++#pragma once ++ ++#include ++ ++#if defined(KSYNTAXHIGHLIGHTING_LIBRARY) ++# define KSYNTAXHIGHLIGHTING_EXPORT Q_DECL_EXPORT ++#else ++# define KSYNTAXHIGHLIGHTING_EXPORT Q_DECL_IMPORT ++#endif +diff --git a/syntax-highlighting.pro b/syntax-highlighting.pro +new file mode 100644 +index 0000000..38127e1 +--- /dev/null ++++ b/syntax-highlighting.pro +@@ -0,0 +1,55 @@ ++include(../../../qtcreatorlibrary.pri) ++include(autogenerated/autogenerated.pri) ++ ++QT += network ++ ++DEFINES += KSYNTAXHIGHLIGHTING_LIBRARY ++ ++RESOURCES += \ ++ data/themes/theme-data.qrc ++ ++HEADERS += \ ++ src/lib/abstracthighlighter.h \ ++ src/lib/abstracthighlighter_p.h \ ++ src/lib/context_p.h \ ++ src/lib/contextswitch_p.h \ ++ src/lib/definition.h \ ++ src/lib/definition_p.h \ ++ src/lib/definitiondownloader.h \ ++ src/lib/definitionref_p.h \ ++ src/lib/foldingregion.h \ ++ src/lib/format.h \ ++ src/lib/format_p.h \ ++ src/lib/htmlhighlighter.h \ ++ src/lib/keywordlist_p.h \ ++ src/lib/ksyntaxhighlighting_export.h \ ++ src/lib/matchresult_p.h \ ++ src/lib/repository.h \ ++ src/lib/repository_p.h \ ++ src/lib/rule_p.h \ ++ src/lib/state.h \ ++ src/lib/state_p.h \ ++ src/lib/syntaxhighlighter.h \ ++ src/lib/textstyledata_p.h \ ++ src/lib/theme.h \ ++ src/lib/themedata_p.h \ ++ src/lib/wildcardmatcher_p.h \ ++ src/lib/xml_p.h \ ++ ++SOURCES += \ ++ src/lib/abstracthighlighter.cpp \ ++ src/lib/context.cpp \ ++ src/lib/contextswitch.cpp \ ++ src/lib/definition.cpp \ ++ src/lib/definitiondownloader.cpp \ ++ src/lib/foldingregion.cpp \ ++ src/lib/format.cpp \ ++ src/lib/htmlhighlighter.cpp \ ++ src/lib/keywordlist.cpp \ ++ src/lib/repository.cpp \ ++ src/lib/rule.cpp \ ++ src/lib/state.cpp \ ++ src/lib/syntaxhighlighter.cpp \ ++ src/lib/theme.cpp \ ++ src/lib/themedata.cpp \ ++ src/lib/wildcardmatcher.cpp \ +diff --git a/syntax-highlighting.qbs b/syntax-highlighting.qbs +new file mode 100644 +index 0000000..248ebe0 +--- /dev/null ++++ b/syntax-highlighting.qbs +@@ -0,0 +1,88 @@ ++import qbs 1.0 ++import qbs.File ++import qbs.FileInfo ++import qbs.Environment ++ ++Project { ++ QtcDevHeaders { ++ productName: "syntax-highlighting (3rd party)" ++ baseDir: sourceDirectory + "/src/lib" ++ } ++ QtcDevHeaders { ++ productName: "syntax-highlighting autogenerated (3rd party)" ++ baseDir: sourceDirectory + "/autogenerated/src/lib" ++ Group { ++ prefix: baseDir + '/' ++ files: [ ++ "AbstractHighlighter", ++ "Definition", ++ "FoldingRegion", ++ "Format", ++ "Repository", ++ "State", ++ "SyntaxHighlighter", ++ "Theme" ++ ] ++ qbs.install: true ++ qbs.installDir: qtc.ide_include_path + '/' + FileInfo.fileName(product.sourceDirectory) ++ qbs.installSourceBase: baseDir ++ } ++ } ++ ++ QtcLibrary { ++ name: "KSyntaxHighlighting" ++ ++ cpp.defines: base.concat("KSYNTAXHIGHLIGHTING_LIBRARY") ++ cpp.includePaths: [ ++ product.sourceDirectory + "/src/lib/", ++ product.sourceDirectory + "/autogenerated/src/lib/", ++ product.sourceDirectory + "/autogenerated/" ++ ] ++ ++ Depends { name: "Qt.gui" } ++ Depends { name: "Qt.network" } ++ ++ Group { ++ name: "lib" ++ prefix: "src/lib/" ++ files: [ ++ "*.h", ++ "*.cpp" ++ ] ++ } ++ ++ Group { ++ name: "KSyntaxHighlighting data" ++ qbs.install: true ++ qbs.installDir: qtc.ide_data_path + "/generic-highlighter/" ++ qbs.installSourceBase: project.ide_source_tree + "/src/libs/3rdparty/syntax-highlighting/data/" ++ prefix: project.ide_source_tree + "/src/libs/3rdparty/syntax-highlighting/data/" ++ files: [ ++ "syntax/**/*" ++ ] ++ } ++ ++ Group { ++ name: "autogenerated lib" ++ prefix: "autogenerated/src/lib/" ++ files: [ ++ "*.h", ++ "*.cpp" ++ ] ++ } ++ ++ Group { ++ name: "theme data" ++ prefix: "data/themes/" ++ files: [ "theme-data.qrc" ] ++ } ++ ++ Export { ++ Depends { name: "cpp" } ++ cpp.includePaths: [ ++ product.sourceDirectory + "/src/lib/", ++ product.sourceDirectory + "/autogenerated/src/lib/", ++ ] ++ } ++ } ++} +diff --git a/syntax-highlighting_dependencies.pri b/syntax-highlighting_dependencies.pri +new file mode 100644 +index 0000000..f2fd3e6 +--- /dev/null ++++ b/syntax-highlighting_dependencies.pri +@@ -0,0 +1,3 @@ ++QTC_LIB_NAME = KSyntaxHighlighting ++INCLUDEPATH *= $$PWD/src/lib ++INCLUDEPATH *= $$PWD/autogenerated/src/lib +-- +2.20.1.windows.1 + diff --git a/src/libs/3rdparty/syntax-highlighting/patches/0004-Compile-with-namespaced-Qt.patch b/src/libs/3rdparty/syntax-highlighting/patches/0004-Compile-with-namespaced-Qt.patch new file mode 100644 index 00000000000..1c37d3158e8 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/patches/0004-Compile-with-namespaced-Qt.patch @@ -0,0 +1,281 @@ +From 916af0204a45c91092e53241e6a867cadb9dedec Mon Sep 17 00:00:00 2001 +From: Alessandro Portale +Date: Tue, 12 Feb 2019 19:21:57 +0100 +Subject: [PATCH 4/6] Compile with namespaced Qt + +--- + src/lib/abstracthighlighter.h | 4 ++++ + src/lib/abstracthighlighter_p.h | 2 ++ + src/lib/context_p.h | 2 ++ + src/lib/definition.h | 4 ++++ + src/lib/foldingregion.h | 2 ++ + src/lib/format.h | 5 ++++- + src/lib/htmlhighlighter.h | 2 ++ + src/lib/keywordlist_p.h | 2 ++ + src/lib/repository.h | 2 ++ + src/lib/repository_p.h | 2 ++ + src/lib/rule_p.h | 2 ++ + src/lib/state.h | 2 ++ + src/lib/theme.h | 2 ++ + src/lib/themedata_p.h | 2 ++ + src/lib/wildcardmatcher.cpp | 2 +- + src/lib/wildcardmatcher_p.h | 4 ++++ + 16 files changed, 39 insertions(+), 2 deletions(-) + +diff --git a/src/lib/abstracthighlighter.h b/src/lib/abstracthighlighter.h +index 056f65b..2b88729 100644 +--- a/src/lib/abstracthighlighter.h ++++ b/src/lib/abstracthighlighter.h +@@ -30,7 +30,9 @@ + + #include + ++QT_BEGIN_NAMESPACE + class QString; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +@@ -186,6 +188,8 @@ private: + }; + } + ++QT_BEGIN_NAMESPACE + Q_DECLARE_INTERFACE(KSyntaxHighlighting::AbstractHighlighter, "org.kde.SyntaxHighlighting.AbstractHighlighter") ++QT_END_NAMESPACE + + #endif // KSYNTAXHIGHLIGHTING_ABSTRACTHIGHLIGHTERM_H +diff --git a/src/lib/abstracthighlighter_p.h b/src/lib/abstracthighlighter_p.h +index 1690eb0..bdfdf23 100644 +--- a/src/lib/abstracthighlighter_p.h ++++ b/src/lib/abstracthighlighter_p.h +@@ -27,7 +27,9 @@ + #include "definition.h" + #include "theme.h" + ++QT_BEGIN_NAMESPACE + class QStringList; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +diff --git a/src/lib/context_p.h b/src/lib/context_p.h +index 3e3ab97..a034d0e 100644 +--- a/src/lib/context_p.h ++++ b/src/lib/context_p.h +@@ -34,7 +34,9 @@ + + #include + ++QT_BEGIN_NAMESPACE + class QXmlStreamReader; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +diff --git a/src/lib/definition.h b/src/lib/definition.h +index 25996dd..6f0dba9 100644 +--- a/src/lib/definition.h ++++ b/src/lib/definition.h +@@ -31,10 +31,12 @@ + + #include + ++QT_BEGIN_NAMESPACE + class QChar; + class QString; + class QStringList; + template class QVector; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +@@ -391,6 +393,8 @@ private: + + } + ++QT_BEGIN_NAMESPACE + Q_DECLARE_TYPEINFO(KSyntaxHighlighting::Definition, Q_MOVABLE_TYPE); ++QT_END_NAMESPACE + + #endif +diff --git a/src/lib/foldingregion.h b/src/lib/foldingregion.h +index baf65d1..074b947 100644 +--- a/src/lib/foldingregion.h ++++ b/src/lib/foldingregion.h +@@ -101,6 +101,8 @@ private: + + } + ++QT_BEGIN_NAMESPACE + Q_DECLARE_TYPEINFO(KSyntaxHighlighting::FoldingRegion, Q_PRIMITIVE_TYPE); ++QT_END_NAMESPACE + + #endif +diff --git a/src/lib/format.h b/src/lib/format.h +index ba85f0d..24c58e7 100644 +--- a/src/lib/format.h ++++ b/src/lib/format.h +@@ -30,10 +30,11 @@ + #include + #include + +- ++QT_BEGIN_NAMESPACE + class QColor; + class QString; + class QXmlStreamReader; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +@@ -144,6 +145,8 @@ private: + }; + } + ++QT_BEGIN_NAMESPACE + Q_DECLARE_TYPEINFO(KSyntaxHighlighting::Format, Q_MOVABLE_TYPE); ++QT_END_NAMESPACE + + #endif // KSYNTAXHIGHLIGHTING_FORMAT_H +diff --git a/src/lib/htmlhighlighter.h b/src/lib/htmlhighlighter.h +index 22d33ad..b7eda02 100644 +--- a/src/lib/htmlhighlighter.h ++++ b/src/lib/htmlhighlighter.h +@@ -32,8 +32,10 @@ + + #include + ++QT_BEGIN_NAMESPACE + class QFile; + class QTextStream; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +diff --git a/src/lib/keywordlist_p.h b/src/lib/keywordlist_p.h +index fa70f11..8c41aab 100644 +--- a/src/lib/keywordlist_p.h ++++ b/src/lib/keywordlist_p.h +@@ -30,7 +30,9 @@ + + #include + ++QT_BEGIN_NAMESPACE + class QXmlStreamReader; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +diff --git a/src/lib/repository.h b/src/lib/repository.h +index 2c32d02..c35da5e 100644 +--- a/src/lib/repository.h ++++ b/src/lib/repository.h +@@ -29,8 +29,10 @@ + #include + #include + ++QT_BEGIN_NAMESPACE + class QString; + template class QVector; ++QT_END_NAMESPACE + + /** + * @namespace KSyntaxHighlighting +diff --git a/src/lib/repository_p.h b/src/lib/repository_p.h +index da765a2..9db876b 100644 +--- a/src/lib/repository_p.h ++++ b/src/lib/repository_p.h +@@ -27,7 +27,9 @@ + #include + #include + ++QT_BEGIN_NAMESPACE + class QString; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +diff --git a/src/lib/rule_p.h b/src/lib/rule_p.h +index eccf0df..538fded 100644 +--- a/src/lib/rule_p.h ++++ b/src/lib/rule_p.h +@@ -38,7 +38,9 @@ + + #include + ++QT_BEGIN_NAMESPACE + class QXmlStreamReader; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +diff --git a/src/lib/state.h b/src/lib/state.h +index c6e5344..fce4bc7 100644 +--- a/src/lib/state.h ++++ b/src/lib/state.h +@@ -79,6 +79,8 @@ private: + + } + ++QT_BEGIN_NAMESPACE + Q_DECLARE_TYPEINFO(KSyntaxHighlighting::State, Q_MOVABLE_TYPE); ++QT_END_NAMESPACE + + #endif // KSYNTAXHIGHLIGHTING_STATE_H +diff --git a/src/lib/theme.h b/src/lib/theme.h +index 5277429..adb8431 100644 +--- a/src/lib/theme.h ++++ b/src/lib/theme.h +@@ -371,6 +371,8 @@ private: + + } + ++QT_BEGIN_NAMESPACE + Q_DECLARE_TYPEINFO(KSyntaxHighlighting::Theme, Q_MOVABLE_TYPE); ++QT_END_NAMESPACE + + #endif // KSYNTAXHIGHLIGHTING_THEME_H +diff --git a/src/lib/themedata_p.h b/src/lib/themedata_p.h +index 68cb873..3b5f463 100644 +--- a/src/lib/themedata_p.h ++++ b/src/lib/themedata_p.h +@@ -163,6 +163,8 @@ private: + + } + ++QT_BEGIN_NAMESPACE + Q_DECLARE_TYPEINFO(KSyntaxHighlighting::TextStyleData, Q_MOVABLE_TYPE); ++QT_END_NAMESPACE + + #endif // KSYNTAXHIGHLIGHTING_THEMEDATA_P_H +diff --git a/src/lib/wildcardmatcher.cpp b/src/lib/wildcardmatcher.cpp +index 963e78d..167295a 100644 +--- a/src/lib/wildcardmatcher.cpp ++++ b/src/lib/wildcardmatcher.cpp +@@ -79,5 +79,5 @@ static bool exactMatch(const QString &candidate, const QString &wildcard, int ca + bool WildcardMatcher::exactMatch(const QString &candidate, const QString &wildcard, + bool caseSensitive) + { +- return exactMatch(candidate, wildcard, candidate.length() - 1, wildcard.length() - 1, caseSensitive); ++ return ::exactMatch(candidate, wildcard, candidate.length() - 1, wildcard.length() - 1, caseSensitive); + } +diff --git a/src/lib/wildcardmatcher_p.h b/src/lib/wildcardmatcher_p.h +index 823dbd5..016b10f 100644 +--- a/src/lib/wildcardmatcher_p.h ++++ b/src/lib/wildcardmatcher_p.h +@@ -24,7 +24,11 @@ + #ifndef KSYNTAXHIGHLIGHTING_WILDCARDMATCHER_P_H + #define KSYNTAXHIGHLIGHTING_WILDCARDMATCHER_P_H + ++#include ++ ++QT_BEGIN_NAMESPACE + class QString; ++QT_END_NAMESPACE + + namespace KSyntaxHighlighting { + +-- +2.20.1.windows.1 + diff --git a/src/libs/3rdparty/syntax-highlighting/patches/0005-Prevent-assertion-in-RegExpr-doLoad.patch b/src/libs/3rdparty/syntax-highlighting/patches/0005-Prevent-assertion-in-RegExpr-doLoad.patch new file mode 100644 index 00000000000..7941c718df9 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/patches/0005-Prevent-assertion-in-RegExpr-doLoad.patch @@ -0,0 +1,29 @@ +From 3c05e92c71f6675fa2071036dafbc8d337bd2d01 Mon Sep 17 00:00:00 2001 +From: Alessandro Portale +Date: Tue, 12 Feb 2019 19:27:46 +0100 +Subject: [PATCH 5/6] Prevent assertion in RegExpr::doLoad + +--- + src/lib/rule.cpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/lib/rule.cpp b/src/lib/rule.cpp +index a201375..c48753b 100644 +--- a/src/lib/rule.cpp ++++ b/src/lib/rule.cpp +@@ -575,7 +575,11 @@ bool RegExpr::doLoad(QXmlStreamReader& reader) + } + + // always using m_regexp.isValid() would be better, but parses the regexp and thus is way too expensive for release builds +- Q_ASSERT(m_regexp.isValid()); ++ ++ if (Log().isDebugEnabled()) { ++ if (!m_regexp.isValid()) ++ qCDebug(Log) << "Invalid regexp:" << m_regexp.pattern(); ++ } + return !m_regexp.pattern().isEmpty(); + } + +-- +2.20.1.windows.1 + diff --git a/src/libs/3rdparty/syntax-highlighting/patches/0006-Syntax-Highlighter-return-all-definitions-for-a-file.patch b/src/libs/3rdparty/syntax-highlighting/patches/0006-Syntax-Highlighter-return-all-definitions-for-a-file.patch new file mode 100644 index 00000000000..b9de66121c6 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/patches/0006-Syntax-Highlighter-return-all-definitions-for-a-file.patch @@ -0,0 +1,101 @@ +From 4b64058fe7d788ac79c16a08b280ce05d500e9fb Mon Sep 17 00:00:00 2001 +From: Alessandro Portale +Date: Tue, 12 Feb 2019 19:32:54 +0100 +Subject: [PATCH 6/6] Syntax Highlighter: return all definitions for a file + name/mimetype + +Can be used to create user controls to switch between +multiple definitions for a file or mime type. + +Change-Id: I5fd3744db1e819d0d6f8448a53adaf9d2c7c168d +Reviewed-by: Christian Stenger +--- + src/lib/repository.cpp | 17 +++++++++++++---- + src/lib/repository.h | 12 ++++++++++++ + 2 files changed, 25 insertions(+), 4 deletions(-) + +diff --git a/src/lib/repository.cpp b/src/lib/repository.cpp +index 6b2fabd..922225a 100644 +--- a/src/lib/repository.cpp ++++ b/src/lib/repository.cpp +@@ -78,7 +78,7 @@ Definition Repository::definitionForName(const QString& defName) const + return d->m_defs.value(defName); + } + +-static Definition bestCandidate(QVector& candidates) ++static Definition bestCandidate(QVector &&candidates) + { + if (candidates.isEmpty()) + return Definition(); +@@ -91,6 +91,11 @@ static Definition bestCandidate(QVector& candidates) + } + + Definition Repository::definitionForFileName(const QString& fileName) const ++{ ++ return bestCandidate(definitionsForFileName(fileName)); ++} ++ ++QVector Repository::definitionsForFileName(const QString &fileName) const + { + QFileInfo fi(fileName); + const auto name = fi.fileName(); +@@ -106,10 +111,15 @@ Definition Repository::definitionForFileName(const QString& fileName) const + } + } + +- return bestCandidate(candidates); ++ return candidates; + } + + Definition Repository::definitionForMimeType(const QString& mimeType) const ++{ ++ return bestCandidate(definitionsForMimeType(mimeType)); ++} ++ ++QVector Repository::definitionsForMimeType(const QString &mimeType) const + { + QVector candidates; + for (auto it = d->m_defs.constBegin(); it != d->m_defs.constEnd(); ++it) { +@@ -121,8 +131,7 @@ Definition Repository::definitionForMimeType(const QString& mimeType) const + } + } + } +- +- return bestCandidate(candidates); ++ return candidates; + } + + QVector Repository::definitions() const +diff --git a/src/lib/repository.h b/src/lib/repository.h +index c35da5e..e4e9bed 100644 +--- a/src/lib/repository.h ++++ b/src/lib/repository.h +@@ -166,6 +166,13 @@ public: + */ + Definition definitionForFileName(const QString &fileName) const; + ++ /** ++ * Returns all Definition%s for the file named @p fileName. ++ * The match is performed based on the \e extensions and @e mimetype of ++ * the definition files. ++ */ ++ QVector definitionsForFileName(const QString &fileName) const; ++ + /** + * Returns the best matching Definition to the type named @p mimeType + * +@@ -176,6 +183,11 @@ public: + */ + Definition definitionForMimeType(const QString &mimeType) const; + ++ /** ++ * Returns all Definition%s to the type named @p mimeType ++ */ ++ QVector definitionsForMimeType(const QString &mimeType) const; ++ + /** + * Returns all available Definition%s. + * Definition%ss are ordered by translated section and translated names, +-- +2.20.1.windows.1 + From 1ac9a91811e2392cf775952805a92ed4e53d4c88 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 12 Feb 2019 13:06:02 +0100 Subject: [PATCH 40/55] HelpItem: Fix usage of isFuzzyMatch We may not access that before links are resolved. Change-Id: I5e80190e41c220c6b70e5d391caaf173cd5b28d8 Reviewed-by: David Schulz --- src/plugins/coreplugin/helpitem.cpp | 9 ++++++++- src/plugins/coreplugin/helpitem.h | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/helpitem.cpp b/src/plugins/coreplugin/helpitem.cpp index b8794481cfe..d63bd883dea 100644 --- a/src/plugins/coreplugin/helpitem.cpp +++ b/src/plugins/coreplugin/helpitem.cpp @@ -270,7 +270,7 @@ static const HelpItem::Links getBestLink(const HelpItem::Links &links) const HelpItem::Links HelpItem::bestLinks() const { - if (m_isFuzzyMatch) + if (isFuzzyMatch()) return getBestLinks(links()); return getBestLink(links()); } @@ -279,3 +279,10 @@ const QString HelpItem::keyword() const { return m_keyword; } + +bool HelpItem::isFuzzyMatch() const +{ + // make sure m_isFuzzyMatch is correct + links(); + return m_isFuzzyMatch; +} diff --git a/src/plugins/coreplugin/helpitem.h b/src/plugins/coreplugin/helpitem.h index 4d9ab153fb8..15ff585ca82 100644 --- a/src/plugins/coreplugin/helpitem.h +++ b/src/plugins/coreplugin/helpitem.h @@ -86,6 +86,8 @@ public: const QString keyword() const; private: + bool isFuzzyMatch() const; + QUrl m_helpUrl; QStringList m_helpIds; QString m_docMark; From 5e1167facd16bc85f83383142af6b4603412c031 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 13 Feb 2019 06:56:22 +0100 Subject: [PATCH 41/55] Tests: Fix contradicting declarations Change-Id: I684bad06ff0f1dbc6375da96457135d6f7287120 Reviewed-by: Ivan Donchevskii Reviewed-by: Marco Bubke --- tests/unit/unittest/gtest-creator-printing.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/unittest/gtest-creator-printing.h b/tests/unit/unittest/gtest-creator-printing.h index d0f0013f609..cb63fd56bb9 100644 --- a/tests/unit/unittest/gtest-creator-printing.h +++ b/tests/unit/unittest/gtest-creator-printing.h @@ -192,10 +192,10 @@ class PchTaskSet; class BuildDependency; class SourceEntry; class FilePathCaching; -class SlotUsage; +struct SlotUsage; class IncludeSearchPath; enum class IncludeSearchPathType : unsigned char; -class ArgumentsEntry; +struct ArgumentsEntry; class ProjectPartContainer; std::ostream &operator<<(std::ostream &out, const SourceLocationEntry &entry); From 80cd9cfa8a67c91290587aecb8514b2ad634b6a5 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Mon, 11 Feb 2019 18:06:18 +0100 Subject: [PATCH 42/55] Squish: Update tst_APTW03 Change-Id: Iace2557625f538ebac09191043ae0d653face121 Reviewed-by: Christian Stenger --- tests/system/suite_APTW/tst_APTW03/test.py | 68 ++++++++++++---------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/tests/system/suite_APTW/tst_APTW03/test.py b/tests/system/suite_APTW/tst_APTW03/test.py index d0b4bfea811..bab90c9459d 100644 --- a/tests/system/suite_APTW/tst_APTW03/test.py +++ b/tests/system/suite_APTW/tst_APTW03/test.py @@ -25,7 +25,13 @@ source("../../shared/qtcreator.py") -def handleInsertVirtualFunctions(expected): +def handleInsertVirtualFunctions(expected, toAdd): + def __checkVirtualFunction(treeView, classIndex, isCheckedF, child): + item = "%s.%s" % (str(classIndex.text), str(child.text)) + test.log("Checking '%s'." % item) + clickItem(treeView, item.replace("_", "\\_"), 5, 5, 0, Qt.LeftButton) + test.verify(waitFor("isCheckedF(child)", 1000), "Function must be checked after clicking") + treeView = waitForObject("{container={title='Functions to insert:' type='QGroupBox' unnamed='1'" " visible='1'} type='QTreeView' unnamed='1' visible='1'}") @@ -42,10 +48,10 @@ def handleInsertVirtualFunctions(expected): if test.verify(isChecked(child), "Verifying: '%s' is checked." % curr): found.add(curr) else: - item = "%s.%s" % (str(classIndex.text), str(child.text)) - test.log("Checking '%s'." % item) - clickItem(treeView, item.replace("_", "\\_"), 5, 5, 0, Qt.LeftButton) - waitFor("isChecked(child)", 1000) + __checkVirtualFunction(treeView, classIndex, isChecked, child) + for curr in toAdd: + if str(child.text).startswith(curr): + __checkVirtualFunction(treeView, classIndex, isChecked, child) test.verify(len(set(expected).difference(found)) == 0, "Verifying whether all expected functions have been found.") @@ -79,57 +85,59 @@ def main(): checkSimpleCppLib("SampleApp1", False) checkSimpleCppLib("SampleApp2", True) - projectName, className = createNewQtPlugin(tempDir(), "SampleApp3", "MyPlugin", - Targets.desktopTargetClasses()) + pluginTargets = Targets.desktopTargetClasses() + pluginTargets.remove(Targets.DESKTOP_4_8_7_DEFAULT) + if platform.system() in ('Microsoft', 'Windows'): + # No C++11 in GCC 4.9 + pluginTargets.remove(Targets.DESKTOP_5_4_1_GCC) + projectName, className = createNewQtPlugin(tempDir(), "SampleApp3", "MyPlugin", pluginTargets) virtualFunctionsAdded = False for kit, config in iterateBuildConfigs("Debug"): - is487Kit = kit in (Targets.DESKTOP_4_8_7_DEFAULT, Targets.EMBEDDED_LINUX) verifyBuildConfig(kit, config, True, True) - if virtualFunctionsAdded and platform.system() in ('Microsoft', 'Windows') and is487Kit: - test.warning("Skipping building of Qt4.8 targets because of QTCREATORBUG-12251.") - continue invokeMenuItem('Build', 'Build Project "%s"' % projectName) waitForCompile(10000) if not virtualFunctionsAdded: checkLastBuild(True, False) + if not openDocument("%s.Sources.%s\.cpp" % (projectName, className.lower())): + test.fatal("Could not open %s.cpp - continuing." % className.lower()) + continue + editor = getEditorForFileSuffix("%s.cpp" % className.lower()) + initialContent = str(editor.plainText) + test.verify("QObject * %s::create(" % className in initialContent, + "Verifying whether pure virtual function has been added to the source file.") if not openDocument("%s.Headers.%s\.h" % (projectName, className.lower())): test.fatal("Could not open %s.h - continuing." % className.lower()) continue editor = getEditorForFileSuffix("%s.h" % className.lower()) + initialContent = str(editor.plainText) + test.verify(re.search("QObject \*create.*;", initialContent, re.MULTILINE), + "Verifying whether create() declaration has been added to the header.") placeCursorToLine(editor, "class %s.*" % className, True) snooze(4) # avoid timing issue with the parser invokeContextMenuItem(editor, "Refactor", "Insert Virtual Functions of Base Classes") - handleInsertVirtualFunctions(["keys() const = 0 : QStringList", - "create(const QString &, const QString &) = 0 : QObject *"]) - waitFor("'keys' in str(editor.plainText)", 2000) + handleInsertVirtualFunctions(["create(const QString &, const QString &) = 0 : QObject *"], + ["event(QEvent *) : bool"]) + waitFor("'event' in str(editor.plainText)", 2000) modifiedContent = str(editor.plainText) - test.verify(re.search("QStringList keys.*;", modifiedContent, re.MULTILINE), - "Verifying whether keys() declaration has been added to the header.") - test.verify(re.search("QObject \*create.*;", modifiedContent, re.MULTILINE), - "Verifying whether create() declaration has been added to the header.") + test.verify(re.search("bool event\(QEvent \*event\);", modifiedContent, re.MULTILINE), + "Verifying whether event() declaration has been added to the header.") if not openDocument("%s.Sources.%s\.cpp" % (projectName, className.lower())): test.fatal("Could not open %s.cpp - continuing." % className.lower()) continue editor = getEditorForFileSuffix("%s.cpp" % className.lower()) modifiedContent = str(editor.plainText) - test.verify("QStringList %s::keys(" % className in modifiedContent, - "Verifying whether keys() definition has been added to the source file.") - test.verify("QObject *%s::create(" % className in modifiedContent, - "Verifying whether create() definition has been added to the source file.") + test.verify("bool %s::event(QEvent *event)" % className in modifiedContent, + "Verifying whether event() definition has been added to the source file.") # add return to not run into build issues of missing return values - addReturn(editor, "QStringList %s::keys.*" % className, "QStringList()") - addReturn(editor, "QObject \*%s::create.*" % className, "0") + addReturn(editor, "bool %s::event.*" % className, "true") + addReturn(editor, "QObject \* %s::create.*" % className, "0") + placeCursorToLine(editor, 'static_assert\(false, .*', True) + invokeContextMenuItem(editor, "Toggle Comment Selection") virtualFunctionsAdded = True invokeMenuItem('File', 'Save All') - if platform.system() in ('Microsoft', 'Windows') and is487Kit: # QTCREATORBUG-12251 - test.warning("Skipping building of Qt4.8 targets because of QTCREATORBUG-12251.") - continue invokeMenuItem('Build', 'Rebuild Project "%s"' % projectName) waitForCompile(10000) - if platform.system() == "Darwin" and is487Kit: - test.log("Skipping compile check (gcc on OSX is only clang with gcc frontend nowadays)") - continue checkCompile() invokeMenuItem("File", "Exit") From 667eb57169dfb0785baddf85d7889122f11d8f3e Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 13 Feb 2019 15:57:01 +0100 Subject: [PATCH 43/55] UI Introduction: Allow left cursor key for "back" Or right cursor in case of right-to-left layout direction Change-Id: I058ad4ecc5e07f572cf16abc8a94da430b65fda3 Reviewed-by: Tim Jenssen --- src/plugins/welcome/introductionwidget.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/plugins/welcome/introductionwidget.cpp b/src/plugins/welcome/introductionwidget.cpp index d0c993b6e8a..d10cb76be2f 100644 --- a/src/plugins/welcome/introductionwidget.cpp +++ b/src/plugins/welcome/introductionwidget.cpp @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -349,8 +350,17 @@ void IntroductionWidget::keyPressEvent(QKeyEvent *ke) { if (ke->key() == Qt::Key_Escape) finish(); - else if (ke->modifiers() == Qt::NoModifier) - step(); + else if ((ke->modifiers() + & (Qt::ControlModifier | Qt::AltModifier | Qt::ShiftModifier | Qt::MetaModifier)) + == Qt::NoModifier) { + const Qt::Key backKey = QGuiApplication::isLeftToRight() ? Qt::Key_Left : Qt::Key_Right; + if (ke->key() == backKey) { + if (m_step > 0) + setStep(m_step - 1); + } else { + step(); + } + } } void IntroductionWidget::mouseReleaseEvent(QMouseEvent *me) From 75d9b56c1a6739c39a0cd12cba1db7d4bd479778 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 13 Feb 2019 15:38:58 +0100 Subject: [PATCH 44/55] QmlJSEditor: Fix nullptr access Avoids a crash when triggering 'Find Usage' on a Qml Item. Change-Id: I3980e6a7aae891f853148017341a2f29a07e03ad Reviewed-by: Eike Ziller --- src/plugins/qmljseditor/qmljsfindreferences.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmljseditor/qmljsfindreferences.cpp b/src/plugins/qmljseditor/qmljsfindreferences.cpp index 67abdece261..8b790c33510 100644 --- a/src/plugins/qmljseditor/qmljsfindreferences.cpp +++ b/src/plugins/qmljseditor/qmljsfindreferences.cpp @@ -322,10 +322,12 @@ protected: bool visit(AST::UiPublicMember *node) override { - if (node->memberType->name == _name){ - const ObjectValue * tVal = _context->lookupType(_doc.data(), QStringList(_name)); - if (tVal == _typeValue) - _usages.append(node->typeToken); + if (UiQualifiedId *memberType = node->memberType) { + if (memberType->name == _name) { + const ObjectValue * tVal = _context->lookupType(_doc.data(), QStringList(_name)); + if (tVal == _typeValue) + _usages.append(node->typeToken); + } } if (AST::cast(node->statement)) { _builder.push(node); From 80cdc99737856951ab58fb54cddfb0073c81506b Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 12 Feb 2019 15:00:14 +0100 Subject: [PATCH 45/55] ClangRefactoring: Move clang options to BeginInvocation Change-Id: If4e90aa8e27b961026912bef3f0e81f972fbe0c7 Reviewed-by: Ivan Donchevskii --- .../source/collectsymbolsaction.h | 3 --- .../source/symbolscollector.cpp | 21 +++++++++++++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h b/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h index 0d79bf24a36..2074a25a6e5 100644 --- a/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h +++ b/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h @@ -66,9 +66,6 @@ private: CreateASTConsumer(clang::CompilerInstance &compilerInstance, llvm::StringRef inFile) override { - compilerInstance.getPreprocessor().SetSuppressIncludeNotFoundError(true); - compilerInstance.getLangOpts().DelayedTemplateParsing = false; - return WrapperFrontendAction::CreateASTConsumer(compilerInstance, inFile); } }; diff --git a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp index 2669a3d8767..1ceb4a14ce6 100644 --- a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp +++ b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp @@ -25,6 +25,7 @@ #include "symbolscollector.h" +#include #include namespace ClangBackEnd { @@ -96,14 +97,26 @@ newFrontendActionFactory(Factory *consumerFactory, } protected: - bool BeginSourceFileAction(clang::CompilerInstance &CI) override { - if (!clang::ASTFrontendAction::BeginSourceFileAction(CI)) + bool BeginInvocation(clang::CompilerInstance &compilerInstance) override + { + compilerInstance.getLangOpts().DelayedTemplateParsing = false; + + return clang::ASTFrontendAction::BeginInvocation(compilerInstance); + } + + bool BeginSourceFileAction(clang::CompilerInstance &compilerInstance) override + { + compilerInstance.getPreprocessor().SetSuppressIncludeNotFoundError(true); + + if (!clang::ASTFrontendAction::BeginSourceFileAction(compilerInstance)) return false; if (m_sourceFileCallbacks) - return m_sourceFileCallbacks->handleBeginSource(CI); + return m_sourceFileCallbacks->handleBeginSource(compilerInstance); return true; } - void EndSourceFileAction() override { + + void EndSourceFileAction() override + { if (m_sourceFileCallbacks) m_sourceFileCallbacks->handleEndSource(); clang::ASTFrontendAction::EndSourceFileAction(); From a33bce9e9145dfb25bab73ad25c456999ffd5d15 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 12 Feb 2019 16:24:34 +0100 Subject: [PATCH 46/55] Clang: Fix command line builder Add "-nostdinc++" only for C++. Change-Id: I21228fca80045b040877328f41ca0edb4f227fcc Reviewed-by: Ivan Donchevskii --- src/libs/clangsupport/commandlinebuilder.h | 7 ++++--- tests/unit/unittest/commandlinebuilder-test.cpp | 14 ++++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/libs/clangsupport/commandlinebuilder.h b/src/libs/clangsupport/commandlinebuilder.h index 38db85badea..aa384f1180d 100644 --- a/src/libs/clangsupport/commandlinebuilder.h +++ b/src/libs/clangsupport/commandlinebuilder.h @@ -54,7 +54,7 @@ public: addToolChainArguments(toolChainArguments); addLanguage(projectInfo, sourceType); addLanguageVersion(projectInfo); - addNoStdIncAndNoStdLibInc(); + addNoStdIncAndNoStdLibInc(projectInfo.language); addCompilerMacros(projectInfo.compilerMacros); addProjectIncludeSearchPaths( sortedIncludeSearchPaths(projectInfo.projectIncludeSearchPaths)); @@ -272,10 +272,11 @@ public: } } - void addNoStdIncAndNoStdLibInc() + void addNoStdIncAndNoStdLibInc(Utils::Language language) { commandLine.emplace_back("-nostdinc"); - commandLine.emplace_back("-nostdinc++"); + if (language == Utils::Language::Cxx) + commandLine.emplace_back("-nostdinc++"); } public: diff --git a/tests/unit/unittest/commandlinebuilder-test.cpp b/tests/unit/unittest/commandlinebuilder-test.cpp index 3d684e10bca..c6bdd33d3fb 100644 --- a/tests/unit/unittest/commandlinebuilder-test.cpp +++ b/tests/unit/unittest/commandlinebuilder-test.cpp @@ -137,9 +137,13 @@ TYPED_TEST(CommandLineBuilder, CHeader) Builder builder{this->emptyProjectInfo, {}, InputFileType::Header, "/source/file.c"}; - ASSERT_THAT( - builder.commandLine, - ElementsAre("clang", "-x", "c-header", "-std=c11", "-nostdinc", "-nostdinc++", toNativePath("/source/file.c").path())); + ASSERT_THAT(builder.commandLine, + ElementsAre("clang", + "-x", + "c-header", + "-std=c11", + "-nostdinc", + toNativePath("/source/file.c").path())); } TYPED_TEST(CommandLineBuilder, CSource) @@ -150,7 +154,7 @@ TYPED_TEST(CommandLineBuilder, CSource) Builder builder{this->emptyProjectInfo, {}, InputFileType::Source, "/source/file.c"}; ASSERT_THAT(builder.commandLine, - ElementsAre("clang", "-x", "c", "-std=c11", "-nostdinc", "-nostdinc++", "/source/file.c")); + ElementsAre("clang", "-x", "c", "-std=c11", "-nostdinc", "/source/file.c")); } TYPED_TEST(CommandLineBuilder, ObjectiveCHeader) @@ -167,7 +171,6 @@ TYPED_TEST(CommandLineBuilder, ObjectiveCHeader) "objective-c-header", "-std=c11", "-nostdinc", - "-nostdinc++", toNativePath("/source/file.c").path())); } @@ -185,7 +188,6 @@ TYPED_TEST(CommandLineBuilder, ObjectiveCSource) "objective-c", "-std=c11", "-nostdinc", - "-nostdinc++", "/source/file.c")); } From 605fe1dfd9837ee777a8b89922fb544af272210a Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 13 Feb 2019 15:32:26 +0100 Subject: [PATCH 47/55] Squish: Update menu item for 'Find Usage' Change-Id: I6fdf9f9a1c697ad403473b795d4848aa4e519cb0 Reviewed-by: Christian Stenger Reviewed-by: Robert Loehning --- tests/system/shared/editor_utils.py | 2 +- tests/system/suite_QMLS/tst_QMLS03/test.py | 4 ++-- tests/system/suite_editors/tst_qml_editor/test.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/system/shared/editor_utils.py b/tests/system/shared/editor_utils.py index 25042f95411..87c51a523c5 100644 --- a/tests/system/shared/editor_utils.py +++ b/tests/system/shared/editor_utils.py @@ -361,7 +361,7 @@ def invokeFindUsage(editor, line, typeOperation, n=1): for _ in range(n): type(editor, typeOperation) snooze(1) - invokeContextMenuItem(editor, "Find Usages") + invokeContextMenuItem(editor, "Find References to Symbol Under Cursor") return True def addBranchWildcardToRoot(rootNode): diff --git a/tests/system/suite_QMLS/tst_QMLS03/test.py b/tests/system/suite_QMLS/tst_QMLS03/test.py index 2583302c4ba..62251a9aeeb 100644 --- a/tests/system/suite_QMLS/tst_QMLS03/test.py +++ b/tests/system/suite_QMLS/tst_QMLS03/test.py @@ -92,7 +92,7 @@ def main(): return for _ in range(5): type(editorArea, "") - invokeContextMenuItem(editorArea, "Find Usages") + invokeContextMenuItem(editorArea, "Find References to Symbol Under Cursor") # check if usage was properly found expectedResults = [ExpectedResult("color-animation.qml", 49, "Rectangle {"), ExpectedResult("color-animation.qml", 109, "Rectangle {"), @@ -111,7 +111,7 @@ def main(): return for _ in range(87): type(editorArea, "") - invokeMenuItem("Tools", "QML/JS", "Find Usages") + invokeMenuItem("Tools", "QML/JS", "Find References to Symbol Under Cursor") # check if usage was properly found expectedResults = [ExpectedResult("color-animation.qml", 50, "anchors { left: parent.left; top: parent.top; right: parent.right; bottom: parent.verticalCenter }"), ExpectedResult("color-animation.qml", 110, "anchors { left: parent.left; top: parent.verticalCenter; right: parent.right; bottom: parent.bottom }"), diff --git a/tests/system/suite_editors/tst_qml_editor/test.py b/tests/system/suite_editors/tst_qml_editor/test.py index 53ddc0884dd..e43545a5541 100644 --- a/tests/system/suite_editors/tst_qml_editor/test.py +++ b/tests/system/suite_editors/tst_qml_editor/test.py @@ -97,7 +97,7 @@ def __invokeFindUsage__(filename, line, additionalKeyPresses, expectedCount): return for ty in additionalKeyPresses: type(editor, ty) - invokeContextMenuItem(editor, "Find Usages") + invokeContextMenuItem(editor, "Find References to Symbol Under Cursor") waitForSearchResults() validateSearchResult(expectedCount) From ac4ec987359fa0f00cb9039d370562f399735a16 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 13 Feb 2019 14:12:22 +0100 Subject: [PATCH 48/55] Squish: Adapt test for wizard pages There are nowadays two additional application templates for Qt for Python. Additionally remove no more existing template. Change-Id: I717adb78e1873f0609a050364034694a7c270055 Reviewed-by: Robert Loehning --- tests/system/suite_general/tst_create_proj_wizard/test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/system/suite_general/tst_create_proj_wizard/test.py b/tests/system/suite_general/tst_create_proj_wizard/test.py index c27e8722f3b..2c71b21c83d 100644 --- a/tests/system/suite_general/tst_create_proj_wizard/test.py +++ b/tests/system/suite_general/tst_create_proj_wizard/test.py @@ -61,8 +61,8 @@ def main(): for template in dumpItems(templatesView.model(), templatesView.rootIndex()): template = template.replace(".", "\\.") # skip non-configurable - if not template in ["Qt Quick UI Prototype", "Qt Canvas 3D Application", - "Auto Test Project"]: # FIXME + if not template in ["Qt Quick UI Prototype", "Auto Test Project", # FIXME + "Qt for Python - Empty", "Qt for Python - Window"]: availableProjectTypes.append({category:template}) safeClickButton("Cancel") for current in availableProjectTypes: From a112ca317b97b6ae20684af4d8950fc8e553eb38 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 14 Feb 2019 09:28:01 +0100 Subject: [PATCH 49/55] Squish: Fix verification of tool tips Change-Id: I12487c784cf784ca7ddf705895c99f0ed912b0f4 Reviewed-by: Robert Loehning --- src/libs/utils/tooltip/tooltip.cpp | 1 + tests/system/shared/editor_utils.py | 2 +- .../suite_editors/tst_qml_editor/test.py | 33 ++++++++++--------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/libs/utils/tooltip/tooltip.cpp b/src/libs/utils/tooltip/tooltip.cpp index de3c536c5fe..b4735c25eec 100644 --- a/src/libs/utils/tooltip/tooltip.cpp +++ b/src/libs/utils/tooltip/tooltip.cpp @@ -263,6 +263,7 @@ void ToolTip::showInternal(const QPoint &pos, const QVariant &content, m_tip = new WidgetTip(target); break; } + m_tip->setObjectName("qcToolTip"); m_tip->setContent(content); m_tip->setContextHelp(contextHelp); setUp(pos, w, rect); diff --git a/tests/system/shared/editor_utils.py b/tests/system/shared/editor_utils.py index 87c51a523c5..a6cf0cea4cb 100644 --- a/tests/system/shared/editor_utils.py +++ b/tests/system/shared/editor_utils.py @@ -147,7 +147,7 @@ def verifyHoveringOnEditor(editor, lines, additionalKeyPresses, expectedTypes, e for ty in additionalKeyPresses: type(editor, ty) rect = editor.cursorRect(editor.textCursor()) - expectedToolTip = "{type='QTipLabel' visible='1'}" + expectedToolTip = "{type='QLabel' objectName='qcToolTip' visible='1'}" # wait for similar tooltips to disappear checkIfObjectExists(expectedToolTip, False, 1000, True) sendEvent("QMouseEvent", editor, QEvent.MouseMove, rect.x+rect.width/2, rect.y+rect.height/2, Qt.NoButton, 0) diff --git a/tests/system/suite_editors/tst_qml_editor/test.py b/tests/system/suite_editors/tst_qml_editor/test.py index e43545a5541..c66c8b8bbad 100644 --- a/tests/system/suite_editors/tst_qml_editor/test.py +++ b/tests/system/suite_editors/tst_qml_editor/test.py @@ -124,10 +124,10 @@ def testHovering(): additionalKeyPresses = [home, ""] expectedTypes = ["TextTip", "TextTip"] expectedValues = [ - {'text':'
FocusScope\n

Explicitly ' - 'creates a focus scope

  
'}, - {'text':'
Rectangle\n

Paints a filled rectangle with an ' - 'optional border

  
'} + {'text':'

FocusScope


\n

Explicitly ' + 'creates a focus scope

  
'}, + {'text':'

Rectangle


\n

Paints a filled rectangle with an ' + 'optional border

  
'} ] alternativeValues = [{"text":"FocusScope"}, {"text":"Rectangle"}] verifyHoveringOnEditor(editor, lines, additionalKeyPresses, expectedTypes, expectedValues, alternativeValues) @@ -137,23 +137,26 @@ def testHovering(): lines = ['focus:\s*true', 'color:\s*"black"', 'states:\s*State\s*\{', 'transitions:\s*Transition\s*\{'] expectedTypes = ["TextTip", "TextTip", "TextTip", "TextTip"] expectedValues = [ - {'text':'
boolean

This property indicates whether the item has focus ' + {'text':'

boolean


This property indicates whether the item has focus ' 'within the enclosing focus scope. If true, this item will gain active focus when the enclosing ' 'focus scope gains active focus. In the following example, input will be given active focus ' - 'when scope gains active focus.

  scope gains active focus.

  
'}, - {'text':'
string

This property holds the color used to fill the rectangle.' - '

  
'}, - {'text':'
State

This property holds the list of possible states for this item. ' + {'text':'

string


This property holds the color used to fill the rectangle.' + '

  
'}, + {'text':'

State


This property holds the list of possible states for this item. ' 'To change the state of this item, set the state property to one of these states, or set the state property ' 'to an empty string to revert the item to its default state.' - '

  
'}, - {'text':'
Transition

This property holds the list of transitions for this item. ' + '

  
'}, + {'text':'

Transition


This property holds the list of transitions for this item. ' 'These define the transitions to be applied to the item whenever it changes its state.' - '

  
'} + '

  
'} ] - alternativeValues = [{"text":"Rectangle" if JIRA.isBugStillOpen(20020) else "boolean"}, - {"text":"string"}, {"text":"State"}, {"text":"Transition"}] + alternativeValues = [{"text":"boolean"}, {"text":"string"}, {"text":"State"}, {"text":"Transition"}] + if JIRA.isBugStillOpen(20020): + expectedValues[0] = {'text':'
Rectangle  ' + '
'} + alternativeValues[0] = {"text":"Rectangle"} verifyHoveringOnEditor(editor, lines, additionalKeyPresses, expectedTypes, expectedValues, alternativeValues) test.log("Testing hovering expressions") openDocument(focusDocumentPath % "focus\\.qml") @@ -169,7 +172,7 @@ def testHovering(): lines=['Rectangle\s*\{.*color:\s*"#D1DBBD"', 'NumberAnimation\s*\{\s*.*Easing.OutQuint\s*\}'] additionalKeyPresses = ["", "", "", ""] expectedTypes = ["ColorTip", "TextTip"] - expectedValues = ["#D1DBBD", {"text":"number"}] + expectedValues = ["#D1DBBD", {"text":'
number  
'}] alternativeValues = ["#D6DBBD", None] verifyHoveringOnEditor(editor, lines, additionalKeyPresses, expectedTypes, expectedValues, alternativeValues) From fa4f925fda0d0b44632f77a1c60d325a8a84d14a Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 14 Feb 2019 13:38:46 +0100 Subject: [PATCH 50/55] Update qbs type info Change-Id: I9fab6156b6ce0a3c50be0c08b263f7a4c84dbfca Reviewed-by: Joerg Bornemann --- .../qml-type-descriptions/qbs.qmltypes | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/share/qtcreator/qml-type-descriptions/qbs.qmltypes b/share/qtcreator/qml-type-descriptions/qbs.qmltypes index 056d94ffbe4..bc4244b63fc 100644 --- a/share/qtcreator/qml-type-descriptions/qbs.qmltypes +++ b/share/qtcreator/qml-type-descriptions/qbs.qmltypes @@ -19,6 +19,7 @@ Module { exports: [ "qbs/Depends 1.0" ] prototype: "QQuickItem" Property { name: "condition"; type: "bool" } + Property { name: "enableFallback"; type: "bool" } Property { name: "limitToSubProject"; type: "bool" } Property { name: "multiplexConfigurationIds"; type: "string"; isList: true } Property { name: "name"; type: "string" } @@ -66,6 +67,14 @@ Module { Property { name: "overrideTags"; type: "bool" } Property { name: "prefix"; type: "string" } } + Component { + name: "JobLimit" + exports: [ "qbs/JobLimit 1.0" ] + prototype: "QQuickItem" + Property { name: "condition"; type: "bool" } + Property { name: "jobCount"; type: "int" } + Property { name: "jobPool"; type: "string" } + } Component { name: "Module" exports: [ "qbs/Module 1.0" ] @@ -80,6 +89,14 @@ Module { Property { name: "validate"; type: "bool" } Property { name: "version"; type: "string" } } + Component { + name: "ModuleProvider" + exports: [ "qbs/ModuleProvider 1.0" ] + prototype: "QQuickItem" + Property { name: "name"; type: "string" } + Property { name: "outputBaseDir"; type: "string" } + Property { name: "relativeSearchPaths"; type: "string"; isList: true } + } Component { name: "Parameter" exports: [ "qbs/Parameter 1.0" ] From b41b5a0714f6374434d3cf90794340d192423fc6 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 14 Feb 2019 11:07:33 +0100 Subject: [PATCH 51/55] move text document for file path convenience function Move it from language client utils to a static function inside the text document. Change-Id: I91bc72d0e978c1d843082e12bb8a0fa60a1bbc5e Reviewed-by: Eike Ziller --- src/plugins/languageclient/client.cpp | 8 +++++--- .../languageclient/languageclientutils.cpp | 18 ++++++------------ .../languageclient/languageclientutils.h | 1 - src/plugins/texteditor/textdocument.cpp | 5 +++++ src/plugins/texteditor/textdocument.h | 1 + src/plugins/texteditor/textmark.cpp | 7 ++----- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 5b1022c8086..dde08c6794c 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -554,7 +554,7 @@ void Client::cursorPositionChanged(TextEditor::TextEditorWidget *widget) void Client::requestCodeActions(const DocumentUri &uri, const QList &diagnostics) { const Utils::FileName fileName = uri.toFileName(); - TextEditor::TextDocument *doc = textDocumentForFileName(fileName); + TextEditor::TextDocument *doc = TextEditor::TextDocument::textDocumentForFileName(fileName); if (!doc) return; @@ -811,7 +811,8 @@ void Client::showMessageBox(const ShowMessageRequestParams &message, const Messa void Client::showDiagnostics(const DocumentUri &uri) { - if (TextEditor::TextDocument *doc = textDocumentForFileName(uri.toFileName())) { + if (TextEditor::TextDocument *doc + = TextEditor::TextDocument::textDocumentForFileName(uri.toFileName())) { for (TextMark *mark : m_diagnostics.value(uri)) doc->addMark(mark); } @@ -819,7 +820,8 @@ void Client::showDiagnostics(const DocumentUri &uri) void Client::removeDiagnostics(const DocumentUri &uri) { - TextEditor::TextDocument *doc = textDocumentForFileName(uri.toFileName()); + TextEditor::TextDocument *doc + = TextEditor::TextDocument::textDocumentForFileName(uri.toFileName()); for (TextMark *mark : m_diagnostics.take(uri)) { if (doc) diff --git a/src/plugins/languageclient/languageclientutils.cpp b/src/plugins/languageclient/languageclientutils.cpp index 5f3f8e06723..f81be2427cc 100644 --- a/src/plugins/languageclient/languageclientutils.cpp +++ b/src/plugins/languageclient/languageclientutils.cpp @@ -40,6 +40,7 @@ using namespace LanguageServerProtocol; using namespace Utils; +using namespace TextEditor; namespace LanguageClient { @@ -72,7 +73,7 @@ bool applyTextDocumentEdit(const TextDocumentEdit &edit) if (edits.isEmpty()) return true; const DocumentUri &uri = edit.id().uri(); - if (TextEditor::TextDocument* doc = textDocumentForFileName(uri.toFileName())) { + if (TextDocument* doc = TextDocument::textDocumentForFileName(uri.toFileName())) { LanguageClientValue version = edit.id().version(); if (!version.isNull() && version.value(0) < doc->document()->revision()) return false; @@ -84,14 +85,14 @@ bool applyTextEdits(const DocumentUri &uri, const QList &edits) { if (edits.isEmpty()) return true; - TextEditor::RefactoringChanges changes; - TextEditor::RefactoringFilePtr file; + RefactoringChanges changes; + RefactoringFilePtr file; file = changes.file(uri.toFileName().toString()); file->setChangeSet(editsToChangeSet(edits, file->document())); return file->apply(); } -void applyTextEdit(TextEditor::TextDocumentManipulatorInterface &manipulator, const TextEdit &edit) +void applyTextEdit(TextDocumentManipulatorInterface &manipulator, const TextEdit &edit) { using namespace Utils::Text; const Range range = edit.range(); @@ -118,12 +119,6 @@ bool applyWorkspaceEdit(const WorkspaceEdit &edit) return result; } -TextEditor::TextDocument *textDocumentForFileName(const FileName &fileName) -{ - return qobject_cast( - Core::DocumentModel::documentForFilePath(fileName.toString())); -} - QTextCursor endOfLineCursor(const QTextCursor &cursor) { QTextCursor ret = cursor; @@ -135,8 +130,7 @@ void updateCodeActionRefactoringMarker(Client *client, const CodeAction &action, const DocumentUri &uri) { - using namespace TextEditor; - TextDocument* doc = textDocumentForFileName(uri.toFileName()); + TextDocument* doc = TextDocument::textDocumentForFileName(uri.toFileName()); if (!doc) return; BaseTextEditor *editor = BaseTextEditor::textEditorForDocument(doc); diff --git a/src/plugins/languageclient/languageclientutils.h b/src/plugins/languageclient/languageclientutils.h index 2891c2d3037..f07b6e18bfb 100644 --- a/src/plugins/languageclient/languageclientutils.h +++ b/src/plugins/languageclient/languageclientutils.h @@ -45,7 +45,6 @@ bool applyTextEdits(const LanguageServerProtocol::DocumentUri &uri, const QList &edits); void applyTextEdit(TextEditor::TextDocumentManipulatorInterface &manipulator, const LanguageServerProtocol::TextEdit &edit); -TextEditor::TextDocument *textDocumentForFileName(const Utils::FileName &fileName); void updateCodeActionRefactoringMarker(Client *client, const LanguageServerProtocol::CodeAction &action, const LanguageServerProtocol::DocumentUri &uri); diff --git a/src/plugins/texteditor/textdocument.cpp b/src/plugins/texteditor/textdocument.cpp index 60af37cadb2..2bfb51439a1 100644 --- a/src/plugins/texteditor/textdocument.cpp +++ b/src/plugins/texteditor/textdocument.cpp @@ -299,6 +299,11 @@ TextDocument *TextDocument::currentTextDocument() return qobject_cast(EditorManager::currentDocument()); } +TextDocument *TextDocument::textDocumentForFileName(const Utils::FileName &fileName) +{ + return qobject_cast(DocumentModel::documentForFilePath(fileName.toString())); +} + QString TextDocument::plainText() const { return document()->toPlainText(); diff --git a/src/plugins/texteditor/textdocument.h b/src/plugins/texteditor/textdocument.h index 580dc0dfeaf..9ea1751b112 100644 --- a/src/plugins/texteditor/textdocument.h +++ b/src/plugins/texteditor/textdocument.h @@ -70,6 +70,7 @@ public: static QMap openedTextDocumentContents(); static QMap openedTextDocumentEncodings(); static TextDocument *currentTextDocument(); + static TextDocument *textDocumentForFileName(const Utils::FileName &fileName); virtual QString plainText() const; virtual QString textAt(int pos, int length) const; diff --git a/src/plugins/texteditor/textmark.cpp b/src/plugins/texteditor/textmark.cpp index 89951675646..22ddbbec03d 100644 --- a/src/plugins/texteditor/textmark.cpp +++ b/src/plugins/texteditor/textmark.cpp @@ -361,11 +361,8 @@ TextMarkRegistry::TextMarkRegistry(QObject *parent) void TextMarkRegistry::add(TextMark *mark) { instance()->m_marks[mark->fileName()].insert(mark); - auto document = qobject_cast( - DocumentModel::documentForFilePath(mark->fileName().toString())); - if (!document) - return; - document->addMark(mark); + if (TextDocument *document = TextDocument::textDocumentForFileName(mark->fileName())) + document->addMark(mark); } bool TextMarkRegistry::remove(TextMark *mark) From f9b8f1471f499a1cd410288fd24693c3c7f36c3d Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 14 Feb 2019 14:14:57 +0100 Subject: [PATCH 52/55] Squish: Fix expected file content Change-Id: Ie47b63593e5fae203fdf329ede46d425f27cf735 Reviewed-by: Robert Loehning --- tests/system/suite_tools/tst_git_local/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/system/suite_tools/tst_git_local/test.py b/tests/system/suite_tools/tst_git_local/test.py index cd9fed32e18..d5617642f4a 100644 --- a/tests/system/suite_tools/tst_git_local/test.py +++ b/tests/system/suite_tools/tst_git_local/test.py @@ -146,7 +146,7 @@ def verifyClickCommit(): "Verifying whether diff editor contains pointless_header.h file.") test.verify(pointlessHeader not in diffOriginal, "Verifying whether original does not contain pointless_header.h file.") - test.verify("HEADERS += \\\n mainwindow.h \\\n pointless_header.h\n" in diffChanged, + test.verify("HEADERS += \\\n mainwindow.h \\\n pointless_header.h\n" in diffChanged, "Verifying whether diff editor has pointless_header.h listed in pro file.") test.verify("HEADERS += \\\n mainwindow.h\n\n" in diffOriginal and "pointless_header.h" not in diffOriginal, From f3110a4c1c0ce4085f86b6dae227d35f9c4a35c8 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 13 Feb 2019 14:44:43 +0100 Subject: [PATCH 53/55] Squish: Fix tests for Qml locals view Nowadays the locals and expression view displays the QQmlEngine as well, adapt tests accordingly. Change-Id: Ide6d3ae4e6dd8a136e44f196773a88a8aa29c702 Reviewed-by: Robert Loehning --- .../suite_debugger/tst_qml_js_console/test.py | 13 +++++++------ tests/system/suite_debugger/tst_qml_locals/test.py | 11 ++++++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/tests/system/suite_debugger/tst_qml_js_console/test.py b/tests/system/suite_debugger/tst_qml_js_console/test.py index e0f334b1d59..03c250dd6de 100644 --- a/tests/system/suite_debugger/tst_qml_js_console/test.py +++ b/tests/system/suite_debugger/tst_qml_js_console/test.py @@ -140,10 +140,11 @@ def main(): # start debugging clickButton(fancyDebugButton) waitForObject(":Locals and Expressions_Debugger::Internal::WatchTreeView") - rootIndex = getQModelIndexStr("text='Rectangle'", + rootIndex = getQModelIndexStr("text='QQmlEngine'", ":Locals and Expressions_Debugger::Internal::WatchTreeView") - # make sure the items inside the root item are visible - doubleClick(waitForObject(rootIndex)) + # make sure the items inside the QQmlEngine's root are visible + mainRect = getQModelIndexStr("text='Rectangle'", rootIndex) + doubleClick(waitForObject(mainRect)) if not object.exists(":DebugModeWidget_Debugger::Internal::ConsoleView"): invokeMenuItem("Window", "Output Panes", "Debugger Console") progressBarWait() @@ -154,19 +155,19 @@ def main(): ("width=66", "66", "width"), ("anchors.centerIn", ""), ("opacity", "1"), ("opacity = .1875", u"0.\u200b1875", "opacity")] # check red inner Rectangle - runChecks("text='Rectangle' occurrence='2'", rootIndex, checks) + runChecks("text='Rectangle' occurrence='2'", mainRect, checks) checks = [("color", u"#\u200bff0000"), ("width", "100"), ("height", "100"), ("radius = Math.min(width, height) / 2", "50", "radius"), ("parent.objectName= 'mainRect'", "mainRect")] # check green inner Rectangle - runChecks("text='Rectangle'", rootIndex, checks) + runChecks("text='Rectangle'", mainRect, checks) checks = [("color", u"#\u200b000000"), ("font.pointSize=14", "14", "font.pointSize"), ("font.bold", "false"), ("font.weight=Font.Bold", "75", "font.bold", "true"), ("rotation", "0"), ("rotation = 180", "180", "rotation")] # check Text element - runChecks("text='Text'", rootIndex, checks) + runChecks("text='Text'", mainRect, checks) # extended check must be done separately originalVal = useDebuggerConsole("x", None) if originalVal: diff --git a/tests/system/suite_debugger/tst_qml_locals/test.py b/tests/system/suite_debugger/tst_qml_locals/test.py index 696722f3268..0430c306c93 100644 --- a/tests/system/suite_debugger/tst_qml_locals/test.py +++ b/tests/system/suite_debugger/tst_qml_locals/test.py @@ -71,6 +71,10 @@ def main(): earlyExit("Could not find expected Inspector tree inside Locals and Expressions.") return # reduce items to outer Rectangle object + items = items.getChild("QQmlEngine") + if items == None: + earlyExit("Could not find expected QQmlEngine tree inside Locals and Expressions.") + return items = items.getChild("Rectangle") if items == None: earlyExit("Could not find expected Rectangle tree inside Locals and Expressions.") @@ -91,12 +95,13 @@ def main(): invokeMenuItem("File", "Exit") def __unfoldTree__(): - rootIndex = getQModelIndexStr("text='Rectangle'", + rootIndex = getQModelIndexStr("text='QQmlEngine'", ':Locals and Expressions_Debugger::Internal::WatchTreeView') - unfoldQModelIndexIncludingProperties(rootIndex) + mainRect = getQModelIndexStr("text='Rectangle'", rootIndex) + unfoldQModelIndexIncludingProperties(mainRect) subItems = ["text='Rectangle'", "text='Rectangle' occurrence='2'", "text='Text'"] for item in subItems: - unfoldQModelIndexIncludingProperties(getQModelIndexStr(item, rootIndex)) + unfoldQModelIndexIncludingProperties(getQModelIndexStr(item, mainRect)) def unfoldQModelIndexIncludingProperties(indexStr): tv = waitForObject(':Locals and Expressions_Debugger::Internal::WatchTreeView') From c5be15cc0697022ee741e107c827a5210ac39f1c Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 7 Feb 2019 16:08:32 +0100 Subject: [PATCH 54/55] Add changes file for 4.9 Change-Id: I650ff3c8792b4d1ae7e8ac25dad51de238c2169b Reviewed-by: Leena Miettinen --- dist/changes-4.9.0.md | 240 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100644 dist/changes-4.9.0.md diff --git a/dist/changes-4.9.0.md b/dist/changes-4.9.0.md new file mode 100644 index 00000000000..5bc79fca886 --- /dev/null +++ b/dist/changes-4.9.0.md @@ -0,0 +1,240 @@ +Qt Creator version 4.9 contains bug fixes and new features. + +The most important changes are listed in this document. For a complete +list of changes, see the Git log for the Qt Creator sources that +you can check out from the public Git repository. For example: + + git clone git://code.qt.io/qt-creator/qt-creator.git + git log --cherry-pick --pretty=oneline origin/4.8..v4.9.0 + +General + +* Added high-level introduction to Qt Creator's UI for first-time users + (QTCREATORBUG-21585) +* Added option to run external tools in build or run environment of + active project (QTCREATORBUG-18394, QTCREATORBUG-19892) +* Improved selection colors in dark themes (QTCREATORBUG-18888) + +Editing + +* Language Client + * Added support for document outline (QTCREATORBUG-21573) + * Added support for `Find Usages` (QTCREATORBUG-21577) + * Added support for code actions +* Highlighter + * Replaced custom highlighting file parser with `KSyntaxHighlighting` + (QTCREATORBUG-21029) +* Made it possible to filter bookmarks by line and text content in Locator + (QTCREATORBUG-21771) +* Fixed document sort order after rename (QTCREATORBUG-21565) + +Help + +* Improved context help in case of code errors or diagnostics + (QTCREATORBUG-15959, QTCREATORBUG-21686) +* Improved lookup performance for context help + +All Projects + +* Added `Expand All` to context menu (QTCREATORBUG-17243) +* Added `Close All Files in Project` action (QTCREATORBUG-15593) +* Added closing of all files of a project when project is closed + (QTCREATORBUG-15721) +* Added display of command line parameters to `Application Output` + (QTCREATORBUG-20577) +* Fixed that dragging file from `Projects` view to desktop moved the file + (QTCREATORBUG-14494) + +QMake Projects + +* Fixed that adding files did not respect alphabetic sorting and indentation + with tabs (QTCREATORBUG-553, QTCREATORBUG-21807) +* Fixed updating of `LD_LIBRARY_PATH` environment variable (QTCREATORBUG-21475) +* Fixed updating of project tree in case of wildcards in corresponding QMake + variable (QTCREATORBUG-21603) + +CMake Projects + +* Fixed that default build directory names contained spaces (QTCREATORBUG-18442) +* Fixed that build targets were reset on CMake parse error (QTCREATORBUG-21617) +* Fixed scroll behavior when adding configuration item + +Qbs Projects + +* Fixed crash when switching kits (QTCREATORBUG-21544) + +Generic Projects + +* Added deployment via `QtCreatorDeployment.txt` file (QTCREATORBUG-19202) +* Added setting C/C++ flags for the code model via `.cflags` and `.cxxflags` + files (QTCREATORBUG-19668) +* Fixed `Apply Filter` when editing file list (QTCREATORBUG-16237) + +C++ Support + +* Added code snippet for range-based `for` loops +* Added option to synchronize `Include Hierarchy` with current document + (QTCREATORBUG-12022) +* Clang Code Model + * Added buttons for copying and ignoring diagnostics to tooltip + * Fixed issue with high memory consumption (QTCREATORBUG-19543) +* Clang Format + * Added option to format code instead of only indenting code + +QML Support + +* Updated to parser from Qt 5.12, adding support for ECMAScript 7 + (QTCREATORBUG-20341, QTCREATORBUG-21301) +* Improved error handling in Qt Quick Application project template (QTBUG-39469) +* Fixed crash on `Find Usages` + +Python + +* Added project templates for Qt for Python + +Nim Support + +* Added code completion based on `NimSuggest` + +Debugging + +* GDB + * Added support for rvalue references in function arguments +* LLDB + * Fixed `Source Paths Mappings` functionality (QTCREATORBUG-17468) + +Clang Analyzer Tools + +* Made Clazy configuration options more fine grained (QTCREATORBUG-21120) +* Improved Fix-its handling in case of selecting multiple diagnostics and + after editing files +* Added diagnostics from header files (QTCREATORBUG-21452) +* Added sorting to result list (QTCREATORBUG-20660) +* Fixed that files were analyzed that are not part of current build + configuration (QTCREATORBUG-16016) + +Perf Profiler + +* Made Perf profiler integration opensource + +Qt Quick Designer + +* Made QML Live Preview integration opensource + +Version Control Systems + +* Git + * Improved messages when submit editor validation fails and when editor + is closed + * Added `Subversion` > `DCommit` + * `Branches` View + * Added `Push` action + * Added entry for detached `HEAD` (QTCREATORBUG-21311) + * Added tracking of external changes to `HEAD` (QTCREATORBUG-21089) +* Subversion + * Improved handling of commit errors (QTCREATORBUG-15227) +* Perforce + * Disabled by default + * Fixed issue with setting P4 environment variables (QTCREATORBUG-21573) +* Mercurial + * Added side-by-side diff viewer (QTCREATORBUG-21124) + +Test Integration + +* Added `Uncheck All Filters` +* Added grouping results by application (QTCREATORBUG-21740) +* QTest + * Added support for `BXPASS` and `BXFAIL` + * Fixed parsing of `BFAIL` and `BPASS` + +FakeVim + +* Added option for blinking cursor (QTCREATORBUG-21613) +* Added closing completion popups with `Ctrl+[` (QTCREATORBUG-21886) + +Model Editor + +* Added display of base class names + +Serial Terminal + +* Improved error message on connection failure + +Platform Specific + +Windows + +* Added support for MSVC 2019 +* Changed toolchain detection to use `vswhere` by default, which is recommended + by Microsoft + +Linux + +macOS + +* Added support for Touch Bar (QTCREATORBUG-21263) + +Android + +* Removed separate `QmakeAndroidSupport` plugin and merged functionality into + other plugins + +Remote Linux + +* Removed use of Botan, exchanging it by use of separately installed OpenSSH + tools (QTCREATORBUG-15744, QTCREATORBUG-15807, QTCREATORBUG-19306, + QTCREATORBUG-20210) +* Added support for `ssh-askpass` +* Added optional deployment of public key for authentication to device setup + wizard +* Added support for X11 forwarding +* Added `rsync` based deployment method +* Added support for `Run in Terminal` +* Added support for opening a remote terminal from device settings +* Fixed incremental deployment when target directory is changed + (QTCREATORBUG-21225) +* Fixed issue with killing remote process (QTCREATORBUG-19941) + +Credits for these changes go to: +Aaron Barany +Alessandro Portale +Andre Hartmann +André Pönitz +Asit Dhal +Bernhard Beschow +Chris Rizzitello +Christian Kandeler +Christian Stenger +Cristian Adam +Cristian Maureira-Fredes +Daniel Wingerd +David Schulz +Eike Ziller +Filip Bucek +Filippo Cucchetto +Frank Meerkoetter +Friedemann Kleint +Ivan Donchevskii +James McDonnell +Jochen Becher +Kai Köhne +Leena Miettinen +Marco Benelli +Marco Bubke +Michael Kopp +Michael Weghorn +Miklós Márton +Mitch Curtis +Nikolai Kosjar +Oliver Wolff +Orgad Shaneh +Przemyslaw Gorszkowski +Robert Löhning +Thiago Macieira +Thomas Hartmann +Tim Jenssen +Tobias Hunger +Ulf Hermann +Vikas Pachdha +Ville Nummela +Xiaofeng Wang From 603191ba77852b64e5438c339bc39fcdc608cfb8 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Sun, 20 Jan 2019 19:40:01 +0100 Subject: [PATCH 55/55] Application icons refresh: Qt Creator == "QC" This change replaces the existing application icons with the newly designed ones. Task-number: QTBUG-70826 Change-Id: I379ac8b5f64c4394c45c95fc4f8d7feb8bdfac69 Reviewed-by: Eike Ziller --- doc/images/creator-gs-01.png | Bin 5074 -> 4401 bytes src/app/qtcreator.ico | Bin 115160 -> 128904 bytes .../icon_128x128.png | Bin 5928 -> 5926 bytes .../icon_128x128@2x.png | Bin 12709 -> 12879 bytes .../qtcreator-project.iconset/icon_16x16.png | Bin 527 -> 511 bytes .../icon_16x16@2x.png | Bin 1348 -> 1150 bytes .../icon_256x256.png | Bin 12740 -> 12879 bytes .../icon_256x256@2x.png | Bin 29292 -> 30296 bytes .../qtcreator-project.iconset/icon_32x32.png | Bin 1332 -> 1150 bytes .../icon_32x32@2x.png | Bin 2772 -> 2384 bytes .../icon_512x512.png | Bin 29340 -> 30296 bytes .../icon_512x512@2x.png | Bin 67721 -> 68179 bytes .../qtcreator.appiconset/icon_128x128.png | Bin 5256 -> 5303 bytes .../qtcreator.appiconset/icon_128x128@2x.png | Bin 11304 -> 10500 bytes .../qtcreator.appiconset/icon_16x16.png | Bin 487 -> 515 bytes .../qtcreator.appiconset/icon_16x16@2x.png | Bin 1374 -> 790 bytes .../qtcreator.appiconset/icon_256x256.png | Bin 11304 -> 10500 bytes .../qtcreator.appiconset/icon_256x256@2x.png | Bin 26984 -> 25277 bytes .../qtcreator.appiconset/icon_32x32.png | Bin 1374 -> 790 bytes .../qtcreator.appiconset/icon_32x32@2x.png | Bin 2423 -> 2571 bytes .../qtcreator.appiconset/icon_512x512.png | Bin 26984 -> 25277 bytes .../qtcreator.appiconset/icon_512x512@2x.png | Bin 63576 -> 56457 bytes .../images/logo/128/QtProject-qtcreator.png | Bin 3799 -> 5303 bytes .../images/logo/16/QtProject-qtcreator.png | Bin 487 -> 515 bytes .../images/logo/24/QtProject-qtcreator.png | Bin 650 -> 557 bytes .../images/logo/256/QtProject-qtcreator.png | Bin 8195 -> 10500 bytes .../images/logo/32/QtProject-qtcreator.png | Bin 976 -> 790 bytes .../images/logo/48/QtProject-qtcreator.png | Bin 1386 -> 1985 bytes .../images/logo/512/QtProject-qtcreator.png | Bin 18951 -> 25277 bytes .../images/logo/64/QtProject-qtcreator.png | Bin 1873 -> 2571 bytes .../qml/testfiles_quick2/images/qtcreator.ico | Bin 20929 -> 128904 bytes .../qml/testfiles_quick2/images/qtcreator.jpg | Bin 9489 -> 6475 bytes .../qml/testfiles_quick2/images/qtcreator.png | Bin 12498 -> 10500 bytes 33 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/images/creator-gs-01.png b/doc/images/creator-gs-01.png index 1bbf086b4957035991228004d5031988833eaab6..c67a633aa527226c661f5ce4e453804f04c502f8 100644 GIT binary patch literal 4401 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 BLGu6r literal 5074 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 NJYD@<);T3K0RX}?j7$Ik literal 115160 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 A^Z)<= literal 12709 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 Q0|Nttr>mdKI;Vst03fvrUH||9 diff --git a/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_16x16.png b/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_16x16.png index e6d3674071e16aec6f75f7acde26d6bcf44fc1ad..f9ef15182150de9dfaa01f9434a175f33547d785 100644 GIT binary patch delta 486 zcmeBY`OiE-xt{Tur;B5VMQ`t<^V!0I0>|w?mzld|IM`%p&RZ1fViTderRiJ1tCP(g zZY-kwRUcLL7=$h|9u%NO_%Q0E*RIaug*S7qZSKn2Dz!8y(~3JuD7{`#aFK?W>+;J7zyGx| z_^Z!wOhV@P$(|a!{`bH2|F`kvB=jh1yR^jUO>dcV=95F!<)CaS=cPe6^9o`aUYe`E z@?&-Upw#zRM4?ORkO9kq&o*60A7w6>bt_@**J-=I8adu^x?1%4g6X=R_yY@4yU&)yf3weWIs-toz&3+q3CcG4JCX=Sj89YUlj#Jp6XbX0mtsjW;<(Uk|v(FLUcJ zUR^!6^_cQBJN?I&&F5!anX_uu*09~%RzG!fO`kvS`uc}$QQ5y2uHrhw%lfB(Qo|Eb wCP7Q~H!N-qvJUT~%NjXuFx_&vko}9dr|Izw+34JZ3=9kmp00i_>zopr0Ql7EzyJUM delta 502 zcmey*+|M#Wxt@Wg*vT`5gM)*kh9jkefq{Xuz$3Dlfr0lr2s1iq%&uTyV2~_vjVKAu zPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw>;fq}8d)5S5wqPKVAUa#apf#dbh=iQOm ze?TNKlBL>S&f%yMXGCYmuIu6-9*fp6yba1&$+2xwY`vTV_u;I^ht}2Vv^bc2e5S`O z)IWWr!Nu7XJbXMn#c6fv&+NPSrP+V|ytOXpWQ58){i$Blw=Hs7*zmkE*sMdib81jm z)!u(6dkuf=tLOA7WqM%27nQwQU5K;h{{O3dnKKU*%H*t@q9oVvu6WsucgnR{QvYwP zdly(&$>5-UcG=_liKn05lS(pVNWGk8#=#W%ceA4U(>)>cCJmlO|fpKGg09eqKf|qDNdeqaCfBo+&KrOqZD596h~j` z9@s4I6fAqsCs7pqrYFzv(qHE5rN##;cX!-0;5jOB`Ql*%5rx}1S(eG4pUqwKG4J|< zvDolltgGS6+t9yQrd2okKlr3zdvg6e zGU;W>FQ3&e=RX(3PS4uvwJ_kowzoeIxAXJM+E$h1%sjy>9Kf(MW}PbI`OgJ1?M@3F z)F!`_k&viZAGP+Cva+&z)1&}9LtBqU9ap$CTGzdP^0~6>=psWK8=D=;$NS#0Y`GZD zDCnqZpSRj`$2xBdnPVotY4vGo9%_>pE?l_quhJt~`?@_#h1Q01IyhZ6(K)R&`>c{u zNoi>-8#_Dyn>#y;rFEx#P*qTBYztatcj8SN{9=@AcX3^I2K8 zGGv|AP;yb4xLV|+P5-=ka$C#a-(#NlymIm4#rw)kR0HxiS^1rt`|!!q&At&0_2H!( z)4BG1`!st>T5dp7-Q`S-5+_51gIt?8$iZrr%>^7Tm>yUtDxnm^0_^vRvY3Xklk zC@8w_(DwTCkGI5T)5LG=W&(aLC!ZF@>?k;RYgg%O=^qgngBs7L*{A3H^Ij*IVrrt8 z@-pM1K;F%xy4Dune9>0hC!Bs-5W8KtgIy`0UY*gv>L2SuGuPdc>CulgtJdzm;PN;~ z^X$r>#Xb7}+^RLst(*7uPTrRX7JR~GUH(DpJJ#q<@KEVEniQfX%AhOISe4Fv=1Ka5 zJs-~O_1~a*>F~mp%4eotw%J}NeOuVSSmUc<|JLt?(G~~WFCYI=`mvmcC+4i-agCAD0ZWEJT_^V~%|4lpNf*_y>WaEpb)9)>l3-xh(Wc(|E!KI|%n`Pt}&$`9o7uw>fB4 zp$)s*hD%LW6MZThx7W+CDaiE|Z+I^&xA$w}zFEI!9bI+y!O!N^ul8Kpy*hCD&AXR= z>3y(d-27DM_j&mvUv0YlE|#BrcklVly+2!z{hr0SCdbL%=ZX64y8D}dx_(Pu6R{`G z*r0JL=i~Erw{uSIQut8%r+lLt>$OkLpZW!V_>1m{J5-fiTe^?&PqvuJ;r~I6Q-WTp zD(pI!t;@JFySdJ4wnNU(o%1#{{`s`IaX-VsIT?$ZEM&qN7#J8lUHx3vIVCg!03H@3 AFaQ7m delta 1330 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 A^Z)<= literal 12740 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

-HO`}D;d+i@$73oe{S!|Z8d=jc4Dm0qNlO4 z{GY-+li|T-)j9UNWEKW+$n~=~DJ-FGxE4meGu(dnxXn7zhOB2#_gyb2JsfIbpCrGr-}~#2l+R@~n<}jt5`3f& zH(0UEf8e}!J6oK8;{RKWr5yL||4v@?s@&#c+v85NInpr^R|**fgq(wg8diuM`?c|E zg!L|_y1VR-LKm)FX<_9SJMj2p!u@@<6I3`~Ut4>4WAe*?7sYO_b(c?uGc@dzqQx?CBe{f zgGb(K5i@siaiQ;jv6^kKt8yeP_0kF(ITt0t7AHlINhv%2=jF{@&i#oY#%ukhcKyBI_kTRA`rYc=UG>uqRxRsg z|6f}o&-Uxu1;(1yZ`psubLVZXxwS#|s7>XH$h-rmo+PdDnAg2xTIGuj3z=hgb{1c} zaU+A}K|G^zB>Oi(P#wMxC=}&6;yR4KPG*rmvjC=7{_FMlS&gG|J0Mk8nOr%Gp+lwDZd! zJJu_G@ye8)`_{dF@#>Y)uYVUaL>?ActbT7l_xtqOyQS8NGAKFkH){ADEq}!L?)k@U z%ii9Q*u5Y@{C=muNo@1)X!$vxD$gyk`fxYcp2;uunquI`PPFsoU0C98$Gsk~sW zlAZtu%Y_RU8kQ|nYdM^F`tjwLCUKQdMOUoqS{uDxN#I1>$sMb+liZR`q+AUoTJFC; z|LXT-juZvP6$Wlw0{`r*H?O<>L8N=r*KGBON$?wxZ8UMUh+^-|SkabQf@ z&D04?-hAa1b#;u7mk(MgqBN01X(Gqhzp@I9GhAm}7kv}@>%-;E`;R<7|8vXJf5kPv zKUPnB{c*AJ|F}=PDjqma7CH{HY0|9zv{a=Dnw~<7E^1_DX9vc|^LtL}37hHqcCCb* z+_C)n-_bg8dn7;;YziE1_VZ;g-@KXW!)3JnUtX+9iJBtgjHfo2|Jv9|>=*KG?$$k> zpK-4({MUc^K2<-TpHWSE2^(wprm2f1dS)^HdFiwN?&FUO)WVu0blPUkl2Wc*F5&#< z#ft;y=2~wodmE(_JuTAoq|JQ$xqgq|+}s=>!n!cvM8@BluirmQxZ~r&B;F?Y!cT8sVB&9kmLza+TiahC42zO@HlZCuLnVy3!G=c0~?TAqy&&z^ow z%QG#m+jqD8-{+0V$2a8Px68S=NAm31v(vaMU+n68_byMPiz#wiV0?UkfQC!$f6bQ8 zItB(oQ_xxfn+XgdjP7ptkLFj!A9Q~lt$RAWb^61_ywM+P&YyOjTR!hjkFWCUjRsRW zO*T#2w{9KZ)~#D3^|nvmID7x+`TQ~#4fg+kp1-jv)%#v(jg^(vf=sEVg9=I$IhYz5 zQvW_}WLe<#Bk=eB$D3{(-S+vb{lyaAy34=49KHLmuQbe&y_F(Sry=50TWgz@oz2a) zMKtNp%Mz*TZ*LsK!>0?rG?%uozw_XM!m(q=Citj<3XCUzJ}3XX^6R-1Q-CVZD(4>; zXC5#3-L(Jgtva)-o$0&gA1}7me`;FCZ*#+-%1%!-)khaE8r&WO?BQMjfw)WkpN5Q85Qj9w1T9+@{ zwoUB${QA1ECHMO-UJT^nalt(1`F1>+*GhX{_}&_kVq!T$gbyK5+trK%dEq(j6%&x(pBI z6ra=V{wQx>C&SJ!cjTyed{2bVwCz`)zkKn6VM1o=;)@zgjSQ^+yBb&;3Z5`GPj_l) zsIbX3{vp-Okdm;i=3{ z*3VDUJSMeN*zheVIkrAi>f77f?GGO&=G@xC8Mj{iWy!9D#aByZ)6dT{wcEVUUiF_y zJE%VRZ{sM?Gdo0pMR|AbwoQ2^n^huXV`UpIN$%GjO>CNcBo}+UJ%0zZ<}Ao%UTehV6#0Do4{(nXfmS{HJd)*?OR3&Gb`0+}+(b zR)5bkF*kpFr}(_7(%-P(vmZ`wv9h*iO!@Tx=e7H}$KIEDFsL;ua7<9)To}L+|MsU6 z8ylN}nHigFV2|o5?T-g1pE31Un=Ife_=w3c-S1yW&;IS(#q;-kWSgcR-#2ZVSaS8o zFJHbm1d6B#b*{NK|Lb4Px7!Om7`j@v{+px%njD(zr!2ssFxAU3G<3=3mtCg+O005i zGMXjz^cjK;{{=7i1I>g~-2Z)V`sB;;9;?p>go^InyZ2bxwrloZ|EjZdI!ye)B*4S= z@MDDl2g?EtE)(C?5s$Bz%C1_aG|@vs>DWKBZRb;Z|DTwsY*G8mL~q}Zq#rf=_UxZH zSz*JJ`z}h2yLMT%98OgJ*dF!&ks_l8Q(5pPh6DwH292%{zyDq^S(|jXe&1JdS3zZE zyZs-=P8TNexC+HRaryV=)Ty_%w{L!xHvNb5+WLnR7<`zn zovN^r>sZuLVimh_oxQ=u@BT}J0z_Dw6dW#_EZ#b==c9I4)86Xuhu(h|pK^Krdg%q3 zvo>CfH=5}Z92|UZiG0@I?sk?19uZe&Z8iJT8@rNeg5Ppp{x(jjhB=AnoPNLRbYTJ& zA>Q8H&(6+HpCW$w)$H$YU%hg&n(JmX)5Su@O-Ial*`J`-_LUwCYK--hXXfwl5@A%! z%IWC+%lqeYG51%NU%!8Ud^S5j>E)%RE7q?s_j#uoBGA^>W?*KPb|hlWuYV~&CO5Mr za7ElLnOdT3pmIFrmL&Nm1X$E=iW&URXc6;>z7f#p0|on zMox~4iPTb7doLDF2hrrIEr)k8pIO0WSQmT!niH%mp;tf-0_Qr>X?)mv_Hb<*d#HJKa z$JO6woKFqEcKddBh*oQe7Hj|U=3l?6l06HhzG=&F=<2)_Z#LR5bx^?GH{4m!4;(5%z)Ptcz=ZAa7%2l&M%RW8vEGaKf zzPTyYZA1R5wRRICZ>E=&i0oP?eX|2JGrE4gyN=jtu3v$t($)TDFX>p>);e;MM1i zxJ6wJ7yaUK4Fr`afg%?#Tu6|pQxP(3`>l2N$6Y>72F8S>w8ht7x88q${KJP04_{@^ zYP)#x;+lWv_MiLY4<+kQ3(S}*Vq#{-7CG(V*DAs8qXNBdy)5$AUVZMgOZoG(nPtJL zhnH(_TCpz-;D}o<-sy6vW7lTQ^OGF|MU;0ee{I!tP~p|<*SyXAtxg=RPR9)9|6FOe zW}eGSMMi~9QKjDs&i?vU_2v8bOVeBbwg0|2GdV~cJJvI;lQH^7NNDKdtIwy~8?*oTv96^u z;^M2L@7>$%jVCY&FsSkL?|k6HQ?Yn^(eJf34BCnhrUw`w7yR*B_%b&qL*jvIrZr!m zg>w`c)%~m3oEXi@bMnJoMoxx_toak3In1dn3Q#=${I|~;9Tf%_zO>}6Q3@%Wo-5yB zuGZPtt z>*n(Lgs|1t)>;%lzWL1rMDn_LgLaGJT0J68!%y|9_kHyB&uM=VzF7 z9XsY0Q}M8M$Gcsx3$BKSr`j&>FT5UG{_wc{zm0DzYwYB+va>fGZ!0J;q=6fmzleaQ)fY=C5;eb1k3mdb{m*msP)t=Pzb{n+eYASQnkQlhu2gj-%CF zx9DhTx%xjJWgh-`$Y0;lU;pQ^<#D^8PbU93X1;IY=D)92uRr$O?z^Q<>@Jby|$eMZ|tkJzE|~H_s8FVP5;XlSuM~zU=bGE&@NwRk-nc@zQ!PZ z|5WYpw71DuSu37S4d3*w^7C2q;%}LmnJ0J7(>eX?(b4YWZ+kzVv)29J7rfl><>%+; z&)@w2`~LrbB6V|5weDhY@%;HF-F~)kM0RfO*4l`6Sx{yB=wrn-vp|vJZ`J>PKEHVD z)~v0$PftyqCdbGyr}&)Zk9Xz!XK(%+|L(=_T0AF`TK4buE@W=EjJ@8>(s4p=d9l^*t>V{3M-+ftt<-GBc)$88g-hTM?SEoRco}QkRsg*Wz zck2KDy|FDf`ds1Oy?ZThM@2<_ipxJY$I|k4RaMm|Id>m<6$ZWMOQ**j^48z`WXJi+ z=X2X-t;?R+UjOi6!_#l3+1DOCxBqW>ZEbXVh=3(3Ezp{l)_o|_SV#`x&QzDt$fVz`}_OzH@B6%ywvpCJA{1-yMf=rN`}@6 z`uqtcB_aD?Eb8XkbdQlSV^|)%?tnBQ~+xC9Dm0j^><8htybA8l49@VciO#i*y{%__i zi6=%L469~*eSQ6Ln{?iZTh}gMo;>+TaCCI{?svPipZ_>t^US#7K_h$5iGAx{-`Jea zzb)@>mu>a8l(*9T#|wYI-9G(?zQQstPKT+*_iMjDb@{UY@7w(3gan1`+jqZ;KKrm*=D(i-re23`P=8Jy%mo-)peRXkDPI03U~@yO9NW& zyJ_3k@82I=-~Z`%&CF5Y!BuK6BwhfZwt?l@c2Qs;a7rKK*%qW@dB3 zgt&bw&v%QDm;X~||LCK|wRN%GrrFm54&=+Y z1`65DfA7q2jzNNP0>cER1q>eNQ|{jRAg{!zkY<`E#_);>Z;{_4&AMR6R9((RMFn^F zzI9_{i230xctoV|sqI@a#s|-Pvl%WmU9AdY32f}Se_G1O)Bew1yT>~+T@_?!%6qUH z%(4CT%W~Fo49lO)Q{8Ix)`4v`2N3=IecQ~&%KZJjp`1)HFz9msK~^n z=Hk%W{fHq?fZ<#7(usz7Q*Wk9|^mi|6P_IxPLe^g}W)cN4{XX zW95$W%?D@S=R9=wh1mONEDGTr4bi+^lj=KeHsyVusld^MffmX9sju0e6q#gqU O1B0ilpUXO@geCy+{rFq} diff --git a/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_256x256@2x.png b/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_256x256@2x.png index 218534a85e75c1f19a00c2a074a5a4cef6073581..26f9765d1f261c940dc351220184e7d1a601202c 100644 GIT binary patch literal 30296 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 r*+7VZj@e@Z<#_N39gP2 zNHH)dFnGE+hE&XXv$t}FY^+J;PA61m+89?FPe>6`urYRaQZPtPaf+C<;pj05M#kn`&l8(cqbH@FjEY)& zZ~N}>tH0e}$IPw%6>@i1>FafW|JwN5e-FEAx%}MTpzrU0N1xMVUNTGK>pTX<(gW+h zvv4RbUD)`k?e_O0? z#$Wu_@3PyK>~zA&&+Ycv1Go9!?&)B0>R>hrIl4pgPtg0Th8&7jdpa1d{+M1>TJ6tq zQDEhF7AX$(#rl2D42Q1AAKiGX?bv*Q{2Ll(m!=in3%j*r@AUY&?_4mrYfL-ZFq`2)xwnU*)#BXbn?G(doO%8JseJIRJni?TN{oEZuY7M=QVLccplWM|f%){W=A*YAA2e%YtEKPQwJHN@BoD)|FA z1eh8$86?#o>+kt*#$X%1F6L+8-82u6-i^7^+uojytIAD}oR%3GcFyE%j@o3;r=Ncw z^-(jnx3{<7zGH`lskL?W+gn?+!_UpJEPnY|{{Ih422Y*thA&^Q>x6YNDYDI3#N1Y* z!(!FS5P9`NaIBl@uT3BM6D^sotnq;{@8ubfD_MiZ?`2% zoOu5E=Fy`^H{QH?vwQRA&Ck=*()4Pc8PETD(0u>TvxN+r43aO^+mj3*OwnVI5L94c zU}Xr1d9u9f-=Y`#d<*ywTzGnVdjFNgzLqOnt1)LyRH6y{`SKWQBhK}=gq5A zoaqy1Rru)0_xu0rE2M-vGA{W3uk|5+{Qrrp2h3la z_&a5Fg)=^IS2@9U|Llv`x7wT(CE6N&)Qo4JOwl`c_UzpMUzXedJ?dZkDtI}=nMBJ} zg+)vvOf41;i~+ZPbpP2ez`%bkb6(385&eh%y?XXn@t5kvra0uvce)7hwI|Mcwlze{ z^xFyL{y(p)?|q(E&srdQdLrZcmy8*4oSBƘ_uoA~AJkevp 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 me|*o)VC$^N&Oj_^KJuUWTU;go*H+}eA diff --git a/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_32x32.png b/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_32x32.png index 9cac26d704236908e99f3ddd2b7b809da8e2a218..d2d1be1b165d37bebea73c6f0b79eaf4486c74a5 100644 GIT binary patch delta 1130 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 diff --git a/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_32x32@2x.png b/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_32x32@2x.png index b5f4bc827ffe1fd336889fbeb235b8312a48c729..fd3ed0aa9d1b3a5032c46ad5a4bc372564c24ea8 100644 GIT binary patch delta 2374 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

8PPhT@egSB^Y*pzyGu;?jTne?O9s-?6r~KAE;^ ztBA6)vQG52oO|DQONE%Q-LP$1xnZ^}L*4%Rpz`up@4Xhwh_86DdiB&Mjjq&_w$o!z zH?YOJa!q7ANzy&KNSbT9q?{A0fO{3Qjp50+>#FfcH9y85}Sb4q9e03lO5 AW&i*H diff --git a/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_512x512.png b/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_512x512.png index a9ef0f4a747da35cfe3add4d322982f05a148b21..26f9765d1f261c940dc351220184e7d1a601202c 100644 GIT binary patch literal 30296 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 r*+7VZj@e@Z<#_N39gP2 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 z zu;AflcO}6mpDSAqC(c+FX>qOA{S~MYw6FH}y{{+z>n_z@o_+62Tdz@@^K3t1KP!Bf41j{GL4j&lBbZ zl?CATwTZ}7k(Ws1@*9JIn+eA%O{OE&>Vg7%?cCMu7M%<)=ZP@tvVr0}^F#23=j^8M*Ug*E zn=TOI%yL3*Pqd1H2v??S!z{N292vHtG^8yxcVlVv@AcO4y_F$aOjkZn?O;%~N_caB z|9qtdte|XR!uwR}p2FcTyH+?{2#IFdv6MMPaKSzIK8_pPd<8EsfpYUKuJy;RpPg~) zed+FxJFoIgF=n?931(T5SliVwm3KRn-sG%*kA$86D06+g(*DIlvhHTVDaHD$E4tn` zG)lW&&76I2fqnPojqg66D4w+4h%L`%hlkz!Ex8+BDBpX%FZg1-5aWYw2hXxAGqg;Y z=J4Gj-dy=@*o)^Xd`EUFa5L;ZbN=lOO(BJD#+$RJ@2!nhao8e0KQNp}<2svx(1kr9 z=W%>t3*%dP`h@h$D^-4e$9J7*^92tJ#u#hvov(7pFPgbM2 z;DW0EkM@QOD%^VQ(r|l|gR4p)i-{ySn=X=h{5nl%Z{PCWdAH4yHqJOM8SZE5(lCc_ zLa>yT-~w%?E1b+R;*9)uKNMUYgdG?iI5MT?aQ)g7bn@HYO@do=xKE~B`W`X$-u{rd zdnb$8r{#;ObTe35DQwsM`o!VqJ%*mW)!&0yOc+6yO*^1l67MH}wfWk_vuTB2UxmtV zUL&*fMqoIzg7lLDiyjY^CJ&XS43n-5lPC+Z^Gp{y87#FFwikLap7_3;BSS9i*L0o# z&$;94T^U@~?|&5W%l|fG0>gn5M~)m(e`OTx6eXbEf9GtlI9ovYSN&;gIzK;(m?M1p zX3p)l%vr6Umt~3_+pNRAEK_XV>i4>*o$ThfXU;nD{B!Ha;+-)IbM5Bq?{TTV=(p!d zwVDto4?lml{r?Xi3MLxLNk}+Y$hbvEOYhpfn~~w}-Mg(9_KF{QF7|z*{qh;xcjV3T z*8Xv%=IQ(3f9IaOkC|i4bGYtNr~1ABZRUF(Zf01==)rV?=|pm7=7Q3{%WMCtUX#9c z%0Gy82S0=2lFSdA%=S$(oO?m^-^u4s3`-Wd{JFAM=k%dRkCgo8T5VmU%V6{O%jH|2 zcRjv$FK$ibX13Mg>)qVl+1c3H1-p-4xPQNY+cvW;+qY*=_i|GbY&rZ;iCMpU4yc-+ z&rq4qkQv{wD5N262xe%x((4t>kQIG%wb=2Z z9Z`It-39w*u>~CdSF|Ip;z*H~!?!6>RN<%~x@+g7}Y>NeZ*iDosAAT6k39PUnv_`2_C7wdMD){N?JZzAW|R&Og~!*Yek zjX{D@VM$)aN1xK?rIv+TKlty{6K7oYvwZ6gU)?K{>sMW5eE4^DYyBhD`O}XV%<6w< z{AwTn@)zyv_FmqxYJ$d9a}ln@k`j^GX1Rxs^-5p7dNnj6Q(+OalIsM&<=u;9PNi>= zuY59bf7R>g`@i}b(gNaC8kiIuR_$L{nw-2Kf~8}+4%?v!A;z~1yZ%4m|My_}E8|e7 zj-KEbw_om=6E5zyK1AZ~S%cR{TJ`QeNPAOiS^V+d%4rU3tpk4VxT;`r*ZI18d2LON z%yPfEhm`wmnu3@6DNgk|XySY1aUp~EZ}uZehDRQMJXCh_XHA^!{fPZ_f6u?UxjFrj zcKpv%kvfufH!mQGwBk(Sgyy#&Y8)OD_p5y(GPBpOxc=9XmRTpPzepV`Fl~r<3XvPd^ptbP?!2%GKJkF@on} zhDckY$TZ*pTl?Z5BIa^ks%LjXengTSRJJ1Td@9eVz$ zdi#W3vl%Av?y=Al6)fO7Y+b8Yc&>YToR>jI&7M2QGK=MxZ+vQa0ZI-v|gAyX8HG3h0`x{__f8Qe+hjb=fZI1-zS+Tw^-&*UuS$~QLi6M#m!aW zcF$98T>bp2^lrtj^Pr+s#=4Bh*w{EDKi@q%I@*z=qn0h_Hh3WN)8*y<_1||spEvt( zuakot)2cIG|396IV>Pg}{Motd%#;aYM^9RpTd)6ojWw^ba`~M-QGfN%S-xd`@FnQ_ z|JU1CrX3HlZ}tOj`}C$w_MeUIKYzM;^QJaK8sieiCjmN4PfQqH9asyL6`VZ07fTub zj7WcQ#4@%c+ID^3rNwP$bx&*U*`B+5L;t?2^+9f7GR)^*f4^%}XD+Dl?44Nah2F;^ zmH~_P7p?shIluN>E8$W>pmR4c=2L=yR0=mOZn`e8d52t}LC<+xu?TWW$i|Cr2#5?v4HzEAgwqBF5m~BSq_7zgOO7IKAR4 znxM98Eb*K8g zA7}Q}{;p$<*d{okr{-QkhI32;SA!;l(JNx{! z_5aR*{qF=1?)tq;v0Grf6+^6V&?cQT zXV2Q!Jvh+#pCLi&0MoQfjB0nXnHahl&Koc}aAa!D;h9i#S98t!-FnqGH(g&lFL-Z3 ztn1znzgibg-dk_jC%~)3q;RYH=bpU8@=}?r52hXRR#_C{<+RtFA^fANyHKCJec#8A zg?Eb2+dk54-ChS8M!5U?-R}4G584i%PujV0dN7lcl!M>{Mm^>yMh;F=Li*k;d$$yR zo>h9?yY=eT-_uTQf9=v@u|7IWecJ6#+i$Mcg>Sa`#oNB$GR0pmx;)lg{jTZPf1jQQ z+0Vaivh+AZFYdNpr5qn%6{8@uh;F~Q2V<~qAhX%*R}bzZ@=&RzBfH^kCB6o zjmJH6hwWAk77pNIGj`=R28Mu?lBdZR!_IwO-Q*C?ukdZ_^yy5yIvGki7ic+@%y;J9 z`#MPaRr;4tbE^(|8mw?~6qmiYRIX%^ckXIo#_e~@q|4sl<2`J!X?NM%sz|%}^2`SP zOKq7_1Qo6`RrCt2sfb{9;8>}hH}z-T@e8uAKYh>gh=20&YT2h5uO>N6tQP-S!_exR z_r&msHwV+sumdL-RB7%Iws+mzcur%ttH_b`u>Jm}e7k|a*&+!K|LI@Kq5s2EsT{kr}APVsr?`@ipfKk}|&*Pi{m z)EO2t@PV4)QF7`B7p#7Ey_5NFknP6SwY&cK%f_!Qo36~T^wX~_sRQ0GVz+#c_RzS$ zeM*9cs!fQa3OCc&;*~GiOji~B_>fpqR`zJI{NESq+w<@L3%av{@q(?iLm$h9AJ!l* zthDw^d{Oj@IVAsnrp?XS*SCiAZu@X4)mgtMNJAt_jj1G);bK^y)QKjC^o+d{@!QR^ zP94hC*ZrGP|pu{q7=lq-xCHFSpIsbBR zbjX3zmS1N@FWoOS?|Sd@+xH?&e>ny0bmh2mJ}Xje(n%G+xmK;wc{`t)>Q@}(w)=he zeVuu;v}>ae>y(pT>oc^gB_CY5as|>1NJTc_l_czy$`EGg9!n@!;Z-A`x_t+EnufE-Wzpt;a z@A>z4cYkLysBPR5TEKVIpHF0w!*nHu1eOMYOG`pF)dc9iE8eA6{hi5ji{5gkC&>vb z-5m6OO)kD~#r*c@3+veF$3s?L*>JkJY*zE_J6DQ}WLxgI+m=bczL`G%=-l#qJ71pv z_vZY&e~ayZEzVCo`C)Z6W6K5=rj+yZ0~t6WEkVT(Li4W8)lYS}TDG)|B_#fpnqv~r z_7@G8Eq0lH*mZtEo!$D@hEL~%m^{V!teExtADfsj|DHGhxaRZsPku6=KFY|DbAO*K zGc)t!^82;lUq5^Pe0`E8*My^=Vwoga3mOC&oIIQ#TwkoeJ$~iWhFxY2`#SvX^zSii zeERk@wP4fobye^34lTX1$$jhkb$h25&N)`HE6ywD<*gM{|5-UI>=zGY{`zaCar%a` zx3@yySKt2~_hsAmy>CxP+>$lump)%2cr31$X~Jtznw~W+XzKqw(f_-?{$slOTlD?a zkcONePro1fa9T0{>V%VVYiD0yea`cF=<9FR0r!6&%|7C|r@ZTgMdgoIaSVBHpMGyk zOeiWc+LC{N-*tXo-rDq>939SDEr%LTCzb%77|?vmrJ#yP!39-6cJE?d}vl&=k9kWQX`&5%Uho!;dxyYh$+r0IH!m-h@XPdf$MfbnEq5I|i6txMG($d_$ zeSLW~$F1*e{Ji&l?R!(5r3@}24slW$UHuGF|G`tBZO6}MRPtt5cQRFYvY(LKtHV^1 zn00qu!=~@=r!Y-;zj_h(Zfn`yz2ScG%Pn6hi8N6XQ}^GwpF3GTR)pa~_^0mIn-;Q9>zVWB z?&<7XPi6nI} zKOg^nio?b5iq8%kFA811y6@A*H)~&UF_hlhZ(}|;r;;R$?j&9IX)>?_%y>+4Tj$RETA^g!WAaG0p}$A9+sF2E%-Mj z(6u2^;`E`LtJ>Fp&Y9aYKd)}r=U30e>R;K^t3O=Q_xfAxt9{OMcNEUv9c3SQ>Ua3_ zX@1KOzrMcyew*rSF}ID+*H;H}G%z&?TymKb%@g6L+i)j5R&qhu@6(ob45vT+v3egr zclnO_=Wd)lc1hEAL0y>omCD_<@vpu=GubyeU}Ec}%g;mY7r)#5`rOIn6-h~niHar$ z1{*lNrMGwX-ko!a0W^%6Ds*I5lv9WG)h?zL_x1$yMdhjY?8^wEsyxe{1c9vza^R>sc+}p88wV*>8Syd$fy# z>5-+sR==Iov#08;r@_fXK5?Q7_w8i(${!q?_U_P+(}4_&z{XjYoMyb5&9LQI%z`e4 zhqb5NJg&R#UDo!l^!O{=)22W2l$Osie6lgb@R6#lLcy)00oz3`=(;X&3!C$<_HVWS zf(V8aZSyl3ctJxoZAbE@7EHMq-oMw4>4{g_@?DHqFNeR^yk*_VpuRZz)P(85!Vj+P z7s<&)Zdj=decVkA-{U zKZ437sc8ybj86-_T2Fab&Mx|KKQrAvl!M{udHw?K_0?ZDu)bR6{Hk_uO}XDio}Y8_ zeAEq<>*Zg`l>F9z@oc5A->cF}nU_1Re6m*pr*E%49nAU@nU;Up67@iR-OE=@F4oJF z>`RLkum0H0*%)+h?;h6m?>_GQK{j1kkb1=;5-8FmRWl5*y zf3{cXKmS@f|Dx{qIDao!^%70yjdM5M^80@G#XH730zz58U%xLEWYA+S0q1C;icTR8 zuTF+io7lwp>#X9$7?;|Vo33APJR|RrOL%gCw^!)9-B-;mYR#ES%iZQy1pl7)Q8s`D zQp1?AOyy$uqU2z=Ui!QzM@LhIs9e4eNLnR9GSd5Xia%zJ*V^-Npq9RJqr zVwds!TblhZ^NT4csm+n*A9{brSj7cLscwV@7*o>=r?aibVRhw>v>8q%>1{{*%5E}z&K~! z+}TpR7w=xy4PDT^Z%6O)-}k1RcR0VF2Q*IW+kQP@|Mgi62WBTuU%$KZpC8+qOlA4y zmD5&r=pS#W_LTi0c|Kd#X=RAV%AKcNXU4sA_W}>sdo>9#7D;bkWV&FBz=ZQBEv^c@ zICkl4q4e#Sbx)V@mB?-5TfbG*@9o|*CpGV^|LwE&-tz^b;HpITssLld_P4oD_Z3-x zoiq7h`R5(lC)20T>YrZc7@!rjuulKgDh~a}>=VuzY-lQHUc#WzVq)sp#c-ffzgpD( zBGcVDceMXo{Z3!{)AnVr zMDg7jOZTL#f4rjjqjjG+WKUQVy4J}C9k zZ>{=N5f^4?ad$S;0xM8tMs*c^{u_5(GsoS@1@2fH$uj{xt|33Ks zdCIHzZ2#Ydv4fI|_ha=l@>i;U22~g?TYBxn^;;IdcFv#mon6YfYvU!*6vY;ssUm+_ zOY^6C*_6fJ_iF8qFFCDTY9Y#N^>(F0V?Zq^(P+1Mb^Tj4^KqH;^q_#%k6fkKyLNrr zS){R5bkn;XSN85$9RC+&)EW&f-CwJ>roTFRVA^iw1s38d4;KqxUFVyy1Qh5gt_SVK zT$Ww>&%bq*=nAo|9?}&zSugtUFS49j$IhdKLcLTRc5oI-Bik7H7P`mDM*Uu<)}w%rrTz|I*8SozAvg>1nB= ze?@XRE(WgsFa7G%z5etn-3VYY8t3J9XE^;3>;M(uL#Bw2nf^Kux zAMl92yWaG}hYm6A+w#G*M*B;%)%i&ir2nk_D$ddB)ZwCZ+NI&wJ?*PK3M-OdPgCCI zc<^on$SVg<{zx~H)X~#>#9bVJuzZpI%FjBSnrf3zDopfH5aAMC`#68uECxw?f0ii= z9aiXyFf4glX!P%8iPY!MpMN|$wEtnin~5Nso-VnZ`Q&q@i_%0T#tS{i?rZ1G-+0Mg zWAdj33<|!zS$}*l$E5w)FKr+5JW^Pdml?y(quWibl)%ySNF5V`oL{SIJQqHd?hk971@Ut>x zYGwTK)Ltl6FUXk@mK=6&&&!S1<+&IxnOyiWIm}t&|AHWfvn{hDA~Ns0?ge>(vDZE` zG~>;*%WDKDq&2T*@Hp)J*gr}%?9b#XCq@S;DXDrVj+J~O3`-IhepGLn@XC?VK}rZL zs3*d(fGF)CDk1*yZrp zpF{C$>uHA5EvJjL+~Z!U_dQ)&XYwy)>4DUSCG!lJ9J0E8-6_6o(rxpq@)xW+JH)&jA=Pe1>3I`^NuI6kuQSiOZ^ z2XC%&gmiRlMXCF)3u0Z$SuPjk{1kc&K5grqGS%tYDaGV;!`br>SClb@Z=Sqk*4!gI zzqrPni&^>oxMGWmq6ov1v=jICXU_6ao2^SPOH4m*_Qh=%vvjqZ zefx4T|A#A&rWaPcH$55<4I zKgj+2-7$}v4O!n`_Le+eH;;M8>gNpijB4!l($_t>uvPxy!k6zK=KONH`p%mpGf#uT z!*@dO{@mLqo)(=*G1C2M|KZsY-yd5KhCiOSZ+F6iZ>M*(J#MZ@_;3}BbN+e$`TO+z z!zYhc&N|;LaOuXD2lL}Etytmxzi4NS_g{XQuC)iP&G+zbFTWr4ex=Bcwb}f6xA(Ez z&#dK<-|;~(=B(efR5||pzs~RbwfDux>nt|HP8|)a89YKK9{$h3wfi5Z-~}!TgAZMe z;*S?w-@hJkEdJTKdAC25Ti@>w=h?GEFOYM;$>kW%OtYvH|CM_Cw3u{Guln4hr7qX? zc>ldGa(Av4FSr-1=~=x)_WjKdd~e=M9gUy!SD>hD-MwHf&l4O6x16o=Z=Nu%MUWw= zw8XVRN%X>*l2+@F_IdyGeG~trzI(e{y1w$W{9@%haqm}7X%S>_TE))Fu#($}#Y8*y zp(W+y*Xr+abpeBdsbeqGiRZI=CkP&r z&#h87+qQP~_Ykcl_v2xI9xnU8eBs`l=K4h(E2aLtRVsB9V>)~6w)?#f>nf?uH`d3* zU8ok1+y5=}>%2DQg=}K#Ehg3?3`?GwtbWKo&FT62*w0x&*fF5p}#7sKk%;l9XChD z<}7KsWhf(m#G^(4l+^04>q_utlppL6JhZpFz})gQmEY}b}j&v4R}TT=3CZ^pIzf|p{pe9ISC zWV|T)?#TKzKg&gX6AvFVU&i;aSN)&zz50Lo+I1P{XI`M@NjYGi)eUC987n^seIeg!P-T(E!>{mE&GX%8Q6o{u}VEDlK<%LKVSXcy0ZQC zzSZ+mqkkOxq8MMxU-q86%&2tHz5i@2CPpF*EfyQLXPYl_+w!JvTJFQ!m+!AW)N|_j z?BMnq$%6-P%sQ}5YMuJD+^f}GEheCLo5hCx#aF`jFQ0TiNvmALgVJli z-o3ul`o_sCjNBkI9T^=um~UHe`|;}gi8qfK&o42mv-;k$zApN9c3X~Osyfqj& zE*eP0zg~U6wIrFV;k333!;Ed6OQvecY-Vc^NC!zjFlQ>TELMFmljX4L{LfN7yX*P& ztNxhIJNEJSnTBxL+R5MkH0?a`$4*hyiP52>?drzReZPF4En}YNY4GFjjEvGP_77%G zIlgCS!1dq4mriZqm>|<>Dmgu>+FY&926gt&*XA@r)Nl-*Hu_wLq5PwyrB!zP|4A z&Y2DALNb!t%}Zu#-3?f%{pkH}g%%S#5r!6x68Arqd%1aE{pA*0`|0_0(RU4uVT*(> zb%7$~!dqje30pTao>z%53j6t)TRL$|yKv|XUd1K%z|!xMxf2*p{4&_E^~n1_e{wo~ zI5KNA7&rnur2dH=|M77{c4s`Jz{j7p0!~uWTntVkixlTGEw~uWVE0_y@DStq7J*9~ zAafpEf1LYAq+x%%h#`}MM>fdsP4UgwUuZJy|Gbz%VTmayniSs{KbgDzGsrD})&(VS zHB7kH!qgzZx}Sdnr*!Y%*H7Ya%zzka@-1G+=~Y9#zg^Z5rg@$lj@0Dj^O)4-GAkaD z2l@EN*NSAtdbVw0N1O}e{}yfA|H#qFBl+;Fc}9jjdEKwrL4~f{kuQ>r9qm!ZOcSy{ z+-gfZ_VW9pi}mgv*#|fn6uI^(GxW}5`XIUR!|s|10+()pJTYOL(Y{}%H7p07|BGRsJpQV%5i~b8{=wT3mge#~leD(bL;dP>QN+Ool*FQ+h2s-^asN~=z^6V^Y z{NF02yC8q=Iux7wedn~t@kKLrcE{h~Sgd^sluG>8pMPCh2 zMy>W@T>M`RhE?9C-xvkl?i=(pacszy{#mmx;g7nS+J?-_%i8|Qs$6XsWNk^6i#KRBrtWLs~p^1fel{o}bR)KoM|;`Vd=d|qU^BuF!6cNuSTazTt&i{-%>35}8{J;jmwwIqD`mF7kd_8}b+NPU2K`TYl($fv??D~9`{g^4%>B4j| zV+vD)NP<#_0Iylj9N+j4SIfhXe*=}F*0=J%U48G=@UVWre?*VO!voJQys-%V@w~`V zWwPg)vu7V(TI#){;Nc;o$NUU$-@ff|QED~Z!2()T`{=;SCz0`gzm>h?DpL~OwEgt` znkEqj$@%^fJnIV>721D1O-}r?`KFGTn3#dBZSUsv^N((A&5k;6C)ckm)oXTCPG(72 z0E57z1D!|HYrfvTUg~|ocx8|6+}*WbtIdAaBouo@XU6}%<=lDT*@ZJZD*sN`k3Y7v z`1u6CsCdfP6ZLrM$Z-}#dRzSpc<|9<}bSwdd^c=37L z_LVDFP73|=D6@WJ1kc8ZoS7U6ETBa4=um%p{j1gYJ!%B>->l6SdGPLD^Nk0^%nRht z+ey8M`C}JWk=&fOMnq-RaecWvlTSaL;J19^jvWyipLW;$H2U;&&+@{}H+6(MSss0~ zP@3qmkgY+GK`DWkK~e8d$~VI$Yk6*+y2H=FP?!9p?oY`m@>%L#h z*7ES3m*p(6tDC>p;MPXv3za5PtB&h`d%se(zBuuz&Bnvj_c7DDOA?vU*>+s!hpTcaK>s z9iA5-UCwahUZJtuqvpnQOD6`%-%-wgR{Zl*>Kw~rw#%0?9?6>^l#fyO)|1bYm zxB9WaVS-T2^IQD2-)o;9sIB;WE1cD0_N6^JSGzx~Zr=Z7_y7HVb;<{B>U^wuHD`St z8_%BV!`7$nP23o{L5F*1%(@3}yHEXlKEGa0SXj8#_D`ypWWni8pariF|7Vy)bugT` zXRplAqRHUo^M{$KM|d*9)oY&?51UxXXn+9@n= z@n10JOblOH6GNDL_`~vR|JCZYeedf!_VddPai&>;hDnhRH=Hl{x9f*NUGa~`O}}e@ zTvAW2GS`Bw1(5y~$#gPh(}P~?)}PJ`1=`x$3`|T~jML906cq_A4B)7(t(`G$YW?N>aUx_U_%Qz~J(A|DJ#I@7XhIFq~@JZ}D%!;l8s!*k7y;=6~4hyuYchVE22& zyth(E@4x-Uu+QwPz`xW-(iV@6b@YsdMOAq-mW zFZc7$kN-#Yzuaw}EhNn(nVU=6_KDYGLdpsni#R|tG@I9BcMs)QxAR|y8PqD z((?~;mA4uvU47#8%jn;iH|(qSSvh`qx;p;w>hS+bXBRPi?P6GS>U&c7tF$+sdG529 z#vi(I@nU1?>uZT$UtM)|ySXjb=Kr716>l~k7wA8}vGQ};n>#y&FJ^2h`1|VWYS-kY zmovY7{i=KWNBil29nvBUEmKZDKeoT+;Eya&;`uty%Qfb#-y{3E|K3L!h-a6bpEC7W z{M_I7e|(<(zc_S}hL-HYTdoXB9LdF1%->YDCnu-f*cj{Y&wp)gbo;-5PnAw=(g7_b zbnlZnILkD9L*`|*oV&ZWY8V+TNpSE?{*ZyOcINkI3I$M13`2F3`#}7|C*C%R~ z^X}jO@&01tHRc_T7vh#mHH7|*%kjS361!6Oh3Q=RNS$eK*2eA@+c@L1(b=O%U2FdT zzJI)xTYN+6X|XpqHZo^lUl)5#Z~AG`T&9#+YKI;g+`4_6duM&s|0CKW45^3WmFic_ z^U$tPHOr~_^C`X1td?>A=6B{7WnZrPKE>N|@-0Gb@>FQF4esF`vKpwRAKYXuO&-eY?-QMQAzc+5r4!?O?_H&us^UKo<>}olm zUlK1cs}+2HS-em&_U5Hyahs*1gQYi`?&WOW$#{K=tBKUnS65dXT3Ec0cox31;-ivW z)eFTIC&f4S_Db(Adt3Cj`st~uhpJC+66kcfaPi{7JN6%0Ss4@=4d%xm_=dGpFUChO9c8%&es_qp+9M(mAAas9a~XB*6ke*Eiw zh6GzxRTZe1`}gnPrf)avf4y8@_~L@%mv7&aUSC^#V{7*G>{$tEX>2b`b`{L=T6*E` z-Pnll`aSl=;0SGDIq|V|`N!kj^^Lu`uRok#T`y>Vy_)^kqP<_|g*C48P_L`LJNx7F z^#8l=1s6WeDiaFdJlS+-_zAwm+A@LJ#;*&5(`ZCz})Y4)`pQn|9z zQXhVJc(~%rMR!9Ro1V4N+mn8Od&|*&c-`NW_wo*k-`BVOd-+#*J!l|`_1seZN6g}O zP5bwK2)uJ?C$s(SYW8oX?~eI)_I60TtADZjZ1?Z?2hEqs9ee!w_$#aas!MrW6N9T{ zx20T5PEKPfY=2cNX|Gr}HAb)9xt;If%jNTrE%TkdA^W;s?$Z5UYLhi@eYc1aJv>3KT^xdzTY(Qhd|izu*A|5(Q8N8 zE{MK!(Gj`YH+kcx6SpFL;_Fx4yL|F;#oJfm3$!2QXFn*<{h_<(>&ov6*-vZgw=Fxw zcI_Ga21DbXvoF7@I{$8}u<6^k&u&fBR<7FGT2aZXAzH2ZwXdTs>i^kn%e~!pcXxSm zM#hQY`yW4kT=dBP_O`9}_V0Oa@9=*94rfLO58jhemUCikS|@iem$?mUv`7WE^a=!p zNl9w2&Mnt9Z~mTB(Z0TNO*jAJ#;xlQsvrAzF#La-Lf+90n$}HcXMVjgC9b_}_1WP4 z+qRi~`TjjQA%WrUUGqzfQzb6XoGDrJR6G9QojWpRZ*R3;ycqb_&B5x*-2azenh15e zO#Hr{`>${i7Z-z*RL_>Fj#4uxz1?T^Qy^~FtGG9>ZoGSK$ItW6XkYPLc8lrzUaYQH zzLZ=hy64aAO|Jzud5b@7by6%TFJHWU`}PfU^Cq}`d33b<$1(GLjHfqkD1RRZ+TZ!& z%@?_yGw027GplxHiJBI=;?MNM|7#w}Yl?F*IL#7~Hv9MM(D4uT+y1LMwS9k8?0BT( zL9BEg_j}8)_h#90D`Xt;tC?;5dZVFn&(@uc{(m2Rw5Y18x^Vk;_q}`foZiJ8-S+lS z<3E+Wh%&xZ`Njjm_!&Ag@-~#EG0^zq6RT=wrOuY}e@M+nes}m-?lC1T=1D zVt8Kd{DXM4{eAJEk9+M;jE`7BzMj(`|4--L%e|Ms3xE6fcbEC&i93(K-ep># zX?3E7ZWB-Rc|*xA4J)A^a4K)VKK&08|_kh`93$N%!n z*0o>X_mw=%Ro>tCzw%u@yUpfP8Ji#7m=o8Z`_lKuoXGe~FODZ|bc)!&diClJ>+DWk zs9U-1WrWQcB8_75jUlMHJ?rPfki&R50gk+QsYF!=L;uek>ov zDZz9el>^>^Z~r9E{@ z6E!4iA3k0E!}P<`s(+t9f3A43u)W~nA=aGR+jxI}fA5~3pFc6Nyqjso^<&45ab17v z{;x~@-^*=(uJ$^22!m|ncyIq-u%_nvZvoRU)toyL4;1Yo1%*KltQ{ikrLp#`N=Y zB_$;~*{@BR5+bi{T3Y`}x&G<}`@Qv#Ky%$uE!{Iu|2Xs`yx{)>{ok+l@5_}~AN|{_ z=G!T8=6N%Xop)Z{QJg4mmVWJUu3}Tf?EClc_h*!NJ_ym?62I>sFXCV}^s?bnPvi?T7pP{{+w9C@;<>-I_tej2P*@@pVdmw*J#nMa4}0oxtc7e`KSe# z#NPcDuKSPq#ox)F5?LB1h&^UEZvXiBrh8%d`NmDZpXCZ0|BT$yF6=RD<$-4+8u!Z3ua9HuVMfSRY$vuhsihYn|5sr$b2suajWhJXbMsO`2HSm#`gc_ z%dbCv{`{TO_MJ7qZ|~b@$HT*;AlGl+(^#HuZExQ{|KFG870+g-Z%91M_U86>{@U8w z)-t2G!~Z^k&co2r(-S)vJuURZzo%RO*Sz58Wa46Qikk584U3)mKh;0SF09|RZT8vo z4^IonAD^!FkGJ^ePlx9MjuQH__6jdP`SiTji&w7>-P)SHb!Y9&sEU7axBdM6A1}B6 zt9fpYWpnQBZHe#i?aj!~FaPr8F9*}kPxmu#$J>2rX92ZJbWc5BSHo$4|9kO`3uc?% z+^Q&Jir?{TJ!n$PBYLU4O^BXsnsr?5+oKVaqeDyVWcZRRDt3IBve%94?e496YknHZ z)qV-=>FpK$_ND)5(!S|GU#?pkqx_kNn|Z zPu{Ks&0~ECkG>ymQLa|X_uu4S{l^bm-z(?O4&9mGf3x+v-+qz3Ki4h#Ja_I~P;>ar zh39T-dG`d{-`-aE?MJwFD}LJ^AsgFzzPFy!erD~ORsR288(Dw&wKCpi`pv+Sx~r=~ zBlcF6EWZP1yq<=)YpAmzxvtR(?{M)#M#!~H+sB3?X1+AsI8|Kh8y-i0*zhHu_$CZ z-Y4s9BX>Nu{BG;Pg9kUwd-DA0u6GOVr==>&@QHW*e{!lm@3(hT3sb`cvE^dN?l&|} zKl4Y2?NhDm^XuzkqgPB~mpXo6_t)r{m?Iw_A20m$#FK}I2XxSnv%mlOP1}s>SQ`^1 zJeCHz_WwDXw)w@YS6Wa09sOjV_s6-Z4Rk_`VYPU9LUvW~#hsz6!$c+P&9fwLK~8#F z?A|Xn@0t3yFXFW+OVJUGF zuXjc1V}DN*siPMzOjy3}>%H^w1urkD%Gg$kJbwHbR1@ACzvAP&WSJ2f}+%{DUsCTYL}Dns_I`ulpLdPDAQi`ri%e)DWPj~;csQ}_Gr zjSY#;7b}dGe){Qm{mSd4yZ`UpiFr6@*W2|v3=u#5SAqKRN5t89{=E5<>-zl2G1H|P zEa&a#pMQL1Ww1rv9}Awt2S5>Inte^=7IzcJ@7L?%cW$aVox1T|eC-qc?SECTf)?gI z>i&9j;i9?!oE8d%t&ihfV92v4dcTia^JI1ZM^8>p24%=bX7&r0F9&}!vfqDw(n*zP z&+~Kk>Qw*#vhk_YG6R$sVxZ(k12%mu8CQ9tt|#jLEXx~Ba*`LkY(VN#X@qeB)StHbBZsbvY? zRkaT-ggQlRUQ|g}Y_Gd~`LadX8;NuCY`b-%wE+Cll9B~`_s+d%zfx0#VTs;{{;1;3`a6Z$^8QGF`|?HS^FQggj`qpP;NlWA;ty)7 zwc7qIO{_PZci{ZHx?S1RQbj}mbr&mrU!V8q@FV*mU(kw*iT@W=R%-BM+VDu+n0c${ z@eKnm|L>oj*3M^6h!g`kNm$)4Auo>)w54oU>FX^`uFEDd*)QK092|TiZFB469JA<< zpX=ZKQa?XYsey%;m0=}k);oI{K4r1)tCe9#_*WPIb^ZNUU8pnF|9G~@`THimbL?uR zj`ztn=ic7&`J6TP)PIZC`sc(}Mh z#bV#|^ySYtt`fXeo~5nz*ME*h8uU8w>yp|c`Uzt;%N~pqe2hgO4~=((|h-4&N`8{ zIU*uLqspK!QG%5*;Pr)l(a|3rd*w zo}Rw&Q+&n$n9u%MtgH+xwGRCbFaAH#gXLp|%(h%*5iUisZpG=R51ROLHLy9D{`*-Y zw=#t5XN_E^%c2W<6FoAf|67@S_0s44WpAbC)qL`tV_nW?e!s?eTkh?!6=$6DdBML@6|{Yq~wnwcdL^tYjTm}f;WG;GrqiT&iMmAt;fl1 zwyR3eAN9kzx9?}Qe4G30=C)qYHrEpql|7bU-tqNXG-xPc%|DlS>cN?f^Mm70Z!$16 z3@p)`>a}qB^5q$K_vgKwpI74qDtkj@V+9vDEMazeIRDMx%RjEOU;TalY0-w<-3bd= zluDIG3)B8)VEo&f7o?gRa_jkH+=ci7@-rk<@x@sKRbW& zuM`zwSfX~K{=yT1<*AXNv)Sg^^Va_rxW88*{g>JMXv5#Xe_P%Et=d^1_HS~O6Qe^` zm&`4ZdwhHU9dlUwPu%;O&*hdxiPrf{fkz_GUf37CKgFmM6xv^2UcRv*k$GGG{kRpL z0wKE(oPRkhHF8JQ*Q|?`8{e#7yqI}oM9$4^`(wWQXMwVZhpgKje1= zZczKiI3duyXw}l^_U7j8$K|Sdrt8HXy0$iYW9n(KBS{-mlS4s<-a2x`<>Gf$C9T-l z*w#b#>wc?$ZDVS9IW-a#=Nrr3-bxKrSzyLmx9jz?%q-{sA1n53c;nyl zf9|!v!a>@gm2?l~_Z@SH3sRpiyqZzxv{uW?t4$82JYV--ueScWS%-VM|NLVUmEAAg zyxAF@x07}6-o35glKehZ7;P0|311(ld+S|zO*yDBms-Co_WzDI{Z~N8gLH`P)ChR~ z_xh>N=Dxzm`{j?HoUFdF>T4Eggh*Cawp9B=@h&ra`~DQ8$P&GoK8tqm-o4?Cf9(_f zz4bxKKP`3P{{8zC{*+Gr|K*>jEogbPg;FcVhJknL0H=}iToUd*o-i#uGDKnJq1v9bO8|LvWfTi36?$3N1)e|uN99BDQEAbwVuwiy=Ki=#n}=ydz)kQ ztw{^geOtx6Co(N|9xL?Rq3LS0TFFd3kxd&+F(D zjCFpmAAQ^*B_(B4mtPmM>8EGC-_iNr|0R4l7#NC9m42I_Z*9Jv@z(9zr4J4;&b2Id zyS&{0`V!B{AyHAYK1;A=HO#-f%SGv-#S8t39xGO@@_PF8X{_E~<5%*{f{Y9fVQGSA z%2^jIPyeT@t9xsI{eHdJT}vW2r)B>6@li`p@7#^;EBC*DzWb&5RIith`|aNu`4*`N z1%`%(R&BF)`$lr4 zH2)7;IR)eeyC=tMVhm;Ymb3r8sSkF9C?i9|;u_}vRhQ;R{&@BJ_166RcC5{gXJ;C_ zPn|mTWo8HaVFvr(R-1oB%YUD2wJu@G^y#Y?EpmGL^eI=X6Bk=E&#%K192giT1aI5< zvv}+2vS;}cZGQ7?RyMQqXT7ygEEikzsx@m$_Ix>CThGJF!obkCX8M}9)1SYc z&zo?n?3sN3@vrae|3}N${aBcGX2!ye$;VeMS#so~;eIFH51ZF}s|aP~v_^x7#L!2bcdF+G0r+;kWjb4-`Tl2?fks86P4Y|erh~);{ULDy}A0& zjoULbGXp(6JKg$ZX4c)&znx;w^XqVeI|IXnsbBAvYEAX>XUvgk6Y6xC?v!`^(xpY^ z_iMv9M)+(_KObfx@KZY{|85mMF-2XjYW&i#8g{%&*cC62zztR7d#tiw|FBAFX z?bfVXrR6)rz%ey7weRhmZ?Ds86$t_M3mC&wkVXsQ+Le z1B1fy9M-dS%XCV6crB{Gt?84uU-#-&R%OSJ{Y?$4&1tRt0iC7o~o~_ zZr#3pdGeo<pwd0fFU zfAow_LD;oNH}BnBcX_%0>V5m-uE&&y;EyM4b#m>&ndhz?#WSFda^(w2?X<<*@n%d~E&r9~VC2Gj^Yftphkn4Z`_raoT z*TPhVIHyjXnmXs>?BL(C(*Hj5sPD3G<7Q%L;Q6+k;mo7>n3y##N)rQLL`6qG{ruCU z>dT8S!i;|{chA4P?b#fblPN)+E{8tu+ZSszGbB2C_M?wGPMta>!q+a!)oR4{V`lf) zHTN^?>X#?8wJ|Xne9jb{4PPw4;Zb3f|K+;hLye*dlcPvR8^1H-O@U4P!2EV_TnM)>^o z?;QWW`Pah923(;EYp|U7KM-7w+EAQ7W%kO(vF7+b4{@DCO{R{gT7!FJ{ zWnf`qoH}jVvh_?~T=Kaq%a0@(x-Pz0qM)g%8R+WjdMv?i`O+ObEFKr_|La_9@%ngy z69dDA)~!EgGb)I1t=zOJsJFK_D?dNnXl6)Y;6yJkuU$RAk%3{t!9CCO_WzORVG9imRGfc)`L=Clu1bQg zivvx~&9!IxEbCr+^Inw4?8Sw|-e}~4ztl6|_Q%R!v z`A2J6@9BK{Hh(VH{>x|TMCy6eSr`~HuRY42%d8;4v0}**mxTcylR`p5mLwRgh|pOU zp|dQ-Xr|t|XT{&I9jy9R{ruUa>;v;l-ZrQxLq&p;(4>G`?iJ^$|c&_8q4_%?|pZ&y4Z z$MNR%rnxU~>wgaZ@lX_8kg_w~I)93}(c#{r`Rji?uTr@XH{@ycxJ=Rfg%Z}7q8ADCGf7$R?UFNr*G z_WjwFwZ)>9%NM=>#?|n5b+BQ1)SB0Ge--`u&Ioqm zW)21hh6({j1_lOxB?bnD2aYTZ3=B4)TPPaX4f!3+KlT_iBv?EE-CrT+LQsbw0|Ubc z1<(x_1Eg3Z-~}_ogV^wOF&8H)yO;d>l6m#|b#1x+*QcgxuUfMvq_A+~v3~jWvt~)1 zoo5@p*u7ux%R{EaT#O7S9{v0M{`$t`<5hcV0|O@>dbnZLs#PXMPdq^CK0iBqdAZ$J zP2U*?3*Bq?{r~s-*O_#?%a4<_w6%jXGgpF?rk#;EJI6BE{7yl0-u}O3zB7%M9{;;* zs@Kvl&t~Vp+Il_i^19gFC6A79O13@By1g=Z`KoQ(!n(!vuch1nj$~!pQ_Hybq4pO> zks0fYKYDAuieZ}6Wj#H}Q+3iQ)!vCAxe~{wHOXkQ-8pN1e~oiH-`C3hb^GJF#dI!o ziE4kj;LN{r%a$u&w}BcUYa%!Q`ZGf%^WB}DRWBB{Z^^o<)q41$-CJw1?w3EG&%b`Y z{$KH2o61es|AvN#XFokPHEL(k(o?5S{d&M*DD$IcpXww%kF04TQ$;3U(bK%QQ$oK*7Sg5uiv{c)F<`Cj(c-+Lwf z@4v6>>#z2j-&>(RuVRsZ*M60`*5!WL*VbI@ku=_te7w)@rSJzSCWZh9kb`5(?=F@9 z`@+4|Zps$#>3T1-Yh+4uh}bHBYTNONt(Mkjy!zgvP< zhRDlDhM%|nK4+Rn_~kGguq9H!3$b_wK#CtE)n9?JCW- zmkBIezxUg$ur(16s{#}sl=3WQty;KaN5o_`-&dc0d#Eg0woEN{Z`IY(__o9sACJpl z|M&NIwe6w3t5$i1hK9bJAG~tPtXZ?JT)A>(t??&ralMS^=jKN3Dp~nDcU$i5W$}L= ziLblO&cvu2vBBZ{-SYWaSy>^Gkt?T76Ps&W9k#pd?Ir2_Jqy2mD+{mP`{&c?U2nJD z2F2#}-|P>3p9wQCmiGM6pDZ%XB;Id7{i;%y;oJSL`r;zjW9;%Z6Skk%uYKvg?l%ux^RZ50^%!~MHhxcjuU)~H z=A8Tf?&RF}PZwL?zkS;3{%hvB@BhxL6Y7g*aIpXQ`|m8{^ggrPTT9IE*91R(`gGm4 z--qS@UC2Kk5*N3wm0SE(fBm1u`~H1hzx&p+Bb~zQe#h@FTRUs^?AWcfuU0MxrI$UQ z`FrH;l=LeJ%9%{=aYY|JInu z&Z~STDJm-ZG`IZWA=dD}bM5QnZg0yizFKy3Q)<<>o9VGzP1nZly;Yice_!qHd)4pv z=6&U_;ALcxQ0TY$)Umqk>({S;YgA;<%w+gnSpEO+QStZ^Q?B|qH#Yuy>0ke9mH%$g zbm%O*+NyhHZHX^_KA->oq8-C}1qKG@luJuIx!9U3Z^!N`$viMGb332NnY1e_0@wYz zwXb&f>N0=3pDF#%zw)y+uUo$)=l;IA>P!tX91I5-40#S;<*3E^MACg-gdJ`!qDma zo#Ou0+w%IkKPWLV7&w5Au-KJ#{WjCfYqz#$f4-N+(SG>XBk}z+wy#%q@7rr8v7UoLPT@0Wjn`S;iIyQS0fcE8;g_Z_qXHFjUkPWRit{?@IH-tH%D zmQ(OIzu5X|VQOk>f8R+x8NS_F;+-zPQtA&BxG*rVbvh_4I6K>%{{(}Bx~r>e)Sils zW_fpRy!HN?Cm*e&r}ysU!qUK?phv4>l_tKJ{Fm{tAR~hW%b&XaaWx;0+U<6~7ke-v z02Jh3dh=@zmlkf#fA8k)?Y;f?J74>S0W18!vGcg|FtKpyNbtN`Iz8^v;(oiR4apsD zi$O*5GT+(DY^%SOR9Blbv#PFKxpL+0+V9Kcw{PcS&{tw$VBJ#i&`H*&BH;9Nef=*B zJto=x`QUuF_WRvmU)R^)UHdjGD=TKJb>*iNf4E#R~jZC z%eb~Ca@W^u(Wb@Ed{~+O{$9R4}Lc&{AKj_U7u;cxHAi9c{oPcGqfr*k#DjaQw=ZD;cM!>8`t#cW+Omd%xV-+v|4hi1>cL ze*bH`>celpfijC*kHp2*wTy=)85uq-sD8gUoZtRW!M!rjsOz;gg;$?%NP-R{#o?Ked}t>j7ojep2(&AhA@e*Wb98ylT}e|vlS_Pcx4?@Pa4 zJUHpgjpY89A08fFcWV}?L+LJ8>C%??Bo`Ekwm%*;-+d(ysx%)2UcGwt*E93|Gq=x8 zl=yX!ziz_zx#yo>-hAHfb=G}eUfxw}*M`Q%&RzWtG`1q97qh}R{oIbM|6eZqfB)^^ zov=cgfkAFt+F7ZoQ>Q-7-Cq3M@9*FD_2+NrU0me4?))D8xIHUw-HNjP^WpHVoyE(O zHbxx#<)XB3*DfniRa$kH5UlufH97 zn^)RwN7na4-1-@(rf9C~f4F`B-?i^{zqe~WoOt!hm5hIXe$KKgU8SX^6%rl2S~q%| z##FDJud?s#D7>{TH~OHRKcj>f2Sda0+V|D>i%qBI$HvaRSM_@Bp0{qjQcJJL*T+6S z*8BQe;S6E1xA*tQFZY`pWFqzU+P8-V5%oV$$D0&BI+B;mULnfJ@L`8x@-a}oTz<9e z?yk~xw|wW@#qKVDf9>n_`1`Y+i*paPaIRXt`tqL2&upM9@4&#Y;CrAuq ztFK+VHYc~JRwAH2BRl&tsAaV0?J~c)w-);!vMzZsK`(C4jO}-ibPAU~?lmvlT_2pC zz4~6&Yu&%EOJv1`F8X3JC|@znx*QhdQ@ercUQR{r{~FYs;Vbn#MpE)I503YBsMZ!u)V`XsMkSm zAL7YZhJ=#h+I`;`8V^H~S=WA6#s#Z$IE@rF;|@G#Vt6tw z;JUy8(K|XE3^#9{|C2oF7FU%ELqp81tAb2HbGcjX+Z`72CrsF|&tpyI#Tv$$j0=uF z|9n?nQ)Oj{?Em_sle%=e<0qZp#K2H>?%%vQTXa62Q`OQ`dYSe7eekIo{_?8+?>0;h z$GH!t|Gc*^Vm*V4RsD6nl`gVJ?Jw+{arAx+2Lr=}>TBPVial37_OV~s_dU&+<;as7 z)&noi8lF2dFe*$A{ z*SW9PhBKToV_{%;A^Uo7_3P?QJ0sRJML0KX{jpr9R)Eb)kiqEYGX{xBva zq;fMndmj{e>&Eu4He6xLa=w3f>w52Hb+tT0!@gAgJ3HBaq-y^X`R^yPdfgno$Iqqj zxN|Tx{CgVmXKvlO&<~pb#6(uTDH1K^vSSblTjwxAU&ld2Z+p>S`;YY;46PGaZwUVK qc|pZj{eSh03(7T~Fc1q8Cj78BddXM9v6dkpq{q|M&t;ucLK6VZ36S{! diff --git a/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_512x512@2x.png b/src/app/qtcreator.xcassets/qtcreator-project.iconset/icon_512x512@2x.png index dedd2f5e57595aace486f375f57a6a3154ba2469..c11fe74891eb4608b7e182957d6f6c6cad6b5462 100644 GIT binary patch literal 68179 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 z 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 Wt)I3|RF^#-WUr^IpUXO@geCx}2zYV; literal 67721 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 S?bn`YkjO5T>Ln>~)o!cHiCH&g) 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 XF5s=0!F?tM1_lOCS3j3^P6~)jpeNA4ZpSD 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 II;Vst06_W%zW@LL diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png index 4442d3eb27fa4973c50d3cab6069e933d9e7c02d..3a9cf292bcf990e3d9b8871c253d650dc94a125e 100644 GIT binary patch literal 10500 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 CJPv&T literal 11304 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 L^>bP0l+XkKg8BNh diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16.png index 2adcdb5f49180b2c150612ec2849e152da141eb5..d48df57e634c823e81e6ae147bb2b1f7c982a0c4 100644 GIT binary patch delta 490 zcmaFP+{`jTxt@_Vz$e6&fq_9`xslV^AjOr&4yOa{Px@>%{tnv$9M1+h zZ4Y!iALhO@%>8`0=gx4?3sGJ>BfQQwO}ja7#;pZ2?kt%3WYOY#tCrtixBS8Sl@B(oeYs`R z>m8e3@7(-)*OsTdcD&uc>-qkDZ;$SKe`NprqetJIJpT5~$&csGe7bn{{l#-1E?xL^ z<(`%u|Ng17y-Q|bV3_ae;us<^H96q`i_fJK40H9*9#HC4J8*1Wny}2P zb=qs+$p}4Kqj&be@%&e7mnOYlm?gGCd94P&h(M8v*n>--FK;WJz?%I~_`A`Q$B+38 z3N}tlb`uKt^t`Z%lVR(JkD0%+BR+aLvHbA0dD^0T_ef8TsKpe=wojfBEUm3CKX=Yx zZ~alQiHWtr;mXxGfin-1+c-X)^!V7E>BhE#LBt^Gqcua}4e1qOZIfac7#J8lUHx3v IIVCg!0NF_f)c^nh delta 462 zcmZo>dCojRxt`%wfKP}k0|UeV|Nr;z-@k6%x^3IGxts}2KAN|A^X9Evw{F?8W!J7< zTeoiAb#V92ojZ>nJ-Tz}PRFxBj%R~Pj@O+!b?V^3gGY`WaXcI3bT-)MRE*!LSpSRh z0jJ^vE+)iW$%?&_lYAmS`C4JhwW91B71ejzYwmP(9h=zuV8+r@D_7Q^S-0iD*1ae9 zAGmz@*s){Bj~_pA;>4*_r_P)?bLR4yvuDqqJAdx{`Sa&LUAg@E`qisfuYS34?b@|# z*RNf_as9^E+c&=6xpnK-?Qi$)+_`h-?wvc|?%%z8_wKg`_wV1o|NYT}?~floeE8_m zqsNaQzj*QD&98U=|NmbcvzDKMfkCV!$S;_Iv7SR%R8GgnHMh2Y$LU*l?%sd>{`=1r z0*C)FFfdH>ba4!k2v1H>VBf&ip~zq*ucDx#w(QNjWlCz#xP=mu5*Q|JGYZ<4v~S-& zt|Xy335?=~hSi3J3%DwM%QiGjo-uAVb>#T)^5u)p0)-zu iF@N^lIitYFaAcmSeA@eyM;RCx7(8A5T-G@yGywoy#RdWZ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16@2x.png index 2a7030fd70568c2b3eadd224afb22db8df22ee72..87ab1ba5cb68f80a92d2483967adba58a2d223a5 100644 GIT binary patch delta 767 zcmcb|HH~e8ay?^zfKP}k0|SG?awDg+L5eGl9nJNZw#(GPo)h70* z{6j9J*d6wZKAo<+#lG%Nm%=I|#nr~92i+ac1~{G#-1KUf{0c*bl}5@dO_W!es;o0t zU2Ueh#!7RIwboi|{dErdyBrMnIGZ2xwA$=xv&F}5tFOc90LS{XK~CEOoVEu#oeg&0 z9^`T^)ct(8$Ifui^O4>cq604`2JMXx*_RZ0DK+|FM)bkV=qs7AhqB_X<|H1@O*)*L zaSZVf+ih^4;6=$1k&$l;T=x)5%({!)5_5Os;%aeK@PV2oot?%me{%bS(@6YIe zG;`wPS(6^knRavDjE4(m-L79W=gyKjPnXPnx^&*{r3>$@SoD0=;(MzWKVQA<#oA>r z)-AukZpF(DD<5oF`)Kp}$J;i(-oEMejxA4jZGEUpV*q()kaU&wsvr@#B?CAFo{gbnVLL8&|(vzw!C@jW4%vf4z6- z>;1dm?$_V__Tb*P2lu}|y8r#*{qK(+e1H7#`{Tzyp59#W>pKGjgLp}hUob;MLvzcE zmp^{|`u+R&pFe;9{sV)jE9cH)U|^K@ba4!^IDPk=Ycvz1NbAFmyDuuAN_cI`X0Rb( zW3=H$);D1~A}S^C_{*OjHt0G3=I6HOu`-Sx3om&Z@10x!<(vHkPb&rM=_j_yCh)C^ z>gaf*eY}11;kktjSHxmJKYw{te7=W^v0>V?4Z)lS0(&)8q-yxAPyQ2`y?x@9WKV`{ zo6vg^4!_?l`Z)h~-c|MkPq=v*Q+b!xI9%SNt;+a0b%i*C+YYayk79qhW!`8;USm>= zU&7Deb~AU*ldq>#7%I&D84fU=KX}l+(wEItV)FY}jnCQ>>~Gz_A2l&P(SzlgF<;eQ z$9uwwcOIPhx$OJC9lo3a+n-F||CC>wq41*q>Gk2VS1lvC7#K{g-xxXtws9?Z`t;(e p8<$y39j33?%6&m+-*Sij!7mf9rQc(F#K6G7;OXk;vd$@?2>`{#qu>Al literal 1374 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4rT@h2A3sW#~2uxb_Do@xH6Ck%-2G-m@Ri^ zU|@id5HrkHx z5DyPedwV;?go_t1>gnk*Ffc4yvN@9)2S`Em#wja;&1$%zvuLPJB5#W!u*G;!iY z1_p*rn>MXlwMtM>kb!|=&6+h!mo8OOQet3Wm^EwG+O=y73JSQmKw)KJVUd)Sl$Ms3 zm6a768>_Fck8B!*?RYlG?OeFW`H0%Po%g>#`v3p`%b%~OJf4?#v-yYTtS$&Y6b zygTZ4HZ0?4@v@_EpF~Pw$_&aPs(>6OSK1 z{`m3Z-Me>RzkVHZDf!%|OBvV8yiZ5B9qK!D;_#h2cV51H`R2`=_wV0dxpL*!ty@Xg z3jX~26MsDC;IV`E@85s+?AePKFD_oZ_~glx@XKl5r=#{C-v8jigGY}ZJ$?H0`Sa&z z&z`+;^Xh< z^qDhf&Ye5AbLY-u$BrF8etg%iUHkU!+rNMR?x{!iF)%Qsl?3?(GcYo zz_9SBwEO?c)im_o-t4!0`NT)(&fQ4W18?X1X#2KLo86b~qbz8qBqpL!{)B;n@x7;u zV~B+0)q}p?B83dcKfcfZ_y7O7Gw1SFYUKS45O3bltaxo>d$5wM(~B$8E4=j;UR_uj z{C+|9bUi`Y#ml>!L`4L>S-83-So&tZUbT7mwX3^)~?q`3_ zOnqfqAAR$V>9fhl_q{)F=N?>a?zPlS#I%d+^syPs*iCMJwwS^5I6;G_z3ZIV*+=4! z8zocjFE-#YYtp^{z1rJ+?~;2WMalbAtW<2j>|fWLZ*^FA<*q3a8G3r(=Ph%dS+LP= zVO5An?cUp2NuH6fywYF3=sNv)?LOh43X^^5&!t~$iUmEIF(-BH`#E83ORnBr`TL!3 zE>rcS(EjOKHx$ Y|I@DZS6oZf22kerboFyt=akR{037s~K>z>% diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png index 4442d3eb27fa4973c50d3cab6069e933d9e7c02d..3a9cf292bcf990e3d9b8871c253d650dc94a125e 100644 GIT binary patch literal 10500 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 CJPv&T literal 11304 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 L^>bP0l+XkKg8BNh diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png index 069b5c050245260272c21e9839b43593124370e5..acbb5a5134a8416f161f25c473094cc5b6e90415 100644 GIT binary patch literal 25277 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 diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32.png index 2a7030fd70568c2b3eadd224afb22db8df22ee72..87ab1ba5cb68f80a92d2483967adba58a2d223a5 100644 GIT binary patch delta 767 zcmcb|HH~e8ay?^zfKP}k0|SG?awDg+L5eGl9nJNZw#(GPo)h70* z{6j9J*d6wZKAo<+#lG%Nm%=I|#nr~92i+ac1~{G#-1KUf{0c*bl}5@dO_W!es;o0t zU2Ueh#!7RIwboi|{dErdyBrMnIGZ2xwA$=xv&F}5tFOc90LS{XK~CEOoVEu#oeg&0 z9^`T^)ct(8$Ifui^O4>cq604`2JMXx*_RZ0DK+|FM)bkV=qs7AhqB_X<|H1@O*)*L zaSZVf+ih^4;6=$1k&$l;T=x)5%({!)5_5Os;%aeK@PV2oot?%me{%bS(@6YIe zG;`wPS(6^knRavDjE4(m-L79W=gyKjPnXPnx^&*{r3>$@SoD0=;(MzWKVQA<#oA>r z)-AukZpF(DD<5oF`)Kp}$J;i(-oEMejxA4jZGEUpV*q()kaU&wsvr@#B?CAFo{gbnVLL8&|(vzw!C@jW4%vf4z6- z>;1dm?$_V__Tb*P2lu}|y8r#*{qK(+e1H7#`{Tzyp59#W>pKGjgLp}hUob;MLvzcE zmp^{|`u+R&pFe;9{sV)jE9cH)U|^K@ba4!^IDPk=Ycvz1NbAFmyDuuAN_cI`X0Rb( zW3=H$);D1~A}S^C_{*OjHt0G3=I6HOu`-Sx3om&Z@10x!<(vHkPb&rM=_j_yCh)C^ z>gaf*eY}11;kktjSHxmJKYw{te7=W^v0>V?4Z)lS0(&)8q-yxAPyQ2`y?x@9WKV`{ zo6vg^4!_?l`Z)h~-c|MkPq=v*Q+b!xI9%SNt;+a0b%i*C+YYayk79qhW!`8;USm>= zU&7Deb~AU*ldq>#7%I&D84fU=KX}l+(wEItV)FY}jnCQ>>~Gz_A2l&P(SzlgF<;eQ z$9uwwcOIPhx$OJC9lo3a+n-F||CC>wq41*q>Gk2VS1lvC7#K{g-xxXtws9?Z`t;(e p8<$y39j33?%6&m+-*Sij!7mf9rQc(F#K6G7;OXk;vd$@?2>`{#qu>Al literal 1374 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4rT@h2A3sW#~2uxb_Do@xH6Ck%-2G-m@Ri^ zU|@id5HrkHx z5DyPedwV;?go_t1>gnk*Ffc4yvN@9)2S`Em#wja;&1$%zvuLPJB5#W!u*G;!iY z1_p*rn>MXlwMtM>kb!|=&6+h!mo8OOQet3Wm^EwG+O=y73JSQmKw)KJVUd)Sl$Ms3 zm6a768>_Fck8B!*?RYlG?OeFW`H0%Po%g>#`v3p`%b%~OJf4?#v-yYTtS$&Y6b zygTZ4HZ0?4@v@_EpF~Pw$_&aPs(>6OSK1 z{`m3Z-Me>RzkVHZDf!%|OBvV8yiZ5B9qK!D;_#h2cV51H`R2`=_wV0dxpL*!ty@Xg z3jX~26MsDC;IV`E@85s+?AePKFD_oZ_~glx@XKl5r=#{C-v8jigGY}ZJ$?H0`Sa&z z&z`+;^Xh< z^qDhf&Ye5AbLY-u$BrF8etg%iUHkU!+rNMR?x{!iF)%Qsl?3?(GcYo zz_9SBwEO?c)im_o-t4!0`NT)(&fQ4W18?X1X#2KLo86b~qbz8qBqpL!{)B;n@x7;u zV~B+0)q}p?B83dcKfcfZ_y7O7Gw1SFYUKS45O3bltaxo>d$5wM(~B$8E4=j;UR_uj z{C+|9bUi`Y#ml>!L`4L>S-83-So&tZUbT7mwX3^)~?q`3_ zOnqfqAAR$V>9fhl_q{)F=N?>a?zPlS#I%d+^syPs*iCMJwwS^5I6;G_z3ZIV*+=4! z8zocjFE-#YYtp^{z1rJ+?~;2WMalbAtW<2j>|fWLZ*^FA<*q3a8G3r(=Ph%dS+LP= zVO5An?cUp2NuH6fywYF3=sNv)?LOh43X^^5&!t~$iUmEIF(-BH`#E83ORnBr`TL!3 zE>rcS(EjOKHx$ Y|I@DZS6oZf22kerboFyt=akR{037s~K>z>% diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png index c5e458164974ccedc45d8f686c1cbc5ecb3646b1..1a89d932f5ef8ccb1da39a20175813df4d3df9e3 100644 GIT binary patch delta 2561 zcmew^)GabWrT&tqi(^Q|t+$bxIWgg)cKNewKTca(HtCqB2UBLotR=jSUakV7M}$N# zI$cq^^3C0~`Gvd(tKbQ<2?`shtm4=jGU1TCz}xv;A)z`87e;!_I_7ujn&;#lWjW`2 zu5U~~W<2ld+3Gpf>Cb+iz5VQL&*#s9WnEQuC6}DyK?4U=}?EMAH>=xn*Kgj6lt(5DqwflCXpp4 z3vYA%ICS9fULgAQ(eL{v^@4U6sn7%FiVAY;p zR%~i!{FyoJ*=3nUI@fN89@xjtzvx3yzvSU4fh&FbyA66+Z#m=#`q*;qsDJ+_yidf@ z>db@EnVeOpZNIGLTO7tUqsPxqkca(qV?)0yU(MRX0s|D8~er zS387~gpO?r{BisZr^RF&{z}b!XF;AfyziUNZ@b4WU3*vHS@RXfX+M@K#LZ~Vo~igF z{t;8m`5J~rF*y=}ZU5iZRf@;DZ4s~MU{$;#bcSQkgVm>wothcd!GCaJDSM)S#d59Z z#>-CrG5M4BhQFZjVQgx3?zA13t}@z3{1?gjvX0&Q%c(2(A3Qy|Km4=dNu&Rp{+91z z-qaSQcqma>ZK~Ijgc_Ac-L7g0iHQpvwku4WJ)!Wz`Cku?OY-( ze!Z_h5O&}FMb)hkd->rRClm%95o zC#Cr%Kbz|~TAf|{kDpzs=<%Q?^P%mFlJ(18cWyY+F0kG&Z>_9y`}EHm^?&r2-DCBf zmKQ6r^)buYS+mO>r|;*k=$WwOsL|vN0X~;EesPjYdTgj?BsFpJ3y1EYz%_SHP5n}u z+OHtq5T>~1PLy>&SAsX!2@!F{Y4f*~u0Gar`ODLfY=R5UFJ=jAV0gdy(B#}rM{8C_ z1g_N+*x|Z`qPixz-5;=&uZJlx6oJc()piL zR2S(i3flbTSB^;l(~B zc4}L`StXI80fh}JToVe?I;423PT0)*b84CMyv^N_X4_`8zHU_P z*y4X7BfxS)mqeu_QkHkc))y=}|Zj}cQ(y-1%i%Wr+7xYD&shU`0&Eo|p? zUMz59x&L6l?4kNpkr%gx_FG47(^%#lVB#zg@XYgqf*5y+&VkI2{)fcEI%ancJGnU)PGh!UE3BGgnf2?$8hIvp|~rr z;HR`Ko=FkrA;;2-3r~0^S=tLcIQPwZilI}))KAIE$p&^-^Nz0)sTbBcGO=^P7I)Rm z05A3vn-`Mlbo_3yW5#}%J&NiAw$@MPk<_6Lg>p5B7pRg=S%8*D)d(5h$dU^F!)oTkGv{k1ZYrDMo!?Q1v zsb^!?-hQ~$_WZ$nqPq_^pX+P$s-M=(+j#roiN3=ho;-6ucy#BA2EjG5e!lZpKZ-tZ z+g`3#cr*93bCI2DAKu(k4iT)|?myFg%FS1NhrQl=rLE3hJYlBC;U5tyv(M=)sua-` zO%z*Ly5+U~?`cH>k=MS8?%%{_yz6=SU!iNitPb)C@*VkBU-B~jL)4S|TJx3~%D-=o zuYdclxqo}^;=WB&j(dw}KAGlS`!Z6`{{NRl#sx-Y)9e;EE!px)8J|4aHwzit(ZmS0VxFD#5rIoOISbtWzp2Uz&hK3KN_)*J z{k`SdnN#;%tu*~4HK#wGiC@fI<+%ELPLDE=ylxjBaVt}&B^^>{T^_vs;d=DSs>)RxS3Q_is^5s&iY}x{c-1b&GiK|2nd>{vz?q&c0 delta 2412 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 diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png index 069b5c050245260272c21e9839b43593124370e5..acbb5a5134a8416f161f25c473094cc5b6e90415 100644 GIT binary patch literal 25277 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 diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png index 0b810615e05bfa2b78da07b758002f28fa34e75a..579ec88ad7d2a4c533ad2b32156f93162baf4663 100644 GIT binary patch literal 56457 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 HQ$iB}DAuD$ literal 63576 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 XF5s=0!F?tM1_lOCS3j3^P6ERS+AQ5vw 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 diff --git a/src/plugins/coreplugin/images/logo/16/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/16/QtProject-qtcreator.png index 2adcdb5f49180b2c150612ec2849e152da141eb5..d48df57e634c823e81e6ae147bb2b1f7c982a0c4 100644 GIT binary patch delta 490 zcmaFP+{`jTxt@_Vz$e6&fq_9`xslV^AjOr&4yOa{Px@>%{tnv$9M1+h zZ4Y!iALhO@%>8`0=gx4?3sGJ>BfQQwO}ja7#;pZ2?kt%3WYOY#tCrtixBS8Sl@B(oeYs`R z>m8e3@7(-)*OsTdcD&uc>-qkDZ;$SKe`NprqetJIJpT5~$&csGe7bn{{l#-1E?xL^ z<(`%u|Ng17y-Q|bV3_ae;us<^H96q`i_fJK40H9*9#HC4J8*1Wny}2P zb=qs+$p}4Kqj&be@%&e7mnOYlm?gGCd94P&h(M8v*n>--FK;WJz?%I~_`A`Q$B+38 z3N}tlb`uKt^t`Z%lVR(JkD0%+BR+aLvHbA0dD^0T_ef8TsKpe=wojfBEUm3CKX=Yx zZ~alQiHWtr;mXxGfin-1+c-X)^!V7E>BhE#LBt^Gqcua}4e1qOZIfac7#J8lUHx3v IIVCg!0NF_f)c^nh delta 462 zcmZo>dCojRxt`%wfKP}k0|UeV|Nr;z-@k6%x^3IGxts}2KAN|A^X9Evw{F?8W!J7< zTeoiAb#V92ojZ>nJ-Tz}PRFxBj%R~Pj@O+!b?V^3gGY`WaXcI3bT-)MRE*!LSpSRh z0jJ^vE+)iW$%?&_lYAmS`C4JhwW91B71ejzYwmP(9h=zuV8+r@D_7Q^S-0iD*1ae9 zAGmz@*s){Bj~_pA;>4*_r_P)?bLR4yvuDqqJAdx{`Sa&LUAg@E`qisfuYS34?b@|# z*RNf_as9^E+c&=6xpnK-?Qi$)+_`h-?wvc|?%%z8_wKg`_wV1o|NYT}?~floeE8_m zqsNaQzj*QD&98U=|NmbcvzDKMfkCV!$S;_Iv7SR%R8GgnHMh2Y$LU*l?%sd>{`=1r z0*C)FFfdH>ba4!k2v1H>VBf&ip~zq*ucDx#w(QNjWlCz#xP=mu5*Q|JGYZ<4v~S-& zt|Xy335?=~hSi3J3%DwM%QiGjo-uAVb>#T)^5u)p0)-zu iF@N^lIitYFaAcmSeA@eyM;RCx7(8A5T-G@yGywoy#RdWZ diff --git a/src/plugins/coreplugin/images/logo/24/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/24/QtProject-qtcreator.png index 3ec47c917552b3bdbefdbf533b2e4c09fa050f44..449c740a1112523a310bcea39958e78911e1e55f 100644 GIT binary patch delta 532 zcmeBTUCS~-rCv6`C&ZP3fk9!pk<-~A#g!(GX9Dcc2C8o`x7g)wvftI=bfDrY6Nl4* z3!kl2SY>Rq*VXKhd*11arT5p!uP{_tVWhCiSaXfF=2~m5wbt5eZS;0H8mxCR+Tdio z!P#Vki`^-Ihiw6l#{(Tt2Rfb&a@ro~c0SB~XPEo>aL=9Lo)_w)ymm%-U5E<2m=JU^ zG2~Km=)R=z<7pB5QzH+gC0#4XxL%rdqdezkRl%*AlGF9IcRCs`ba!5!H0|cR8MhY9 ze6ncPorR0s*HU0a^++VOV(uIKyry*<3|{gM6e zj~;z<^7z{`CqJG$^XcN*_ZQE7xKw}f%hgLCuU!6g?Z(&JH$UIL_2tg(uXpc#dvO2z z!-wA=Kl<_H@sFoRJGG}VFfa&}1o;IsG&Hofy?XuQ*RS7y{`>=hqG|C~3=9lwJzX3_ zG=h(wIm*WrDByDO;9airiXFRm@3!Xo^FMt)NKTDGG8xZ3=`xAG7Cy_bJL zyuQn0N3GR)BNd}XF9Vj0K3%skiJj-Uk`gT`;JwwDa))Ps; z|Lkzx$JjWx=m+O6N6wD-i+rcv`NsC@)1k%rK4*{i@-wx6=G<_tf4Vnc+pURl>PMXJ zF*D3iv(+tb`pi{u^Xi$Si|#!T-28u|cF`#{xki^AyxSQV7#KWV{an^LB{Ts5DJmip delta 625 zcmZ3>(#1MKrQR{XC&ZP3f#LuE{|yZdt5&Vrwr$(~{rfk=z?LmrcJAD{dGqG2Teoi8 zwr%g;y*qdAbUGWfYuB#*`}gnIv19k{-P^ZsKYH}&?%lh0fx)Fqm(H9y<9H^>@obRO z*(e4Gr$=AOioKE@dnG6SYHq^S zyrkoK$=3?YZa01NeDU+u2M-=Ra^%R-qeqW^ICcE^ z@#7ax9RG0U#EBCpPo6w^>D0-O=gyotbLQ-svuDqqKY#xGr^^>ET)6Q0%B9cOE?>EP z<;#t$SFc|Ea`W1?YuCQqs=t2y`i&bmZr;3k`}XZSckbN1d-vYGdk-Ewc=+()qeqV( zKYsk|*|S%#UcLGC?(K(n@7}$8|NG_^? zz#vl+hvkK7pG30 zdePl!d|0KVHfXca*OXMYJG4G>O6L`iUdv zYI^rfji&W8x;lkj)m5^(rl}J&i&b|*rPHCqYnhw>R$g?DH@I>C*x}RO9LiBY?yi-Y p`^F{0Q00cJs%nd+#7B26hHNckhk&g;QVa|X44$rjF6*2UngD->Y~KI? diff --git a/src/plugins/coreplugin/images/logo/256/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/256/QtProject-qtcreator.png index 68667830c1abfdbabd6d193d39bb6594ef04156c..3a9cf292bcf990e3d9b8871c253d650dc94a125e 100644 GIT binary patch literal 10500 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 CJPv&T literal 8195 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 omsw05rmxt_eL-j6a)FVdQ&MBb@0Fb|<&Hw-a delta 954 zcmbQnc7c6@O8xHupAc6D28M=)hE=Op?ccwD+qP|6wrttCbLZBrTQ_Xjuni2hY}vAH z+qTVMuw~1Z&6_uG0fQYob~v34+OlQKb}-nxckdoB*tv7(-o1ObZQHhM*RCyFw(J9g zojZ4)JbCicrAsGHoH%pljN{oLr?d6J&gVkh&W5?23->r5;c-6F`*f7|>1gi@(f$|X zLoOwUTuKQ&nH+vOE&57U{PCQ`tNBUS3NnrsXIwAMxL%ffvnuaqb;ZHP+Pj?%_j;P| z^|c-9>v=e>|Iy6JkLON#Ja78pIWwOuTJ&ty(&uZJ9bL8j#rl;mHf(;qYv<0LyLRo` z_4YtL$hmJ1?cKX~-@bkO_wV0-c>jTSM-Lu5c<998!-o$a{c!5ov17+RoIZa1`0+C* zj(<3F;>3v)7fyn}$FrwTpFVTu%-OSN&z(DW?$f37=g*)2bmhY5D;FTLWym|BMom;nV-Kzh3_xA1EckbM|d-v|$ zZx8O>yLa#DeGvHm=)r>r4<9~!^yty!$B!TXc>4IqvnNlUJbn7~*|TTQpFe-`;>C-f zuU@`<`SR!MSHIr8e*OB*n>TNMy?guXJqY~%@c#G555GTx!0%6={(S!Y=gYUh-+%u7 z_50uN-~ayn`S<7VzrX+f*Z=$f|Nq1$_q7ZR4C*C8e!&b(%q;AJViK}ihQ=0NfuYec z$+Zm~GZt++cl_!&-p<5vePQX*u9NQ^j&+Gfh~Chh{pk7C9fw$#H{EzD_UaYe=iP-`Gj7y#C^?6{ zSjWKV!z$H1*wH^*emYz!)p?Ro;pVu?iF)k(=`u? zw_sn@5FIv8aG^qZ>)KtrJ~m~Qew93J;>e^Xm$j0~qpu{!@ciYi*{zdzRo&~_;-RZO z|I{+A)U+oJMYCB;Y7HkO#@?7S>4xR@`c;Xm47@y6WlKn=>u(RdUf#EEzDaJH=UEj| zvk+E?gq>He+pJo;Ised=KeOh^akBBSzFJl#$eSy>_wP(m-CWj~2$2=Hr(fH?<-5xC zt5>gjCizAMiI(#E8nUK7eY(mfLR4eg^^n$QPsBx@b|m`G;YwY4@TKI;$eBetH$+c7 zVLxK5sbN_WGB7YOc)I$z JtaD0e0s!?lLB;?8 diff --git a/src/plugins/coreplugin/images/logo/48/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/48/QtProject-qtcreator.png index 9d218b36d8bc01f6fe6b8b8e8390699f58b6e54f..43a6834a140cc4a9a8ddef21d0e61cf77cce6687 100644 GIT binary patch literal 1985 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F@+gk6jlY9Mj35$UQ-zG;Er2{*X_0t7Ths39{R1|8(?Pm_&-9~=OWwFL9KY@V@Lz-iv@buRv^h45?R))`_42dK9a>dyOZ@qi)}B;txL{IeHs>kt?p5NK zg-=u!e9BLb5KB0i?{y~q>}`h`V$WAE(BYn6wfyaoDJOFt<(nl`wfW1{Cwuqs%hmQR zU&i=P>Mw8YrLt<(hrPd#8=9G(iweaqUVlD(;HgskcVw}6Y+6>;vv~nmzDoVBn4Dtx z>r1Px<^A$bd-c~c+4cG740X64l=`*0K4;o+g3*ODwUIBBd25DreaH9rbxiM@9MMWD5N1u>>YijpYd3kGpo=;=l55D?)Mz`A5uGzTr*an>gkN!AR%nd)t zC&V!8)Urt_Tl#Dqo_DL?h^;)5w!U&F*XJ(n?1gLlW~vBmViLXiG$32dU*BuNwTRLpTCf)Z}LrD$@fiZ!q2b? z9oipP$nWY^7iN>mw#{6&@&XeV!*X8BYsRU0%lGIUxU@(?NB7d9)T!&{G6*w~r!DZGo?)x5XGHu8kSqVCBTjcVpcu4UHbX;}7X{(e4l zwpBMnsy>un&kU@}oow+`SmjMB`$X1=bA0Plr+b7==oXtGD_U)6WO<5Tt7+y=^*EM8 zTb94l;5inz?ZaChwa(kwFDrGqcCUYQFGAWb>))hhRx8(a9JzHX;&aY=?M)0*G_>{F z6Mnu|{G%e~P?B2sV)l#eHyY-$KeGL(CXiiKd*u(S^%J(AA|~RCckG=uC-`wrxS(8L zxzh7OyFH(neq7o=Y4MCt+MLGh_iyENC#qMUy&)XgFg4tH<0J(Z0X|`#qp7la->w%m zyeni@I`zo4deK9LU60mQ7+h+6xKc32H0JOnrnP6|khYUSJ$tLnvPE%MONZ*eYFWcv72(qr|Bl>O`H zhfI03>_%$PCo>)H2l1<#>pdlwIEWmz`g1|Ce&+8jU!#ABWW1?P>P@mbSl#>gMe-us zmuZ2&f4G{*`d+a6$IlBR$EYrlsHOL2>!%`( zeOdo6rY#QEo!^yYae_&y@|5+l4XbZ|_+#9avwa^wdst4(E4JnxiVYkF#tt&ek{CHP zZ=VTXR<=R#<5bCM8rzO-SkK(CdG8$kiDeU7cdovhJZcwR zoRnC0_+rs1_JconEh=OXynR~R|7qRlkXfrTGPD*iSl81M#UQv$DOulM{M#(fO+K%7 z1-;m#e(!nOO`FgQXC*T7jX0z|rtlugt=`GBaqg#se9QN&KQiyflhx_>ZLZFWo-GjK zyQv|AbBPzrC;m52d6ayP3Le?+VZHsC?NdmV_-p;u`2DdZD?Uu$kj%iqz~JfX=d#Wz Gp$Py)Rj?K*Ypl;hbTr?bJ%=R#c0 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 delta 1859 zcmeAcxyUy`xt?9Z)5S5Q;?~=U%$$%=5jWo+x4(<`o2aQBTd}|Q-z68v$VC$cG^WI| zs$_7k78JZ-ctXfU#AS-CYrw2`)_32QES~GPyn1=H_1lv7B@0UyzWrEZzH{>TQ(KHx zjScwkXYM;=@P5znzxy`dDZalZa@Wgcv-6ONXZ0J;YDVPDh}|&bkL>^KPj-S1-cR=G zHC#JU9m=3P>H92(DAo6(jPIuXiTNCKE98XkSss&^89Tfckn@{9#% zUgpcLDg5_trLIQIJA0-#tM09jlCj#cyLyUd-#&%xJHfNl`M$_AZdj_Bn|Lv5`}YL3 zfLmJccz^uOik{(c(xLU$u0OIjTZKMs(Yz#K~w zExE@rD;}54cjvwxu`$^7L$_9QeHm-VJD(E0E!9^ZUOaSdYJRZbo!DZB-ApYSMhPi3 zU)Fgg%r2c@#=7H@)T*dAA&=JzRcG<7eCOzy5!Nty+vinB*+lXSs?RU{C9GH8Sgq<1 z6?H55;>C;km6?1$>TdPD<9c4XX>yxl)~AHWrw<4C_?+q9xN+mli4!NDuXJrVFsZkG z)zKuqf^z?|{C$`2o8`<8TQJk7?lR|r{>qNd`~=2dmcQ86&tsjUesI;nTbasj7|F*EN7VCNZzFN<(KtAf) zgq7zPeYzX7^Y+_{xz{GU-oGNJ=zKTO>Qcd_WXAeOj~>lSKeSv}Soru%lM}+-f=|9) ze&BRE>Xp27fbOo;9a9fkCB2;TR%veLPM?plnpetq$3LC??nK$oJ>R**FA4Zh4VG^U z^NF9fbN;1+SL8Ja#d%gny=NnFX{2; zN=a1dsgPTf9@UqY|2S{X8WiwsdWqRbrlrf52bY$bZr#2;*vpH{)Z9EcFHf)VZT`2D zzZp9HPi^aBGq*E*7uKL4zViL6y9ZhA7#8}wlpMMI{%rk(h2PlIgIQks&a{5{{7Jl~ znPQ)hn()mWvsbTQFFtn6ZAyaxthrc}!W}KqBas9Uq8EH2z)z>|4{eS3lQ_zf4 z2Vd>Jbx-VRtxI(8?w1vpG`l=I1ShUty;`~buwnColxu?$!Cd^-E_!3_o7`ngF(bJC;ScK63+<3&mU2+5+R^?}hSPOsEp+URJ+q zm6l+ki7`imAD^I#B}ao!gM`gBp>5VbJnTDK;|@G&uC0>zq_!>njo_1wtqYI6e*LW11vgt;S~_MOE9bFtNK9NP;H=5Pa;UNW zW7Dz|-i#9%jpiyc%!&;OnKFaTk*`4@h-az7hlji59n>=G`)qh_i$1H>WH|D`qidFX z6tj8W9f27-9${f(HSChbrk--gE>^Q{wqaqYG;v8`IPtK6*@0)N!jHba^ENM^XZ)1+ z?4%T<$hd9;*91$v;V(Cd3^X~GVhk` cuKy-qIxVM(Iil8pfq{X+)78&qol`;+0O8$+WdHyG diff --git a/tests/manual/qml/testfiles_quick2/images/qtcreator.ico b/tests/manual/qml/testfiles_quick2/images/qtcreator.ico index 06209ee81e5bd923504ab62b2a356a922f309754..4bf9505ee30f7cbc5982d78b4cd82fbd68dcfe84 100644 GIT binary patch literal 128904 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 NJYD@<);T3K0RX}?j7$Ik literal 20929 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 R_S2%%K1P diff --git a/tests/manual/qml/testfiles_quick2/images/qtcreator.jpg b/tests/manual/qml/testfiles_quick2/images/qtcreator.jpg index 700af01ff13f568a6f5f7aa49917e402a712f5ea..46acfd37fdc2e7a0ce82fa78dda82fb26b5a23a7 100644 GIT binary patch literal 6475 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 ADF6Tf literal 9489 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 H`u{fpK)}83 diff --git a/tests/manual/qml/testfiles_quick2/images/qtcreator.png b/tests/manual/qml/testfiles_quick2/images/qtcreator.png index b1d96b9c433fdc3609820a408eaf2a2dd01a84a5..3a9cf292bcf990e3d9b8871c253d650dc94a125e 100644 GIT binary patch literal 10500 zcmeAS@N?(olHy`uVBq!ia0y~yU}OMc4mJh`hM1xiX$%Y+r#)R9Ln>~)o!c3Iwe;Kn z=k`ChriV@5{fKEtqxPdovz~>`oVLs|>Q=;J-`5fMzb!lYZRN=`wXCcz0S*EJt_MX$ zkFvUoh)#Gq@BZ&S`tmzYKfm`o^4|ROwe|08*ULRO^iJ#gZc{n`uYSGaL=P3AP8X#? zNfl}T{BUM!GT(UyQ}4X(Ggp~iJD>LRriFbq-!a*j8$Pc3wr9F;z*g~FZ(lAjlUDl` zwQ~Jlj>%3po?NnYd^@vjw)BN%3uJ3G7x;eNG(Gffr2g#Z>6b%t>vsFvi=Bwe+%CzO z%eZ}}W3J-%$b)Ng6m7!4WqDNZ%LxpqZoGZJ=~hnKlc$VRN-C_1|Gj*$O;SLL#W;uU zV6l_qhb;^O8SMvS91SioF|9S2v7V9bmZO2QmH_bM&{au0_ zD|$4FB?D8YCx%%5?{E$dGinxWUshzy%_R8npu{VqB}Pd*4l%PeX_VB(bMrC@RyKXu z!?mJEBfUbwU(zsZPW_HmpQ9O>w3Khj%DH$+8p_1B1wQ(7zTx(=1~GvS4*nHA9uFIZ zPjv{s{d0KFocouTWwbfoILzF+i)UqzL}ls`jUj;PI!Znt*k`n;dG7zr53CJV9E+@N78of_6>M%iP!j3^r%|1Og-{PMhlDCV6q=x%ZjZ8X68UYbm?^+a$zp`Jd(4AK?SJ{_I;4 z6a*%!cP!I$jtUd{nd)-f;(x-kA6=d7j!W9vuT2-sjO;W%%$#mfAK3m`n!T~7l1WSX z(xyotrU@=B`{#J(C%b4b`<8=u)EWXMc(y9qNIaVW^5Lbk%tvJ&{+X91#`2JtUukEL zM{Jwl8>1;#ejZA{@(OAaI5|xl(&atA$Bh}^S>5d@l{pK87 z4juUUkWp8Aq0yq)N~X*?_U|6t_|9ZmZ_>apS18;>*Y+!4P07FeAHKHEf6%__{=@C3 zUnl;(n!91A73;OwyQltt{~r4Paee*Oo$DWd4gUY+zl@cRu6E(=l4}pQy*Oh3;P2-7 z2hGLn8|Ul&W&FQ;)5Ln&?QyqRZ?9i^ux<72oBy{r*7ttQ{#pP0KlA&I^85dM`E9WM zkLkND7X#d;urbWt_GRxiW8;N}`wC(viwV5o<5xK)+>_R~;mMWTf0`o;UJJzRE$5Aj zU7O&hyH0FJ(RwMqJ6cWhH`}XDo}6m1EXD0ebAsPbp?7<3uY23}Y4`F4`?fN=aQwGf zXMXj-$KA^l>vQecKfLPRf5`sanxxlT;(KQpEiz%)k)Lbsu)99C{6}`yoNR}>OR|9q z9OqXbkY2_?F+t?S-#mbkMVxoAAKF`uX^QX%UjtmF&?;lV>Lt78{Z@0j+=uIHy>3GcQ|*J z>DiaF0)D1j%nr?y{=M_FMQP;8+oJNH-+$V)s`Ibp{B`!+E3X?@{&?5|cH;l@?+WhE zzkBBya})dZuMNw~j_ywSJo()zPNsSZ9h;A8BG;#SeOD~qxc}Qmb=_k-{W$rj&Hu^Z zw_*8?$y4fA-w;f7S;=rA@s)x@bxt z`Byeg6TBGt;d;mZu;rSo&8`bxW%gtgkYeFq_ntMjjKAcln9B9jpR^)QJvuOJnRMT; z1#uZGnpoARd562rss6Kd!?7P}Tf18s{WO$MF*lTEF}&E|ps-_pZpNUmc_CD_MB(#dpme-%x7gOKYIP+^iq4- zi>Vr_3|2m;S1VX>$lbdky(^6;uh)LY9Stj+h{JPKg}$ErnV&n~?MTX#i`K`LpJjLK zW%QfjHiezx^;L!i>?{WlGynPR|E8yP#vDOjC5I1rN7V&Z9%5S*?!PDXwaKGf+Ow5k zW&fyrTHd##Qh}F2&V@l^o8E>_4t}|NSJ-#GmAoYtZt-p2#19GAHnv_kA(gEZc|FpU z**>StNBNvyyv#Q@&5OUT?_4iq*sCGPP}OwX#$mzJ&;%xy@9W?4`7b--wEs@vta#QR zUyh3fXt(VBqq%15m)YI+hi9kTwcJeY{&_@fn_z#^`IJ8e50u<<9vxh_3UC}y64<7c~@@siha9(NVBgvp{P<~CSzCi_)B%ozDLJbnf}S1SH4-`+~#?#Jaa|% z9;|YjQ(zS<$B^@Z)q$NuPK38f!63nY`sow8DRGIs{#wCLj=E|7mzLj@ZS}$}Nq6pLEqGfVem3s*^jUpL_cL9uTrX_wd=c9={e7(I-9tSe zE$-SF#DS8m^vuioUs@ZuI1Y)(Es49!ytMpOB`d?*8*_yVR(|BtX1{m&OX5*ig%=YZ zMr3u#ORO=N5%{cEW}&xlyjJ~PlPPs+(o^Pi}hg5Nw{UIhhf=PUb75M!8K)hx~Q$T309rsBbQxee>p=9{+6c_bgT zeQrj(qcw-kA?B8YH-CNJlTy*EJMD<;0wWz$)7hoRC(Z4c&Hln8?bHX#3sYO{&&uKpWt~nFz&Z~XguTcriKSQxHy)jpXa`naAXzFI`#5nj`#0OJbO*w^lbxU zoP^OTr)v=@-%5VnZ1W24HdA_SmQ-;V6o51I1ioD3VEX&;;DIYCagUsxIVzeLII*%U z-}{N>?sguoo2eb&{zp`N`0(uBI=Pvg0`&zso3E~K5`D9)H}K&uJ!AEY1}r<4Z!CB6 ztxp#3ckxl~TXMTYi1`3N+up-MayHX93ur}{#Wyy{bG*{7In;dlt-*U2v zWk~Jq-SK71$F?O}*D5pbzWnmyjPMEO238tBz`5az;`Ro>k$Dep7UhW8SnbKK|6%XIOVNV)!OW<>Zu`9!cAc^RUAGi?u0*q~waq1EBiyv!QO zCAVuF1D>)o`AaN`yO(@AC^%kV!~E@AwX?1JPWyBH)N*JySXI5&w{7~=8Idcxm>m`^ z6HMjcPtj05#m*ovP-4W)B%FHWW@Yz}J@umI@d7bTUQ@#xnVRmO&)rZvePMbn3En zoDwdXVZu<+WBEI|QDK3pjX;Fkp9Nov_qnp$Z;)ZhHTb~RSXHs%(Fd)>%N>gx3gkDd z-`IO(#$V;wQ=+MNrss!PgruZMU3~GgB!}tI7ky)8zIY#0*!uN~jEQ!zn` zh3OMZ{JbCY_|Gb^TyZE^$;%R|r7&au{xipxF8g(=BV)~#o41nB2i&OCJ^aD;^LD@b zj0~xZFP_Gqv7RC8G|AY8BVRJmh(Ti+KTB8(yZziq=BwY=6?0TH9pGkTJk&hXa=pj) zDdh#v*zoCumR($TSlM@#|9><0Ui_Z=l)uewa%{qzi-nWl#_-(C zTT>`C@l=Pb!UQ&kx!b=#o|%2xae<+Y$IdP7vM1I&)ZTlc#!*1WX2y)Kdqj5gI5$2x zJBk0tHKi?w@AQ5AU)Q&n%gOd?p?kf!+73pK{Xsoq-Sc$G^Yhm>>`!8Cb;d zg0a!GvT4q1_M7Ye&;G-8p*M|{Wvkr!rUMThlWr~9pl5pZR_c$egR>RG=T`6I@|yAR zknkVd|8)~wnH>?-# zrLK_pZTZvSQbW^|u&tRc#=;%*^cnVoMrmBKBmtvrN3Zy)L@Zm|Z@GK5WS|nmk*3>h6*Ipo1k{VZS#5V9@1f~|*fM^8#|NCv zd;%-l*@ZX9Zzut|j$yf2?>(CXlQXN93H}tgH2=*7u4whJQ%)Q?Z!Q+gGyK+GV>MUq zY^n<g* zdfK*3P>|u>yr#u>KHP8DUmmcY$!A?urIl^eVdhMR4=G&5zeM6WejIj)s1RUcxxKpV z<4IFcaMh;uJa=sz1kPA*xN<=t=;GSLaj|WxxdsQ0JbHR; z^@S%{L97h>)~(qwP3CQ?%Swg?GsFZUWaa+Up&8Bj>)AzH?tW5m*FH$q4KK7sTRouHE^H{+qA%AQ$kuI0rnV`G}1s=6cV z?Dm}<_q|irGv!#zo!BNDT(LmkW&%6IZUKg_qbm<99NqU}!TWa;^br8_7*>Ni% zw@T{bs}Bhe)}=U`^9wLluP)}**Z%q8h4`%7y|s=8_WyeuV%y#&E|JrXz0AJz5!bOB zf0PRHBm?yrDxwSoI8F#>aPmtG$*9p(@u=dlHy{~_6n2SRoSqA{<}Hs)mxJ@;gMG}4Pka5_rRi6^ zd*dyWN5Qj`O8FIk-g16jZB~9>hU+8y@m-7d_Grj6+;U8iVOw;l`Dg2Cp1T_k@6R*6 zdhl`LjnoyYHXZ)HW;LG|Z2G74d*|<2QchYsBc-;SzF=$G%_)p088eFLPd|+iIQzgR$Gmagd42=hj9zE;UY-22VRpxqQ+AKDvgYnys zI))w=J#5au>}~bQFD8$=cXspgE6T35W}IvOO}NU+cEZN{_xIk5JbWY0IXj;9p$@36 z8mq9u&L*PnNo{cAfhlt=6)vA`Zf!m7tY^ww@|oe_$0OGmm$gs$wR!8ysfxFHn;R4S z?g^dtTfTZ9*R`@z+pX5?Di1Uo3WkG*PS>oL-u27LL7PX1<=})fAD1yqC^ZfLu}Nrg zWs_g@FQ>w{6B~B(IN!DL*f~WpC-UUOU7HrXJ$CR=v+VTCy7qJBPDBW8-FV*aT0)4# zj;04oKmljK%G7wS6oY7kt!vq`!`F>X4As{)a94A zHZ91NSZUa{RhFOYQkhP+WS||xmfH%31_BICjn&6KJ(Dy3wKB;!B42LJ>N{dZ(-Sw$ zW`BLtUcV^vq;Pc7!n>XCC`O!4>-JWe?Td%#|S7}grzx&YisedZ#y5D8GoKIC1 z<$a#`u2FT`96$5lS}(RNjZgMD=W#7z$v>?LOFP^y<-4ZO`qjoh!$QQix8vKJebYnRCph^kS2aE0spdR$I$rBf z$u13n2L?g?JqvYnBs@O{ZcfQ=0+onR7 z^xlWwj9QX^)v_tU^COq{w5c|`G}{ilzBgI)ef0s}rvDpUmFw>cslO@Nb;2m=_ueCK z|4RRQ+Q(zjBhvT5!H7X4jfW-dIp;G`UDm)=*}HgGpW5FPw_B*?oza__R#VDv-Obr0 zS~Pv3n1IZVxD%(_!*sO|zILfvF38-Zg}xvwn0y?y#1bq+uvP&IqzDgGtZYh(-@q~ZFz$?Kl?QQ``^X$50|f* zvU91HXi+xz-)XbdHps7j8hWAfcthL2%AECyi4~_hJ~1@JPIxND!y?qe&KW8Ev)n_w zO=%fe)i+Ef?I{!oIJPDM#_#O3j4ayVjNe4~DDPHTd7qetG!P z`G=2_<3Imw%lG?t%l)s;QP0@DsAhe7 zSdzAM;I^$*3W5x6PSz~994^EvaJaOw%TKB2^P6xlwryTz)8#ek3*5b$bWeL(ZIqu~ zz1QKg$s^U~hmG@Qv%5{3`s1CE%>MLg3vC$X1N}O4J8UPUaC4|IHzWx)9Z3*AXqyl+a4qsB=7}nbVJ3ya ztc_dOGc8t-*i+6FvtmDs-;`Uc7j!;lE{HOibK0xUYO~q{lSL9=u%P{{f&o)=WA*Vv8>7_^tPFApxLqQg_FVtc)-^}E zmM)7Z`t$XT)zwUwi4PlB*f=iu@IbWe@PSp&7JUKRtW;LhJAgYqv(^vIsSKION` zqVpY}?(W;E9J{YQxYkiYp25b4n#y@ zGOMlS3L-nduU7bzdW8Q5?~wvO<+3~8Z|>c(t@T)(-#k%B&V!}FrC_!_M^8Ju^Phx- za>>H5gG@IHHG8-JIi>Z6O=jcwnHzMqFG|VT?AvOuqgy5YZF5=9`BYWYro+sOQ(a2x z{%n2tu3d9YYD8PAYTRLu=->BWPB*`GG*4kmvx5}Fms3HYM8?^7QuvFPe@nRcy+;N+ zPD$ma1j|YP;=H~|NICV$!QICXy63#Dit|-0uhRAQbuE>gw|0HX+-~;7yFb@{$h^6| z#!NvoS;}UgW!Q0npdW{t+5f${c%){z;l6^Ltsx8nXQWwP859&%G)$XdD>zLij?;dA zG`R?-`6?Zd^>r<*?&G}n;x#Zy1f3WF>^O}_yOaa#R_JrJT|*F z`X89h&d9&iYs;D?wl+T&-`*X>JvpHs2JvA9;ChMndOtNwj;-xGw}((L>tu47W7tbxct(O zhhK-avE##mUp9?%&b{YmxTsK2Bze)JV#Czf`=+bU`>o-tvWiWaci`m1gU&&1?5h+e zT>p8OL4q$!;DJKNhYt(7AAC@-Gmb2GJs94*W@%-`wI>bBFQ=Xt?x+#HF;~4Jpk|&! z-t*@SH;ywjER$q0YG;2K9k%Gk?$r4+>R8|GpCAF|gulau0KWTL|7%lo*$<%#_dAa3& zbp{*X|En8Lbn+ozm$2-&%$s~ zq2rj*Bl)SbefBdI9Nl*7WywW_2^&veSeWXPZfVcXuzTI9vnm`py2@4wk)Hc)7vD&| zFBQyiU}|FUr)R6?`SJ5Mo#5nOqOZKJe8uO*ANCaWFfpz*IKdZQ@nDV7Bk85@XV$UG zq;KYmE$97YJy%YE#q1g9iqji-S^P@t{23&e7+cvD69WQ@PaNSsz$zKODKX$##Qw`K z4>~+}V$*o}R0sds*H2@fhch>5@w7B4>^jwP($e_Ht$f?8tlYL<@p6Yt|1ur@m;Y`) z5CK}T@mAqO3*+zqbKd@uVR$ob*KLyq1rDC7Y+n9F8+v{?AN_A~U;EF`H&POt%J(c& zRIy#()S;u?w)M0D(;WG$(=F@omvPKsXPhed*YSdNvPH<%c)k}uuHUryAijLx<4$Mg z%N-(eH{#rSc%FY}X|U&TYx?`pG3iJfJGb|}FU5aO?G~?mu8^nuN-04nl7}N{Wsii8 zO^3?!=L{#lvNdRN6s=)*G?^m!eN(Ra3Zt?MPqr%Of3EjCVe)95KxLDLzH-+qqZ*Y< zbMEst1RhWnU|^Zn!p^6o+*KjUbKiVszV5c-$j&pBOzKkw$;85b zl|4Ji9)<7~C!Vok`Okv~)_qX8b*e*BNY`|!QPS>>!Y?mA z{v*S{KI5_chc<@@M}<T2 z75`D;U}c)PzNzD#QO|+d>=Ogsc$k_qO6yn|<}G7oGiqb+(@}o6&?xD~>5hwU{>U)= zJo8c1n43vUIcVMi$J8U|ZZEp?^DjdJH+a>`kq^@at@B^|pX={BD}Q)S9Zv?c@NJ1`Px?(H4)uCqfvLll|Paece_%^-%&m3#9^}<#Ddu|L23=E#GelF{r5}E)P CJPv&T literal 12498 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 M)78&qol`;+0I)G=+5i9m