diff --git a/packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx b/packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx index 12477b8ca69..3d9088a1e2f 100644 --- a/packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx +++ b/packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx @@ -3016,10 +3016,11 @@ const AgentManagerContent: Component = () => { onClose={() => setSidePanel(null)} onExpand={selection() !== null ? openReviewTab : undefined} onRequestDiff={requestDiffFile} - onOpenFile={(file) => { + onOpenFile={(file, line) => { const id = currentDiffSessionId() - if (id) vscode.postMessage({ type: "agentManager.openFile", sessionId: id, filePath: file }) - else if (selection() === LOCAL) vscode.postMessage({ type: "openFile", filePath: file }) + if (id) + vscode.postMessage({ type: "agentManager.openFile", sessionId: id, filePath: file, line }) + else if (selection() === LOCAL) vscode.postMessage({ type: "openFile", filePath: file, line }) }} onRevertFile={revertCtl.revert} revertingFiles={revertCtl.reverting()} @@ -3044,10 +3045,10 @@ const AgentManagerContent: Component = () => { diffStyle={reviewDiffStyle()} onDiffStyleChange={setSharedDiffStyle} onRequestDiff={requestDiffFile} - onOpenFile={(file) => { + onOpenFile={(file, line) => { const id = currentDiffSessionId() - if (id) vscode.postMessage({ type: "agentManager.openFile", sessionId: id, filePath: file }) - else if (selection() === LOCAL) vscode.postMessage({ type: "openFile", filePath: file }) + if (id) vscode.postMessage({ type: "agentManager.openFile", sessionId: id, filePath: file, line }) + else if (selection() === LOCAL) vscode.postMessage({ type: "openFile", filePath: file, line }) }} onRevertFile={revertCtl.revert} revertingFiles={revertCtl.reverting()} diff --git a/packages/kilo-vscode/webview-ui/agent-manager/DiffPanel.tsx b/packages/kilo-vscode/webview-ui/agent-manager/DiffPanel.tsx index 7096adabb51..9588831f47a 100644 --- a/packages/kilo-vscode/webview-ui/agent-manager/DiffPanel.tsx +++ b/packages/kilo-vscode/webview-ui/agent-manager/DiffPanel.tsx @@ -40,7 +40,7 @@ interface DiffPanelProps { onClose: () => void onExpand?: () => void onRequestDiff?: (file: string) => void - onOpenFile?: (relativePath: string) => void + onOpenFile?: (relativePath: string, line?: number) => void onRevertFile?: (file: string) => void revertingFiles?: Set } @@ -520,6 +520,10 @@ export const DiffPanel: Component = (props) => { renderAnnotation={buildAnnotation} enableGutterUtility={true} onGutterUtilityClick={(result) => handleGutterClick(diff.file, result)} + onLineNumberClick={(event) => { + if (event.annotationSide === "deletions") return + props.onOpenFile?.(diff.file, event.lineNumber) + }} /> diff --git a/packages/kilo-vscode/webview-ui/agent-manager/FullScreenDiffView.tsx b/packages/kilo-vscode/webview-ui/agent-manager/FullScreenDiffView.tsx index f00410e0905..d43797d2ef9 100644 --- a/packages/kilo-vscode/webview-ui/agent-manager/FullScreenDiffView.tsx +++ b/packages/kilo-vscode/webview-ui/agent-manager/FullScreenDiffView.tsx @@ -40,7 +40,7 @@ interface FullScreenDiffViewProps { diffStyle: DiffStyle onDiffStyleChange: (style: DiffStyle) => void onRequestDiff?: (file: string) => void - onOpenFile?: (relativePath: string) => void + onOpenFile?: (relativePath: string, line?: number) => void onRevertFile?: (file: string) => void revertingFiles?: Set onClose: () => void @@ -596,6 +596,10 @@ export const FullScreenDiffView: Component = (props) => renderAnnotation={buildAnnotation} enableGutterUtility={true} onGutterUtilityClick={(result) => handleGutterClick(diff.file, result)} + onLineNumberClick={(event) => { + if (event.annotationSide === "deletions") return + props.onOpenFile?.(diff.file, event.lineNumber) + }} /> diff --git a/packages/ui/src/pierre/index.ts b/packages/ui/src/pierre/index.ts index 1977f23f59f..9caee11a415 100644 --- a/packages/ui/src/pierre/index.ts +++ b/packages/ui/src/pierre/index.ts @@ -143,7 +143,7 @@ const unsafeCSS = ` } &[data-interactive-line-numbers] [data-column-number] { - cursor: default !important; + cursor: pointer !important; } &[data-interactive-lines] [data-line] {