mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-05 10:46:33 +02:00
[PTRun]Don't show results from other plugins when using keyword (#19206)
This commit is contained in:
committed by
GitHub
parent
8e2570033c
commit
996a235e12
@@ -136,10 +136,7 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query.ActionKeyword == string.Empty || (query.ActionKeyword != string.Empty && query.Search != string.Empty))
|
results = results.Where(a => a.Title.ToLowerInvariant().Contains(query.Search.ToLowerInvariant())).ToList();
|
||||||
{
|
|
||||||
results = results.Where(a => a.Title.ToLowerInvariant().Contains(query.Search.ToLowerInvariant())).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
results.ForEach(x =>
|
results.ForEach(x =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -60,8 +60,8 @@ namespace Community.PowerToys.Run.Plugin.WebSearch
|
|||||||
|
|
||||||
var results = new List<Result>();
|
var results = new List<Result>();
|
||||||
|
|
||||||
// empty non-global query:
|
// empty query
|
||||||
if (!AreResultsGlobal() && query.ActionKeyword == query.RawQuery)
|
if (string.IsNullOrEmpty(query.Search))
|
||||||
{
|
{
|
||||||
string arguments = "? ";
|
string arguments = "? ";
|
||||||
results.Add(new Result
|
results.Add(new Result
|
||||||
@@ -84,8 +84,7 @@ namespace Community.PowerToys.Run.Plugin.WebSearch
|
|||||||
});
|
});
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
if (!string.IsNullOrEmpty(query.Search))
|
|
||||||
{
|
{
|
||||||
string searchTerm = query.Search;
|
string searchTerm = query.Search;
|
||||||
|
|
||||||
|
|||||||
@@ -46,8 +46,7 @@ namespace Microsoft.Plugin.Uri
|
|||||||
{
|
{
|
||||||
var results = new List<Result>();
|
var results = new List<Result>();
|
||||||
|
|
||||||
if (IsActivationKeyword(query)
|
if (string.IsNullOrWhiteSpace(query?.Search) && BrowserInfo.IsDefaultBrowserSet)
|
||||||
&& BrowserInfo.IsDefaultBrowserSet)
|
|
||||||
{
|
{
|
||||||
results.Add(new Result
|
results.Add(new Result
|
||||||
{
|
{
|
||||||
@@ -104,12 +103,6 @@ namespace Microsoft.Plugin.Uri
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsActivationKeyword(Query query)
|
|
||||||
{
|
|
||||||
return !string.IsNullOrEmpty(query?.ActionKeyword)
|
|
||||||
&& query?.ActionKeyword == query?.RawQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Init(PluginInitContext context)
|
public void Init(PluginInitContext context)
|
||||||
{
|
{
|
||||||
Context = context ?? throw new ArgumentNullException(nameof(context));
|
Context = context ?? throw new ArgumentNullException(nameof(context));
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Wox.Infrastructure;
|
using Wox.Infrastructure;
|
||||||
@@ -37,7 +36,6 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests
|
|||||||
[DataRow("now", 3)]
|
[DataRow("now", 3)]
|
||||||
[DataRow("current", 3)]
|
[DataRow("current", 3)]
|
||||||
[DataRow("year", 0)]
|
[DataRow("year", 0)]
|
||||||
[DataRow("", 0)]
|
|
||||||
[DataRow("time::10:10:10", 0)]
|
[DataRow("time::10:10:10", 0)]
|
||||||
[DataRow("date::10/10/10", 0)]
|
[DataRow("date::10/10/10", 0)]
|
||||||
public void CountWithoutPluginKeyword(string typedString, int expectedResultCount)
|
public void CountWithoutPluginKeyword(string typedString, int expectedResultCount)
|
||||||
|
|||||||
@@ -42,12 +42,6 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.Components
|
|||||||
bool isEmptySearchInput = string.IsNullOrEmpty(query.Search);
|
bool isEmptySearchInput = string.IsNullOrEmpty(query.Search);
|
||||||
string searchTerm = query.Search;
|
string searchTerm = query.Search;
|
||||||
|
|
||||||
// Empty search without keyword => return no results
|
|
||||||
if (!isKeywordSearch && isEmptySearchInput)
|
|
||||||
{
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Conjunction search without keyword => return no results
|
// Conjunction search without keyword => return no results
|
||||||
// (This improves the results on global queries.)
|
// (This improves the results on global queries.)
|
||||||
if (!isKeywordSearch && _conjunctionList.Any(x => x.Equals(searchTerm, StringComparison.CurrentCultureIgnoreCase)))
|
if (!isKeywordSearch && _conjunctionList.Any(x => x.Equals(searchTerm, StringComparison.CurrentCultureIgnoreCase)))
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) Microsoft Corporation
|
// Copyright (c) Microsoft Corporation
|
||||||
// The Microsoft Corporation licenses this file to you under the MIT license.
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||||||
// See the LICENSE file in the project root for more information.
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ namespace Microsoft.PowerToys.Run.Plugin.WindowsTerminal
|
|||||||
|
|
||||||
// Action keyword only or search query match
|
// Action keyword only or search query match
|
||||||
int score = StringMatcher.FuzzySearch(search, profile.Name).Score;
|
int score = StringMatcher.FuzzySearch(search, profile.Name).Score;
|
||||||
if ((!string.IsNullOrWhiteSpace(query.ActionKeyword) && string.IsNullOrWhiteSpace(search)) || score > 0)
|
if (string.IsNullOrWhiteSpace(search) || score > 0)
|
||||||
{
|
{
|
||||||
result.Add(new Result
|
result.Add(new Result
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -175,6 +175,11 @@ namespace PowerLauncher.Plugin
|
|||||||
return new List<Result>();
|
return new List<Result>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(query.ActionKeyword) && string.IsNullOrWhiteSpace(query.Search))
|
||||||
|
{
|
||||||
|
return new List<Result>();
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
List<Result> results = null;
|
List<Result> results = null;
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
// Copyright (c) Microsoft Corporation
|
// Copyright (c) Microsoft Corporation
|
||||||
// The Microsoft Corporation licenses this file to you under the MIT license.
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||||||
// See the LICENSE file in the project root for more information.
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Mono.Collections.Generic;
|
using Mono.Collections.Generic;
|
||||||
|
|
||||||
@@ -58,7 +57,7 @@ namespace Wox.Plugin
|
|||||||
{
|
{
|
||||||
if (_search == null)
|
if (_search == null)
|
||||||
{
|
{
|
||||||
_search = RawQuery.Substring(ActionKeyword.Length).Trim();
|
_search = RawQuery.Substring(ActionKeyword?.Length ?? 0).Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
return _search;
|
return _search;
|
||||||
|
|||||||
@@ -17,12 +17,6 @@ namespace Wox.Test
|
|||||||
[DataRow(">", "dummyQueryText", "dummyTitle", "> dummyQueryText")]
|
[DataRow(">", "dummyQueryText", "dummyTitle", "> dummyQueryText")]
|
||||||
[DataRow(">", null, "dummyTitle", "> dummyTitle")]
|
[DataRow(">", null, "dummyTitle", "> dummyTitle")]
|
||||||
[DataRow(">", "", "dummyTitle", "> dummyTitle")]
|
[DataRow(">", "", "dummyTitle", "> dummyTitle")]
|
||||||
[DataRow("", "dummyQueryText", "dummyTitle", "dummyQueryText")]
|
|
||||||
[DataRow("", null, "dummyTitle", "dummyTitle")]
|
|
||||||
[DataRow("", "", "dummyTitle", "dummyTitle")]
|
|
||||||
[DataRow(null, "dummyQueryText", "dummyTitle", "dummyQueryText")]
|
|
||||||
[DataRow(null, null, "dummyTitle", "dummyTitle")]
|
|
||||||
[DataRow(null, "", "dummyTitle", "dummyTitle")]
|
|
||||||
public void QueryForPluginSetsActionKeywordWhenQueryTextDisplayIsEmpty(string actionKeyword, string queryTextDisplay, string title, string expectedResult)
|
public void QueryForPluginSetsActionKeywordWhenQueryTextDisplayIsEmpty(string actionKeyword, string queryTextDisplay, string title, string expectedResult)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
@@ -58,5 +52,44 @@ namespace Wox.Test
|
|||||||
// Assert
|
// Assert
|
||||||
Assert.AreEqual(expectedResult, queryOutput[0].QueryTextDisplay);
|
Assert.AreEqual(expectedResult, queryOutput[0].QueryTextDisplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[DataTestMethod]
|
||||||
|
[DataRow("", true)]
|
||||||
|
[DataRow(null, true)]
|
||||||
|
[DataRow(">", false)]
|
||||||
|
public void QueryDefaultResultsForPlugin(string actionKeyword, bool emptyResults)
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var query = new Query(string.Empty, actionKeyword);
|
||||||
|
var metadata = new PluginMetadata
|
||||||
|
{
|
||||||
|
ID = "dummyName",
|
||||||
|
IcoPathDark = "dummyIcoPath",
|
||||||
|
IcoPathLight = "dummyIcoPath",
|
||||||
|
ExecuteFileName = "dummyExecuteFileName",
|
||||||
|
PluginDirectory = "dummyPluginDirectory",
|
||||||
|
ActionKeyword = ">",
|
||||||
|
IsGlobal = true,
|
||||||
|
};
|
||||||
|
var result = new Result()
|
||||||
|
{
|
||||||
|
QueryTextDisplay = "dummyQueryText",
|
||||||
|
Title = "dummyTitle",
|
||||||
|
};
|
||||||
|
var results = new List<Result>() { result };
|
||||||
|
var pluginMock = new Mock<IPlugin>();
|
||||||
|
pluginMock.Setup(r => r.Query(query)).Returns(results);
|
||||||
|
var pluginPair = new PluginPair(metadata)
|
||||||
|
{
|
||||||
|
Plugin = pluginMock.Object,
|
||||||
|
IsPluginInitialized = true,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var queryOutput = PluginManager.QueryForPlugin(pluginPair, query);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.AreEqual(queryOutput.Count == 0, emptyResults);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user