What is @types/vscode?
@types/vscode provides TypeScript definitions for the Visual Studio Code (VSCode) API, enabling developers to write extensions for VSCode with type safety and IntelliSense support.
What are @types/vscode's main functionalities?
Creating Commands
This feature allows you to create custom commands that can be executed from the command palette. The code sample demonstrates how to register a command that shows a 'Hello World!' message.
const vscode = require('vscode');
function activate(context) {
let disposable = vscode.commands.registerCommand('extension.sayHello', function () {
vscode.window.showInformationMessage('Hello World!');
});
context.subscriptions.push(disposable);
}
exports.activate = activate;
Creating Status Bar Items
This feature allows you to create items in the status bar. The code sample demonstrates how to create a status bar item with custom text and an icon.
const vscode = require('vscode');
function activate(context) {
let myStatusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100);
myStatusBarItem.text = '$(beaker) My Extension';
myStatusBarItem.show();
context.subscriptions.push(myStatusBarItem);
}
exports.activate = activate;
Creating Webviews
This feature allows you to create webviews, which are custom HTML/CSS/JS-based views within VSCode. The code sample demonstrates how to create a simple webview that displays 'Hello from Webview'.
const vscode = require('vscode');
function activate(context) {
let disposable = vscode.commands.registerCommand('extension.openWebview', function () {
const panel = vscode.window.createWebviewPanel(
'webview',
'My Webview',
vscode.ViewColumn.One,
{}
);
panel.webview.html = getWebviewContent();
});
context.subscriptions.push(disposable);
}
function getWebviewContent() {
return `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Webview</title>
</head>
<body>
<h1>Hello from Webview</h1>
</body>
</html>`;
}
exports.activate = activate;
Other packages similar to @types/vscode
vscode
The 'vscode' package provides the actual API for developing extensions for Visual Studio Code. It is the runtime library that works in conjunction with @types/vscode to provide the full development experience.
vscode-languageclient
The 'vscode-languageclient' package is used to implement language servers in VSCode. It provides a higher-level API for integrating language servers with VSCode, making it easier to add language support to the editor.
vscode-test
The 'vscode-test' package provides utilities for testing VSCode extensions. It allows you to run integration tests for your extensions in a headless VSCode instance, ensuring that your extension works as expected.