3.0.2 • Published 12 months ago

@tomjs/vscode-dev v3.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

@tomjs/vscode-dev

npm node-current (scoped) NPM

English | 中文

一些开发工具,用于简化 vscode 扩展 的开发

特性

  • 基于 locales 生成 package.nls.jsonpackage.nls.*.json, 支持 i18n Ally。使用 @tomjs/vscodei18n.t 方法支持国际化。
  • 基于 package.jsoncontributes.* 生成 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.jsvscode.config.tsvscode.config.mjsvscode.config.cjs 文件。(要了解有关如何加载 JS 文件的更多信息,请参阅 “加载 JS 模块”。)

关联

3.0.2

12 months ago

3.0.1

12 months ago

3.0.0

12 months ago

2.2.3

12 months ago

2.2.2

1 year ago

2.2.1

1 year ago

2.2.0

1 year ago

2.1.0

1 year ago

2.0.0

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago