如何在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
相关产品推荐
相关产品推荐

