Introduction
This is the second part of the Create Extension for VS Code series. You can also read the first part in My Dev Blog , or in dev.to :
In the first part, we learned how to create a simple Hello World Extension and the basic understanding file structure of extension.
In Part 2, We will go a little deeper and learn the most common extension feature such as
- Creating Menus
- Creating Settings (Configurations)
- Defining Keyboard Shortcuts (KeyBinding)
Come on Let's dive into it.
Creating Menus
Creating menus for the extension is pretty simple. The menu consists of three properties such as
-
command
- The command (action) which gets executed on the click -
title
- Display name for the menu -
category
- Just groupings for the menus.
Define menus in package.json -> contributes -> commands
Snippet
"commands": [
{
"command": "extension.helloWorld",
"title": "Say Hello World",
"category": "Demo"
}
]
Demo
Creating Settings (Configurations)
The setting has the following properties.
-
properties -> Key
- An unique key which will be used to set/get values. -
type
- Data Type for the setting. -
default
- It will be set as the default value on the plugin activation. -
description
- This note will be shown under the setting.
Define settings in package.json -> contributes -> configuration
Snippet
"configuration": {
"title": "Hello World configuration",
"properties": {
"hello-world.customMessage": {
"type": "string",
"default": "Hello World",
"description": "This message will be show on menu click"
}
}
}
Get current Value
We can get the current value of settings in Extension.ts
with the help of vscode.workspace
object and unique key (hello-world.customMessage
) which is mentioned on package.json.
const msg = vscode.workspace.getConfiguration().get('hello-world.customMessage');
Demo
Defining Keyboard Shortcuts (KeyBinding)
We can trigger an action of our extension on specific keyboard shortcuts which is known as keybinding.
It has two properties they are,
- Command - Action needs to be triggered
- Key - Combination of keys
Define keybinding in package.json -> contributes -> keybindings
Snippet
helloWorld
action will be executed on the keybinding of Ctrl+Shift+A + Ctrl+Shift+Z
"keybindings": [
{
"command": "extension.helloWorld",
"key": "Ctrl+Shift+A Ctrl+Shift+Z"
},
]
Demo
We have learned the most common extension features !!! πππππ
In the next part, We will see how to build and publish our extension on Visual Studio Marketplace
Thanks for reading!
Please provide your Feedbacks and comments.