Skip to content
This repository was archived by the owner on Sep 23, 2025. It is now read-only.

Commit 1dc5172

Browse files
committed
Add placement memory to ReviewWebviewProvider
- Add PlacementState interface and placementMemory Map - Pass placementMemory to openDialecticUrl instead of undefined - Clear placement memory on 'replace' and 'update-section' modes - Ensures review system has same placement behavior as walkthrough system
1 parent 0e86acc commit 1dc5172

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

extension/src/reviewWebview.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,20 @@ import { parseDialecticUrl, DialecticUrl } from './dialecticUrl';
88
import { searchInFile, getBestSearchResult, formatSearchResults, needsDisambiguation } from './searchEngine';
99
import { openDialecticUrl } from './fileNavigation';
1010

11+
// Placement state for unified link and comment management
12+
interface PlacementState {
13+
isPlaced: boolean;
14+
chosenLocation: any; // FileRange, SearchResult, or other location type
15+
wasAmbiguous: boolean; // Whether this item had multiple possible locations
16+
}
17+
1118
export class ReviewWebviewProvider {
1219
private panel: vscode.WebviewPanel | undefined;
1320
private reviewContent: string = '';
1421
private baseUri: vscode.Uri | undefined;
1522
private md: MarkdownIt;
1623
private lineHighlightDecoration: vscode.TextEditorDecorationType;
24+
private placementMemory = new Map<string, PlacementState>(); // Unified placement memory
1725

1826
constructor(
1927
private context: vscode.ExtensionContext,
@@ -133,13 +141,17 @@ export class ReviewWebviewProvider {
133141
switch (mode) {
134142
case 'replace':
135143
this.reviewContent = content;
144+
// Clear placement memory for new review
145+
this.placementMemory.clear();
136146
break;
137147
case 'append':
138148
this.reviewContent += '\n\n' + content;
139149
break;
140150
case 'update-section':
141151
// For now, treat as replace - could implement section updating later
142152
this.reviewContent = content;
153+
// Clear placement memory for new review
154+
this.placementMemory.clear();
143155
break;
144156
}
145157

@@ -153,7 +165,7 @@ export class ReviewWebviewProvider {
153165
private async handleWebviewMessage(message: any): Promise<void> {
154166
switch (message.command) {
155167
case 'openFile':
156-
await openDialecticUrl(message.dialecticUrl, this.outputChannel, this.baseUri, undefined);
168+
await openDialecticUrl(message.dialecticUrl, this.outputChannel, this.baseUri, this.placementMemory);
157169
break;
158170
case 'copyReview':
159171
await vscode.env.clipboard.writeText(this.reviewContent);

0 commit comments

Comments
 (0)