Files
kandev/apps/web/lib/diff/walkthrough-reveal.ts
T
José Almeida 3e237e177a feat: add agent-authored code walkthroughs (#1647)
* feat: add code-walkthrough backend (MCP tool, service, persistence, WS events)

* feat: render agent code walkthroughs as line-anchored cards + editor window

* test: add code-walkthrough re-emit mock-agent scenario

* fix: rework code-walkthrough UX (floating card, line reveal, minimize, clickable file)

* fix: improve code walkthrough editor UX

* fix: backfill walkthrough launcher after websocket connect

* fix: improve walkthrough requests and editor anchors

* fix: clear walkthrough highlights on close

* feat: add walkthrough discard and prompt customization

* fix: send walkthrough requests through saved prompt

* fix: support postgres built-in prompt seeding

* fix: address walkthrough review feedback

* fix: address walkthrough review follow-ups

* fix: harden walkthrough lifecycle races

* fix: reuse walkthrough notification cleanup

* fix: guard stale walkthrough file opens

* fix: abort stale file opens before paint

* fix: stabilize github settings e2e readiness

* fix: use stable github settings e2e selector
2026-07-10 08:34:57 +01:00

21 lines
761 B
TypeScript

import { setPendingCursorPosition, scrollEditorIfMounted } from "@/hooks/use-file-editors";
export type OpenFileFn = (path: string, repo?: string) => void | Promise<void>;
/**
* Open a file in an editor tab and reveal/center the given line — the walkthrough
* "pointer" to the line being explained. Uses the same pending-cursor mechanism
* as LSP go-to-definition: the position is consumed when the editor mounts (new
* tab), and scrolled live if the tab is already open.
*/
export function revealFileAtLine(
openFile: OpenFileFn,
file: string,
line: number,
repo?: string,
): void {
if (line > 0) setPendingCursorPosition(file, line, 1, repo);
void openFile(file, repo);
if (line > 0) scrollEditorIfMounted(file, null, line, 1, repo);
}