diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt index c969a00f8b3..51bcf83f5d4 100644 --- a/.github/actions/spelling/expect.txt +++ b/.github/actions/spelling/expect.txt @@ -56,4 +56,5 @@ TSource runas dpi popup -ptr \ No newline at end of file +ptr +pluginindicator \ No newline at end of file diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml index a6176a35f9d..3df1f468d8c 100644 --- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml +++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml @@ -2,7 +2,9 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib"> + Activate {0} plugin action keyword + Plugin Indicator Provides plugins action words suggestions - - \ No newline at end of file + + diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs index b5377eb17ab..aea0d77a1f6 100644 --- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs @@ -10,28 +10,28 @@ public class Main : IPlugin, IPluginI18n public List Query(Query query) { - // if query contains more than one word, eg. github tips - // user has decided to type something else rather than wanting to see the available action keywords - if (query.SearchTerms.Length > 1) - return new List(); - - var results = from keyword in PluginManager.NonGlobalPlugins.Keys - where keyword.StartsWith(query.Search) - let metadata = PluginManager.NonGlobalPlugins[keyword].Metadata - where !metadata.Disabled - select new Result - { - Title = keyword, - SubTitle = $"Activate {metadata.Name} plugin", - Score = 100, - IcoPath = metadata.IcoPath, - AutoCompleteText = $"{keyword}{Plugin.Query.TermSeparator}", - Action = c => - { - context.API.ChangeQuery($"{keyword}{Plugin.Query.TermSeparator}"); - return false; - } - }; + var results = + from keyword in PluginManager.NonGlobalPlugins.Keys + let plugin = PluginManager.NonGlobalPlugins[keyword].Metadata + let keywordSearchResult = context.API.FuzzySearch(query.Search, keyword) + let searchResult = keywordSearchResult.IsSearchPrecisionScoreMet() ? keywordSearchResult : context.API.FuzzySearch(query.Search, plugin.Name) + let score = searchResult.Score + where (searchResult.IsSearchPrecisionScoreMet() + || string.IsNullOrEmpty(query.Search)) // To list all available action keywords + && !plugin.Disabled + select new Result + { + Title = keyword, + SubTitle = string.Format(context.API.GetTranslation("flowlauncher_plugin_pluginindicator_result_subtitle"), plugin.Name), + Score = score, + IcoPath = plugin.IcoPath, + AutoCompleteText = $"{keyword}{Plugin.Query.TermSeparator}", + Action = c => + { + context.API.ChangeQuery($"{keyword}{Plugin.Query.TermSeparator}"); + return false; + } + }; return results.ToList(); } diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/plugin.json b/Plugins/Flow.Launcher.Plugin.PluginIndicator/plugin.json index fb527e3a8eb..084779ef9d7 100644 --- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/plugin.json +++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/plugin.json @@ -2,9 +2,9 @@ "ID": "6A122269676E40EB86EB543B945932B9", "ActionKeyword": "*", "Name": "Plugin Indicator", - "Description": "Provide plugin actionword suggestion", + "Description": "Provides plugin action keyword suggestions", "Author": "qianlifeng", - "Version": "2.0.0", + "Version": "2.0.1", "Language": "csharp", "Website": "https://github.com/Flow-Launcher/Flow.Launcher", "ExecuteFileName": "Flow.Launcher.Plugin.PluginIndicator.dll",