About
Create vscode extensions with python.
Installation
Stable version:
pip install vscode.py
Why use vscode.py?
Why should you use this for building VScode extensions when you can use typescript? Here are some reasons:
- vscode.py builds the package.json for you! No need to switch between your extension.py and package.json in order to add commands. It also handles adding Activity Bars, Keybinds and Views.
- vscode.py provides a pythonic way of creating the extension. Python has some powerful modules that Javascript doesn't and you can include these with vscode.py
- vscode.py extensions work perfectly with vsce and you can publish your extensions just like you would publish any other extension.
Example Extension
import vscode
from vscode import InfoMessage
ext = vscode.Extension(name="Test Extension")
@ext.event
async def on_activate():
vscode.log(f"The Extension '{ext.name}' has started")
@ext.command()
async def hello_world(ctx):
return await ctx.show(InfoMessage(f"Hello World from {ext.name}"))
ext.run()
Tutorial
Step 1
Create a python file inside a folder.
Step 2
Write the code for your extension. For this tutorial we have used the Example Extension
Step 3
Run the python file. It will build the required extension files.
Step 4
Press F5. This will run the extension and open a new vscode window in development mode.
Step 5
Finally, test your command.
- Open the command palette with Ctrl+P in the development window.
- Type
>Hello World
- It should show a popup like this in the bottom right corner
Extensions built using vscode.py
Here's a list of some extensions built using vscode.py. If you'd like to include your extension here feel free to create a PR.
Documentation
The docs are coming soon! In the meantime you can look at the examples in order to learn how vscode.py works and what it offers!