diff --git a/src/panels/ICHelperPanel.ts b/src/panels/ICHelperPanel.ts index fade7a0..871a987 100644 --- a/src/panels/ICHelperPanel.ts +++ b/src/panels/ICHelperPanel.ts @@ -494,6 +494,27 @@ export async function showICHelperPanel( // 退出登录 vscode.commands.executeCommand("ic-coder.logout"); break; + case "openFile": + // 打开文件 + if (message.filePath) { + vscode.workspace.openTextDocument(message.filePath).then(doc => { + vscode.window.showTextDocument(doc); + }); + } + break; + case "openFileWithSelection": + // 打开文件并选中代码 + if (message.filePath) { + vscode.workspace.openTextDocument(message.filePath).then(doc => { + vscode.window.showTextDocument(doc).then(editor => { + const start = new vscode.Position(message.startLine - 1, 0); + const end = new vscode.Position(message.endLine - 1, doc.lineAt(message.endLine - 1).text.length); + editor.selection = new vscode.Selection(start, end); + editor.revealRange(new vscode.Range(start, end)); + }); + }); + } + break; case "acceptChange": // 采纳变更 if (message.changeId) { diff --git a/src/views/contextDisplay.ts b/src/views/contextDisplay.ts index 98fd2b3..32f9422 100644 --- a/src/views/contextDisplay.ts +++ b/src/views/contextDisplay.ts @@ -51,7 +51,11 @@ export function getContextDisplayStyles(): string { transition: all 0.2s ease; } - .context-item:hover { + .context-item.clickable { + cursor: pointer; + } + + .context-item.clickable:hover { background: var(--vscode-list-hoverBackground); } @@ -180,11 +184,14 @@ export function getContextDisplayScript(): string { case 'code': icon = getCodeIcon(); break; } + const clickable = item.type !== 'folder' ? 'clickable' : ''; + const onclick = item.type !== 'folder' ? \`onclick="window.handleContextItemClick(\${item.id})"\` : ''; + return \` -