@tomjs/vscode-dev
v3.0.2
Published
Some development tools to simplify the development of vscode extensions
Downloads
20
Readme
@tomjs/vscode-dev
English | 中文
一些开发工具,用于简化 vscode 扩展 的开发
特性
- 基于
locales
生成package.nls.json
和package.nls.*.json
, 支持 i18n Ally。使用 @tomjs/vscode 的 i18n.t 方法支持国际化。 - 基于
package.json
的contributes.*
生成vscode.d.ts
,给部分 vscode 方法加强代码提示
安装
# pnpm
pnpm add @tomjs/vscode-dev -D
# yarn
yarn add @tomjs/vscode-dev -D
# npm
npm add @tomjs/vscode-dev -D
使用
- CLI
$ 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
vscode.d.ts
// 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;
}
}
配置文件
package.json
文件中的vscode
属性。.vscoderc.js
、.vscoderc.ts
、.vscoderc.mjs
或.vscoderc.cjs
文件。(要了解有关如何加载 JS 文件的更多信息,请参阅“加载 JS 模块”。)vscode.config.js
、vscode.config.ts
、vscode.config.mjs
或vscode.config.cjs
文件。(要了解有关如何加载 JS 文件的更多信息,请参阅 “加载 JS 模块”。)
关联
- @tomjs/vscode: 一些实用工具,用于简化 vscode 扩展 的开发。
- @tomjs/vite-plugin-vscode: 用
vue
/react
来开发 vscode extension webview ,支持esm
和cjs
。