Your First Extension
npm install -g yo generator-code
The generator scaffolds a project ready for development. Run the generator and fill out a few fields:
yo code # ? What type of extension do you want to create? New Extension (TypeScript) # ? What's the name of your extension? HelloWorld ### Press <Enter> to choose default for all options below ### # ? What's the identifier of your extension? helloworld # ? What's the description of your extension? LEAVE BLANK # ? Initialize a git repository? Yes # ? Which package manager to use? npm code ./helloworld
Then, inside the editor, press F5. This will compile and run the extension in a new Extension Development Host window.
Hello World command from the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) in the new window:
You should see the
Hello World notification showing up. Success!
Developing the extension
Let's make a change to the message:
- Change the message from
Hello VS Codein
Reload Windowin the new window
- Run the command
You should see the updated message showing up.
Here are some ideas for you to try:
- Give the
Hello Worldcommand a new name in the Command Palette.
- Contribute another command that displays current time in an information message.
- Replace the
vscode.window.showInformationMessagewith another VS Code API call to show a warning message.
Debugging the extension
VS Code's built-in debugging functionality makes it easy to debug extensions. Set a breakpoint by clicking the gutter next to a line, and VS Code will hit the breakpoint. You can hover over variables in the editor or use the Debug View in the left to check a variable's value. The Debug Console allows you to evaluate expressions.
You can learn more about debugging Node.js apps in VS Code in the Node.js Debugging Topic.
In the next topic, Extension Anatomy, we'll take a closer look at the source code of the
Hello World sample and explain key concepts.
You can find the source code of this tutorial at: https://github.com/Microsoft/vscode-extension-samples/tree/master/helloworld-sample. The Extension Guides topic contains other samples, each illustrating a different VS Code API or Contribution Point.