diff options
Diffstat (limited to 'extension/src')
| -rw-r--r-- | extension/src/continueIdeClient.ts | 6 | ||||
| -rw-r--r-- | extension/src/decorations.ts | 19 | 
2 files changed, 17 insertions, 8 deletions
| diff --git a/extension/src/continueIdeClient.ts b/extension/src/continueIdeClient.ts index 42671ade..92af6b10 100644 --- a/extension/src/continueIdeClient.ts +++ b/extension/src/continueIdeClient.ts @@ -13,6 +13,7 @@ import { FileEditWithFullContents } from "../schema/FileEditWithFullContents";  import fs = require("fs");  import { WebsocketMessenger } from "./util/messenger";  import { CapturedTerminal } from "./terminal/terminalEmulator"; +import { decorationManager } from "./decorations";  class IdeProtocolClient {    private messenger: WebsocketMessenger | null = null; @@ -277,12 +278,13 @@ class IdeProtocolClient {          undefined,          vscode.ViewColumn.One        ).then((editor) => { -        let range = new vscode.Range( +        const range = new vscode.Range(            edit.range.start.line,            edit.range.start.character,            edit.range.end.line, -          edit.range.end.character + 1 +          edit.range.end.character          ); +          editor.edit((editBuilder) => {            this._makingEdit += 2; // editBuilder.replace takes 2 edits: delete and insert            editBuilder.replace(range, edit.replacement); diff --git a/extension/src/decorations.ts b/extension/src/decorations.ts index 456f0c10..d2c94135 100644 --- a/extension/src/decorations.ts +++ b/extension/src/decorations.ts @@ -94,15 +94,22 @@ class DecorationManager {        decorationTypes = new Map();        decorationTypes.set(key.decorationType, [key.options]);        this.editorToDecorations.set(key.editorUri, decorationTypes); -    } - -    const decorations = decorationTypes.get(key.decorationType); -    if (!decorations) { -      decorationTypes.set(key.decorationType, [key.options]);      } else { -      decorations.push(key.options); +      const decorations = decorationTypes.get(key.decorationType); +      if (!decorations) { +        decorationTypes.set(key.decorationType, [key.options]); +      } else { +        decorations.push(key.options); +      }      } +      this.rerenderDecorations(key.editorUri, key.decorationType); + +    vscode.window.onDidChangeTextEditorSelection((event) => { +      if (event.textEditor.document.fileName === key.editorUri) { +        this.deleteAllDecorations(key.editorUri); +      } +    });    }    deleteDecoration(key: DecorationKey) { | 
