Skip to content

Commit 4dc6cfb

Browse files
committed
Some updates for content pattern compliance
Also added some details to the publishing page that need to be reviewed and updated. What are the pre-reqs? Do any of the other pages need developer pre-reqs?
1 parent 9e12258 commit 4dc6cfb

File tree

4 files changed

+51
-12
lines changed

4 files changed

+51
-12
lines changed

hub/powertoys/command-palette/creating-an-extension.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Command Palette Extensibility
3-
description: The Command Palette provides a full extension model, allowing developers to create their own experiences for the palette. Find info about how to create an extension and publish it along with samples.
3+
description: The Command Palette provides a full extension model, allowing you to create custom experiences for the palette. Learn how to create an extension and publish it.
44
ms.date: 2/28/2025
55
ms.topic: concept-article
66
no-loc: [PowerToys, Windows, Insider]
@@ -9,11 +9,13 @@ no-loc: [PowerToys, Windows, Insider]
99

1010
# Extensibility overview
1111

12+
The Command Palette provides a full extension model, allowing developers to create their own experiences for the palette. This document provides information about how to create an extension and publish it. It also includes a sample extension that demonstrates the extensibility model.
13+
1214
## Registering your extension
1315

1416
Extensions can register themselves with the Command Palette using their `.appxmanifest`. As an example:
1517

16-
```XML
18+
```xml
1719
<Extensions>
1820
<com:Extension Category="windows.comServer">
1921
<com:ComServer>
@@ -43,14 +45,18 @@ Extensions can register themselves with the Command Palette using their `.appxma
4345
</Extensions>
4446
```
4547

46-
Notable elements:
47-
48-
- The application must specify a `Extensions.comExtension.ComServer` to host their COM class. This allows for the OS to register that GUID as a COM class we can instantiate.
48+
### Important notes
4949

50-
- Make sure that this CLSID is unique, and matches the one in your application
50+
Some notable elements about the manifest example:
5151

52+
- The application must specify a `Extensions.comExtension.ComServer` to host their COM class. This allows for the OS to register that GUID as a COM class we can instantiate.
53+
- Make sure that this CLSID is unique, and matches the one in your application
5254
- The application must specify a `Extensions.uap3Extension.AppExtension` with the Name set to `com.microsoft.commandpalette`. This is the unique identifier which DevPal can use to find it's extensions.
53-
5455
- In the `Properties` of your `AppExtension`, you must specify a `CmdPalProvider` element. This is where you specify the CLSID of the COM class that DevPal will instantiate to interact with your extension. Also, you specify which interfaces you support.
5556

56-
Currently, only `Commands` is supported. If we need to add more in the future, we can add them to the `SupportedInterfaces` element.
57+
Currently, only `Commands` is supported. If we need to add more in the future, they will be added to the `SupportedInterfaces` element.
58+
59+
## Related content
60+
61+
- [PowerToys Command Palette utility](overview.md)
62+
- [Extension samples](samples.md)

hub/powertoys/command-palette/overview.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,10 @@ The following general options are available within the Command Palette settings
3939
| Highlight search on activate | The previous search text will be selected when the Command Palette is opened. |
4040
| Show app details | App details are automatically expanded when displaying an app as a result. |
4141
| Backspace goes back | Typing <kbd>Backspace</kbd> will take you back to the previous page. |
42-
| Single-click activates | Activate list items with a single click. When disabled, single clicking selects the item and double clicking activates it. |
42+
| Single-click activates | Activate list items with a single click. When disabled, single clicking selects the item and double clicking activates it. |
43+
44+
## Related content
45+
46+
- [PowerToys Run](../run.md)
47+
- [Extensibility overview](creating-an-extension.md)
48+
- [Extension samples](samples.md)
Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Command Palette Extension Publishing
3-
description: The Command Palette provides a full extension model, allowing developers to create their own experiences for the palette. Find info about how to publish an extension.
3+
description: The Command Palette provides a full extension model, allowing you to create custom experiences for the palette. Find info about how to publish an extension.
44
ms.date: 2/28/2025
55
ms.topic: concept-article
66
no-loc: [PowerToys, Windows, Insider]
@@ -9,6 +9,26 @@ no-loc: [PowerToys, Windows, Insider]
99

1010
# Publishing your extension
1111

12+
The Command Palette provides a full extension model, allowing developers to create their own experiences for the palette. This document provides information about how to publish an extension.
13+
14+
There is a "Sample Project" template included with the Command Palette. This can be used to quickly generate a project that creates a new extension. This will include the `.sln`, `.csproj`, and `.appxmanifest` files needed to create a new extension, as well as the plumbing to get it ready to be published. You will then open the project to the **MyCommandProvider** class and implement your commands.
15+
16+
## Pre-requisites
17+
18+
The following tools are required to build and publish your extension:
19+
20+
??
21+
1222
## Microsoft Store
1323

24+
Command Palette extensions can be published to the Microsoft Store. The process is similar to publishing other apps or extensions. You create a new submission in the Partner Center and upload your `.appx` package. The Command Palette automatically discovers your extension when it's installed from the Microsoft Store.
25+
1426
## WinGet
27+
28+
As a part of the project template, there's a WinGet GitHub Actions workflow that allows you to publish your extension to the WinGet repository with the necessary tags to make it discoverable by the Command Palette. So, you don't need to understand the details of packaging. You add the extension to your GitHub repository and let the your GitHub Actions pipeline handle the publishing.
29+
30+
## Related content
31+
32+
- [Extensibility overview](creating-an-extension.md)
33+
- [Extension samples](samples.md)
34+
- [PowerToys Command Palette utility](overview.md)

hub/powertoys/command-palette/samples.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Command Palette Extension Samples
3-
description: The Command Palette provides a full extension model, allowing developers to create their own experiences for the palette. Find available samples to get started with creating an extension.
3+
description: The Command Palette provides a full extension model, allowing you to create custom experiences for the palette. Find samples to start creating an extension.
44
ms.date: 2/7/2025
55
ms.topic: concept-article
66
no-loc: [PowerToys, Windows, Insider]
@@ -9,11 +9,13 @@ no-loc: [PowerToys, Windows, Insider]
99

1010
# Extension samples
1111

12+
The Command Palette provides a full extension model, allowing developers to create their own experiences for the palette. This document provides information about how to create an extension and publish it. It also includes a sample extension that demonstrates the extensibility model.
13+
1214
## Add a command
1315

1416
Create a class that implements [ICommand](./microsoft-commandpalette-extensions/icommand.md) and implement the [Invoke](./microsoft-commandpalette-extensions/iinvokablecommand_invoke.md) method. This method will be called whtn the user selects the command in the Command Palette.
1517

16-
```C#
18+
```csharp
1719
class MyPage : Microsoft.CommandPalette.Extensions.Toolkit.InvokableCommand {
1820
public class MyPage()
1921
{
@@ -28,3 +30,8 @@ class MyPage : Microsoft.CommandPalette.Extensions.Toolkit.InvokableCommand {
2830
}
2931
}
3032
```
33+
34+
## Related content
35+
36+
- [PowerToys Command Palette utility](overview.md)
37+
- [Extensibility overview](creating-an-extension.md)

0 commit comments

Comments
 (0)