doc/devdocs/modules/launcher/plugins/overview.md
The following basic functions are common to each of the plugins. They perform some rudimentary operations such as initialization of the plugin, executing the query that has been entered, loading context menu icons, updating settings when configurations are altered in the settings UI, and updating the theme of the icons when the theme changed event is triggered.
Each plugin implements the IPlugin interface which comprises of the Init() and Query() functions.
InitInit() function initializes the context, storage and settings of each plugin. This is equivalent to a constructor and is the first function to be called in the Main.cs file for each plugin.QueryPluginManager.cs executes the Query() function in the Main.cs file corresponding to each Plugin.ContextMenus are loaded for each result based on the type of the result.ContextMenu functionalities are:
UpdateSettings() function dispatches the changes in the check box to the plugin.IconPath for each plugin based on the theme.Score of each Result.Plugin settings that are editable from the settings are stored in PowerToys Run\settings.json. In the very first run, those settings are populated from plugin' plugin.json file. Unlike Wox we do not support multiple action keywords. Instead, we have ActionKeyword and IsGlobal options.