3
3
using Flow . Launcher . Plugin . PluginsManager . ViewModels ;
4
4
using Flow . Launcher . Plugin . PluginsManager . Views ;
5
5
using System . Collections . Generic ;
6
+ using System . Linq ;
6
7
using System . Windows . Controls ;
8
+ using Flow . Launcher . Infrastructure ;
7
9
8
10
namespace Flow . Launcher . Plugin . PluginsManager
9
11
{
10
12
public class Main : ISettingProvider , IPlugin , ISavable , IContextMenu , IPluginI18n
11
13
{
12
- internal PluginInitContext Context { get ; set ; }
14
+ internal static PluginInitContext Context { get ; set ; }
13
15
14
16
internal Settings Settings ;
15
17
16
18
private SettingsViewModel viewModel ;
17
19
18
20
private IContextMenu contextMenu ;
19
21
22
+ internal PluginsManager pluginManager ;
23
+
20
24
public Control CreateSettingPanel ( )
21
25
{
22
26
return new PluginsManagerSettings ( viewModel ) ;
@@ -28,6 +32,7 @@ public void Init(PluginInitContext context)
28
32
viewModel = new SettingsViewModel ( context ) ;
29
33
Settings = viewModel . Settings ;
30
34
contextMenu = new ContextMenu ( Context , Settings ) ;
35
+ pluginManager = new PluginsManager ( Context , Settings ) ;
31
36
}
32
37
33
38
public List < Result > LoadContextMenus ( Result selectedResult )
@@ -38,18 +43,21 @@ public List<Result> LoadContextMenus(Result selectedResult)
38
43
public List < Result > Query ( Query query )
39
44
{
40
45
var search = query . Search . ToLower ( ) ;
46
+
47
+ if ( string . IsNullOrWhiteSpace ( search ) )
48
+ return Settings . HotKeys ;
41
49
42
- var pluginManager = new PluginsManager ( Context , Settings ) ;
43
-
44
- if ( ! string . IsNullOrEmpty ( search )
45
- && ( $ " { Settings . HotkeyUninstall } " . StartsWith ( search ) || search . StartsWith ( $ " { Settings . HotkeyUninstall } " ) ) )
46
- return pluginManager . RequestUninstall ( search ) ;
47
-
48
- if ( ! string . IsNullOrEmpty ( search )
49
- && ( $ " { Settings . HotkeyUpdate } " . StartsWith ( search ) || search . StartsWith ( $ " { Settings . HotkeyUpdate } " ) ) )
50
- return pluginManager . RequestUpdate ( search ) ;
51
-
52
- return pluginManager . RequestInstallOrUpdate ( search ) ;
50
+ return search switch
51
+ {
52
+ var s when s . StartsWith ( Settings . HotKeyInstall ) => pluginManager . RequestInstallOrUpdate ( s ) ,
53
+ var s when s . StartsWith ( Settings . HotkeyUninstall ) => pluginManager . RequestUninstall ( s ) ,
54
+ var s when s . StartsWith ( Settings . HotkeyUpdate ) => pluginManager . RequestUpdate ( s ) ,
55
+ _ => Settings . HotKeys . Where ( hotkey =>
56
+ {
57
+ hotkey . Score = StringMatcher . FuzzySearch ( search , hotkey . Title ) . Score ;
58
+ return hotkey . Score > 0 ;
59
+ } ) . ToList ( )
60
+ } ;
53
61
}
54
62
55
63
public void Save ( )
@@ -67,4 +75,4 @@ public string GetTranslatedPluginDescription()
67
75
return Context . API . GetTranslation ( "plugin_pluginsmanager_plugin_description" ) ;
68
76
}
69
77
}
70
- }
78
+ }
0 commit comments