summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/generichighlighter
diff options
context:
space:
mode:
authorjkobus <jaroslaw.kobus@digia.com>2013-09-13 12:13:10 +0200
committerChristian Stenger <christian.stenger@digia.com>2013-09-18 17:25:41 +0200
commit5d15076ea14262b474dd60768e6d80ef498cfdd1 (patch)
treeacb14dbe24ed5de2f08baa021ea566571aa7a58f /src/plugins/texteditor/generichighlighter
parent8e62876f642901ba12121e6699b35986ff9595b5 (diff)
downloadqt-creator-5d15076ea14262b474dd60768e6d80ef498cfdd1.tar.gz
Fix compilation of generichighlighter test on Windows
Change-Id: I25c2f68528ede12fa900ea86973c6df39667c421 Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com> Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Diffstat (limited to 'src/plugins/texteditor/generichighlighter')
-rw-r--r--src/plugins/texteditor/generichighlighter/highlighter.cpp17
-rw-r--r--src/plugins/texteditor/generichighlighter/highlighter.h23
-rw-r--r--src/plugins/texteditor/generichighlighter/highlighterutils.cpp70
-rw-r--r--src/plugins/texteditor/generichighlighter/highlighterutils.h53
4 files changed, 22 insertions, 141 deletions
diff --git a/src/plugins/texteditor/generichighlighter/highlighter.cpp b/src/plugins/texteditor/generichighlighter/highlighter.cpp
index 7cd1bfca37..06106e9703 100644
--- a/src/plugins/texteditor/generichighlighter/highlighter.cpp
+++ b/src/plugins/texteditor/generichighlighter/highlighter.cpp
@@ -35,7 +35,7 @@
#include "highlighterexception.h"
#include "progressdata.h"
#include "reuse.h"
-#include <texteditor/tabsettings.h>
+#include "tabsettings.h"
#include <QLatin1String>
#include <QLatin1Char>
@@ -50,8 +50,6 @@ namespace {
static const QLatin1Char kHash('#');
}
-const Highlighter::KateFormatMap Highlighter::m_kateFormats;
-
Highlighter::Highlighter(QTextDocument *parent) :
TextEditor::SyntaxHighlighter(parent),
m_regionDepth(0),
@@ -92,7 +90,14 @@ Highlighter::BlockData::BlockData() : m_foldingIndentDelta(0), m_originalObserva
Highlighter::BlockData::~BlockData()
{}
-Highlighter::KateFormatMap::KateFormatMap()
+// Mapping from Kate format strings to format ids.
+struct KateFormatMap
+{
+ KateFormatMap();
+ QHash<QString, Highlighter::TextFormatId> m_ids;
+};
+
+KateFormatMap::KateFormatMap()
{
m_ids.insert(QLatin1String("dsNormal"), Highlighter::Normal);
m_ids.insert(QLatin1String("dsKeyword"), Highlighter::Keyword);
@@ -110,6 +115,8 @@ Highlighter::KateFormatMap::KateFormatMap()
m_ids.insert(QLatin1String("dsOthers"), Highlighter::Others);
}
+Q_GLOBAL_STATIC(KateFormatMap, kateFormatMap)
+
void Highlighter::setDefaultContext(const QSharedPointer<Context> &defaultContext)
{
m_defaultContext = defaultContext;
@@ -404,7 +411,7 @@ void Highlighter::applyFormat(int offset,
return;
}
- TextFormatId formatId = m_kateFormats.m_ids.value(itemData->style(), Normal);
+ TextFormatId formatId = kateFormatMap()->m_ids.value(itemData->style(), Normal);
if (formatId != Normal) {
QTextCharFormat format = formatForCategory(formatId);
if (itemData->isCustomized()) {
diff --git a/src/plugins/texteditor/generichighlighter/highlighter.h b/src/plugins/texteditor/generichighlighter/highlighter.h
index 470506fdf4..968a48a6c1 100644
--- a/src/plugins/texteditor/generichighlighter/highlighter.h
+++ b/src/plugins/texteditor/generichighlighter/highlighter.h
@@ -30,12 +30,12 @@
#ifndef HIGHLIGHTER_H
#define HIGHLIGHTER_H
-#include <texteditor/basetextdocumentlayout.h>
-#include <texteditor/syntaxhighlighter.h>
-#include <texteditor/texteditor_global.h>
-
#include "context.h"
+// Yes, this is correct. These are found somewhere else when building the autotest.
+#include <basetextdocumentlayout.h>
+#include <syntaxhighlighter.h>
+
#include <QString>
#include <QVector>
#include <QStack>
@@ -55,7 +55,12 @@ class ProgressData;
} // namespace Internal
-class TEXTEDITOR_EXPORT Highlighter : public TextEditor::SyntaxHighlighter
+/*
+ Warning: Due to a very ugly hack with generichighlighter test
+ you can't export this class, so that it would be used from
+ other plugins. That's why highlighterutils.h was introduced.
+*/
+class Highlighter : public TextEditor::SyntaxHighlighter
{
Q_OBJECT
@@ -129,14 +134,6 @@ private:
void applyIndentationBasedFolding(const QString &text) const;
int neighbouringNonEmptyBlockIndent(QTextBlock block, const bool previous) const;
- // Mapping from Kate format strings to format ids.
- struct KateFormatMap
- {
- KateFormatMap();
- QHash<QString, TextFormatId> m_ids;
- };
- static const KateFormatMap m_kateFormats;
-
struct BlockData : TextBlockUserData
{
BlockData();
diff --git a/src/plugins/texteditor/generichighlighter/highlighterutils.cpp b/src/plugins/texteditor/generichighlighter/highlighterutils.cpp
deleted file mode 100644
index 4ecd5b675c..0000000000
--- a/src/plugins/texteditor/generichighlighter/highlighterutils.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** 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 Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-****************************************************************************/
-
-#include "highlighterutils.h"
-#include "highlighter.h"
-#include "highlightdefinition.h"
-#include "manager.h"
-#include <coreplugin/icore.h>
-
-using namespace TextEditor;
-using namespace Internal;
-
-QString TextEditor::findDefinitionId(const Core::MimeType &mimeType,
- bool considerParents)
-{
- QString definitionId = Manager::instance()->definitionIdByAnyMimeType(mimeType.aliases());
- if (definitionId.isEmpty() && considerParents) {
- definitionId = Manager::instance()->definitionIdByAnyMimeType(mimeType.subClassesOf());
- if (definitionId.isEmpty()) {
- foreach (const QString &parent, mimeType.subClassesOf()) {
- const Core::MimeType &parentMimeType = Core::MimeDatabase::findByType(parent);
- definitionId = findDefinitionId(parentMimeType, considerParents);
- }
- }
- }
- return definitionId;
-}
-
-void TextEditor::setMimeTypeForHighlighter(Highlighter *highlighter, const Core::MimeType &mimeType)
-{
- const QString type = mimeType.type();
- QString definitionId = Manager::instance()->definitionIdByMimeType(type);
- if (definitionId.isEmpty())
- definitionId = findDefinitionId(mimeType, true);
-
- if (!definitionId.isEmpty()) {
- const QSharedPointer<HighlightDefinition> &definition =
- Manager::instance()->definition(definitionId);
- if (!definition.isNull() && definition->isValid()) {
- highlighter->setDefaultContext(definition->initialContext());
- }
- }
-
-}
diff --git a/src/plugins/texteditor/generichighlighter/highlighterutils.h b/src/plugins/texteditor/generichighlighter/highlighterutils.h
deleted file mode 100644
index a781ac7e17..0000000000
--- a/src/plugins/texteditor/generichighlighter/highlighterutils.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** 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 Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-****************************************************************************/
-
-#ifndef HIGHLIGHTERUTILS_H
-#define HIGHLIGHTERUTILS_H
-
-#include <QString>
-#include <texteditor/texteditor_global.h>
-
-/* These methods were originally a part of TextEditor::Highlighter,
- * but due to a very hackish test of that generic highlighter,
- * there methods must be outside. */
-
-namespace Core {
-class MimeType;
-}
-
-namespace TextEditor {
-
-class Highlighter;
-
-void TEXTEDITOR_EXPORT setMimeTypeForHighlighter(Highlighter *highlighter, const Core::MimeType &mimeType);
-QString TEXTEDITOR_EXPORT findDefinitionId(const Core::MimeType &mimeType, bool considerParents);
-
-} // namespace TextEditor
-
-#endif // HIGHLIGHTERUTILS_H