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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:55:08