From 49cd996700f4dce13ced04562e1f5808c65c2c29 Mon Sep 17 00:00:00 2001 From: Mantelis Date: Fri, 16 Aug 2024 14:38:50 +0300 Subject: [PATCH 01/11] Add autocomplete support for commands with arguments --- .../Repositories/CommandsRepository.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs index 4c2d4b5..c3fd39f 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs @@ -109,7 +109,11 @@ public List ResolveCommand(List arguments, Query query) ResultExtensions.Result( a.ResponseInfo.Item1, a.ResponseInfo.Item2, - () => { _context.API.ChangeQuery($"{a.Key} "); } + () => + { + _context.API.ChangeQuery($"{query.ActionKeyword} {a.ResponseInfo.Item1}"); + }, + hideAfterAction: false ) ) .ToList(); From 61cdc9123deb121e1182bdf60023613e2a2e4f91 Mon Sep 17 00:00:00 2001 From: Mantelis Date: Fri, 16 Aug 2024 14:39:22 +0300 Subject: [PATCH 02/11] Bump Flow.Launcher.Plugin package version --- .../Flow.Launcher.Plugin.ShortcutPlugin.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Flow.Launcher.Plugin.ShortcutPlugin.csproj b/Flow.Launcher.Plugin.ShortcutPlugin/Flow.Launcher.Plugin.ShortcutPlugin.csproj index 10f5aa0..d5bc2b8 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Flow.Launcher.Plugin.ShortcutPlugin.csproj +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Flow.Launcher.Plugin.ShortcutPlugin.csproj @@ -35,7 +35,7 @@ - + From b4cb4624764487cfa3252e14f785591154924835 Mon Sep 17 00:00:00 2001 From: Mantelis Date: Fri, 6 Sep 2024 18:41:58 +0300 Subject: [PATCH 03/11] Show associated icons for shortcuts --- .../ContextMenu.cs | 2 +- .../Images/powershell.png | Bin 13319 -> 0 bytes .../Images/powershell_black.png | Bin 0 -> 10843 bytes .../Models/Shortcuts/PluginShortcut.cs | 23 ------ .../Models/Shortcuts/Shortcut.cs | 32 +------ .../Repositories/CommandsRepository.cs | 8 +- .../Services/ShortcutsService.cs | 78 ++++++++++++++++-- .../Utilities/AppUtilities.cs | 76 +++++++++++++++++ .../Utilities/Icons.cs | 4 +- 9 files changed, 159 insertions(+), 64 deletions(-) delete mode 100644 Flow.Launcher.Plugin.ShortcutPlugin/Images/powershell.png create mode 100644 Flow.Launcher.Plugin.ShortcutPlugin/Images/powershell_black.png delete mode 100644 Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/PluginShortcut.cs create mode 100644 Flow.Launcher.Plugin.ShortcutPlugin/Utilities/AppUtilities.cs diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs b/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs index f916e41..2959b01 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs @@ -180,7 +180,7 @@ private void GetDirectoryContextMenu(ICollection contextMenu, DirectoryS }; Process.Start(processStartInfo); }, - iconPath: Icons.PowerShell + iconPath: Icons.PowerShellBlack )); contextMenu.Add(ResultExtensions.Result( diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Images/powershell.png b/Flow.Launcher.Plugin.ShortcutPlugin/Images/powershell.png deleted file mode 100644 index 725a736286cf180e9769deee47af13fb4d89f17d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13319 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 PoiDPIN)k0<#v%U$jlbjr diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Images/powershell_black.png b/Flow.Launcher.Plugin.ShortcutPlugin/Images/powershell_black.png new file mode 100644 index 0000000000000000000000000000000000000000..bba1843f1206918c18bc12e5c5e2f517ea1bcff8 GIT binary patch literal 10843 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 Ar~m)} literal 0 HcmV?d00001 diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/PluginShortcut.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/PluginShortcut.cs deleted file mode 100644 index 05f0b8a..0000000 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/PluginShortcut.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace Flow.Launcher.Plugin.ShortcutPlugin.Models.Shortcuts; - -public class PluginShortcut : Shortcut -{ - public string PluginName { get; init; } - - public string RawQuery { get; init; } - - public override object Clone() - { - return new PluginShortcut - { - Key = Key, - PluginName = PluginName, - RawQuery = RawQuery - }; - } - - public override string ToString() - { - return $"{PluginName} {RawQuery}"; - } -} \ No newline at end of file diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/Shortcut.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/Shortcut.cs index ce8e728..e2e7ce3 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/Shortcut.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/Shortcut.cs @@ -1,6 +1,5 @@ using System; using System.Text.Json.Serialization; -using Flow.Launcher.Plugin.ShortcutPlugin.Utilities; namespace Flow.Launcher.Plugin.ShortcutPlugin.Models.Shortcuts; @@ -10,11 +9,14 @@ namespace Flow.Launcher.Plugin.ShortcutPlugin.Models.Shortcuts; [JsonDerivedType(typeof(FileShortcut), nameof(ShortcutType.File))] [JsonDerivedType(typeof(ShellShortcut), nameof(ShortcutType.Shell))] [JsonDerivedType(typeof(GroupShortcut), nameof(ShortcutType.Group))] -[JsonDerivedType(typeof(PluginShortcut), nameof(ShortcutType.Plugin))] public abstract class Shortcut : ICloneable { public string Key { get; set; } + public string Description { get; set; } + + public string Icon { get; set; } + public string GetDerivedType() { return this switch @@ -22,38 +24,12 @@ public string GetDerivedType() FileShortcut => "File", DirectoryShortcut => "Directory", UrlShortcut => "Url", - PluginShortcut => "Plugin", GroupShortcut => "Group", ShellShortcut => "Shell", _ => "Unspecified shortcut type" }; } - public string GetIcon() - { - return this switch - { - FileShortcut => Icons.File, - DirectoryShortcut => Icons.Folder, - UrlShortcut => Icons.Link, - ShellShortcut => Icons.Terminal, - PluginShortcut => Icons.Logo, - GroupShortcut => Icons.TabGroup, - _ => Icons.Logo - }; - } - - public ShortcutType GetShortcutType() => this switch - { - FileShortcut => ShortcutType.File, - DirectoryShortcut => ShortcutType.Directory, - UrlShortcut => ShortcutType.Url, - ShellShortcut => ShortcutType.Shell, - PluginShortcut => ShortcutType.Plugin, - GroupShortcut => ShortcutType.Group, - _ => ShortcutType.Unspecified - }; - public abstract object Clone(); } \ No newline at end of file diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs index c3fd39f..fec95c1 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs @@ -98,10 +98,10 @@ public List ResolveCommand(List arguments, Query query) if (executor.Arguments.Count != 0) { // Can't check because Flow Launcher trims the query - /* if (!query.EndsWith(" ")) - { - return ResultExtensions.SingleResult(executor.ResponseInfo.Item1, executor.ResponseInfo.Item2); - } */ + // if (!query.RawQuery.EndsWith(" ")) + // { + // return ResultExtensions.SingleResult(executor.ResponseInfo.Item1, executor.ResponseInfo.Item2); + // } return executor .Arguments.Cast() diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs index 8a6b86e..086e42c 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using Flow.Launcher.Plugin.ShortcutPlugin.Extensions; using Flow.Launcher.Plugin.ShortcutPlugin.Models.Shortcuts; @@ -44,7 +45,7 @@ public List GetShortcuts(List arguments) $"{shortcut}", () => { _shortcutHandler.ExecuteShortcut(shortcut, arguments); }, contextData: shortcut, - iconPath: shortcut.GetIcon() + iconPath: GetIcon(shortcut) ); }) .ToList(); @@ -152,7 +153,7 @@ public List OpenShortcuts(string key, IEnumerable arguments) shortcut, args, defaultKey, - shortcut.GetIcon(), + GetIcon(shortcut), titleHighlightData: highlightIndexes ) ); @@ -186,7 +187,7 @@ public IEnumerable OpenShortcut(Shortcut shortcut, IEnumerable a shortcut, args, defaultKey, - shortcut.GetIcon(), + GetIcon(shortcut), titleHighlightData: highlightIndexes ) ); @@ -339,7 +340,7 @@ List arguments _shortcutHandler.ExecuteShortcut(groupShortcut, arguments); return true; }, - IcoPath = groupShortcut.GetIcon(), + IcoPath = GetIcon(groupShortcut), TitleHighlightData = highlightIndexes, Score = 100 } @@ -361,7 +362,7 @@ List arguments _shortcutHandler.ExecuteShortcut(shortcut, arguments); return true; }, - IcoPath = shortcut.GetIcon(), + IcoPath = GetIcon(shortcut), ContextData = shortcut }; }) @@ -420,7 +421,7 @@ List arguments _shortcutHandler.ExecuteShortcut(shortcut, arguments); return true; }, - IcoPath = shortcut.GetIcon(), + IcoPath = GetIcon(shortcut), ContextData = shortcut }); } @@ -446,7 +447,8 @@ private Result BuildResult( var expandedShortcut = ExpandShortcut(shortcut, arguments); return ResultExtensions.Result( - (string.IsNullOrEmpty(defaultKey) ? shortcut.GetDerivedType() : defaultKey) + " ", // FIXME: Wrong order without space + (string.IsNullOrEmpty(defaultKey) ? shortcut.GetDerivedType() : defaultKey) + + " ", // FIXME: Wrong order without space expandedShortcut, () => { _shortcutHandler.ExecuteShortcut(shortcut, arguments); }, contextData: shortcut, @@ -462,4 +464,66 @@ private Result BuildResult( } ); } + + private string GetIcon(Shortcut shortcut) + { + if (!string.IsNullOrEmpty(shortcut.Icon)) + { + return shortcut.Icon; + } + + var arguments = new Dictionary(); + + switch (shortcut) + { + case FileShortcut fileShortcut: + { + var path = _variablesService.ExpandVariables(fileShortcut.Path, arguments); + + return string.IsNullOrEmpty(fileShortcut.App) + ? path + : AppUtilities.GetApplicationPath(fileShortcut.App); + } + case DirectoryShortcut directoryShortcut: + { + return _variablesService.ExpandVariables(directoryShortcut.Path, arguments); + } + case UrlShortcut urlShortcut: + { + if (!(urlShortcut.Url.Contains("www.") || urlShortcut.Url.Contains("http") || + urlShortcut.Url.Contains("https"))) + { + return AppUtilities.GetApplicationPath(urlShortcut.Url.Split(':')[0]); + } + + if (string.IsNullOrEmpty(urlShortcut.App)) + { + return AppUtilities.GetSystemDefaultBrowser(); + } + + if (Path.Exists(urlShortcut.App)) + { + return urlShortcut.App; + } + + var path = AppUtilities.GetApplicationPath(urlShortcut.App); + + return !string.IsNullOrEmpty(path) ? path : Icons.Link; + } + + case ShellShortcut shellShortcut: + { + return shellShortcut.ShellType switch + { + ShellType.Cmd => Icons.WindowsTerminal, + ShellType.Powershell => Icons.PowerShellBlack, + _ => Icons.Terminal + }; + } + case GroupShortcut: + return Icons.TabGroup; + default: + return Icons.Logo; + } + } } \ No newline at end of file diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Utilities/AppUtilities.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Utilities/AppUtilities.cs new file mode 100644 index 0000000..6a50742 --- /dev/null +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Utilities/AppUtilities.cs @@ -0,0 +1,76 @@ +using System; +using System.IO; +using Microsoft.Win32; + +namespace Flow.Launcher.Plugin.ShortcutPlugin.Utilities; + +public static class AppUtilities +{ + public static string GetApplicationPath(string appName) + { + if (Path.Exists(appName)) + { + return appName; + } + + if (appName != null && !appName.EndsWith(".exe")) + { + appName += ".exe"; + } + + using var key = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, ""); + using var subKey = key.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + appName); + + var path = subKey?.GetValue("Path"); + + if (path != null) + { + return (string) path + "\\" + appName; + } + + return ""; + } + + public static string GetSystemDefaultApp(string extension) + { + string name; + RegistryKey regKey = null; + + try + { + var regDefault = Registry.CurrentUser.OpenSubKey( + $"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\{extension}\\UserChoice", false); + var stringDefault = regDefault?.GetValue("ProgId"); + + regKey = Registry.ClassesRoot.OpenSubKey(stringDefault + "\\shell\\open\\command", false); + name = regKey?.GetValue(null)?.ToString()?.ToLower().Replace("" + (char) 34, ""); + + if (name != null && !name.EndsWith("exe")) + { + name = name[..(name.LastIndexOf(".exe", StringComparison.Ordinal) + 4)]; + } + } + catch (Exception ex) + { + name = ""; + } + finally + { + regKey?.Close(); + } + + return name; + } + + public static string GetSystemDefaultBrowser() + { + using var key = Registry.CurrentUser.OpenSubKey( + @"SOFTWARE\Microsoft\Windows\Shell\Associations\URLAssociations\http\UserChoice"); + + var s = (string) key?.GetValue("ProgId"); + + using var command = Registry.ClassesRoot.OpenSubKey($"{s}\\shell\\open\\command"); + + return (string) command?.GetValue(null); + } +} \ No newline at end of file diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Utilities/Icons.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Utilities/Icons.cs index 14310e6..fda4023 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Utilities/Icons.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Utilities/Icons.cs @@ -32,13 +32,15 @@ public static class Icons public const string Terminal = "Images\\terminal.png"; + public const string Shell = "Images\\shell.png"; + public const string Web = "Images\\web.png"; public const string VisualCode = "Images\\vscode.png"; public const string VisualCodeInsiders = "Images\\vscode-insiders.png"; - public const string PowerShell = "Images\\powershell.png"; + public const string PowerShellBlack = "Images\\powershell_black.png"; public const string WindowsTerminal = "Images\\windows-terminal.png"; From 43c8a630c8bffd14ad3a2001130605551d9ce0a2 Mon Sep 17 00:00:00 2001 From: Mantelis Date: Sun, 8 Sep 2024 20:48:06 +0300 Subject: [PATCH 04/11] Update plugin icon and documentation --- CHANGELOG.md | 23 +++++++++++++++++- .../Images/icon.png | Bin 49224 -> 64612 bytes README.md | 11 ++++++--- assets/screenshots/commands_1.png | Bin 22224 -> 21423 bytes assets/screenshots/commands_2.png | Bin 23080 -> 22522 bytes assets/screenshots/commands_3.png | Bin 0 -> 21362 bytes 6 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 assets/screenshots/commands_3.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fe23fc..94dbce2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,28 @@ All notable changes to this project will be documented in this file. ## [Unreleased] -- Add quotes escaping +## [1.1.8] - 2024-09-xx + +- Add autocomplete support for commands with arguments +- Show associated icons for shortcuts in the search results +- New plugin icon + +## [1.1.7] - 2024-06-21 + +- New backup command with subcommands. +- Added copy result title and subtitle options in the context menu +- Fix issue with cmd arguments quotes +- Support for VS Code and VS Code - Insiders in context menu for folders +- Help command with documentation, issues links and developer Discord username + +## [1.1.6] - 2024-05-08 + +- Improved possible shortcuts fuzzy search. Now fuzzy search is case insensitive. +- Version command to see the current plugin version. +- Fix the disappearing config file after updating the plugin using default shortcuts and variables paths. This should + start working updating from **v1.1.6** to future releases. +- Changed default shortcuts and variable paths. +- Reset button in the settings panel to set default settings values. ## [1.1.5] - 2024-04-05 diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Images/icon.png b/Flow.Launcher.Plugin.ShortcutPlugin/Images/icon.png index 589a1b11f2f4e1f1902b57db444d065d720ac340..c824230161e4861fe09a37b4ec7fc1c4b1ffa50b 100644 GIT binary patch literal 64612 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 diff --git a/README.md b/README.md index 987ca4a..cca4918 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@
- Shortcuts logo -

Shortcuts Plugin
Quickly launch your shortcuts

+ Shortcuts logo + +

Shortcuts Plugin
Quickly launch your shortcuts


@@ -102,7 +103,8 @@ The following shortcut types are available. More types will be added in the futu If you want to add a new shortcut, you can use the following commands. Keep in mind that if shortcut contains spaces, you should use quotes around the arguments. Also, if you need to use quotes in the arguments, you should escape them. -You can do that by using `\"` or using Unicode escape sequence `\u0022`. For example, `\"C:\Program Files\MyApp\app.exe\"` +You can do that by using `\"` or using Unicode escape sequence `\u0022`. For example, +`\"C:\Program Files\MyApp\app.exe\"` - Directory shortcut @@ -248,6 +250,9 @@ syntax. Valid variable object attributes are `Name` and `Value`.

![Commands](assets/screenshots/commands_2.png) +
+
+![Commands](assets/screenshots/commands_3.png) # Licence diff --git a/assets/screenshots/commands_1.png b/assets/screenshots/commands_1.png index 9fac5b6192af8d98b5ac32b94e14b127288e7cfd..4de8f74564d0d2091cada0f9a348d8f38223c392 100644 GIT binary patch literal 21423 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
^4Q=!{z5WItCdh^v8r2A{vAeFwT!soI4 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 literal 23080 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 JNa<0~{{@r{CF%eG literal 0 HcmV?d00001 From 0cc13e824da7b3095e427876f4aa0a8b9e39e204 Mon Sep 17 00:00:00 2001 From: Mantelis Date: Mon, 9 Sep 2024 14:17:19 +0300 Subject: [PATCH 05/11] Refactor publish scrips for local development --- build/release.ps1 | 49 +++++++++++-------------------------- build/utils.ps1 | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 35 deletions(-) create mode 100644 build/utils.ps1 diff --git a/build/release.ps1 b/build/release.ps1 index ee1ba56..2e594f6 100644 --- a/build/release.ps1 +++ b/build/release.ps1 @@ -5,31 +5,8 @@ param ( [string]$configuration = "Release" ) -function Get-PropertyFromJson -{ - param ( - [string]$jsonFilePath, - [string]$propertyName - ) - - # Read the JSON file content - $jsonContent = Get-Content -Path $pluginJson -Raw - - # Parse the JSON content - $jsonObject = ConvertFrom-Json -InputObject $jsonContent - - # Return the extracted property - return $jsonObject.$propertyName -} - -function Remove-Directory($path) -{ - if (Test-Path $path) - { - Remove-Item -Force -Recurse -Path "$path\*" - } -} - +# Load functions +. "$PSScriptRoot\utils.ps1" # Define variables $parentDirectory = Split-Path -Path $PSScriptRoot -Parent @@ -43,16 +20,18 @@ $desktopDest = Join-Path -Path $userProfileDir -ChildPath "Desktop\$pluginName-$ Write-Host "Plugin $pluginName-$version publish" -ForegroundColor Magenta Write-Host -Write-Host "Script started..." -ForegroundColor Yellow +Print-Normal "Script started..." # Stop Flow Launcher -Write-Host "Stopping Flow Launcher..." -ForegroundColor Yellow +Print-Normal "Stopping Flow Launcher..." Stop-Process -Name "Flow.Launcher" -Force +Wait-Process -Name "Flow.Launcher" +Start-Sleep -Milliseconds 500 # Clean up directories -Write-Host "Cleaning up directories..." -ForegroundColor Yellow +Print-Normal "Cleaning up directories..." Remove-Directory -Path $publishDest Remove-Directory -Path $desktopDest $directoriesToRemove = Get-ChildItem -Path $pluginsDirectory -Directory | Where-Object { $_.Name -like "$pluginName-*" } @@ -65,12 +44,12 @@ foreach ($directory in $directoriesToRemove) # Publish plugin if ($configuration -eq "Debug") { - Write-Host "Building and publishing plugin in Debug mode..." -ForegroundColor Yellow + Print-Normal "Building and publishing plugin in Debug mode..." $publish = dotnet publish "Flow.Launcher.Plugin.ShortcutPlugin" -c Debug -r win-x64 --no-self-contained -o $publishDest } else { - Write-Host "Building and publishing plugin in Release mode..." -ForegroundColor Yellow + Print-Normal "Building and publishing plugin in Release mode..." $publish = dotnet publish "Flow.Launcher.Plugin.ShortcutPlugin" -c Release -r win-x64 --no-self-contained -o $publishDest } @@ -78,27 +57,27 @@ $publish_result = $LASTEXITCODE if ($publish_result -ne 0) { - Write-Host "Publish failed with exit code $publish_result" -ForegroundColor Red + Print-Error "Publish failed with exit code $publish_result" exit $publish_result } # Copy plugin to destination -Write-Host "Copying plugin to destination..." -ForegroundColor Yellow +Print-Normal "Copying plugin to destination..." Copy-Item -Path $publishDest -Destination $pluginDest -Force -Recurse # Start Flow Launcher -Write-Host "Starting Flow Launcher..." -ForegroundColor Yellow +Print-Normal "Starting Flow Launcher..." Start-Process (Join-Path -Path $userProfileDir -ChildPath "AppData\Local\FlowLauncher\Flow.Launcher.exe") # Process publish to desktop if ($copyToDesktop) { - Write-Host "Copying plugin to desktop..." -ForegroundColor Yellow + Print-Normal "Copying plugin to desktop..." Copy-Item -Path $publishDest -Destination $desktopDest -Force -Recurse Compress-Archive -Path $desktopDest -DestinationPath "$desktopDest.zip" -Force } Write-Host -Write-Host "Script finished. Success!" -ForegroundColor Green \ No newline at end of file +Print-Success "Script finished. Success!" \ No newline at end of file diff --git a/build/utils.ps1 b/build/utils.ps1 new file mode 100644 index 0000000..01a8591 --- /dev/null +++ b/build/utils.ps1 @@ -0,0 +1,61 @@ +function Get-PropertyFromJson +{ + param ( + [string]$jsonFilePath, + [string]$propertyName + ) + + # Read the JSON file content + $jsonContent = Get-Content -Path $pluginJson -Raw + + # Parse the JSON content + $jsonObject = ConvertFrom-Json -InputObject $jsonContent + + # Return the extracted property + return $jsonObject.$propertyName +} + +function Remove-Directory($path) +{ + if (Test-Path $path) + { + Remove-Item -Force -Recurse -Path "$path\*" + } +} + +function Print-Message +{ + param ( + [string]$message, + [string]$color + ) + + Write-Host $message -ForegroundColor $color +} + +function Print-Success +{ + param ( + [string]$message + ) + + Print-Message -message $message -color Green +} + +function Print-Error +{ + param ( + [string]$message + ) + + Print-Message -message $message -color Red +} + +function Print-Normal +{ + param ( + [string]$message + ) + + Print-Message -message $message -color White +} \ No newline at end of file From fe715e8d3f7dab45659c41e85ae35bad8cb6f374 Mon Sep 17 00:00:00 2001 From: Mantelis Date: Mon, 9 Sep 2024 14:25:21 +0300 Subject: [PATCH 06/11] Autocomplete for shortcut queries replaces the query with the corresponding shortcut path --- CHANGELOG.md | 14 ++++++++++++++ .../Services/CommandsService.cs | 18 ++++++++++++++---- .../Services/ShortcutsService.cs | 3 ++- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94dbce2..f5a49e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,8 +7,22 @@ All notable changes to this project will be documented in this file. ## [1.1.8] - 2024-09-xx - Add autocomplete support for commands with arguments +- After typing the full shortcut, for example `q dev`, pressing `Ctr+Tab` (autocomplete) will replace current query with + the + shortcut path - Show associated icons for shortcuts in the search results - New plugin icon +- Customizable icons for shortcuts. In order to use custom icons, add `Icon` field in the shortcut JSON file. + Provide the full path to the icon file. Example: + + ```json + { + "Type": "Directory", + "Path": "C:\\Users\\tutta\\Storage\\Dev", + "Key": "dev", + "Icon": "C:\\Users\\tutta\\Storage\\Dev\\Projects\\ShortcutPlugin\\Flow.Launcher.Plugin.ShortcutPlugin\\Images\\discord-mark-white.png" + } + ``` ## [1.1.7] - 2024-06-21 diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Services/CommandsService.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Services/CommandsService.cs index f613f11..a5d76b7 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Services/CommandsService.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Services/CommandsService.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Flow.Launcher.Plugin.ShortcutPlugin.Models.Shortcuts; using Flow.Launcher.Plugin.ShortcutPlugin.Repositories.Interfaces; using Flow.Launcher.Plugin.ShortcutPlugin.Services.Interfaces; @@ -31,9 +32,18 @@ public List ResolveCommand(List arguments, Query query) //TODO: Move this to different place? results.ForEach(result => { - result.AutoCompleteText = string.IsNullOrEmpty(result.AutoCompleteText) - ? $"{query.ActionKeyword} {result.Title}" - : $"{query.ActionKeyword} {result.AutoCompleteText}"; + if (string.IsNullOrEmpty(result.AutoCompleteText)) + { + result.AutoCompleteText = $"{query.ActionKeyword} {result.Title}"; + } + else if (result.ContextData is Shortcut) + { + result.AutoCompleteText = result.SubTitle; + } + else + { + result.AutoCompleteText = $"{query.ActionKeyword} {result.AutoCompleteText}"; + } }); return results; @@ -45,4 +55,4 @@ public void ReloadPluginData() _shortcutsService.Reload(); _variablesService.Reload(); } -} +} \ No newline at end of file diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs index 086e42c..b33629b 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs @@ -45,7 +45,8 @@ public List GetShortcuts(List arguments) $"{shortcut}", () => { _shortcutHandler.ExecuteShortcut(shortcut, arguments); }, contextData: shortcut, - iconPath: GetIcon(shortcut) + iconPath: GetIcon(shortcut), + autoCompleteText: $"{shortcut}" ); }) .ToList(); From a84497055244ce2dd15818e5be9d955156a228eb Mon Sep 17 00:00:00 2001 From: Mantelis Date: Mon, 9 Sep 2024 14:37:43 +0300 Subject: [PATCH 07/11] Fix copy to clipboard issue --- .../ContextMenu.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs b/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs index 2959b01..dd270a0 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs @@ -1,9 +1,7 @@ using System; using System.Collections.Generic; -using System.Collections.Specialized; using System.Diagnostics; using System.IO; -using System.Windows; using Flow.Launcher.Plugin.ShortcutPlugin.Extensions; using Flow.Launcher.Plugin.ShortcutPlugin.Models.Shortcuts; using Flow.Launcher.Plugin.ShortcutPlugin.Services.Interfaces; @@ -15,10 +13,12 @@ namespace Flow.Launcher.Plugin.ShortcutPlugin; internal class ContextMenu : IContextMenu { private readonly IVariablesService _variablesService; + private readonly PluginInitContext _context; - public ContextMenu(IVariablesService variablesService) + public ContextMenu(IVariablesService variablesService, PluginInitContext context) { _variablesService = variablesService; + _context = context; } public List LoadContextMenus(Result selectedResult) @@ -45,18 +45,18 @@ public List LoadContextMenus(Result selectedResult) return contextMenu; } - private static void AddCopyTitleAndSubtitle(Result selectedResult, List contextMenu) + private void AddCopyTitleAndSubtitle(Result selectedResult, List contextMenu) { var copyTitle = ResultExtensions.Result( "Copy result title", selectedResult.Title, - action: () => { Clipboard.SetText(selectedResult.Title); }, + action: () => { _context.API.CopyToClipboard(selectedResult.Title, showDefaultNotification: false); }, iconPath: Icons.Copy ); var copySubTitle = ResultExtensions.Result( "Copy result subtitle", selectedResult.SubTitle, - action: () => { Clipboard.SetText(selectedResult.SubTitle); }, + action: () => { _context.API.CopyToClipboard(selectedResult.SubTitle, showDefaultNotification: false); }, iconPath: Icons.Copy ); @@ -106,13 +106,13 @@ private void GetFileShortcutContextMenu(ICollection contextMenu, FileSho contextMenu.Add(ResultExtensions.Result( "Copy path", - action: () => { Clipboard.SetText(filePath); }, + action: () => { _context.API.CopyToClipboard(filePath, showDefaultNotification: false); }, iconPath: Icons.Copy )); contextMenu.Add(ResultExtensions.Result( "Copy file", - action: () => { Clipboard.SetFileDropList(new StringCollection {filePath}); }, + action: () => { _context.API.CopyToClipboard(filePath, true, false); }, iconPath: Icons.Copy )); } @@ -185,7 +185,7 @@ private void GetDirectoryContextMenu(ICollection contextMenu, DirectoryS contextMenu.Add(ResultExtensions.Result( "Copy path", - action: () => { Clipboard.SetText(directoryPath); }, + action: () => { _context.API.CopyToClipboard(directoryPath, showDefaultNotification: false); }, iconPath: Icons.Copy )); From a529415a4583cd264de90ae0530a3699bbf396ec Mon Sep 17 00:00:00 2001 From: Mantelis Date: Wed, 11 Sep 2024 21:11:19 +0300 Subject: [PATCH 08/11] Shortcut key alias support --- CHANGELOG.md | 10 ++ .../ContextMenu.cs | 36 ++++++ .../Models/Shortcuts/Shortcut.cs | 14 +++ .../Repositories/CommandsRepository.cs | 35 +++--- .../Repositories/ShortcutsRepository.cs | 118 ++++++++++++++---- .../Services/ShortcutsService.cs | 44 +++---- 6 files changed, 187 insertions(+), 70 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5a49e9..274907e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,16 @@ All notable changes to this project will be documented in this file. - After typing the full shortcut, for example `q dev`, pressing `Ctr+Tab` (autocomplete) will replace current query with the shortcut path +- Alias support for shortcuts. Add `Alias` field in the shortcut JSON file. Provide the alias name. Example: + + ```json + { + "Type": "Directory", + "Path": "C:\\Users\\tutta\\Storage\\Dev", + "Key": "dev", + "Alias": ["development", "devs"] + } + ``` - Show associated icons for shortcuts in the search results - New plugin icon - Customizable icons for shortcuts. In order to use custom icons, add `Icon` field in the shortcut JSON file. diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs b/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs index dd270a0..a9f04d7 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/ContextMenu.cs @@ -25,6 +25,7 @@ public List LoadContextMenus(Result selectedResult) { var contextMenu = new List(); + AddShortcutDetails(selectedResult, contextMenu); AddCopyTitleAndSubtitle(selectedResult, contextMenu); if (selectedResult.ContextData is not Shortcut shortcut) @@ -45,6 +46,41 @@ public List LoadContextMenus(Result selectedResult) return contextMenu; } + private void AddShortcutDetails(Result selectedResult, List contextMenu) + { + if (selectedResult.ContextData is not Shortcut shortcut) + { + return; + } + + contextMenu.Add(ResultExtensions.Result( + "Key", + shortcut.Key, + () => { _context.API.CopyToClipboard(shortcut.Key, showDefaultNotification: false); } + )); + + if (shortcut.Alias is {Count: > 0}) + { + contextMenu.Add(ResultExtensions.Result( + "Alias", + string.Join(", ", shortcut.Alias), + () => + { + _context.API.CopyToClipboard(string.Join(", ", shortcut.Alias), showDefaultNotification: false); + } + )); + } + + if (!string.IsNullOrEmpty(shortcut.Description)) + { + contextMenu.Add(ResultExtensions.Result( + "Description", + shortcut.Description, + () => { _context.API.CopyToClipboard(shortcut.Description, showDefaultNotification: false); } + )); + } + } + private void AddCopyTitleAndSubtitle(Result selectedResult, List contextMenu) { var copyTitle = ResultExtensions.Result( diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/Shortcut.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/Shortcut.cs index e2e7ce3..9ee8dc9 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/Shortcut.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Models/Shortcuts/Shortcut.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Text.Json.Serialization; namespace Flow.Launcher.Plugin.ShortcutPlugin.Models.Shortcuts; @@ -13,6 +14,8 @@ public abstract class Shortcut : ICloneable { public string Key { get; set; } + public List Alias { get; set; } + public string Description { get; set; } public string Icon { get; set; } @@ -30,6 +33,17 @@ public string GetDerivedType() }; } + public string GetTitle() + { + return $"{Key}{GetAlias()}"; + } + + private string GetAlias() + { + // Alternative symbols: ⨯ ⇒ ⪢ ⌗ + return Alias is {Count: > 0} ? $" ⌗ {string.Join(" ⌗ ", Alias)}" : string.Empty; + } + public abstract object Clone(); } \ No newline at end of file diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs index fec95c1..9f38def 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs @@ -45,29 +45,29 @@ public List ResolveCommand(List arguments, Query query) return ShowAvailableCommands(query.ActionKeyword); } + var key = arguments[0]; + var argsWithoutKey = arguments.Skip(1).ToList(); + // In case this is a shortcut command, let's open shortcut - if (_shortcutsRepository.GetShortcuts(arguments[0]) is not null) + if (_shortcutsRepository.GetShortcuts(key) is not null) { - return _shortcutsService.OpenShortcuts(arguments[0], arguments.Skip(1).ToList()); // Skips shortcut name + return _shortcutsService.OpenShortcuts(key, argsWithoutKey); } // If command was not found - if (!_commands.TryGetValue(arguments[0], out var command)) + if (!_commands.TryGetValue(key, out var command)) { // Show possible shortcuts var possibleShortcuts = _shortcutsRepository - .GetPossibleShortcuts(arguments[0]) - .Select(s => - _shortcutsService.OpenShortcut(s, arguments.Skip(1).ToList()) - .First() - ); + .GetPossibleShortcuts(key) + .Select(s => _shortcutsService.OpenShortcut(s, argsWithoutKey).First()); // Return possible command matches - var possibleCommands = GetPossibleCommands(arguments[0], query.ActionKeyword); + var possibleCommands = GetPossibleCommands(key, query.ActionKeyword); var possibleResults = possibleShortcuts.Concat(possibleCommands).ToList(); - return possibleResults.Count != 0 + return possibleResults.Any() ? possibleResults : ResultExtensions.SingleResult( "Invalid input", @@ -95,13 +95,13 @@ public List ResolveCommand(List arguments, Query query) } // If command has more arguments - if (executor.Arguments.Count != 0) + if (executor.Arguments.Any()) { // Can't check because Flow Launcher trims the query - // if (!query.RawQuery.EndsWith(" ")) - // { - // return ResultExtensions.SingleResult(executor.ResponseInfo.Item1, executor.ResponseInfo.Item2); - // } + /*if (!query.RawQuery.EndsWith(" ")) + { + return ResultExtensions.SingleResult(executor.ResponseInfo.Item1, executor.ResponseInfo.Item2); + }*/ return executor .Arguments.Cast() @@ -109,10 +109,7 @@ public List ResolveCommand(List arguments, Query query) ResultExtensions.Result( a.ResponseInfo.Item1, a.ResponseInfo.Item2, - () => - { - _context.API.ChangeQuery($"{query.ActionKeyword} {a.ResponseInfo.Item1}"); - }, + () => { _context.API.ChangeQuery($"{query.ActionKeyword} {a.ResponseInfo.Item1}"); }, hideAfterAction: false ) ) diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs index 8555b74..f71b495 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs @@ -35,6 +35,7 @@ public IList GetShortcuts() { return _shortcuts.Values .SelectMany(x => x) + .Distinct() .ToList(); } @@ -43,15 +44,18 @@ public IEnumerable GetPossibleShortcuts(string key) var lowerKey = key.ToLowerInvariant(); var result = GetShortcuts() - .Select(s => new + .SelectMany(s => (s.Alias ?? Enumerable.Empty()).Append(s.Key), + (s, k) => new {Shortcut = s, Key = k}) + .Select(x => new { - Shortcut = s, - PartialScore = Fuzz.PartialRatio(s.Key.ToLowerInvariant(), lowerKey), - Score = Fuzz.Ratio(s.Key.ToLowerInvariant(), lowerKey) + x.Shortcut, + PartialScore = Fuzz.PartialRatio(x.Key.ToLowerInvariant(), lowerKey), + Score = Fuzz.Ratio(x.Key.ToLowerInvariant(), lowerKey) }) .Where(x => x.PartialScore > 90) .OrderByDescending(x => x.Score) .Select(x => x.Shortcut) + .Distinct() .ToList(); return result; @@ -59,41 +63,100 @@ public IEnumerable GetPossibleShortcuts(string key) public void AddShortcut(Shortcut shortcut) { - var result = _shortcuts.TryGetValue(shortcut.Key, out var value); + var keys = (shortcut.Alias ?? Enumerable.Empty()).Append(shortcut.Key); - if (!result) + foreach (var key in keys) { - value = new List(); - _shortcuts.Add(shortcut.Key, value); - } + if (!_shortcuts.TryGetValue(key, out var value)) + { + value = new List(); + _shortcuts.Add(key, value); + } - value.Add(shortcut); + value.Add(shortcut); + } SaveShortcuts(); } public void RemoveShortcut(Shortcut shortcut) { - if (!_shortcuts.TryGetValue(shortcut.Key, out var value)) - { - return; - } + var keys = (shortcut.Alias ?? Enumerable.Empty()).Append(shortcut.Key); - var result = value.Remove(shortcut); - - if (!result) + foreach (var key in keys) { - return; - } + if (!_shortcuts.TryGetValue(key, out var value)) + { + continue; + } - if (value.Count == 0) - { - _shortcuts.Remove(shortcut.Key); + var result = value.Remove(shortcut); + + if (result && value.Count == 0) + { + _shortcuts.Remove(key); + } } SaveShortcuts(); } + // public IEnumerable GetPossibleShortcuts(string key) + // { + // var lowerKey = key.ToLowerInvariant(); + // + // var result = GetShortcuts() + // .Select(s => new + // { + // Shortcut = s, + // PartialScore = Fuzz.PartialRatio(s.Key.ToLowerInvariant(), lowerKey), + // Score = Fuzz.Ratio(s.Key.ToLowerInvariant(), lowerKey) + // }) + // .Where(x => x.PartialScore > 90) + // .OrderByDescending(x => x.Score) + // .Select(x => x.Shortcut) + // .ToList(); + // + // return result; + // } + // + // public void AddShortcut(Shortcut shortcut) + // { + // var result = _shortcuts.TryGetValue(shortcut.Key, out var value); + // + // if (!result) + // { + // value = new List(); + // _shortcuts.Add(shortcut.Key, value); + // } + // + // value.Add(shortcut); + // + // SaveShortcuts(); + // } + // + // public void RemoveShortcut(Shortcut shortcut) + // { + // if (!_shortcuts.TryGetValue(shortcut.Key, out var value)) + // { + // return; + // } + // + // var result = value.Remove(shortcut); + // + // if (!result) + // { + // return; + // } + // + // if (value.Count == 0) + // { + // _shortcuts.Remove(shortcut.Key); + // } + // + // SaveShortcuts(); + // } + public IList GetGroups() { return _shortcuts.Values @@ -190,8 +253,14 @@ private Dictionary> ReadShortcuts(string path) var json = File.ReadAllText(path); var shortcuts = JsonSerializer.Deserialize>(json); - return shortcuts.GroupBy(x => x.Key) - .ToDictionary(x => x.Key, x => x.ToList()); + return shortcuts + .SelectMany(s => (s.Alias ?? Enumerable.Empty()).Append(s.Key), + (s, k) => new {Shortcut = s, Key = k}) + // .SelectMany(s => s.Alias.Append(s.Key), (s, k) => new {Shortcut = s, Key = k}) + .GroupBy(x => x.Key) + .ToDictionary(x => x.Key, x => x.Select(y => y.Shortcut).ToList()); + // .GroupBy(x => x.Key) + // .ToDictionary(x => x.Key, x => x.ToList()); } catch (Exception e) { @@ -212,6 +281,7 @@ private void SaveShortcuts() var flattenShortcuts = _shortcuts.Values .SelectMany(x => x) + .Distinct() .ToList(); var json = JsonSerializer.Serialize(flattenShortcuts, options); diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs index b33629b..d722f1f 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Services/ShortcutsService.cs @@ -41,7 +41,7 @@ public List GetShortcuts(List arguments) .Select(shortcut => { return ResultExtensions.Result( - shortcut.Key, + shortcut.GetTitle(), $"{shortcut}", () => { _shortcutHandler.ExecuteShortcut(shortcut, arguments); }, contextData: shortcut, @@ -75,7 +75,7 @@ public List GetGroups() .Select(group => { return ResultExtensions.Result( - group.Key, + group.GetTitle(), $"{group}", () => { _shortcutHandler.ExecuteShortcut(group, null); } ); @@ -107,7 +107,7 @@ private List RemoveShortcut(List shortcuts) return shortcuts.Select(shortcut => { return ResultExtensions.Result( - string.Format(Resources.ShortcutsManager_RemoveShortcut_Remove_shortcut, shortcut.Key), + string.Format(Resources.ShortcutsManager_RemoveShortcut_Remove_shortcut, shortcut.GetTitle()), shortcut.ToString(), () => { _shortcutsRepository.RemoveShortcut(shortcut); } ); @@ -124,16 +124,6 @@ public List OpenShortcuts(string key, IEnumerable arguments) return ResultExtensions.EmptyResult(); } - /*TODO: add group shortcut validation need to expand variables/arguments - if (!Validators.Validators.IsValidShortcut(shortcut)) - { - return ResultExtensions.SingleResult( - $"Shortcut with key '{key}' is not valid.", - "Please check the shortcut and try again.", - titleHighlightData: Enumerable.Range(19, key.Length).ToList() - ); - }*/ - var args = arguments.ToList(); var results = new List(); @@ -146,8 +136,8 @@ public List OpenShortcuts(string key, IEnumerable arguments) } var temp = $"Open {shortcut.GetDerivedType().ToLower()} "; - var defaultKey = $"{temp}{shortcut.Key}"; - var highlightIndexes = Enumerable.Range(temp.Length, shortcut.Key.Length).ToList(); + var defaultKey = $"{temp}{shortcut.GetTitle()}"; + var highlightIndexes = Enumerable.Range(temp.Length, shortcut.GetTitle().Length).ToList(); results.Add( BuildResult( @@ -173,15 +163,15 @@ public IEnumerable OpenShortcut(Shortcut shortcut, IEnumerable a var args = arguments.ToList(); var results = new List(); - // if (shortcut is GroupShortcut groupShortcut) - // { - // results.AddRange(GetGroupShortcutResults(groupShortcut, args)); - // continue; - // } + /*if (shortcut is GroupShortcut groupShortcut) + { + results.AddRange(GetGroupShortcutResults(groupShortcut, args)); + return results; + }*/ var temp = $"Open {shortcut.GetDerivedType().ToLower()} "; - var defaultKey = $"{temp}{shortcut.Key}"; - var highlightIndexes = Enumerable.Range(temp.Length, shortcut.Key.Length).ToList(); + var defaultKey = $"{temp}{shortcut.GetTitle()}"; + var highlightIndexes = Enumerable.Range(temp.Length, shortcut.GetTitle().Length).ToList(); results.Add( BuildResult( @@ -207,7 +197,7 @@ public List DuplicateShortcut(string existingKey, string newKey) return existingShortcuts.Select(shortcut => ResultExtensions.Result( - $"Duplicate {shortcut.GetDerivedType()} shortcut '{shortcut.Key}' to '{newKey}'", + $"Duplicate {shortcut.GetDerivedType()} shortcut '{shortcut.GetTitle()}' to '{newKey}'", shortcut.ToString(), () => { _shortcutsRepository.DuplicateShortcut(shortcut, newKey); })) .ToList(); @@ -327,8 +317,8 @@ List arguments var joinedArguments = string.Join(" ", arguments); var title = "Open group "; - var highlightIndexes = Enumerable.Range(title.Length, groupShortcut.Key.Length).ToList(); - title += groupShortcut.Key; + var highlightIndexes = Enumerable.Range(title.Length, groupShortcut.GetTitle().Length).ToList(); + title += groupShortcut.GetTitle(); var results = new List { @@ -356,7 +346,7 @@ List arguments return new Result { - Title = $"{shortcut.Key ?? shortcut.GetDerivedType()}", + Title = $"{shortcut.GetTitle() ?? shortcut.GetDerivedType()}", SubTitle = expandedShortcut, Action = _ => { @@ -415,7 +405,7 @@ List arguments results.Add(new Result { - Title = $"{shortcut.Key ?? shortcut.GetDerivedType()}", + Title = $"{shortcut.GetTitle() ?? shortcut.GetDerivedType()}", SubTitle = expandedShortcut, Action = _ => { From fc816d5ecc5f57fda61cc7da4d39f0cb5a221493 Mon Sep 17 00:00:00 2001 From: Mantelis Date: Wed, 11 Sep 2024 22:33:08 +0300 Subject: [PATCH 09/11] Improve possible shortcuts search --- .../Extensions/ResultExtensions.cs | 10 ------- .../Repositories/CommandsRepository.cs | 2 +- .../Repositories/ShortcutsRepository.cs | 26 +++++++------------ 3 files changed, 11 insertions(+), 27 deletions(-) diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Extensions/ResultExtensions.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Extensions/ResultExtensions.cs index 90b35ee..e28f114 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Extensions/ResultExtensions.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Extensions/ResultExtensions.cs @@ -16,16 +16,6 @@ public static List EmptyResult(string title, string subtitle = "") return SingleResult(title, subtitle); } - /*public static List InitializedResult() - { - return SingleResult(Resources.ShortcutsManager_Init_Plugin_initialized); - }*/ - - /*public static List NotImplementedResult() - { - return SingleResult("Not implemented yet", "Please wait for the next release"); - }*/ - public static List SingleResult( string title, string subtitle = "", diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs index 9f38def..dc2741b 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/CommandsRepository.cs @@ -60,7 +60,7 @@ public List ResolveCommand(List arguments, Query query) // Show possible shortcuts var possibleShortcuts = _shortcutsRepository .GetPossibleShortcuts(key) - .Select(s => _shortcutsService.OpenShortcut(s, argsWithoutKey).First()); + .SelectMany(s => _shortcutsService.OpenShortcut(s, argsWithoutKey)); // Return possible command matches var possibleCommands = GetPossibleCommands(key, query.ActionKeyword); diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs index f71b495..7ccea33 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs @@ -43,22 +43,16 @@ public IEnumerable GetPossibleShortcuts(string key) { var lowerKey = key.ToLowerInvariant(); - var result = GetShortcuts() - .SelectMany(s => (s.Alias ?? Enumerable.Empty()).Append(s.Key), - (s, k) => new {Shortcut = s, Key = k}) - .Select(x => new - { - x.Shortcut, - PartialScore = Fuzz.PartialRatio(x.Key.ToLowerInvariant(), lowerKey), - Score = Fuzz.Ratio(x.Key.ToLowerInvariant(), lowerKey) - }) - .Where(x => x.PartialScore > 90) - .OrderByDescending(x => x.Score) - .Select(x => x.Shortcut) - .Distinct() - .ToList(); - - return result; + var shortcuts = GetShortcuts() + .SelectMany(s => (s.Alias ?? Enumerable.Empty()).Append(s.Key), + (s, k) => new {Shortcut = s, Key = k.ToLowerInvariant()}); + + return shortcuts + .Where(x => Fuzz.PartialRatio(x.Key, lowerKey) > 90) + .OrderByDescending(x => Fuzz.Ratio(x.Key, lowerKey)) + .Select(x => x.Shortcut) + .Distinct() + .ToList(); } public void AddShortcut(Shortcut shortcut) From 59a6ef085907a7c617def03e113af2138e3b406d Mon Sep 17 00:00:00 2001 From: Mantelis Date: Thu, 12 Sep 2024 19:16:33 +0300 Subject: [PATCH 10/11] Remove unused code --- .../Repositories/ShortcutsRepository.cs | 59 ------------------- 1 file changed, 59 deletions(-) diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs index 7ccea33..7e596b2 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs +++ b/Flow.Launcher.Plugin.ShortcutPlugin/Repositories/ShortcutsRepository.cs @@ -95,62 +95,6 @@ public void RemoveShortcut(Shortcut shortcut) SaveShortcuts(); } - // public IEnumerable GetPossibleShortcuts(string key) - // { - // var lowerKey = key.ToLowerInvariant(); - // - // var result = GetShortcuts() - // .Select(s => new - // { - // Shortcut = s, - // PartialScore = Fuzz.PartialRatio(s.Key.ToLowerInvariant(), lowerKey), - // Score = Fuzz.Ratio(s.Key.ToLowerInvariant(), lowerKey) - // }) - // .Where(x => x.PartialScore > 90) - // .OrderByDescending(x => x.Score) - // .Select(x => x.Shortcut) - // .ToList(); - // - // return result; - // } - // - // public void AddShortcut(Shortcut shortcut) - // { - // var result = _shortcuts.TryGetValue(shortcut.Key, out var value); - // - // if (!result) - // { - // value = new List(); - // _shortcuts.Add(shortcut.Key, value); - // } - // - // value.Add(shortcut); - // - // SaveShortcuts(); - // } - // - // public void RemoveShortcut(Shortcut shortcut) - // { - // if (!_shortcuts.TryGetValue(shortcut.Key, out var value)) - // { - // return; - // } - // - // var result = value.Remove(shortcut); - // - // if (!result) - // { - // return; - // } - // - // if (value.Count == 0) - // { - // _shortcuts.Remove(shortcut.Key); - // } - // - // SaveShortcuts(); - // } - public IList GetGroups() { return _shortcuts.Values @@ -250,11 +194,8 @@ private Dictionary> ReadShortcuts(string path) return shortcuts .SelectMany(s => (s.Alias ?? Enumerable.Empty()).Append(s.Key), (s, k) => new {Shortcut = s, Key = k}) - // .SelectMany(s => s.Alias.Append(s.Key), (s, k) => new {Shortcut = s, Key = k}) .GroupBy(x => x.Key) .ToDictionary(x => x.Key, x => x.Select(y => y.Shortcut).ToList()); - // .GroupBy(x => x.Key) - // .ToDictionary(x => x.Key, x => x.ToList()); } catch (Exception e) { From 04533ba468dc9eb50788b4a90d3c10d6061da2a7 Mon Sep 17 00:00:00 2001 From: Mantelis Date: Thu, 12 Sep 2024 19:28:22 +0300 Subject: [PATCH 11/11] Update plugin version --- Flow.Launcher.Plugin.ShortcutPlugin/plugin.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Flow.Launcher.Plugin.ShortcutPlugin/plugin.json b/Flow.Launcher.Plugin.ShortcutPlugin/plugin.json index b9297ed..f14e870 100644 --- a/Flow.Launcher.Plugin.ShortcutPlugin/plugin.json +++ b/Flow.Launcher.Plugin.ShortcutPlugin/plugin.json @@ -3,11 +3,11 @@ "Name": "Shortcuts", "Description": "Open user defined shortcut quickly from Flow Launcher", "Author": "Mantelis", - "Version": "1.1.7", + "Version": "1.1.8", "Language": "csharp", "ActionKeyword": "q", "Website": "https://github.com/mantasjasikenas/flow-launcher-shortcuts-plugin", - "UrlDownload":"https://github.com/mantasjasikenas/flow-launcher-shortcuts-plugin/releases/download/v1.1.7/Flow.Launcher.Plugin.ShortcutPlugin.zip", + "UrlDownload":"https://github.com/mantasjasikenas/flow-launcher-shortcuts-plugin/releases/download/v1.1.8/Flow.Launcher.Plugin.ShortcutPlugin.zip", "UrlSourceCode": "https://github.com/mantasjasikenas/flow-launcher-shortcuts-plugin/tree/master", "IcoPath": "images\\icon.png", "ExecuteFileName": "Flow.Launcher.Plugin.ShortcutPlugin.dll"