summaryrefslogtreecommitdiff
path: root/extension/src
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-07-04 11:58:02 -0700
committerNate Sesti <sestinj@gmail.com>2023-07-04 11:58:02 -0700
commit2a524193d26ffca7ef62445f2069773e106f68a8 (patch)
tree79183b04923cb1e2eb361a2053cde1004027b833 /extension/src
parent77c39db46ca0b66ad601e55f9457d5a78ade8dfc (diff)
downloadsncontinue-2a524193d26ffca7ef62445f2069773e106f68a8.tar.gz
sncontinue-2a524193d26ffca7ef62445f2069773e106f68a8.tar.bz2
sncontinue-2a524193d26ffca7ef62445f2069773e106f68a8.zip
3.8 compatibility and deleting context all at once
Diffstat (limited to 'extension/src')
-rw-r--r--extension/src/continueIdeClient.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/extension/src/continueIdeClient.ts b/extension/src/continueIdeClient.ts
index 999bca88..c517eb98 100644
--- a/extension/src/continueIdeClient.ts
+++ b/extension/src/continueIdeClient.ts
@@ -159,6 +159,9 @@ class IdeProtocolClient {
case "showSuggestion":
this.showSuggestion(data.edit);
break;
+ case "showDiff":
+ this.showDiff(data.filepath, data.replacement);
+ break;
case "openGUI":
case "connected":
break;
@@ -236,6 +239,42 @@ class IdeProtocolClient {
);
}
+ contentProvider: vscode.Disposable | null = null;
+
+ showDiff(filepath: string, replacement: string) {
+ const myProvider = new (class
+ implements vscode.TextDocumentContentProvider
+ {
+ onDidChangeEmitter = new vscode.EventEmitter<vscode.Uri>();
+ onDidChange = this.onDidChangeEmitter.event;
+ provideTextDocumentContent = (uri: vscode.Uri) => {
+ return replacement;
+ };
+ })();
+ this.contentProvider = vscode.workspace.registerTextDocumentContentProvider(
+ "continueDiff",
+ myProvider
+ );
+
+ // Call the event fire
+ const diffFilename = `continueDiff://${filepath}`;
+ myProvider.onDidChangeEmitter.fire(vscode.Uri.parse(diffFilename));
+
+ const leftUri = vscode.Uri.file(filepath);
+ const rightUri = vscode.Uri.parse(diffFilename);
+ const title = "Continue Diff";
+ vscode.commands
+ .executeCommand("vscode.diff", leftUri, rightUri, title)
+ .then(
+ () => {
+ console.log("Diff view opened successfully");
+ },
+ (error) => {
+ console.error("Error opening diff view:", error);
+ }
+ );
+ }
+
openFile(filepath: string) {
// vscode has a builtin open/get open files
openEditorAndRevealRange(filepath, undefined, vscode.ViewColumn.One);