43 lines
1.0 KiB
Markdown
43 lines
1.0 KiB
Markdown
# 代码快速添加到对话功能
|
||
|
||
## 功能说明
|
||
|
||
选中代码后,通过右键菜单/小灯泡/快捷键(Ctrl+Shift+I),将代码作为上下文添加到聊天面板输入框上方。
|
||
|
||
## 实现方式
|
||
|
||
### 1. Code Action Provider
|
||
`src/providers/codeActionProvider.ts` - 提供小灯泡菜单选项
|
||
|
||
### 2. 命令注册
|
||
`src/extension.ts` - 注册 `ic-coder.addCodeToChat` 命令,发送消息到 webview
|
||
|
||
### 3. 全局引用
|
||
`src/panels/ICHelperPanel.ts` - 保存 panel 到 `(global as any).currentICHelperPanel`
|
||
|
||
### 4. 上下文显示
|
||
`src/views/contextDisplay.ts` - 添加 `code` 类型支持和 `addCodeContext` 消息处理
|
||
|
||
### 5. 配置
|
||
`package.json` - 配置命令、右键菜单、快捷键
|
||
|
||
## 用户体验
|
||
|
||
1. 选中代码
|
||
2. 右键/小灯泡/Ctrl+Shift+I
|
||
3. 代码显示为上下文项:`文件名.v:10-25` 📄
|
||
4. 输入问题发送(代码自动作为上下文)
|
||
|
||
## 数据结构
|
||
|
||
代码上下文存储为 JSON:
|
||
```json
|
||
{
|
||
"fileName": "路径",
|
||
"startLine": 10,
|
||
"endLine": 25,
|
||
"code": "代码内容",
|
||
"languageId": "verilog"
|
||
}
|
||
```
|