You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode中创建自定义代码操作分类?

自定义VSCode代码操作分类的实现步骤

要给你的代码操作创建专属分类,只需按以下步骤配置:

1. 在package.json中注册自定义分类

首先在扩展的package.json里,通过contributes.codeActionCategories字段声明你的分类,定义唯一ID和显示名称:

"contributes": {
  "codeActionCategories": [
    {
      "id": "myCustomActions",
      "title": "我的专属操作"
    }
  ]
}
  • id:分类的唯一标识,后续代码里要引用这个值
  • title:在灯泡菜单中显示的分类名称,支持本地化

2. 给代码操作指定分类

实现CodeActionProvider时,给你的代码操作对象设置category属性,值就是上面定义的分类ID:

import * as vscode from 'vscode';

export class CustomCodeActionProvider implements vscode.CodeActionProvider {
  provideCodeActions(
    document: vscode.TextDocument,
    range: vscode.Range | vscode.Selection,
    context: vscode.CodeActionContext,
    token: vscode.CancellationToken
  ): vscode.CodeAction[] {
    // 创建自定义代码操作
    const myAction = new vscode.CodeAction("示例操作", vscode.CodeActionKind.Refactor);
    // 指定到自定义分类
    myAction.category = "myCustomActions";
    
    // 添加操作的具体逻辑,比如编辑文档
    myAction.edit = new vscode.WorkspaceEdit();
    myAction.edit.replace(document.uri, range, "替换后的内容");

    return [myAction];
  }
}

3. 注册代码操作提供者

在扩展激活函数中,注册你的代码操作提供者,绑定到目标语言或文件类型:

export function activate(context: vscode.ExtensionContext) {
  const provider = new CustomCodeActionProvider();
  // 这里以JavaScript为例,替换成你需要支持的语言ID
  const disposable = vscode.languages.registerCodeActionProvider("javascript", provider);
  context.subscriptions.push(disposable);
}

注意事项

  • 分类ID要避免和VSCode内置分类(如extract、surround)重复
  • CodeActionKind用于标记操作的类型(重构、快速修复等),不影响自定义分类的显示,但会影响操作在菜单中的大分组
  • 修改package.json后需要重新加载扩展,才能看到分类生效

内容的提问来源于stack exchange,提问作者Dieter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 13:57:10