Create vscode extensions with python.
Note
This repository is being archived due to a lack of time for regular maintenance. If you are interested in taking over the maintenance of this project, please feel free to contact me at cwswastik2005@gmail.com. Thank you for your support!
Stable version:
pip install 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.
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()
Create a python file inside a folder.
Write the code for your extension. For this tutorial we have used the Example Extension
Run the python file. It will build the required extension files.
Press F5. This will run the extension and open a new vscode window in development mode.
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
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.
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!