forked from qt-creator/qt-creator
Utils: Move SearchResultItem/Color into Utils
It's going to be reused inside FileSearch. Change-Id: I8993d7158ff31c311c2283d32bc43465a8946a52 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -147,6 +147,7 @@ add_qtc_library(Utils
|
|||||||
runextensions.cpp runextensions.h
|
runextensions.cpp runextensions.h
|
||||||
savefile.cpp savefile.h
|
savefile.cpp savefile.h
|
||||||
scopedswap.h
|
scopedswap.h
|
||||||
|
searchresultitem.cpp searchresultitem.h
|
||||||
set_algorithm.h
|
set_algorithm.h
|
||||||
settingsaccessor.cpp settingsaccessor.h
|
settingsaccessor.cpp settingsaccessor.h
|
||||||
settingsselector.cpp settingsselector.h
|
settingsselector.cpp settingsselector.h
|
||||||
|
|||||||
59
src/libs/utils/searchresultitem.cpp
Normal file
59
src/libs/utils/searchresultitem.cpp
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
#include "searchresultitem.h"
|
||||||
|
|
||||||
|
namespace Utils {
|
||||||
|
|
||||||
|
int Search::TextRange::length(const QString &text) const
|
||||||
|
{
|
||||||
|
if (begin.line == end.line)
|
||||||
|
return end.column - begin.column;
|
||||||
|
|
||||||
|
const int lineCount = end.line - begin.line;
|
||||||
|
int index = text.indexOf(QChar::LineFeed);
|
||||||
|
int currentLine = 1;
|
||||||
|
while (index > 0 && currentLine < lineCount) {
|
||||||
|
++index;
|
||||||
|
index = text.indexOf(QChar::LineFeed, index);
|
||||||
|
++currentLine;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (index < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return index - begin.column + end.column;
|
||||||
|
}
|
||||||
|
|
||||||
|
SearchResultColor::SearchResultColor(const QColor &textBg, const QColor &textFg,
|
||||||
|
const QColor &highlightBg, const QColor &highlightFg,
|
||||||
|
const QColor &functionBg, const QColor &functionFg)
|
||||||
|
: textBackground(textBg)
|
||||||
|
, textForeground(textFg)
|
||||||
|
, highlightBackground(highlightBg)
|
||||||
|
, highlightForeground(highlightFg)
|
||||||
|
, containingFunctionBackground(functionBg)
|
||||||
|
, containingFunctionForeground(functionFg)
|
||||||
|
{
|
||||||
|
if (!highlightBackground.isValid())
|
||||||
|
highlightBackground = textBackground;
|
||||||
|
if (!highlightForeground.isValid())
|
||||||
|
highlightForeground = textForeground;
|
||||||
|
if (!containingFunctionBackground.isValid())
|
||||||
|
containingFunctionBackground = textBackground;
|
||||||
|
if (!containingFunctionForeground.isValid())
|
||||||
|
containingFunctionForeground = textForeground;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTCREATOR_UTILS_EXPORT size_t qHash(SearchResultColor::Style style, uint seed)
|
||||||
|
{
|
||||||
|
int a = int(style);
|
||||||
|
return ::qHash(a, seed);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SearchResultItem::setMainRange(int line, int column, int length)
|
||||||
|
{
|
||||||
|
m_mainRange = {{line, column}, {line, column + length}};
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Utils
|
||||||
@@ -1,82 +1,78 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "searchresultcolor.h"
|
#include "utils_global.h"
|
||||||
|
|
||||||
#include <utils/filepath.h>
|
#include <utils/filepath.h>
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
|
|
||||||
|
#include <QColor>
|
||||||
|
#include <QHash>
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
|
||||||
namespace Core {
|
namespace Utils {
|
||||||
|
|
||||||
namespace Search {
|
namespace Search {
|
||||||
|
|
||||||
class TextPosition
|
class QTCREATOR_UTILS_EXPORT TextPosition
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TextPosition() = default;
|
|
||||||
TextPosition(int line, int column) : line(line), column(column) {}
|
|
||||||
|
|
||||||
int line = -1; // (0 or -1 for no line number)
|
int line = -1; // (0 or -1 for no line number)
|
||||||
int column = -1; // 0-based starting position for a mark (-1 for no mark)
|
int column = -1; // 0-based starting position for a mark (-1 for no mark)
|
||||||
|
|
||||||
bool operator<(const TextPosition &other)
|
bool operator<(const TextPosition &other) const
|
||||||
{ return line < other.line || (line == other.line && column < other.column); }
|
{ return line < other.line || (line == other.line && column < other.column); }
|
||||||
};
|
};
|
||||||
|
|
||||||
class TextRange
|
class QTCREATOR_UTILS_EXPORT TextRange
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TextRange() = default;
|
|
||||||
TextRange(TextPosition begin, TextPosition end) : begin(begin), end(end) {}
|
|
||||||
|
|
||||||
QString mid(const QString &text) const { return text.mid(begin.column, length(text)); }
|
QString mid(const QString &text) const { return text.mid(begin.column, length(text)); }
|
||||||
|
int length(const QString &text) const;
|
||||||
int length(const QString &text) const
|
|
||||||
{
|
|
||||||
if (begin.line == end.line)
|
|
||||||
return end.column - begin.column;
|
|
||||||
|
|
||||||
const int lineCount = end.line - begin.line;
|
|
||||||
int index = text.indexOf(QChar::LineFeed);
|
|
||||||
int currentLine = 1;
|
|
||||||
while (index > 0 && currentLine < lineCount) {
|
|
||||||
++index;
|
|
||||||
index = text.indexOf(QChar::LineFeed, index);
|
|
||||||
++currentLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (index < 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return index - begin.column + end.column;
|
|
||||||
}
|
|
||||||
|
|
||||||
TextPosition begin;
|
TextPosition begin;
|
||||||
TextPosition end;
|
TextPosition end;
|
||||||
|
|
||||||
bool operator<(const TextRange &other)
|
bool operator<(const TextRange &other) const { return begin < other.begin; }
|
||||||
{ return begin < other.begin; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Search
|
} // namespace Search
|
||||||
|
|
||||||
class CORE_EXPORT SearchResultItem
|
class QTCREATOR_UTILS_EXPORT SearchResultColor
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum class Style { Default, Alt1, Alt2 };
|
||||||
|
|
||||||
|
SearchResultColor() = default;
|
||||||
|
SearchResultColor(const QColor &textBg, const QColor &textFg,
|
||||||
|
const QColor &highlightBg, const QColor &highlightFg,
|
||||||
|
const QColor &functionBg, const QColor &functionFg);
|
||||||
|
|
||||||
|
QColor textBackground;
|
||||||
|
QColor textForeground;
|
||||||
|
QColor highlightBackground;
|
||||||
|
QColor highlightForeground;
|
||||||
|
QColor containingFunctionBackground;
|
||||||
|
QColor containingFunctionForeground;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QTCREATOR_UTILS_EXPORT friend size_t qHash(Style style, uint seed);
|
||||||
|
};
|
||||||
|
|
||||||
|
using SearchResultColors = QHash<SearchResultColor::Style, SearchResultColor>;
|
||||||
|
|
||||||
|
class QTCREATOR_UTILS_EXPORT SearchResultItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QStringList path() const { return m_path; }
|
QStringList path() const { return m_path; }
|
||||||
void setPath(const QStringList &path) { m_path = path; }
|
void setPath(const QStringList &path) { m_path = path; }
|
||||||
void setFilePath(const Utils::FilePath &filePath)
|
void setFilePath(const Utils::FilePath &filePath) { m_path = {filePath.toUserOutput()}; }
|
||||||
{
|
|
||||||
m_path = QStringList{filePath.toUserOutput()};
|
|
||||||
}
|
|
||||||
|
|
||||||
QString lineText() const { return m_lineText; }
|
QString lineText() const { return m_lineText; }
|
||||||
void setLineText(const QString &text) { m_lineText = text; }
|
void setLineText(const QString &text) { m_lineText = text; }
|
||||||
@@ -89,14 +85,7 @@ public:
|
|||||||
|
|
||||||
Search::TextRange mainRange() const { return m_mainRange; }
|
Search::TextRange mainRange() const { return m_mainRange; }
|
||||||
void setMainRange(const Search::TextRange &mainRange) { m_mainRange = mainRange; }
|
void setMainRange(const Search::TextRange &mainRange) { m_mainRange = mainRange; }
|
||||||
void setMainRange(int line, int column, int length)
|
void setMainRange(int line, int column, int length);
|
||||||
{
|
|
||||||
m_mainRange = {};
|
|
||||||
m_mainRange.begin.line = line;
|
|
||||||
m_mainRange.begin.column = column;
|
|
||||||
m_mainRange.end.line = m_mainRange.begin.line;
|
|
||||||
m_mainRange.end.column = m_mainRange.begin.column + length;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool useTextEditorFont() const { return m_useTextEditorFont; }
|
bool useTextEditorFont() const { return m_useTextEditorFont; }
|
||||||
void setUseTextEditorFont(bool useTextEditorFont) { m_useTextEditorFont = useTextEditorFont; }
|
void setUseTextEditorFont(bool useTextEditorFont) { m_useTextEditorFont = useTextEditorFont; }
|
||||||
@@ -109,9 +98,9 @@ public:
|
|||||||
|
|
||||||
std::optional<QString> containingFunctionName() const { return m_containingFunctionName; }
|
std::optional<QString> containingFunctionName() const { return m_containingFunctionName; }
|
||||||
|
|
||||||
void setContainingFunctionName(std::optional<QString> containingFunctionName)
|
void setContainingFunctionName(const std::optional<QString> &containingFunctionName)
|
||||||
{
|
{
|
||||||
m_containingFunctionName = std::move(containingFunctionName);
|
m_containingFunctionName = containingFunctionName;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -126,7 +115,7 @@ private:
|
|||||||
std::optional<QString> m_containingFunctionName;
|
std::optional<QString> m_containingFunctionName;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Core
|
} // namespace Utils
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(Core::SearchResultItem)
|
Q_DECLARE_METATYPE(Utils::SearchResultItem)
|
||||||
Q_DECLARE_METATYPE(Core::Search::TextPosition)
|
Q_DECLARE_METATYPE(Utils::Search::TextPosition)
|
||||||
@@ -275,6 +275,8 @@ Project {
|
|||||||
"savefile.cpp",
|
"savefile.cpp",
|
||||||
"savefile.h",
|
"savefile.h",
|
||||||
"scopedswap.h",
|
"scopedswap.h",
|
||||||
|
"searchresultitem.cpp",
|
||||||
|
"searchresultitem.h",
|
||||||
"set_algorithm.h",
|
"set_algorithm.h",
|
||||||
"settingsaccessor.cpp",
|
"settingsaccessor.cpp",
|
||||||
"settingsaccessor.h",
|
"settingsaccessor.h",
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <coreplugin/find/searchresultitem.h>
|
|
||||||
#include <cppeditor/baseeditordocumentparser.h>
|
#include <cppeditor/baseeditordocumentparser.h>
|
||||||
#include <cppeditor/cppcodemodelsettings.h>
|
#include <cppeditor/cppcodemodelsettings.h>
|
||||||
#include <cppeditor/cursorineditor.h>
|
#include <cppeditor/cursorineditor.h>
|
||||||
#include <languageclient/client.h>
|
#include <languageclient/client.h>
|
||||||
#include <utils/link.h>
|
#include <utils/link.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QVersionNumber>
|
#include <QVersionNumber>
|
||||||
|
|
||||||
@@ -119,7 +119,7 @@ public:
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
void indexingFinished();
|
void indexingFinished();
|
||||||
void foundReferences(const QList<Core::SearchResultItem> &items);
|
void foundReferences(const QList<Utils::SearchResultItem> &items);
|
||||||
void findUsagesDone();
|
void findUsagesDone();
|
||||||
void helpItemGathered(const Core::HelpItem &helpItem);
|
void helpItemGathered(const Core::HelpItem &helpItem);
|
||||||
void highlightingResultsReady(const TextEditor::HighlightingResults &results,
|
void highlightingResultsReady(const TextEditor::HighlightingResults &results,
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <coreplugin/find/searchresultitem.h>
|
|
||||||
#include <cppeditor/cursorineditor.h>
|
#include <cppeditor/cursorineditor.h>
|
||||||
#include <utils/link.h>
|
#include <utils/link.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ public:
|
|||||||
~ClangdFindReferences();
|
~ClangdFindReferences();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void foundReferences(const QList<Core::SearchResultItem> &items);
|
void foundReferences(const QList<Utils::SearchResultItem> &items);
|
||||||
void done();
|
void done();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ using namespace CppEditor::Tests;
|
|||||||
using namespace LanguageClient;
|
using namespace LanguageClient;
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
using namespace TextEditor;
|
using namespace TextEditor;
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace ClangCodeModel {
|
namespace ClangCodeModel {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -97,7 +98,7 @@ ClangdTest::~ClangdTest()
|
|||||||
delete m_projectDir;
|
delete m_projectDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath ClangdTest::filePath(const QString &fileName) const
|
FilePath ClangdTest::filePath(const QString &fileName) const
|
||||||
{
|
{
|
||||||
return m_projectDir->absolutePath(fileName);
|
return m_projectDir->absolutePath(fileName);
|
||||||
}
|
}
|
||||||
@@ -139,7 +140,7 @@ void ClangdTest::initTestCase()
|
|||||||
{
|
{
|
||||||
const QString clangdFromEnv = Utils::qtcEnvironmentVariable("QTC_CLANGD");
|
const QString clangdFromEnv = Utils::qtcEnvironmentVariable("QTC_CLANGD");
|
||||||
if (!clangdFromEnv.isEmpty())
|
if (!clangdFromEnv.isEmpty())
|
||||||
CppEditor::ClangdSettings::setClangdFilePath(Utils::FilePath::fromString(clangdFromEnv));
|
CppEditor::ClangdSettings::setClangdFilePath(FilePath::fromString(clangdFromEnv));
|
||||||
const auto clangd = CppEditor::ClangdSettings::instance().clangdFilePath();
|
const auto clangd = CppEditor::ClangdSettings::instance().clangdFilePath();
|
||||||
if (clangd.isEmpty() || !clangd.exists())
|
if (clangd.isEmpty() || !clangd.exists())
|
||||||
QSKIP("clangd binary not found");
|
QSKIP("clangd binary not found");
|
||||||
@@ -408,13 +409,13 @@ void ClangdTestFollowSymbol::test()
|
|||||||
timer.setSingleShot(true);
|
timer.setSingleShot(true);
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
QObject::connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit);
|
QObject::connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit);
|
||||||
Utils::Link actualLink;
|
Link actualLink;
|
||||||
const auto handler = [&actualLink, &loop](const Utils::Link &l) {
|
const auto handler = [&actualLink, &loop](const Link &l) {
|
||||||
actualLink = l;
|
actualLink = l;
|
||||||
loop.quit();
|
loop.quit();
|
||||||
};
|
};
|
||||||
QTextCursor cursor(doc->document());
|
QTextCursor cursor(doc->document());
|
||||||
const int pos = Utils::Text::positionInText(doc->document(), sourceLine, sourceColumn);
|
const int pos = Text::positionInText(doc->document(), sourceLine, sourceColumn);
|
||||||
cursor.setPosition(pos);
|
cursor.setPosition(pos);
|
||||||
client()->followSymbol(doc, cursor, nullptr, handler, true,
|
client()->followSymbol(doc, cursor, nullptr, handler, true,
|
||||||
goToType ? FollowTo::SymbolType : FollowTo::SymbolDef, false);
|
goToType ? FollowTo::SymbolType : FollowTo::SymbolDef, false);
|
||||||
@@ -520,15 +521,14 @@ void ClangdTestLocalReferences::test()
|
|||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
QObject::connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit);
|
QObject::connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit);
|
||||||
QList<Range> actualRanges;
|
QList<Range> actualRanges;
|
||||||
const auto handler = [&actualRanges, &loop](const QString &symbol,
|
const auto handler = [&actualRanges, &loop](const QString &symbol, const Links &links, int) {
|
||||||
const Utils::Links &links, int) {
|
for (const Link &link : links)
|
||||||
for (const Utils::Link &link : links)
|
|
||||||
actualRanges << Range(link.targetLine, link.targetColumn, symbol.length());
|
actualRanges << Range(link.targetLine, link.targetColumn, symbol.length());
|
||||||
loop.quit();
|
loop.quit();
|
||||||
};
|
};
|
||||||
|
|
||||||
QTextCursor cursor(doc->document());
|
QTextCursor cursor(doc->document());
|
||||||
const int pos = Utils::Text::positionInText(doc->document(), sourceLine, sourceColumn);
|
const int pos = Text::positionInText(doc->document(), sourceLine, sourceColumn);
|
||||||
cursor.setPosition(pos);
|
cursor.setPosition(pos);
|
||||||
client()->findLocalUsages(doc, cursor, std::move(handler));
|
client()->findLocalUsages(doc, cursor, std::move(handler));
|
||||||
timer.start(10000);
|
timer.start(10000);
|
||||||
@@ -659,7 +659,7 @@ void ClangdTestTooltips::test()
|
|||||||
connect(client(), &ClangdClient::helpItemGathered, &loop, handler);
|
connect(client(), &ClangdClient::helpItemGathered, &loop, handler);
|
||||||
|
|
||||||
QTextCursor cursor(doc->document());
|
QTextCursor cursor(doc->document());
|
||||||
const int pos = Utils::Text::positionInText(doc->document(), line, column);
|
const int pos = Text::positionInText(doc->document(), line, column);
|
||||||
cursor.setPosition(pos);
|
cursor.setPosition(pos);
|
||||||
editor->editorWidget()->processTooltipRequest(cursor);
|
editor->editorWidget()->processTooltipRequest(cursor);
|
||||||
|
|
||||||
@@ -1316,11 +1316,11 @@ void ClangdTestHighlighting::test()
|
|||||||
|
|
||||||
const TextEditor::TextDocument * const doc = document("highlighting.cpp");
|
const TextEditor::TextDocument * const doc = document("highlighting.cpp");
|
||||||
QVERIFY(doc);
|
QVERIFY(doc);
|
||||||
const int startPos = Utils::Text::positionInText(doc->document(), firstLine, startColumn);
|
const int startPos = Text::positionInText(doc->document(), firstLine, startColumn);
|
||||||
const int endPos = Utils::Text::positionInText(doc->document(), lastLine, endColumn);
|
const int endPos = Text::positionInText(doc->document(), lastLine, endColumn);
|
||||||
|
|
||||||
const auto lessThan = [=](const TextEditor::HighlightingResult &r, int) {
|
const auto lessThan = [=](const TextEditor::HighlightingResult &r, int) {
|
||||||
return Utils::Text::positionInText(doc->document(), r.line, r.column) < startPos;
|
return Text::positionInText(doc->document(), r.line, r.column) < startPos;
|
||||||
};
|
};
|
||||||
const auto findResults = [=] {
|
const auto findResults = [=] {
|
||||||
TextEditor::HighlightingResults results;
|
TextEditor::HighlightingResults results;
|
||||||
@@ -1328,7 +1328,7 @@ void ClangdTestHighlighting::test()
|
|||||||
if (it == m_results.cend())
|
if (it == m_results.cend())
|
||||||
return results;
|
return results;
|
||||||
while (it != m_results.cend()) {
|
while (it != m_results.cend()) {
|
||||||
const int resultEndPos = Utils::Text::positionInText(doc->document(), it->line,
|
const int resultEndPos = Text::positionInText(doc->document(), it->line,
|
||||||
it->column) + it->length;
|
it->column) + it->length;
|
||||||
if (resultEndPos > endPos)
|
if (resultEndPos > endPos)
|
||||||
break;
|
break;
|
||||||
@@ -1439,7 +1439,7 @@ public:
|
|||||||
{
|
{
|
||||||
const int pos = currentPosition();
|
const int pos = currentPosition();
|
||||||
QPair<int, int> lineAndColumn;
|
QPair<int, int> lineAndColumn;
|
||||||
Utils::Text::convertPosition(m_doc, pos, &lineAndColumn.first, &lineAndColumn.second);
|
Text::convertPosition(m_doc, pos, &lineAndColumn.first, &lineAndColumn.second);
|
||||||
return lineAndColumn;
|
return lineAndColumn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1864,7 +1864,7 @@ void ClangdTestCompletion::startCollectingHighlightingInfo()
|
|||||||
{
|
{
|
||||||
m_documentsWithHighlighting.clear();
|
m_documentsWithHighlighting.clear();
|
||||||
connect(client(), &ClangdClient::highlightingResultsReady, this,
|
connect(client(), &ClangdClient::highlightingResultsReady, this,
|
||||||
[this](const HighlightingResults &, const Utils::FilePath &file) {
|
[this](const HighlightingResults &, const FilePath &file) {
|
||||||
m_documentsWithHighlighting.insert(file);
|
m_documentsWithHighlighting.insert(file);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -1881,7 +1881,7 @@ void ClangdTestCompletion::getProposal(const QString &fileName,
|
|||||||
if (cursorPos)
|
if (cursorPos)
|
||||||
*cursorPos = pos;
|
*cursorPos = pos;
|
||||||
int line, column;
|
int line, column;
|
||||||
Utils::Text::convertPosition(doc->document(), pos, &line, &column);
|
Text::convertPosition(doc->document(), pos, &line, &column);
|
||||||
const auto editor = qobject_cast<BaseTextEditor *>(
|
const auto editor = qobject_cast<BaseTextEditor *>(
|
||||||
EditorManager::openEditorAt({doc->filePath(), line, column - 1}));
|
EditorManager::openEditorAt({doc->filePath(), line, column - 1}));
|
||||||
QVERIFY(editor);
|
QVERIFY(editor);
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <cppeditor/cpptoolstestcase.h>
|
#include <cppeditor/cpptoolstestcase.h>
|
||||||
#include <coreplugin/find/searchresultitem.h>
|
|
||||||
#include <texteditor/blockrange.h>
|
#include <texteditor/blockrange.h>
|
||||||
#include <texteditor/codeassist/genericproposal.h>
|
#include <texteditor/codeassist/genericproposal.h>
|
||||||
#include <texteditor/semantichighlighter.h>
|
#include <texteditor/semantichighlighter.h>
|
||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
@@ -74,7 +74,7 @@ private slots:
|
|||||||
void test();
|
void test();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<Core::SearchResultItem> m_actualResults;
|
QList<Utils::SearchResultItem> m_actualResults;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ClangdTestFollowSymbol : public ClangdTest
|
class ClangdTestFollowSymbol : public ClangdTest
|
||||||
|
|||||||
@@ -72,8 +72,6 @@ add_qtc_plugin(Core
|
|||||||
find/ifindsupport.cpp find/ifindsupport.h
|
find/ifindsupport.cpp find/ifindsupport.h
|
||||||
find/itemviewfind.cpp find/itemviewfind.h
|
find/itemviewfind.cpp find/itemviewfind.h
|
||||||
find/optionspopup.cpp find/optionspopup.h
|
find/optionspopup.cpp find/optionspopup.h
|
||||||
find/searchresultcolor.h
|
|
||||||
find/searchresultitem.h
|
|
||||||
find/searchresulttreeitemdelegate.cpp find/searchresulttreeitemdelegate.h
|
find/searchresulttreeitemdelegate.cpp find/searchresulttreeitemdelegate.h
|
||||||
find/searchresulttreeitemroles.h
|
find/searchresulttreeitemroles.h
|
||||||
find/searchresulttreeitems.cpp find/searchresulttreeitems.h
|
find/searchresulttreeitems.cpp find/searchresulttreeitems.h
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
#include <utils/mimeutils.h>
|
#include <utils/mimeutils.h>
|
||||||
#include <utils/pathchooser.h>
|
#include <utils/pathchooser.h>
|
||||||
#include <utils/savefile.h>
|
#include <utils/savefile.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
#include <utils/stringutils.h>
|
#include <utils/stringutils.h>
|
||||||
#include <utils/theme/theme.h>
|
#include <utils/theme/theme.h>
|
||||||
#include <utils/theme/theme_p.h>
|
#include <utils/theme/theme_p.h>
|
||||||
@@ -71,7 +72,7 @@ void CorePlugin::setupSystemEnvironment()
|
|||||||
CorePlugin::CorePlugin()
|
CorePlugin::CorePlugin()
|
||||||
{
|
{
|
||||||
qRegisterMetaType<Id>();
|
qRegisterMetaType<Id>();
|
||||||
qRegisterMetaType<Core::Search::TextPosition>();
|
qRegisterMetaType<Utils::Search::TextPosition>();
|
||||||
qRegisterMetaType<Utils::CommandLine>();
|
qRegisterMetaType<Utils::CommandLine>();
|
||||||
qRegisterMetaType<Utils::FilePath>();
|
qRegisterMetaType<Utils::FilePath>();
|
||||||
qRegisterMetaType<Utils::Environment>();
|
qRegisterMetaType<Utils::Environment>();
|
||||||
|
|||||||
@@ -306,8 +306,6 @@ Project {
|
|||||||
"itemviewfind.h",
|
"itemviewfind.h",
|
||||||
"optionspopup.cpp",
|
"optionspopup.cpp",
|
||||||
"optionspopup.h",
|
"optionspopup.h",
|
||||||
"searchresultcolor.h",
|
|
||||||
"searchresultitem.h",
|
|
||||||
"searchresulttreeitemdelegate.cpp",
|
"searchresulttreeitemdelegate.cpp",
|
||||||
"searchresulttreeitemdelegate.h",
|
"searchresulttreeitemdelegate.h",
|
||||||
"searchresulttreeitemroles.h",
|
"searchresulttreeitemroles.h",
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
#include "../editormanager/ieditorfactory_p.h"
|
#include "../editormanager/ieditorfactory_p.h"
|
||||||
#include "../editormanager/iexternaleditor.h"
|
#include "../editormanager/iexternaleditor.h"
|
||||||
#include "../fileutils.h"
|
#include "../fileutils.h"
|
||||||
#include "../find/searchresultitem.h"
|
|
||||||
#include "../findplaceholder.h"
|
#include "../findplaceholder.h"
|
||||||
#include "../icore.h"
|
#include "../icore.h"
|
||||||
#include "../iversioncontrol.h"
|
#include "../iversioncontrol.h"
|
||||||
@@ -52,6 +51,7 @@
|
|||||||
#include <utils/mimeutils.h>
|
#include <utils/mimeutils.h>
|
||||||
#include <utils/overridecursor.h>
|
#include <utils/overridecursor.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
#include <utils/stringutils.h>
|
#include <utils/stringutils.h>
|
||||||
#include <utils/utilsicons.h>
|
#include <utils/utilsicons.h>
|
||||||
|
|
||||||
|
|||||||
@@ -22,18 +22,14 @@ QT_BEGIN_NAMESPACE
|
|||||||
class QMenu;
|
class QMenu;
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
namespace Utils { class MimeType; }
|
namespace Utils { class SearchResultItem; }
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
|
||||||
class IDocument;
|
class IDocument;
|
||||||
class LocatorFilterEntry;
|
class LocatorFilterEntry;
|
||||||
class SearchResultItem;
|
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal { class MainWindow; }
|
||||||
class EditorManagerPrivate;
|
|
||||||
class MainWindow;
|
|
||||||
} // namespace Internal
|
|
||||||
|
|
||||||
class CORE_EXPORT EditorManagerPlaceHolder final : public QWidget
|
class CORE_EXPORT EditorManagerPlaceHolder final : public QWidget
|
||||||
{
|
{
|
||||||
@@ -79,7 +75,7 @@ public:
|
|||||||
bool *newEditor = nullptr);
|
bool *newEditor = nullptr);
|
||||||
static IEditor *openEditor(const LocatorFilterEntry &entry);
|
static IEditor *openEditor(const LocatorFilterEntry &entry);
|
||||||
|
|
||||||
static void openEditorAtSearchResult(const SearchResultItem &item,
|
static void openEditorAtSearchResult(const Utils::SearchResultItem &item,
|
||||||
Utils::Id editorId = {},
|
Utils::Id editorId = {},
|
||||||
OpenEditorFlags flags = NoFlags,
|
OpenEditorFlags flags = NoFlags,
|
||||||
bool *newEditor = nullptr);
|
bool *newEditor = nullptr);
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "../core_global.h"
|
|
||||||
|
|
||||||
#include <QColor>
|
|
||||||
#include <QHash>
|
|
||||||
|
|
||||||
namespace Core {
|
|
||||||
|
|
||||||
class CORE_EXPORT SearchResultColor
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
enum class Style { Default, Alt1, Alt2 };
|
|
||||||
|
|
||||||
SearchResultColor() = default;
|
|
||||||
SearchResultColor(const QColor &textBg, const QColor &textFg,
|
|
||||||
const QColor &highlightBg, const QColor &highlightFg,
|
|
||||||
const QColor &functionBg, const QColor &functionFg
|
|
||||||
)
|
|
||||||
: textBackground(textBg), textForeground(textFg),
|
|
||||||
highlightBackground(highlightBg), highlightForeground(highlightFg),
|
|
||||||
containingFunctionBackground(functionBg),containingFunctionForeground(functionFg)
|
|
||||||
{
|
|
||||||
if (!highlightBackground.isValid())
|
|
||||||
highlightBackground = textBackground;
|
|
||||||
if (!highlightForeground.isValid())
|
|
||||||
highlightForeground = textForeground;
|
|
||||||
if (!containingFunctionBackground.isValid())
|
|
||||||
containingFunctionBackground = textBackground;
|
|
||||||
if (!containingFunctionForeground.isValid())
|
|
||||||
containingFunctionForeground = textForeground;
|
|
||||||
}
|
|
||||||
|
|
||||||
friend auto qHash(SearchResultColor::Style style)
|
|
||||||
{
|
|
||||||
return QT_PREPEND_NAMESPACE(qHash(int(style)));
|
|
||||||
}
|
|
||||||
|
|
||||||
QColor textBackground;
|
|
||||||
QColor textForeground;
|
|
||||||
QColor highlightBackground;
|
|
||||||
QColor highlightForeground;
|
|
||||||
QColor containingFunctionBackground;
|
|
||||||
QColor containingFunctionForeground;
|
|
||||||
};
|
|
||||||
|
|
||||||
using SearchResultColors = QHash<SearchResultColor::Style, SearchResultColor>;
|
|
||||||
|
|
||||||
} // namespace Core
|
|
||||||
@@ -3,10 +3,12 @@
|
|||||||
|
|
||||||
#include "searchresulttreeitems.h"
|
#include "searchresulttreeitems.h"
|
||||||
|
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
SearchResultTreeItem::SearchResultTreeItem(const SearchResultItem &item,
|
SearchResultTreeItem::SearchResultTreeItem(const Utils::SearchResultItem &item,
|
||||||
SearchResultTreeItem *parent)
|
SearchResultTreeItem *parent)
|
||||||
: item(item),
|
: item(item),
|
||||||
m_parent(parent),
|
m_parent(parent),
|
||||||
@@ -79,7 +81,8 @@ int SearchResultTreeItem::insertionIndex(const QString &text, SearchResultTreeIt
|
|||||||
return insertionPosition - m_children.begin();
|
return insertionPosition - m_children.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
int SearchResultTreeItem::insertionIndex(const SearchResultItem &item, SearchResultTreeItem **existingItem) const
|
int SearchResultTreeItem::insertionIndex(const Utils::SearchResultItem &item,
|
||||||
|
SearchResultTreeItem **existingItem) const
|
||||||
{
|
{
|
||||||
return insertionIndex(item.lineText(), existingItem);
|
return insertionIndex(item.lineText(), existingItem);
|
||||||
}
|
}
|
||||||
@@ -89,13 +92,13 @@ void SearchResultTreeItem::insertChild(int index, SearchResultTreeItem *child)
|
|||||||
m_children.insert(index, child);
|
m_children.insert(index, child);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SearchResultTreeItem::insertChild(int index, const SearchResultItem &item)
|
void SearchResultTreeItem::insertChild(int index, const Utils::SearchResultItem &item)
|
||||||
{
|
{
|
||||||
auto child = new SearchResultTreeItem(item, this);
|
auto child = new SearchResultTreeItem(item, this);
|
||||||
insertChild(index, child);
|
insertChild(index, child);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SearchResultTreeItem::appendChild(const SearchResultItem &item)
|
void SearchResultTreeItem::appendChild(const Utils::SearchResultItem &item)
|
||||||
{
|
{
|
||||||
insertChild(m_children.count(), item);
|
insertChild(m_children.count(), item);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,7 @@
|
|||||||
|
|
||||||
#include "searchresultwindow.h"
|
#include "searchresultwindow.h"
|
||||||
|
|
||||||
#include <QString>
|
#include <utils/searchresultitem.h>
|
||||||
#include <QList>
|
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -14,7 +13,7 @@ namespace Internal {
|
|||||||
class SearchResultTreeItem
|
class SearchResultTreeItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit SearchResultTreeItem(const SearchResultItem &item = SearchResultItem(),
|
explicit SearchResultTreeItem(const Utils::SearchResultItem &item = {},
|
||||||
SearchResultTreeItem *parent = nullptr);
|
SearchResultTreeItem *parent = nullptr);
|
||||||
virtual ~SearchResultTreeItem();
|
virtual ~SearchResultTreeItem();
|
||||||
|
|
||||||
@@ -22,10 +21,10 @@ public:
|
|||||||
SearchResultTreeItem *parent() const;
|
SearchResultTreeItem *parent() const;
|
||||||
SearchResultTreeItem *childAt(int index) const;
|
SearchResultTreeItem *childAt(int index) const;
|
||||||
int insertionIndex(const QString &text, SearchResultTreeItem **existingItem) const;
|
int insertionIndex(const QString &text, SearchResultTreeItem **existingItem) const;
|
||||||
int insertionIndex(const SearchResultItem &item, SearchResultTreeItem **existingItem) const;
|
int insertionIndex(const Utils::SearchResultItem &item, SearchResultTreeItem **existingItem) const;
|
||||||
void insertChild(int index, SearchResultTreeItem *child);
|
void insertChild(int index, SearchResultTreeItem *child);
|
||||||
void insertChild(int index, const SearchResultItem &item);
|
void insertChild(int index, const Utils::SearchResultItem &item);
|
||||||
void appendChild(const SearchResultItem &item);
|
void appendChild(const Utils::SearchResultItem &item);
|
||||||
int childrenCount() const;
|
int childrenCount() const;
|
||||||
int rowOfItem() const;
|
int rowOfItem() const;
|
||||||
void clearChildren();
|
void clearChildren();
|
||||||
@@ -36,7 +35,7 @@ public:
|
|||||||
bool isGenerated() const { return m_isGenerated; }
|
bool isGenerated() const { return m_isGenerated; }
|
||||||
void setGenerated(bool value) { m_isGenerated = value; }
|
void setGenerated(bool value) { m_isGenerated = value; }
|
||||||
|
|
||||||
SearchResultItem item;
|
Utils::SearchResultItem item;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SearchResultTreeItem *m_parent;
|
SearchResultTreeItem *m_parent;
|
||||||
|
|||||||
@@ -6,12 +6,15 @@
|
|||||||
#include "searchresulttreeitemroles.h"
|
#include "searchresulttreeitemroles.h"
|
||||||
|
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QFont>
|
#include <QFont>
|
||||||
#include <QFontMetrics>
|
#include <QFontMetrics>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "searchresultwindow.h"
|
#include "searchresultwindow.h"
|
||||||
#include "searchresultcolor.h"
|
|
||||||
|
|
||||||
#include <QFont>
|
#include <QFont>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
@@ -25,8 +24,9 @@ public:
|
|||||||
|
|
||||||
void setFilter(SearchResultFilter *filter);
|
void setFilter(SearchResultFilter *filter);
|
||||||
void setShowReplaceUI(bool show);
|
void setShowReplaceUI(bool show);
|
||||||
void setTextEditorFont(const QFont &font, const SearchResultColors &colors);
|
void setTextEditorFont(const QFont &font, const Utils::SearchResultColors &colors);
|
||||||
QList<QModelIndex> addResults(const QList<SearchResultItem> &items, SearchResult::AddMode mode);
|
QList<QModelIndex> addResults(const QList<Utils::SearchResultItem> &items,
|
||||||
|
SearchResult::AddMode mode);
|
||||||
void clear();
|
void clear();
|
||||||
QModelIndex next(const QModelIndex &idx, bool includeGenerated = false,
|
QModelIndex next(const QModelIndex &idx, bool includeGenerated = false,
|
||||||
bool *wrapped = nullptr) const;
|
bool *wrapped = nullptr) const;
|
||||||
|
|||||||
@@ -7,11 +7,14 @@
|
|||||||
#include "searchresulttreeitemdelegate.h"
|
#include "searchresulttreeitemdelegate.h"
|
||||||
|
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
@@ -31,7 +34,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
SearchResultTreeView::SearchResultTreeView(QWidget *parent)
|
SearchResultTreeView::SearchResultTreeView(QWidget *parent)
|
||||||
: Utils::TreeView(parent)
|
: TreeView(parent)
|
||||||
, m_model(new SearchResultFilterModel(this))
|
, m_model(new SearchResultFilterModel(this))
|
||||||
, m_autoExpandResults(false)
|
, m_autoExpandResults(false)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
#include "searchresultwindow.h"
|
#include "searchresultwindow.h"
|
||||||
|
|
||||||
#include <utils/itemviews.h>
|
#include <utils/itemviews.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
class SearchResultColor;
|
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
@@ -22,11 +22,11 @@ public:
|
|||||||
explicit SearchResultTreeView(QWidget *parent = nullptr);
|
explicit SearchResultTreeView(QWidget *parent = nullptr);
|
||||||
|
|
||||||
void setAutoExpandResults(bool expand);
|
void setAutoExpandResults(bool expand);
|
||||||
void setTextEditorFont(const QFont &font, const SearchResultColors &colors);
|
void setTextEditorFont(const QFont &font, const Utils::SearchResultColors &colors);
|
||||||
void setTabWidth(int tabWidth);
|
void setTabWidth(int tabWidth);
|
||||||
|
|
||||||
SearchResultFilterModel *model() const;
|
SearchResultFilterModel *model() const;
|
||||||
void addResults(const QList<SearchResultItem> &items, SearchResult::AddMode mode);
|
void addResults(const QList<Utils::SearchResultItem> &items, SearchResult::AddMode mode);
|
||||||
void setFilter(SearchResultFilter *filter);
|
void setFilter(SearchResultFilter *filter);
|
||||||
bool hasFilter() const;
|
bool hasFilter() const;
|
||||||
void showFilterWidget(QWidget *parent);
|
void showFilterWidget(QWidget *parent);
|
||||||
@@ -35,7 +35,7 @@ public:
|
|||||||
bool event(QEvent *e) override;
|
bool event(QEvent *e) override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void jumpToSearchResult(const SearchResultItem &item);
|
void jumpToSearchResult(const Utils::SearchResultItem &item);
|
||||||
void filterInvalidated();
|
void filterInvalidated();
|
||||||
void filterChanged();
|
void filterChanged();
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include "searchresultwindow.h"
|
#include "searchresultwindow.h"
|
||||||
|
|
||||||
#include <utils/infobar.h>
|
#include <utils/infobar.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ public:
|
|||||||
QWidget *additionalReplaceWidget() const;
|
QWidget *additionalReplaceWidget() const;
|
||||||
void setAdditionalReplaceWidget(QWidget *widget);
|
void setAdditionalReplaceWidget(QWidget *widget);
|
||||||
|
|
||||||
void addResults(const QList<SearchResultItem> &items, SearchResult::AddMode mode);
|
void addResults(const QList<Utils::SearchResultItem> &items, SearchResult::AddMode mode);
|
||||||
|
|
||||||
int count() const;
|
int count() const;
|
||||||
bool isSearching() const { return m_searching; }
|
bool isSearching() const { return m_searching; }
|
||||||
@@ -52,7 +53,7 @@ public:
|
|||||||
|
|
||||||
void notifyVisibilityChanged(bool visible);
|
void notifyVisibilityChanged(bool visible);
|
||||||
|
|
||||||
void setTextEditorFont(const QFont &font, const SearchResultColors &colors);
|
void setTextEditorFont(const QFont &font, const Utils::SearchResultColors &colors);
|
||||||
void setTabWidth(int tabWidth);
|
void setTabWidth(int tabWidth);
|
||||||
|
|
||||||
void setAutoExpandResults(bool expand);
|
void setAutoExpandResults(bool expand);
|
||||||
@@ -76,8 +77,9 @@ public slots:
|
|||||||
void sendRequestPopup();
|
void sendRequestPopup();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void activated(const Core::SearchResultItem &item);
|
void activated(const Utils::SearchResultItem &item);
|
||||||
void replaceButtonClicked(const QString &replaceText, const QList<Core::SearchResultItem> &checkedItems, bool preserveCase);
|
void replaceButtonClicked(const QString &replaceText,
|
||||||
|
const QList<Utils::SearchResultItem> &checkedItems, bool preserveCase);
|
||||||
void replaceTextChanged(const QString &replaceText);
|
void replaceTextChanged(const QString &replaceText);
|
||||||
void searchAgainRequested();
|
void searchAgainRequested();
|
||||||
void canceled();
|
void canceled();
|
||||||
@@ -91,7 +93,7 @@ signals:
|
|||||||
void navigateStateChanged();
|
void navigateStateChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void handleJumpToSearchResult(const SearchResultItem &item);
|
void handleJumpToSearchResult(const Utils::SearchResultItem &item);
|
||||||
void handleReplaceButton();
|
void handleReplaceButton();
|
||||||
void doReplace();
|
void doReplace();
|
||||||
void cancel();
|
void cancel();
|
||||||
@@ -101,7 +103,7 @@ private:
|
|||||||
void continueAfterSizeWarning();
|
void continueAfterSizeWarning();
|
||||||
void cancelAfterSizeWarning();
|
void cancelAfterSizeWarning();
|
||||||
|
|
||||||
QList<SearchResultItem> checkedItems() const;
|
QList<Utils::SearchResultItem> checkedItems() const;
|
||||||
void updateMatchesFoundLabel();
|
void updateMatchesFoundLabel();
|
||||||
|
|
||||||
SearchResultTreeView *m_searchResultTreeView = nullptr;
|
SearchResultTreeView *m_searchResultTreeView = nullptr;
|
||||||
|
|||||||
@@ -52,12 +52,6 @@ namespace Core {
|
|||||||
\internal
|
\internal
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
|
||||||
\class Core::SearchResultItem
|
|
||||||
\inmodule QtCreator
|
|
||||||
\internal
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class InternalScrollArea : public QScrollArea
|
class InternalScrollArea : public QScrollArea
|
||||||
@@ -110,7 +104,7 @@ namespace Internal {
|
|||||||
QList<SearchResult *> m_searchResults;
|
QList<SearchResult *> m_searchResults;
|
||||||
int m_currentIndex;
|
int m_currentIndex;
|
||||||
QFont m_font;
|
QFont m_font;
|
||||||
SearchResultColors m_colors;
|
Utils::SearchResultColors m_colors;
|
||||||
int m_tabWidth;
|
int m_tabWidth;
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -260,14 +254,14 @@ using namespace Core::Internal;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn void Core::SearchResult::activated(const Core::SearchResultItem &item)
|
\fn void Core::SearchResult::activated(const Utils::SearchResultItem &item)
|
||||||
Indicates that the user activated the search result \a item by
|
Indicates that the user activated the search result \a item by
|
||||||
double-clicking it, for example.
|
double-clicking it, for example.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn void Core::SearchResult::replaceButtonClicked(const QString &replaceText,
|
\fn void Core::SearchResult::replaceButtonClicked(const QString &replaceText,
|
||||||
const QList<Core::SearchResultItem> &checkedItems,
|
const QList<Utils::SearchResultItem> &checkedItems,
|
||||||
bool preserveCase)
|
bool preserveCase)
|
||||||
|
|
||||||
Indicates that the user initiated a text replace by selecting
|
Indicates that the user initiated a text replace by selecting
|
||||||
@@ -577,7 +571,8 @@ void SearchResultWindow::setFocus()
|
|||||||
/*!
|
/*!
|
||||||
\internal
|
\internal
|
||||||
*/
|
*/
|
||||||
void SearchResultWindow::setTextEditorFont(const QFont &font, const SearchResultColors &colors)
|
void SearchResultWindow::setTextEditorFont(const QFont &font,
|
||||||
|
const Utils::SearchResultColors &colors)
|
||||||
{
|
{
|
||||||
d->m_font = font;
|
d->m_font = font;
|
||||||
d->m_colors = colors;
|
d->m_colors = colors;
|
||||||
@@ -837,7 +832,7 @@ void SearchResult::setAdditionalReplaceWidget(QWidget *widget)
|
|||||||
|
|
||||||
\sa addResults()
|
\sa addResults()
|
||||||
*/
|
*/
|
||||||
void SearchResult::addResult(const SearchResultItem &item)
|
void SearchResult::addResult(const Utils::SearchResultItem &item)
|
||||||
{
|
{
|
||||||
m_widget->addResults({item}, AddOrdered);
|
m_widget->addResults({item}, AddOrdered);
|
||||||
}
|
}
|
||||||
@@ -848,7 +843,7 @@ void SearchResult::addResult(const SearchResultItem &item)
|
|||||||
|
|
||||||
\sa addResult()
|
\sa addResult()
|
||||||
*/
|
*/
|
||||||
void SearchResult::addResults(const QList<SearchResultItem> &items, AddMode mode)
|
void SearchResult::addResults(const QList<Utils::SearchResultItem> &items, AddMode mode)
|
||||||
{
|
{
|
||||||
m_widget->addResults(items, mode);
|
m_widget->addResults(items, mode);
|
||||||
emit countChanged(m_widget->count());
|
emit countChanged(m_widget->count());
|
||||||
|
|||||||
@@ -3,11 +3,10 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "searchresultcolor.h"
|
|
||||||
#include "searchresultitem.h"
|
|
||||||
|
|
||||||
#include <coreplugin/ioutputpane.h>
|
#include <coreplugin/ioutputpane.h>
|
||||||
|
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
@@ -19,9 +18,10 @@ class QFont;
|
|||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
class SearchResultWindowPrivate;
|
class SearchResultWindowPrivate;
|
||||||
class SearchResultWidget;
|
class SearchResultWidget;
|
||||||
}
|
}
|
||||||
class SearchResultWindow;
|
class SearchResultWindow;
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ class CORE_EXPORT SearchResultFilter : public QObject
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
virtual QWidget *createWidget() = 0;
|
virtual QWidget *createWidget() = 0;
|
||||||
virtual bool matches(const SearchResultItem &item) const = 0;
|
virtual bool matches(const Utils::SearchResultItem &item) const = 0;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void filterChanged();
|
void filterChanged();
|
||||||
@@ -59,8 +59,8 @@ public:
|
|||||||
bool isInteractive() const { return !m_finishedHandler; }
|
bool isInteractive() const { return !m_finishedHandler; }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void addResult(const SearchResultItem &item);
|
void addResult(const Utils::SearchResultItem &item);
|
||||||
void addResults(const QList<SearchResultItem> &items, AddMode mode);
|
void addResults(const QList<Utils::SearchResultItem> &items, AddMode mode);
|
||||||
void setFilter(SearchResultFilter *filter); // Takes ownership
|
void setFilter(SearchResultFilter *filter); // Takes ownership
|
||||||
void finishSearch(bool canceled, const QString &reason = {});
|
void finishSearch(bool canceled, const QString &reason = {});
|
||||||
void setTextToReplace(const QString &textToReplace);
|
void setTextToReplace(const QString &textToReplace);
|
||||||
@@ -70,8 +70,8 @@ public slots:
|
|||||||
void popup();
|
void popup();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void activated(const Core::SearchResultItem &item);
|
void activated(const Utils::SearchResultItem &item);
|
||||||
void replaceButtonClicked(const QString &replaceText, const QList<Core::SearchResultItem> &checkedItems, bool preserveCase);
|
void replaceButtonClicked(const QString &replaceText, const QList<Utils::SearchResultItem> &checkedItems, bool preserveCase);
|
||||||
void replaceTextChanged(const QString &replaceText);
|
void replaceTextChanged(const QString &replaceText);
|
||||||
void canceled();
|
void canceled();
|
||||||
void paused(bool paused);
|
void paused(bool paused);
|
||||||
@@ -125,7 +125,7 @@ public:
|
|||||||
void goToPrev() override;
|
void goToPrev() override;
|
||||||
bool canNavigate() const override;
|
bool canNavigate() const override;
|
||||||
|
|
||||||
void setTextEditorFont(const QFont &font, const SearchResultColors &colors);
|
void setTextEditorFont(const QFont &font, const Utils::SearchResultColors &colors);
|
||||||
void setTabWidth(int width);
|
void setTabWidth(int width);
|
||||||
void openNewSearchPanel();
|
void openNewSearchPanel();
|
||||||
|
|
||||||
|
|||||||
@@ -743,10 +743,9 @@ void CppFindReferences::findMacroUses(const CPlusPlus::Macro ¯o, const QStri
|
|||||||
setupSearch(search);
|
setupSearch(search);
|
||||||
SearchResultWindow::instance()->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus);
|
SearchResultWindow::instance()->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus);
|
||||||
|
|
||||||
connect(search, &SearchResult::activated,
|
connect(search, &SearchResult::activated, search, [](const SearchResultItem &item) {
|
||||||
[](const Core::SearchResultItem& item) {
|
Core::EditorManager::openEditorAtSearchResult(item);
|
||||||
Core::EditorManager::openEditorAtSearchResult(item);
|
});
|
||||||
});
|
|
||||||
|
|
||||||
const CPlusPlus::Snapshot snapshot = m_modelManager->snapshot();
|
const CPlusPlus::Snapshot snapshot = m_modelManager->snapshot();
|
||||||
const WorkingCopy workingCopy = m_modelManager->workingCopy();
|
const WorkingCopy workingCopy = m_modelManager->workingCopy();
|
||||||
|
|||||||
@@ -9,30 +9,29 @@
|
|||||||
#include <cplusplus/FindUsages.h>
|
#include <cplusplus/FindUsages.h>
|
||||||
#include <utils/filepath.h>
|
#include <utils/filepath.h>
|
||||||
#include <utils/link.h>
|
#include <utils/link.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
#include <QPointer>
|
|
||||||
#include <QFuture>
|
#include <QFuture>
|
||||||
|
#include <QPointer>
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
QT_FORWARD_DECLARE_CLASS(QTimer)
|
QT_BEGIN_NAMESPACE
|
||||||
|
class QTimer;
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
namespace Core {
|
namespace Core { class SearchResult; }
|
||||||
class SearchResultItem;
|
|
||||||
class SearchResult;
|
|
||||||
} // namespace Core
|
|
||||||
|
|
||||||
namespace CppEditor {
|
namespace CppEditor {
|
||||||
class CppModelManager;
|
class CppModelManager;
|
||||||
|
|
||||||
Core::SearchResultColor::Style CPPEDITOR_EXPORT
|
Utils::SearchResultColor::Style CPPEDITOR_EXPORT
|
||||||
colorStyleForUsageType(CPlusPlus::Usage::Tags tags);
|
colorStyleForUsageType(CPlusPlus::Usage::Tags tags);
|
||||||
|
|
||||||
class CPPEDITOR_EXPORT CppSearchResultFilter : public Core::SearchResultFilter
|
class CPPEDITOR_EXPORT CppSearchResultFilter : public Core::SearchResultFilter
|
||||||
{
|
{
|
||||||
QWidget *createWidget() override;
|
QWidget *createWidget() override;
|
||||||
bool matches(const Core::SearchResultItem &item) const override;
|
bool matches(const Utils::SearchResultItem &item) const override;
|
||||||
|
|
||||||
void setValue(bool &member, bool value);
|
void setValue(bool &member, bool value);
|
||||||
|
|
||||||
@@ -79,7 +78,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
void setupSearch(Core::SearchResult *search);
|
void setupSearch(Core::SearchResult *search);
|
||||||
void onReplaceButtonClicked(Core::SearchResult *search, const QString &text,
|
void onReplaceButtonClicked(Core::SearchResult *search, const QString &text,
|
||||||
const QList<Core::SearchResultItem> &items, bool preserveCase);
|
const QList<Utils::SearchResultItem> &items, bool preserveCase);
|
||||||
void searchAgain(Core::SearchResult *search);
|
void searchAgain(Core::SearchResult *search);
|
||||||
|
|
||||||
void findUsages(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context,
|
void findUsages(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context,
|
||||||
|
|||||||
@@ -10,13 +10,13 @@
|
|||||||
#include "cppsourceprocessor.h"
|
#include "cppsourceprocessor.h"
|
||||||
#include "searchsymbols.h"
|
#include "searchsymbols.h"
|
||||||
|
|
||||||
#include <coreplugin/find/searchresultitem.h>
|
|
||||||
#include <coreplugin/progressmanager/progressmanager.h>
|
#include <coreplugin/progressmanager/progressmanager.h>
|
||||||
|
|
||||||
#include <cplusplus/LookupContext.h>
|
#include <cplusplus/LookupContext.h>
|
||||||
|
|
||||||
#include <utils/async.h>
|
#include <utils/async.h>
|
||||||
#include <utils/filepath.h>
|
#include <utils/filepath.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
#include <utils/stringutils.h>
|
#include <utils/stringutils.h>
|
||||||
#include <utils/temporarydirectory.h>
|
#include <utils/temporarydirectory.h>
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ class WriteTaskFileForDiagnostics
|
|||||||
public:
|
public:
|
||||||
WriteTaskFileForDiagnostics()
|
WriteTaskFileForDiagnostics()
|
||||||
{
|
{
|
||||||
const QString fileName = Utils::TemporaryDirectory::masterDirectoryPath()
|
const QString fileName = TemporaryDirectory::masterDirectoryPath()
|
||||||
+ "/qtc_findErrorsIndexing.diagnostics."
|
+ "/qtc_findErrorsIndexing.diagnostics."
|
||||||
+ QDateTime::currentDateTime().toString("yyMMdd_HHmm") + ".tasks";
|
+ QDateTime::currentDateTime().toString("yyMMdd_HHmm") + ".tasks";
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ void indexFindErrors(QPromise<void> &promise, const ParseParams params)
|
|||||||
BuiltinEditorDocumentParser parser(FilePath::fromString(file));
|
BuiltinEditorDocumentParser parser(FilePath::fromString(file));
|
||||||
parser.setReleaseSourceAndAST(false);
|
parser.setReleaseSourceAndAST(false);
|
||||||
parser.update({CppModelManager::instance()->workingCopy(), nullptr,
|
parser.update({CppModelManager::instance()->workingCopy(), nullptr,
|
||||||
Utils::Language::Cxx, false});
|
Language::Cxx, false});
|
||||||
CPlusPlus::Document::Ptr document = parser.document();
|
CPlusPlus::Document::Ptr document = parser.document();
|
||||||
QTC_ASSERT(document, return);
|
QTC_ASSERT(document, return);
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ void parse(QPromise<void> &promise, const ParseParams params)
|
|||||||
|
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
void SymbolSearcher::runSearch(QPromise<Core::SearchResultItem> &promise)
|
void SymbolSearcher::runSearch(QPromise<SearchResultItem> &promise)
|
||||||
{
|
{
|
||||||
promise.setProgressRange(0, m_snapshot.size());
|
promise.setProgressRange(0, m_snapshot.size());
|
||||||
promise.setProgressValue(0);
|
promise.setProgressValue(0);
|
||||||
@@ -264,7 +264,7 @@ void SymbolSearcher::runSearch(QPromise<Core::SearchResultItem> &promise)
|
|||||||
if (promise.isCanceled())
|
if (promise.isCanceled())
|
||||||
break;
|
break;
|
||||||
if (m_fileNames.isEmpty() || m_fileNames.contains(it.value()->filePath().path())) {
|
if (m_fileNames.isEmpty() || m_fileNames.contains(it.value()->filePath().path())) {
|
||||||
QVector<Core::SearchResultItem> resultItems;
|
QList<SearchResultItem> resultItems;
|
||||||
auto filter = [&](const IndexItem::Ptr &info) -> IndexItem::VisitorResult {
|
auto filter = [&](const IndexItem::Ptr &info) -> IndexItem::VisitorResult {
|
||||||
if (matcher.match(info->symbolName()).hasMatch()) {
|
if (matcher.match(info->symbolName()).hasMatch()) {
|
||||||
QString text = info->symbolName();
|
QString text = info->symbolName();
|
||||||
@@ -277,7 +277,7 @@ void SymbolSearcher::runSearch(QPromise<Core::SearchResultItem> &promise)
|
|||||||
text = info->representDeclaration();
|
text = info->representDeclaration();
|
||||||
}
|
}
|
||||||
|
|
||||||
Core::SearchResultItem item;
|
SearchResultItem item;
|
||||||
item.setPath(scope.split(QLatin1String("::"), Qt::SkipEmptyParts));
|
item.setPath(scope.split(QLatin1String("::"), Qt::SkipEmptyParts));
|
||||||
item.setLineText(text);
|
item.setLineText(text);
|
||||||
item.setIcon(info->icon());
|
item.setIcon(info->icon());
|
||||||
@@ -288,7 +288,7 @@ void SymbolSearcher::runSearch(QPromise<Core::SearchResultItem> &promise)
|
|||||||
return IndexItem::Recurse;
|
return IndexItem::Recurse;
|
||||||
};
|
};
|
||||||
search(it.value())->visitAllChildren(filter);
|
search(it.value())->visitAllChildren(filter);
|
||||||
for (const Core::SearchResultItem &item : std::as_const(resultItems))
|
for (const SearchResultItem &item : std::as_const(resultItems))
|
||||||
promise.addResult(item);
|
promise.addResult(item);
|
||||||
}
|
}
|
||||||
++it;
|
++it;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include <QFuture>
|
#include <QFuture>
|
||||||
|
|
||||||
namespace Core { class SearchResultItem; }
|
namespace Utils { class SearchResultItem; }
|
||||||
|
|
||||||
namespace CppEditor {
|
namespace CppEditor {
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
SymbolSearcher(const SymbolSearcher::Parameters ¶meters, const QSet<QString> &fileNames);
|
SymbolSearcher(const SymbolSearcher::Parameters ¶meters, const QSet<QString> &fileNames);
|
||||||
void runSearch(QPromise<Core::SearchResultItem> &promise);
|
void runSearch(QPromise<Utils::SearchResultItem> &promise);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const CPlusPlus::Snapshot m_snapshot;
|
const CPlusPlus::Snapshot m_snapshot;
|
||||||
|
|||||||
@@ -35,10 +35,10 @@ public:
|
|||||||
return m_symbolName == other.m_symbolName && m_scope == other.m_scope;
|
return m_symbolName == other.m_symbolName && m_scope == other.m_scope;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ResultDataList fromSearchResultList(const QList<Core::SearchResultItem> &entries)
|
static ResultDataList fromSearchResultList(const QList<Utils::SearchResultItem> &entries)
|
||||||
{
|
{
|
||||||
ResultDataList result;
|
ResultDataList result;
|
||||||
for (const Core::SearchResultItem &entry : entries)
|
for (const Utils::SearchResultItem &entry : entries)
|
||||||
result << ResultData(entry.lineText(), entry.path().join(QLatin1String("::")));
|
result << ResultData(entry.lineText(), entry.path().join(QLatin1String("::")));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -77,7 +77,7 @@ public:
|
|||||||
|
|
||||||
const QScopedPointer<SymbolSearcher> symbolSearcher(
|
const QScopedPointer<SymbolSearcher> symbolSearcher(
|
||||||
new SymbolSearcher(searchParameters, QSet<QString>{testFile}));
|
new SymbolSearcher(searchParameters, QSet<QString>{testFile}));
|
||||||
QFuture<Core::SearchResultItem> search
|
QFuture<Utils::SearchResultItem> search
|
||||||
= Utils::asyncRun(&SymbolSearcher::runSearch, symbolSearcher.data());
|
= Utils::asyncRun(&SymbolSearcher::runSearch, symbolSearcher.data());
|
||||||
search.waitForFinished();
|
search.waitForFinished();
|
||||||
ResultDataList results = ResultData::fromSearchResultList(search.results());
|
ResultDataList results = ResultData::fromSearchResultList(search.results());
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
#include "searchsymbols.h"
|
#include "searchsymbols.h"
|
||||||
|
|
||||||
#include <coreplugin/find/ifindfilter.h>
|
#include <coreplugin/find/ifindfilter.h>
|
||||||
#include <coreplugin/find/searchresultitem.h>
|
|
||||||
#include <coreplugin/find/searchresultwindow.h>
|
#include <coreplugin/find/searchresultwindow.h>
|
||||||
|
|
||||||
#include <QFutureWatcher>
|
#include <QFutureWatcher>
|
||||||
@@ -16,6 +15,7 @@
|
|||||||
#include <QRadioButton>
|
#include <QRadioButton>
|
||||||
|
|
||||||
namespace Core { class SearchResult; }
|
namespace Core { class SearchResult; }
|
||||||
|
namespace Utils { class SearchResultItem; }
|
||||||
|
|
||||||
namespace CppEditor {
|
namespace CppEditor {
|
||||||
class CppModelManager;
|
class CppModelManager;
|
||||||
@@ -52,10 +52,10 @@ signals:
|
|||||||
void symbolsToSearchChanged();
|
void symbolsToSearchChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void openEditor(const Core::SearchResultItem &item);
|
void openEditor(const Utils::SearchResultItem &item);
|
||||||
|
|
||||||
void addResults(QFutureWatcher<Core::SearchResultItem> *watcher, int begin, int end);
|
void addResults(QFutureWatcher<Utils::SearchResultItem> *watcher, int begin, int end);
|
||||||
void finish(QFutureWatcher<Core::SearchResultItem> *watcher);
|
void finish(QFutureWatcher<Utils::SearchResultItem> *watcher);
|
||||||
void cancel(Core::SearchResult *search);
|
void cancel(Core::SearchResult *search);
|
||||||
void setPaused(Core::SearchResult *search, bool paused);
|
void setPaused(Core::SearchResult *search, bool paused);
|
||||||
void onTaskStarted(Utils::Id type);
|
void onTaskStarted(Utils::Id type);
|
||||||
@@ -67,7 +67,7 @@ private:
|
|||||||
|
|
||||||
CppModelManager *m_manager;
|
CppModelManager *m_manager;
|
||||||
bool m_enabled;
|
bool m_enabled;
|
||||||
QMap<QFutureWatcher<Core::SearchResultItem> *, QPointer<Core::SearchResult> > m_watchers;
|
QMap<QFutureWatcher<Utils::SearchResultItem> *, QPointer<Core::SearchResult> > m_watchers;
|
||||||
QPointer<Core::SearchResult> m_currentSearch;
|
QPointer<Core::SearchResult> m_currentSearch;
|
||||||
SearchSymbols::SymbolTypes m_symbolsToSearch;
|
SearchSymbols::SymbolTypes m_symbolsToSearch;
|
||||||
SearchScope m_scope;
|
SearchScope m_scope;
|
||||||
|
|||||||
@@ -5,9 +5,14 @@
|
|||||||
|
|
||||||
#include <texteditor/basefilefind.h>
|
#include <texteditor/basefilefind.h>
|
||||||
|
|
||||||
QT_FORWARD_DECLARE_CLASS(QCheckBox);
|
QT_BEGIN_NAMESPACE
|
||||||
|
class QCheckBox;
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
namespace Utils { class FancyLineEdit; }
|
namespace Utils {
|
||||||
|
class FancyLineEdit;
|
||||||
|
class SearchResultItem;
|
||||||
|
}
|
||||||
|
|
||||||
namespace Git::Internal {
|
namespace Git::Internal {
|
||||||
|
|
||||||
@@ -28,7 +33,7 @@ public:
|
|||||||
QFuture<Utils::FileSearchResultList> executeSearch(
|
QFuture<Utils::FileSearchResultList> executeSearch(
|
||||||
const TextEditor::FileFindParameters ¶meters,
|
const TextEditor::FileFindParameters ¶meters,
|
||||||
TextEditor::BaseFileFind *baseFileFind) override;
|
TextEditor::BaseFileFind *baseFileFind) override;
|
||||||
Core::IEditor *openEditor(const Core::SearchResultItem &item,
|
Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
||||||
const TextEditor::FileFindParameters ¶meters) override;
|
const TextEditor::FileFindParameters ¶meters) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ bool SymbolSupport::supportsFindUsages(TextEditor::TextDocument *document) const
|
|||||||
|
|
||||||
struct ItemData
|
struct ItemData
|
||||||
{
|
{
|
||||||
Core::Search::TextRange range;
|
Utils::Search::TextRange range;
|
||||||
QVariant userData;
|
QVariant userData;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -216,12 +216,12 @@ QStringList SymbolSupport::getFileContents(const Utils::FilePath &filePath)
|
|||||||
return fileContent.split("\n");
|
return fileContent.split("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::SearchResultItem> generateSearchResultItems(
|
QList<Utils::SearchResultItem> generateSearchResultItems(
|
||||||
const QMap<Utils::FilePath, QList<ItemData>> &rangesInDocument,
|
const QMap<Utils::FilePath, QList<ItemData>> &rangesInDocument,
|
||||||
Core::SearchResult *search = nullptr,
|
Core::SearchResult *search = nullptr,
|
||||||
bool limitToProjects = false)
|
bool limitToProjects = false)
|
||||||
{
|
{
|
||||||
QList<Core::SearchResultItem> result;
|
QList<Utils::SearchResultItem> result;
|
||||||
const bool renaming = search && search->supportsReplace();
|
const bool renaming = search && search->supportsReplace();
|
||||||
QString oldSymbolName;
|
QString oldSymbolName;
|
||||||
QVariantList userData;
|
QVariantList userData;
|
||||||
@@ -233,7 +233,7 @@ QList<Core::SearchResultItem> generateSearchResultItems(
|
|||||||
for (auto it = rangesInDocument.begin(); it != rangesInDocument.end(); ++it) {
|
for (auto it = rangesInDocument.begin(); it != rangesInDocument.end(); ++it) {
|
||||||
const Utils::FilePath &filePath = it.key();
|
const Utils::FilePath &filePath = it.key();
|
||||||
|
|
||||||
Core::SearchResultItem item;
|
Utils::SearchResultItem item;
|
||||||
item.setFilePath(filePath);
|
item.setFilePath(filePath);
|
||||||
item.setUseTextEditorFont(true);
|
item.setUseTextEditorFont(true);
|
||||||
if (renaming && limitToProjects) {
|
if (renaming && limitToProjects) {
|
||||||
@@ -264,7 +264,7 @@ QList<Core::SearchResultItem> generateSearchResultItems(
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::SearchResultItem> generateSearchResultItems(
|
QList<Utils::SearchResultItem> generateSearchResultItems(
|
||||||
const LanguageClientArray<Location> &locations, const DocumentUri::PathMapper &pathMapper)
|
const LanguageClientArray<Location> &locations, const DocumentUri::PathMapper &pathMapper)
|
||||||
{
|
{
|
||||||
if (locations.isNull())
|
if (locations.isNull())
|
||||||
@@ -291,7 +291,7 @@ void SymbolSupport::handleFindReferencesResponse(const FindReferencesRequest::Re
|
|||||||
Tr::tr("Find References with %1 for:").arg(m_client->name()), "", wordUnderCursor);
|
Tr::tr("Find References with %1 for:").arg(m_client->name()), "", wordUnderCursor);
|
||||||
search->addResults(generateSearchResultItems(*result, m_client->hostPathMapper()),
|
search->addResults(generateSearchResultItems(*result, m_client->hostPathMapper()),
|
||||||
Core::SearchResult::AddOrdered);
|
Core::SearchResult::AddOrdered);
|
||||||
connect(search, &Core::SearchResult::activated, [](const Core::SearchResultItem &item) {
|
connect(search, &Core::SearchResult::activated, [](const Utils::SearchResultItem &item) {
|
||||||
Core::EditorManager::openEditorAtSearchResult(item);
|
Core::EditorManager::openEditorAtSearchResult(item);
|
||||||
});
|
});
|
||||||
search->finishSearch(false);
|
search->finishSearch(false);
|
||||||
@@ -463,7 +463,7 @@ void SymbolSupport::requestRename(const TextDocumentPositionParams &positionPara
|
|||||||
search->popup();
|
search->popup();
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::SearchResultItem> generateReplaceItems(const WorkspaceEdit &edits,
|
QList<Utils::SearchResultItem> generateReplaceItems(const WorkspaceEdit &edits,
|
||||||
Core::SearchResult *search,
|
Core::SearchResult *search,
|
||||||
bool limitToProjects,
|
bool limitToProjects,
|
||||||
const DocumentUri::PathMapper &pathMapper)
|
const DocumentUri::PathMapper &pathMapper)
|
||||||
@@ -506,7 +506,7 @@ Core::SearchResult *SymbolSupport::createSearch(const TextDocumentPositionParams
|
|||||||
if (callback)
|
if (callback)
|
||||||
search->makeNonInteractive(callback);
|
search->makeNonInteractive(callback);
|
||||||
|
|
||||||
connect(search, &Core::SearchResult::activated, [](const Core::SearchResultItem &item) {
|
connect(search, &Core::SearchResult::activated, [](const Utils::SearchResultItem &item) {
|
||||||
Core::EditorManager::openEditorAtSearchResult(item);
|
Core::EditorManager::openEditorAtSearchResult(item);
|
||||||
});
|
});
|
||||||
connect(search, &Core::SearchResult::replaceTextChanged, this, [this, search, positionParams]() {
|
connect(search, &Core::SearchResult::replaceTextChanged, this, [this, search, positionParams]() {
|
||||||
@@ -524,7 +524,7 @@ Core::SearchResult *SymbolSupport::createSearch(const TextDocumentPositionParams
|
|||||||
|
|
||||||
connect(search, &Core::SearchResult::replaceButtonClicked, this,
|
connect(search, &Core::SearchResult::replaceButtonClicked, this,
|
||||||
[this, search, resetConnection](const QString & /*replaceText*/,
|
[this, search, resetConnection](const QString & /*replaceText*/,
|
||||||
const QList<Core::SearchResultItem> &checkedItems) {
|
const QList<Utils::SearchResultItem> &checkedItems) {
|
||||||
applyRename(checkedItems, search);
|
applyRename(checkedItems, search);
|
||||||
disconnect(resetConnection);
|
disconnect(resetConnection);
|
||||||
});
|
});
|
||||||
@@ -571,12 +571,12 @@ void SymbolSupport::handleRenameResponse(Core::SearchResult *search,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SymbolSupport::applyRename(const QList<Core::SearchResultItem> &checkedItems,
|
void SymbolSupport::applyRename(const QList<Utils::SearchResultItem> &checkedItems,
|
||||||
Core::SearchResult *search)
|
Core::SearchResult *search)
|
||||||
{
|
{
|
||||||
QSet<Utils::FilePath> affectedNonOpenFilePaths;
|
QSet<Utils::FilePath> affectedNonOpenFilePaths;
|
||||||
QMap<Utils::FilePath, QList<TextEdit>> editsForDocuments;
|
QMap<Utils::FilePath, QList<TextEdit>> editsForDocuments;
|
||||||
for (const Core::SearchResultItem &item : checkedItems) {
|
for (const Utils::SearchResultItem &item : checkedItems) {
|
||||||
const auto filePath = Utils::FilePath::fromString(item.path().value(0));
|
const auto filePath = Utils::FilePath::fromString(item.path().value(0));
|
||||||
if (!m_client->documentForFilePath(filePath))
|
if (!m_client->documentForFilePath(filePath))
|
||||||
affectedNonOpenFilePaths << filePath;
|
affectedNonOpenFilePaths << filePath;
|
||||||
@@ -616,12 +616,12 @@ QString SymbolSupport::derivePlaceholder(const QString &oldSymbol, const QString
|
|||||||
return m_defaultSymbolMapper ? m_defaultSymbolMapper(oldSymbol) : oldSymbol;
|
return m_defaultSymbolMapper ? m_defaultSymbolMapper(oldSymbol) : oldSymbol;
|
||||||
}
|
}
|
||||||
|
|
||||||
Core::Search::TextRange SymbolSupport::convertRange(const Range &range)
|
Utils::Search::TextRange SymbolSupport::convertRange(const Range &range)
|
||||||
{
|
{
|
||||||
auto convertPosition = [](const Position &pos) {
|
const auto convertPosition = [](const Position &pos) {
|
||||||
return Core::Search::TextPosition(pos.line() + 1, pos.character());
|
return Utils::Search::TextPosition{pos.line() + 1, pos.character()};
|
||||||
};
|
};
|
||||||
return Core::Search::TextRange(convertPosition(range.start()), convertPosition(range.end()));
|
return {convertPosition(range.start()), convertPosition(range.end())};
|
||||||
}
|
}
|
||||||
|
|
||||||
void SymbolSupport::setDefaultRenamingSymbolMapper(const SymbolMapper &mapper)
|
void SymbolSupport::setDefaultRenamingSymbolMapper(const SymbolMapper &mapper)
|
||||||
|
|||||||
@@ -5,18 +5,15 @@
|
|||||||
|
|
||||||
#include "languageclient_global.h"
|
#include "languageclient_global.h"
|
||||||
|
|
||||||
#include <coreplugin/find/searchresultitem.h>
|
|
||||||
#include <texteditor/textdocument.h>
|
#include <texteditor/textdocument.h>
|
||||||
|
|
||||||
#include <languageserverprotocol/languagefeatures.h>
|
#include <languageserverprotocol/languagefeatures.h>
|
||||||
|
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
namespace Core {
|
namespace Core { class SearchResult; }
|
||||||
class SearchResult;
|
|
||||||
class SearchResultItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace LanguageServerProtocol { class MessageId; }
|
namespace LanguageServerProtocol { class MessageId; }
|
||||||
|
|
||||||
namespace LanguageClient {
|
namespace LanguageClient {
|
||||||
@@ -46,7 +43,7 @@ public:
|
|||||||
const std::function<void()> &callback = {},
|
const std::function<void()> &callback = {},
|
||||||
bool preferLowerCaseFileNames = true);
|
bool preferLowerCaseFileNames = true);
|
||||||
|
|
||||||
static Core::Search::TextRange convertRange(const LanguageServerProtocol::Range &range);
|
static Utils::Search::TextRange convertRange(const LanguageServerProtocol::Range &range);
|
||||||
static QStringList getFileContents(const Utils::FilePath &filePath);
|
static QStringList getFileContents(const Utils::FilePath &filePath);
|
||||||
|
|
||||||
using SymbolMapper = std::function<QString(const QString &)>;
|
using SymbolMapper = std::function<QString(const QString &)>;
|
||||||
@@ -76,7 +73,7 @@ private:
|
|||||||
const std::function<void()> &callback, bool preferLowerCaseFileNames);
|
const std::function<void()> &callback, bool preferLowerCaseFileNames);
|
||||||
void handleRenameResponse(Core::SearchResult *search,
|
void handleRenameResponse(Core::SearchResult *search,
|
||||||
const LanguageServerProtocol::RenameRequest::Response &response);
|
const LanguageServerProtocol::RenameRequest::Response &response);
|
||||||
void applyRename(const QList<Core::SearchResultItem> &checkedItems, Core::SearchResult *search);
|
void applyRename(const QList<Utils::SearchResultItem> &checkedItems, Core::SearchResult *search);
|
||||||
QString derivePlaceholder(const QString &oldSymbol, const QString &newSymbol);
|
QString derivePlaceholder(const QString &oldSymbol, const QString &newSymbol);
|
||||||
|
|
||||||
Client *m_client = nullptr;
|
Client *m_client = nullptr;
|
||||||
|
|||||||
@@ -992,7 +992,7 @@ void FindReferences::displayResults(int first, int last)
|
|||||||
this, &FindReferences::onReplaceButtonClicked);
|
this, &FindReferences::onReplaceButtonClicked);
|
||||||
}
|
}
|
||||||
connect(m_currentSearch.data(), &SearchResult::activated,
|
connect(m_currentSearch.data(), &SearchResult::activated,
|
||||||
[](const Core::SearchResultItem& item) {
|
[](const Utils::SearchResultItem& item) {
|
||||||
Core::EditorManager::openEditorAtSearchResult(item);
|
Core::EditorManager::openEditorAtSearchResult(item);
|
||||||
});
|
});
|
||||||
connect(m_currentSearch.data(), &SearchResult::canceled, this, &FindReferences::cancel);
|
connect(m_currentSearch.data(), &SearchResult::canceled, this, &FindReferences::cancel);
|
||||||
@@ -1013,7 +1013,7 @@ void FindReferences::displayResults(int first, int last)
|
|||||||
}
|
}
|
||||||
for (int index = first; index != last; ++index) {
|
for (int index = first; index != last; ++index) {
|
||||||
Usage result = m_watcher.future().resultAt(index);
|
Usage result = m_watcher.future().resultAt(index);
|
||||||
SearchResultItem item;
|
Utils::SearchResultItem item;
|
||||||
item.setFilePath(result.path);
|
item.setFilePath(result.path);
|
||||||
item.setLineText(result.lineText);
|
item.setLineText(result.lineText);
|
||||||
item.setMainRange(result.line, result.col, result.len);
|
item.setMainRange(result.line, result.col, result.len);
|
||||||
@@ -1041,7 +1041,8 @@ void FindReferences::setPaused(bool paused)
|
|||||||
m_watcher.setPaused(paused);
|
m_watcher.setPaused(paused);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FindReferences::onReplaceButtonClicked(const QString &text, const QList<SearchResultItem> &items, bool preserveCase)
|
void FindReferences::onReplaceButtonClicked(const QString &text,
|
||||||
|
const QList<Utils::SearchResultItem> &items, bool preserveCase)
|
||||||
{
|
{
|
||||||
const Utils::FilePaths filePaths = TextEditor::BaseFileFind::replaceAll(text,
|
const Utils::FilePaths filePaths = TextEditor::BaseFileFind::replaceAll(text,
|
||||||
items,
|
items,
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#include <utils/filepath.h>
|
#include <utils/filepath.h>
|
||||||
#include <utils/futuresynchronizer.h>
|
#include <utils/futuresynchronizer.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QFutureWatcher>
|
#include <QFutureWatcher>
|
||||||
@@ -14,10 +15,7 @@
|
|||||||
|
|
||||||
QT_FORWARD_DECLARE_CLASS(QTimer)
|
QT_FORWARD_DECLARE_CLASS(QTimer)
|
||||||
|
|
||||||
namespace Core {
|
namespace Core { class SearchResult; }
|
||||||
class SearchResultItem;
|
|
||||||
class SearchResult;
|
|
||||||
} // namespace Core
|
|
||||||
|
|
||||||
namespace QmlJSEditor {
|
namespace QmlJSEditor {
|
||||||
|
|
||||||
@@ -64,7 +62,8 @@ private:
|
|||||||
void searchFinished();
|
void searchFinished();
|
||||||
void cancel();
|
void cancel();
|
||||||
void setPaused(bool paused);
|
void setPaused(bool paused);
|
||||||
void onReplaceButtonClicked(const QString &text, const QList<Core::SearchResultItem> &items, bool preserveCase);
|
void onReplaceButtonClicked(const QString &text, const QList<Utils::SearchResultItem> &items,
|
||||||
|
bool preserveCase);
|
||||||
|
|
||||||
QPointer<Core::SearchResult> m_currentSearch;
|
QPointer<Core::SearchResult> m_currentSearch;
|
||||||
QFutureWatcher<Usage> m_watcher;
|
QFutureWatcher<Usage> m_watcher;
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public:
|
|||||||
void writeSettings(QSettings *settings) const override;
|
void writeSettings(QSettings *settings) const override;
|
||||||
QFuture<Utils::FileSearchResultList> executeSearch(
|
QFuture<Utils::FileSearchResultList> executeSearch(
|
||||||
const TextEditor::FileFindParameters ¶meters, TextEditor::BaseFileFind *) override;
|
const TextEditor::FileFindParameters ¶meters, TextEditor::BaseFileFind *) override;
|
||||||
Core::IEditor *openEditor(const Core::SearchResultItem &item,
|
Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
||||||
const TextEditor::FileFindParameters ¶meters) override;
|
const TextEditor::FileFindParameters ¶meters) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public:
|
|||||||
QVariant parameters() const override { return {}; }
|
QVariant parameters() const override { return {}; }
|
||||||
void readSettings(QSettings * /*settings*/) override {}
|
void readSettings(QSettings * /*settings*/) override {}
|
||||||
void writeSettings(QSettings * /*settings*/) const override {}
|
void writeSettings(QSettings * /*settings*/) const override {}
|
||||||
QFuture<Utils::FileSearchResultList> executeSearch(
|
QFuture<FileSearchResultList> executeSearch(
|
||||||
const TextEditor::FileFindParameters ¶meters,
|
const TextEditor::FileFindParameters ¶meters,
|
||||||
BaseFileFind *baseFileFind) override
|
BaseFileFind *baseFileFind) override
|
||||||
{
|
{
|
||||||
@@ -65,7 +65,7 @@ public:
|
|||||||
TextDocument::openedTextDocumentContents());
|
TextDocument::openedTextDocumentContents());
|
||||||
|
|
||||||
}
|
}
|
||||||
Core::IEditor *openEditor(const Core::SearchResultItem &/*item*/,
|
Core::IEditor *openEditor(const SearchResultItem &/*item*/,
|
||||||
const TextEditor::FileFindParameters &/*parameters*/) override
|
const TextEditor::FileFindParameters &/*parameters*/) override
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|||||||
@@ -4,20 +4,24 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "texteditor_global.h"
|
#include "texteditor_global.h"
|
||||||
#include <utils/filesearch.h>
|
|
||||||
|
|
||||||
#include <coreplugin/find/ifindfilter.h>
|
#include <coreplugin/find/ifindfilter.h>
|
||||||
#include <coreplugin/find/searchresultwindow.h>
|
#include <coreplugin/find/searchresultwindow.h>
|
||||||
|
|
||||||
|
#include <utils/filesearch.h>
|
||||||
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
#include <QFuture>
|
#include <QFuture>
|
||||||
|
|
||||||
namespace Utils { class FileIterator; }
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
class IEditor;
|
class IEditor;
|
||||||
class SearchResult;
|
class SearchResult;
|
||||||
class SearchResultItem;
|
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
||||||
|
namespace Utils {
|
||||||
|
class FileIterator;
|
||||||
|
}
|
||||||
|
|
||||||
namespace TextEditor {
|
namespace TextEditor {
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -54,7 +58,7 @@ public:
|
|||||||
virtual void writeSettings(QSettings *settings) const = 0;
|
virtual void writeSettings(QSettings *settings) const = 0;
|
||||||
virtual QFuture<Utils::FileSearchResultList> executeSearch(
|
virtual QFuture<Utils::FileSearchResultList> executeSearch(
|
||||||
const FileFindParameters ¶meters, BaseFileFind *baseFileFind) = 0;
|
const FileFindParameters ¶meters, BaseFileFind *baseFileFind) = 0;
|
||||||
virtual Core::IEditor *openEditor(const Core::SearchResultItem &item,
|
virtual Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
||||||
const FileFindParameters ¶meters) = 0;
|
const FileFindParameters ¶meters) = 0;
|
||||||
bool isEnabled() const;
|
bool isEnabled() const;
|
||||||
void setEnabled(bool enabled);
|
void setEnabled(bool enabled);
|
||||||
@@ -82,7 +86,7 @@ public:
|
|||||||
|
|
||||||
/* returns the list of unique files that were passed in items */
|
/* returns the list of unique files that were passed in items */
|
||||||
static Utils::FilePaths replaceAll(const QString &txt,
|
static Utils::FilePaths replaceAll(const QString &txt,
|
||||||
const QList<Core::SearchResultItem> &items,
|
const QList<Utils::SearchResultItem> &items,
|
||||||
bool preserveCase = false);
|
bool preserveCase = false);
|
||||||
virtual Utils::FileIterator *files(const QStringList &nameFilters,
|
virtual Utils::FileIterator *files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
@@ -111,9 +115,9 @@ signals:
|
|||||||
void currentSearchEngineChanged();
|
void currentSearchEngineChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void openEditor(Core::SearchResult *result, const Core::SearchResultItem &item);
|
void openEditor(Core::SearchResult *result, const Utils::SearchResultItem &item);
|
||||||
void doReplace(const QString &txt,
|
void doReplace(const QString &txt,
|
||||||
const QList<Core::SearchResultItem> &items,
|
const QList<Utils::SearchResultItem> &items,
|
||||||
bool preserveCase);
|
bool preserveCase);
|
||||||
void hideHighlightAll(bool visible);
|
void hideHighlightAll(bool visible);
|
||||||
void searchAgain(Core::SearchResult *search);
|
void searchAgain(Core::SearchResult *search);
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <coreplugin/find/searchresultitem.h>
|
#include <utils/searchresultitem.h>
|
||||||
|
|
||||||
namespace Core {
|
namespace Utils {
|
||||||
namespace Search {
|
namespace Search {
|
||||||
|
|
||||||
inline
|
inline
|
||||||
|
|||||||
Reference in New Issue
Block a user