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

如何使用VS Code API创建类Copilot Chat聊天框及触发式Webview?

实现类似GitHub Copilot Chat的编辑器内聊天框所需VS Code API
  • window.createWebviewPanel:创建作为聊天界面载体的Webview面板,支持自定义HTML/CSS/JS构建完整的聊天交互界面,可设置面板标题、视图类型、显示位置等属性。
  • commands.registerCommand:注册打开聊天框的触发命令,可绑定快捷键或上下文菜单,让用户快速唤起聊天界面。
  • window.activeTextEditor:获取当前激活的编辑器实例,提取当前文件内容、选中代码片段等上下文信息,传递给聊天逻辑。
  • webview.postMessage & webview.onDidReceiveMessage:实现Webview与扩展主体的双向通信,处理用户消息发送、聊天结果回显等交互。
  • workspace.onDidChangeTextDocument:监听编辑器内容变化,实时同步文件上下文到聊天框,确保聊天基于最新代码状态。
实现选中代码激活的命令提示Webview所需VS Code API
  • window.createWebviewPanel:创建临时的自定义提示框Webview,可调整面板尺寸、位置,适配选中代码区域的显示需求。
  • window.onDidChangeTextEditorSelection:监听编辑器选中内容的变化,触发提示框的显示或隐藏逻辑。
  • window.activeTextEditor.selection:获取当前选中的代码片段,作为提示框的初始上下文信息。
  • commands.registerCommand:注册快捷键或上下文菜单命令唤起提示框,同时绑定Ctrl+UpArrow/Ctrl+DownArrow快捷键实现历史输入切换。
  • webview.postMessage & webview.onDidReceiveMessage:处理用户输入的命令、按钮点击事件,比如触发“View in Chat”打开聊天框,“Cancel”关闭当前Webview。
  • workspaceState/globalState:存储用户的输入历史记录,支持通过快捷键快速切换历史内容。
  • webview.options:配置Webview权限,需设置enableScripts: true以支持输入交互、按钮事件等脚本逻辑,同时可配置localResourceRoots加载本地样式或资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:23:28