如何在VS Code扩展中为Ctrl+右键触发的上下文菜单添加菜单项?
在VS Code扩展中给Ctrl+右键上下文菜单添加按钮
要实现这个需求,只需完成以下两步配置和代码编写:
1. 在package.json中配置菜单与命令
在扩展的package.json文件里,通过contributes字段注册自定义命令和上下文菜单规则:
{ "contributes": { "commands": [ { "command": "your-extension.custom-context-btn", "title": "自定义菜单按钮" // 替换为你想要显示的菜单文本 } ], "menus": { "editor/context": [ { "command": "your-extension.custom-context-btn", "when": "editorTextFocus && ctrlKey", // 仅在编辑器有焦点且按下Ctrl时显示该菜单项 "group": "navigation@1" // 控制菜单位置,@1表示组内排序优先级 } ] } } }
2. 实现命令的具体逻辑
在扩展主文件(通常为extension.ts)中注册命令的处理函数:
import * as vscode from 'vscode'; export function activate(context: vscode.ExtensionContext) { // 注册自定义菜单命令 const customMenuCommand = vscode.commands.registerCommand( 'your-extension.custom-context-btn', () => { // 这里编写按钮点击后的业务逻辑,示例为弹出提示框 vscode.window.showInformationMessage('自定义菜单按钮已触发!'); } ); context.subscriptions.push(customMenuCommand); } export function deactivate() {}
关键细节说明
when条件中的ctrlKey是核心,确保菜单项仅在Ctrl+右键触发上下文菜单时显示group字段用于调整菜单项在菜单中的位置,比如navigation组会靠近默认导航类菜单,自定义组格式如custom@2可手动排序- 配置完成后,需通过Ctrl+Shift+P执行「重新加载窗口」才能看到效果
内容的提问来源于stack exchange,提问作者Berry Cherolds
相关产品推荐
相关产品推荐

