English | 中文
Some development tools to simplify the development of vscode extensions
- Generate
package.nls.json
andpackage.nls.*.json
based onlocales
, support i18n Ally. Use the i18n.t method of @tomjs/vscode to support internationalization. - Generate
vscode.d.ts
based oncontributes.*
ofpackage.json
, and enhance code prompts for some vscode methods.
# pnpm
pnpm add @tomjs/vscode-dev -D
# yarn
yarn add @tomjs/vscode-dev -D
# npm
npm add @tomjs/vscode-dev -D
$ vscode-dev --help
vscode-dev/3.0.0
Usage:
$ vscode-dev [cwd]
Commands:
[cwd] Generate package.nls.json and vscode.d.ts for vscode extension development
For more info, run any command with the `--help` flag:
$ vscode-dev --help
Options:
--config [config] The config file path
--locales [locales] Specify i18n directory (default: locales)
--lang [lang] Specify i18n source language (default: en)
--dts-dir [dtsDir] Specify the output directory of d.ts. If not specified, generated in the order "types", "extension", "src", "."
--dts-name [dtsName] Specify the output file name of d.ts (default: vscode.d.ts)
--builtin [...builtin] Builtin commands
-w, --watch Watch mode
--verbose Display verbose output
-h, --help Display this message
-v, --version Display version number
// generated by @tomjs/vscode-dev
import '@tomjs/vscode';
declare module '@tomjs/vscode' {
type I18nMessageType = 'description' | 'displayName' | 'tomjs.commands.hello';
interface NlsI18n {
t(message: I18nMessageType, ...args: Array<string | number | boolean>): string;
t(message: I18nMessageType, args: Record<string, any>): string;
t(
...params:
| [message: I18nMessageType, ...args: Array<string | number | boolean>]
| [message: I18nMessageType, args: Record<string, any>]
): string;
}
}
declare module 'vscode' {
export type BuiltinCommand = undefined;
export type UserCommand = 'tomjs.xxx.showHello';
export namespace commands {
export function registerCommand(
command: UserCommand,
callback: (...args: any[]) => any,
thisArg?: any,
): Disposable;
export function registerTextEditorCommand(
command: UserCommand,
callback: (textEditor: TextEditor, edit: TextEditorEdit, ...args: any[]) => void,
thisArg?: any,
): Disposable;
export function executeCommand<T = unknown>(
command: BuiltinCommand | UserCommand,
...rest: any[]
): Thenable<T>;
}
export interface Command {
command?: BuiltinCommand | UserCommand;
}
export interface StatusBarItem {
command?: BuiltinCommand | UserCommand;
}
}
- A
vscode
property in apackage.json
file. - A
.vscoderc.js
,.vscoderc.ts
,.vscoderc.mjs
, or.vscoderc.cjs
file. (To learn more about how JS files are loaded, see "Loading JS modules".) - A
vscode.config.js
,vscode.config.ts
,vscode.config.mjs
, orvscode.config.cjs
file. (To learn more about how JS files are loaded, see "Loading JS modules".)
- @tomjs/vscode: Some utilities to simplify the development of VSCode Extensions.
-
@tomjs/vite-plugin-vscode: Use
vue
/react
to develop vscode extension webview, supportingesm
andcjs
.