summaryrefslogtreecommitdiff
path: root/extension/src
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-08-26 23:21:26 -0700
committerNate Sesti <sestinj@gmail.com>2023-08-26 23:21:26 -0700
commitab31cb15fae74592f49c2ceadc8d7810228fa7e2 (patch)
tree3ee2489d5ad6e9f2178df7f2e90af1184857b342 /extension/src
parent868875aa5d8a9e362f0b3201eed403f473ee8ccb (diff)
downloadsncontinue-ab31cb15fae74592f49c2ceadc8d7810228fa7e2.tar.gz
sncontinue-ab31cb15fae74592f49c2ceadc8d7810228fa7e2.tar.bz2
sncontinue-ab31cb15fae74592f49c2ceadc8d7810228fa7e2.zip
fix: :bug: correctly generate uris for remote
Diffstat (limited to 'extension/src')
-rw-r--r--extension/src/continueIdeClient.ts8
-rw-r--r--extension/src/decorations.ts3
-rw-r--r--extension/src/diffs.ts15
-rw-r--r--extension/src/util/vscode.ts10
4 files changed, 24 insertions, 12 deletions
diff --git a/extension/src/continueIdeClient.ts b/extension/src/continueIdeClient.ts
index 4e099fdb..3fa8dec1 100644
--- a/extension/src/continueIdeClient.ts
+++ b/extension/src/continueIdeClient.ts
@@ -3,7 +3,7 @@ import {
showSuggestion as showSuggestionInEditor,
SuggestionRanges,
} from "./suggestions";
-import { openEditorAndRevealRange } from "./util/vscode";
+import { openEditorAndRevealRange, uriFromFilePath } from "./util/vscode";
import { FileEdit } from "../schema/FileEdit";
import { RangeInFile } from "../schema/RangeInFile";
import * as vscode from "vscode";
@@ -270,7 +270,7 @@ class IdeProtocolClient {
messenger.send("listDirectoryContents", {
contents: (
await vscode.workspace.fs.readDirectory(
- vscode.Uri.file(data.directory)
+ uriFromFilePath(data.directory)
)
)
.map(([name, type]) => name)
@@ -439,7 +439,7 @@ class IdeProtocolClient {
async fileExists(filepath: string): Promise<boolean> {
try {
- await vscode.workspace.fs.stat(vscode.Uri.file(filepath));
+ await vscode.workspace.fs.stat(uriFromFilePath(filepath));
return true;
} catch {
return false;
@@ -563,7 +563,7 @@ class IdeProtocolClient {
if (typeof contents === "undefined") {
try {
contents = await vscode.workspace.fs
- .readFile(vscode.Uri.file(filepath))
+ .readFile(uriFromFilePath(filepath))
.then((bytes) => new TextDecoder().decode(bytes));
} catch {
contents = "";
diff --git a/extension/src/decorations.ts b/extension/src/decorations.ts
index 0587110c..b7e2966c 100644
--- a/extension/src/decorations.ts
+++ b/extension/src/decorations.ts
@@ -1,12 +1,13 @@
import * as vscode from "vscode";
import * as path from "path";
+import { uriFromFilePath } from "./util/vscode";
export function showAnswerInTextEditor(
filename: string,
range: vscode.Range,
answer: string
) {
- vscode.workspace.openTextDocument(vscode.Uri.file(filename)).then((doc) => {
+ vscode.workspace.openTextDocument(uriFromFilePath(filename)).then((doc) => {
const editor = vscode.window.activeTextEditor;
if (!editor) {
return;
diff --git a/extension/src/diffs.ts b/extension/src/diffs.ts
index d2d1dae3..f28203e6 100644
--- a/extension/src/diffs.ts
+++ b/extension/src/diffs.ts
@@ -5,6 +5,7 @@ import * as vscode from "vscode";
import { extensionContext, ideProtocolClient } from "./activation/activate";
import { getMetaKeyLabel } from "./util/util";
import { devDataPath } from "./activation/environmentSetup";
+import { uriFromFilePath } from "./util/vscode";
interface DiffInfo {
originalFilepath: string;
@@ -16,13 +17,13 @@ interface DiffInfo {
async function readFile(path: string): Promise<string> {
return await vscode.workspace.fs
- .readFile(vscode.Uri.file(path))
+ .readFile(uriFromFilePath(path))
.then((bytes) => new TextDecoder().decode(bytes));
}
async function writeFile(path: string, contents: string) {
await vscode.workspace.fs.writeFile(
- vscode.Uri.file(path),
+ uriFromFilePath(path),
new TextEncoder().encode(contents)
);
}
@@ -42,7 +43,7 @@ class DiffManager {
private async setupDirectory() {
// Make sure the diff directory exists
- await vscode.workspace.fs.createDirectory(vscode.Uri.file(DIFF_DIRECTORY));
+ await vscode.workspace.fs.createDirectory(uriFromFilePath(DIFF_DIRECTORY));
}
constructor() {
@@ -72,7 +73,7 @@ class DiffManager {
): Promise<vscode.TextEditor | undefined> {
// If the file doesn't yet exist or the basename is a single digit number (vscode terminal), don't open the diff editor
try {
- await vscode.workspace.fs.stat(vscode.Uri.file(newFilepath));
+ await vscode.workspace.fs.stat(uriFromFilePath(newFilepath));
} catch {
return undefined;
}
@@ -80,8 +81,8 @@ class DiffManager {
return undefined;
}
- const rightUri = vscode.Uri.file(newFilepath);
- const leftUri = vscode.Uri.file(originalFilepath);
+ const rightUri = uriFromFilePath(newFilepath);
+ const leftUri = uriFromFilePath(originalFilepath);
const title = "Continue Diff";
console.log(
"Opening diff window with ",
@@ -177,7 +178,7 @@ class DiffManager {
vscode.commands.executeCommand(
"workbench.action.files.revert",
- vscode.Uri.file(newFilepath)
+ uriFromFilePath(newFilepath)
);
return newFilepath;
diff --git a/extension/src/util/vscode.ts b/extension/src/util/vscode.ts
index bf0fa1e5..2283bfdc 100644
--- a/extension/src/util/vscode.ts
+++ b/extension/src/util/vscode.ts
@@ -102,3 +102,13 @@ export function openEditorAndRevealRange(
});
});
}
+
+export function uriFromFilePath(filepath: string): vscode.Uri {
+ if (vscode.env.remoteName) {
+ return vscode.Uri.parse(
+ `vscode-remote://${vscode.env.remoteName}${filepath}`
+ );
+ } else {
+ return vscode.Uri.file(filepath);
+ }
+}