doc/devdocs/modules/launcher/plugins/system.md
As the name suggests, the Windows System Commands Plugin is used to directly run Windows system commands that have been entered by the user as a query. This is done by parsing the entry and validating the command, followed by executing it.
The user can change the behavior of the plugin (language, confirmation dialog, ...) with optional plugin settings.
Available commands:
We have the following settings that the user can configure to change the behavior of the plugin:
| Key | Default value | Name/Description |
|---|---|---|
ConfirmSystemCommands | false | Show a dialog to confirm system commands |
LocalizeSystemCommands | true | Use localized system commands instead of English ones |
ReduceNetworkResultScore | true | Reduce the priority of 'IP' and 'MAC' results to improve the order in the global results |
The optional plugin settings are implemented via the ISettingProvider interface from Wox.Plugin project. All available settings for the plugin are defined in the Main class of the plugin.
MainTries to parse the user input and returns a specific Windows system command by using a Result list.
While parsing, the plugin uses FuzzyMatch to get characters matching a result in the list.
Commands.csCommands class contains the definition of all available commands/results.ResultHelper.csResultHelper class contains methods for working with the results and some of the result features (tool tip, copy to clipboard, execute command).executingEmptyRecycleBinTask is set to true, to block multiple executions at the same time)NetworkConnectionProperties.csNetworkConnectionProperties class contains methods to get the properties of a network interface/connection.SystemPluginContext.csSystemPluginContext contains/defines the context data of a system plugin result. We select the context menu based on the defined properties.ContextData property of the Wox.Plugin.Result.The UEFI command is only available on systems, that boot in UEFI mode.
This is validated by checking the result of the method GetSystemFirmwareType, which uses the native method GetFirmwareType in kernel32.dll.
CalculateSearchScore A match found near the beginning of a string is scored more than a match found near the end. A match is scored more if the characters in the patterns are closer to each other, while the score is lower if they are more spread out.We return the results in two steps:
Main.Query(Query query).Main.Query(Query query, bool delayedExecution).We have a Unit Test project that executes various test to ensure that the plugin works as expected.
ImageTests.csImageTests.cs class contains tests to validate that each result shows the expected and correct image.QueryTests.csQueryTests.cs class contains tests to validate that the user gets the correct results when searching.