forked from qt-creator/qt-creator
LocatorFilterEntry: Get rid of filter field
Remove also c'tor taking a pointer to filter. Change-Id: Ic0fe62daeb6e79a729bee24d07d7eb77559e19c4 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
@@ -221,7 +221,6 @@ private:
|
|||||||
const auto docSymbolGenerator = [&](const DocumentSymbol &info,
|
const auto docSymbolGenerator = [&](const DocumentSymbol &info,
|
||||||
const LocatorFilterEntry &parent) {
|
const LocatorFilterEntry &parent) {
|
||||||
LocatorFilterEntry entry;
|
LocatorFilterEntry entry;
|
||||||
entry.filter = this;
|
|
||||||
entry.displayName = ClangdClient::displayNameFromDocumentSymbol(
|
entry.displayName = ClangdClient::displayNameFromDocumentSymbol(
|
||||||
static_cast<SymbolKind>(info.kind()), info.name(),
|
static_cast<SymbolKind>(info.kind()), info.name(),
|
||||||
info.detail().value_or(QString()));
|
info.detail().value_or(QString()));
|
||||||
|
@@ -153,7 +153,8 @@ QList<LocatorFilterEntry> BaseFileFilter::matchesFor(QFutureInterface<LocatorFil
|
|||||||
QRegularExpressionMatch match = regexp.match(matchText);
|
QRegularExpressionMatch match = regexp.match(matchText);
|
||||||
|
|
||||||
if (match.hasMatch()) {
|
if (match.hasMatch()) {
|
||||||
LocatorFilterEntry filterEntry(this, path.fileName());
|
LocatorFilterEntry filterEntry;
|
||||||
|
filterEntry.displayName = path.fileName();
|
||||||
filterEntry.filePath = path;
|
filterEntry.filePath = path;
|
||||||
filterEntry.extraInfo = path.shortNativePath();
|
filterEntry.extraInfo = path.shortNativePath();
|
||||||
filterEntry.linkForEditor = Link(path, link.targetLine, link.targetColumn);
|
filterEntry.linkForEditor = Link(path, link.targetLine, link.targetColumn);
|
||||||
|
@@ -66,7 +66,8 @@ void ExternalToolsFilter::prepareSearch(const QString &entry)
|
|||||||
goodEntries.append(filterEntry);
|
goodEntries.append(filterEntry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LocatorFilterEntry configEntry(this, "Configure External Tool...");
|
LocatorFilterEntry configEntry;
|
||||||
|
configEntry.displayName = "Configure External Tool...";
|
||||||
configEntry.extraInfo = "Opens External Tool settings";
|
configEntry.extraInfo = "Opens External Tool settings";
|
||||||
configEntry.acceptor = [] {
|
configEntry.acceptor = [] {
|
||||||
QMetaObject::invokeMethod(CorePlugin::instance(), [] {
|
QMetaObject::invokeMethod(CorePlugin::instance(), [] {
|
||||||
|
@@ -80,14 +80,7 @@ public:
|
|||||||
|
|
||||||
LocatorFilterEntry() = default;
|
LocatorFilterEntry() = default;
|
||||||
|
|
||||||
LocatorFilterEntry(ILocatorFilter *fromFilter, const QString &name)
|
|
||||||
: filter(fromFilter)
|
|
||||||
, displayName(name)
|
|
||||||
{}
|
|
||||||
|
|
||||||
using Acceptor = std::function<AcceptResult()>;
|
using Acceptor = std::function<AcceptResult()>;
|
||||||
/* backpointer to creating filter */
|
|
||||||
ILocatorFilter *filter = nullptr;
|
|
||||||
/* displayed string */
|
/* displayed string */
|
||||||
QString displayName;
|
QString displayName;
|
||||||
/* extra information displayed in parentheses and light-gray next to display name (optional)*/
|
/* extra information displayed in parentheses and light-gray next to display name (optional)*/
|
||||||
|
@@ -75,7 +75,12 @@ QList<LocatorFilterEntry> JavaScriptFilter::matchesFor(
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
const QString expression = entry + " = " + result;
|
const QString expression = entry + " = " + result;
|
||||||
entries.append({this, expression});
|
|
||||||
|
LocatorFilterEntry entry;
|
||||||
|
entry.displayName = expression;
|
||||||
|
entry.acceptor = [] { return AcceptResult(); };
|
||||||
|
entries.append(entry);
|
||||||
|
|
||||||
LocatorFilterEntry resultEntry;
|
LocatorFilterEntry resultEntry;
|
||||||
resultEntry.displayName = Tr::tr("Copy to clipboard: %1").arg(result);
|
resultEntry.displayName = Tr::tr("Copy to clipboard: %1").arg(result);
|
||||||
resultEntry.acceptor = acceptor(result);
|
resultEntry.acceptor = acceptor(result);
|
||||||
|
@@ -96,7 +96,8 @@ QList<LocatorFilterEntry> OpenDocumentsFilter::matchesFor(QFutureInterface<Locat
|
|||||||
QString displayName = editorEntry.displayName;
|
QString displayName = editorEntry.displayName;
|
||||||
const QRegularExpressionMatch match = regexp.match(displayName);
|
const QRegularExpressionMatch match = regexp.match(displayName);
|
||||||
if (match.hasMatch()) {
|
if (match.hasMatch()) {
|
||||||
LocatorFilterEntry filterEntry(this, displayName);
|
LocatorFilterEntry filterEntry;
|
||||||
|
filterEntry.displayName = displayName;
|
||||||
filterEntry.filePath = FilePath::fromString(fileName);
|
filterEntry.filePath = FilePath::fromString(fileName);
|
||||||
filterEntry.extraInfo = filterEntry.filePath.shortNativePath();
|
filterEntry.extraInfo = filterEntry.filePath.shortNativePath();
|
||||||
filterEntry.highlightInfo = highlightInfo(match);
|
filterEntry.highlightInfo = highlightInfo(match);
|
||||||
|
@@ -88,7 +88,8 @@ QList<LocatorFilterEntry> CppCurrentDocumentFilter::matchesFor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LocatorFilterEntry filterEntry(this, name);
|
LocatorFilterEntry filterEntry;
|
||||||
|
filterEntry.displayName = name;
|
||||||
filterEntry.displayIcon = info->icon();
|
filterEntry.displayIcon = info->icon();
|
||||||
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
||||||
filterEntry.extraInfo = extraInfo;
|
filterEntry.extraInfo = extraInfo;
|
||||||
|
@@ -119,8 +119,8 @@ LocatorMatcherTask locatorMatcher(IndexItem::ItemType type, const EntryFromIndex
|
|||||||
LocatorMatcherTask cppAllSymbolsMatcher()
|
LocatorMatcherTask cppAllSymbolsMatcher()
|
||||||
{
|
{
|
||||||
const auto converter = [](const IndexItem::Ptr &info) {
|
const auto converter = [](const IndexItem::Ptr &info) {
|
||||||
// TODO: Passing nullptr for filter -> accept won't work now. Replace with accept function.
|
LocatorFilterEntry filterEntry;
|
||||||
LocatorFilterEntry filterEntry(nullptr, info->scopedSymbolName());
|
filterEntry.displayName = info->scopedSymbolName();
|
||||||
filterEntry.displayIcon = info->icon();
|
filterEntry.displayIcon = info->icon();
|
||||||
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
||||||
if (info->type() == IndexItem::Class || info->type() == IndexItem::Enum)
|
if (info->type() == IndexItem::Class || info->type() == IndexItem::Enum)
|
||||||
@@ -135,8 +135,8 @@ LocatorMatcherTask cppAllSymbolsMatcher()
|
|||||||
LocatorMatcherTask cppClassMatcher()
|
LocatorMatcherTask cppClassMatcher()
|
||||||
{
|
{
|
||||||
const auto converter = [](const IndexItem::Ptr &info) {
|
const auto converter = [](const IndexItem::Ptr &info) {
|
||||||
// TODO: Passing nullptr for filter -> accept won't work now. Replace with accept function.
|
LocatorFilterEntry filterEntry;
|
||||||
LocatorFilterEntry filterEntry(nullptr, info->symbolName());
|
filterEntry.displayName = info->symbolName();
|
||||||
filterEntry.displayIcon = info->icon();
|
filterEntry.displayIcon = info->icon();
|
||||||
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
||||||
filterEntry.extraInfo = info->symbolScope().isEmpty()
|
filterEntry.extraInfo = info->symbolScope().isEmpty()
|
||||||
@@ -158,8 +158,8 @@ LocatorMatcherTask cppFunctionMatcher()
|
|||||||
extraInfo = info->shortNativeFilePath();
|
extraInfo = info->shortNativeFilePath();
|
||||||
else
|
else
|
||||||
extraInfo.append(" (" + info->filePath().fileName() + ')');
|
extraInfo.append(" (" + info->filePath().fileName() + ')');
|
||||||
// TODO: Passing nullptr for filter -> accept won't work now. Replace with accept function.
|
LocatorFilterEntry filterEntry;
|
||||||
LocatorFilterEntry filterEntry(nullptr, name + info->symbolType());
|
filterEntry.displayName = name + info->symbolType();
|
||||||
filterEntry.displayIcon = info->icon();
|
filterEntry.displayIcon = info->icon();
|
||||||
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
||||||
filterEntry.extraInfo = extraInfo;
|
filterEntry.extraInfo = extraInfo;
|
||||||
@@ -237,8 +237,8 @@ void matchesForCurrentDocument(QPromise<LocatorMatcherTask::OutputData> &promise
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Passing nullptr for filter -> accept won't work now. Replace with accept function.
|
LocatorFilterEntry filterEntry;
|
||||||
LocatorFilterEntry filterEntry(nullptr, name);
|
filterEntry.displayName = name;
|
||||||
filterEntry.displayIcon = info->icon();
|
filterEntry.displayIcon = info->icon();
|
||||||
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
||||||
filterEntry.extraInfo = extraInfo;
|
filterEntry.extraInfo = extraInfo;
|
||||||
@@ -326,7 +326,8 @@ CppLocatorFilter::CppLocatorFilter()
|
|||||||
|
|
||||||
LocatorFilterEntry CppLocatorFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
|
LocatorFilterEntry CppLocatorFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
|
||||||
{
|
{
|
||||||
LocatorFilterEntry filterEntry(this, info->scopedSymbolName());
|
LocatorFilterEntry filterEntry;
|
||||||
|
filterEntry.displayName = info->scopedSymbolName();
|
||||||
filterEntry.displayIcon = info->icon();
|
filterEntry.displayIcon = info->icon();
|
||||||
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
||||||
if (info->type() == IndexItem::Class || info->type() == IndexItem::Enum)
|
if (info->type() == IndexItem::Class || info->type() == IndexItem::Enum)
|
||||||
@@ -423,7 +424,8 @@ CppClassesFilter::CppClassesFilter()
|
|||||||
|
|
||||||
LocatorFilterEntry CppClassesFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
|
LocatorFilterEntry CppClassesFilter::filterEntryFromIndexItem(IndexItem::Ptr info)
|
||||||
{
|
{
|
||||||
LocatorFilterEntry filterEntry(this, info->symbolName());
|
LocatorFilterEntry filterEntry;
|
||||||
|
filterEntry.displayName = info->symbolName();
|
||||||
filterEntry.displayIcon = info->icon();
|
filterEntry.displayIcon = info->icon();
|
||||||
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
||||||
filterEntry.extraInfo = info->symbolScope().isEmpty()
|
filterEntry.extraInfo = info->symbolScope().isEmpty()
|
||||||
@@ -453,7 +455,8 @@ LocatorFilterEntry CppFunctionsFilter::filterEntryFromIndexItem(IndexItem::Ptr i
|
|||||||
extraInfo.append(" (" + info->filePath().fileName() + ')');
|
extraInfo.append(" (" + info->filePath().fileName() + ')');
|
||||||
}
|
}
|
||||||
|
|
||||||
LocatorFilterEntry filterEntry(this, name + info->symbolType());
|
LocatorFilterEntry filterEntry;
|
||||||
|
filterEntry.displayName = name + info->symbolType();
|
||||||
filterEntry.displayIcon = info->icon();
|
filterEntry.displayIcon = info->icon();
|
||||||
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
filterEntry.linkForEditor = {info->filePath(), info->line(), info->column()};
|
||||||
filterEntry.extraInfo = extraInfo;
|
filterEntry.extraInfo = extraInfo;
|
||||||
|
@@ -38,8 +38,6 @@ void filterResults(QPromise<LocatorMatcherTask::OutputData> &promise, Client *cl
|
|||||||
: Utils::filtered(results, doFilter);
|
: Utils::filtered(results, doFilter);
|
||||||
const auto generateEntry = [client](const SymbolInformation &info) {
|
const auto generateEntry = [client](const SymbolInformation &info) {
|
||||||
LocatorFilterEntry entry;
|
LocatorFilterEntry entry;
|
||||||
// TODO: Passing nullptr for filter -> accept won't work now. Replace with accept function.
|
|
||||||
entry.filter = nullptr;
|
|
||||||
entry.displayName = info.name();
|
entry.displayName = info.name();
|
||||||
if (std::optional<QString> container = info.containerName())
|
if (std::optional<QString> container = info.containerName())
|
||||||
entry.extraInfo = container.value_or(QString());
|
entry.extraInfo = container.value_or(QString());
|
||||||
@@ -170,11 +168,9 @@ void DocumentLocatorFilter::resetSymbols()
|
|||||||
}
|
}
|
||||||
|
|
||||||
static LocatorFilterEntry generateLocatorEntry(const SymbolInformation &info,
|
static LocatorFilterEntry generateLocatorEntry(const SymbolInformation &info,
|
||||||
ILocatorFilter *filter,
|
|
||||||
DocumentUri::PathMapper pathMapper)
|
DocumentUri::PathMapper pathMapper)
|
||||||
{
|
{
|
||||||
LocatorFilterEntry entry;
|
LocatorFilterEntry entry;
|
||||||
entry.filter = filter;
|
|
||||||
entry.displayName = info.name();
|
entry.displayName = info.name();
|
||||||
if (std::optional<QString> container = info.containerName())
|
if (std::optional<QString> container = info.containerName())
|
||||||
entry.extraInfo = container.value_or(QString());
|
entry.extraInfo = container.value_or(QString());
|
||||||
@@ -190,7 +186,7 @@ QList<LocatorFilterEntry> DocumentLocatorFilter::entriesForSymbolsInfo(
|
|||||||
QList<LocatorFilterEntry> entries;
|
QList<LocatorFilterEntry> entries;
|
||||||
for (const SymbolInformation &info : infoList) {
|
for (const SymbolInformation &info : infoList) {
|
||||||
if (regexp.match(info.name()).hasMatch())
|
if (regexp.match(info.name()).hasMatch())
|
||||||
entries << LanguageClient::generateLocatorEntry(info, this, m_pathMapper);
|
entries << LanguageClient::generateLocatorEntry(info, m_pathMapper);
|
||||||
}
|
}
|
||||||
return entries;
|
return entries;
|
||||||
}
|
}
|
||||||
@@ -228,7 +224,6 @@ QList<LocatorFilterEntry> DocumentLocatorFilter::matchesFor(
|
|||||||
const LocatorFilterEntry &parent) {
|
const LocatorFilterEntry &parent) {
|
||||||
Q_UNUSED(parent)
|
Q_UNUSED(parent)
|
||||||
LocatorFilterEntry entry;
|
LocatorFilterEntry entry;
|
||||||
entry.filter = this;
|
|
||||||
entry.displayName = info.name();
|
entry.displayName = info.name();
|
||||||
if (std::optional<QString> detail = info.detail())
|
if (std::optional<QString> detail = info.detail())
|
||||||
entry.extraInfo = detail.value_or(QString());
|
entry.extraInfo = detail.value_or(QString());
|
||||||
@@ -362,8 +357,8 @@ QList<LocatorFilterEntry> WorkspaceLocatorFilter::matchesFor(
|
|||||||
return m_filterKinds.contains(SymbolKind(info.symbol.kind()));
|
return m_filterKinds.contains(SymbolKind(info.symbol.kind()));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
auto generateEntry = [this](const SymbolInfoWithPathMapper &info) {
|
auto generateEntry = [](const SymbolInfoWithPathMapper &info) {
|
||||||
return generateLocatorEntry(info.symbol, this, info.mapper);
|
return generateLocatorEntry(info.symbol, info.mapper);
|
||||||
};
|
};
|
||||||
return Utils::transform(m_results, generateEntry).toList();
|
return Utils::transform(m_results, generateEntry).toList();
|
||||||
}
|
}
|
||||||
|
@@ -48,7 +48,8 @@ QList<LocatorFilterEntry> FunctionFilter::matchesFor(QFutureInterface<LocatorFil
|
|||||||
|
|
||||||
const QRegularExpressionMatch match = regexp.match(info.symbolName);
|
const QRegularExpressionMatch match = regexp.match(info.symbolName);
|
||||||
if (match.hasMatch()) {
|
if (match.hasMatch()) {
|
||||||
LocatorFilterEntry filterEntry(this, info.displayName);
|
LocatorFilterEntry filterEntry;
|
||||||
|
filterEntry.displayName = info.displayName;
|
||||||
filterEntry.linkForEditor = {info.fileName, info.line, info.column};
|
filterEntry.linkForEditor = {info.fileName, info.line, info.column};
|
||||||
filterEntry.extraInfo = info.extraInfo;
|
filterEntry.extraInfo = info.extraInfo;
|
||||||
filterEntry.highlightInfo = highlightInfo(match);
|
filterEntry.highlightInfo = highlightInfo(match);
|
||||||
|
Reference in New Issue
Block a user