summaryrefslogtreecommitdiff
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/package-lock.json4
-rw-r--r--extension/package.json2
-rw-r--r--extension/src/util/vscode.ts43
3 files changed, 32 insertions, 17 deletions
diff --git a/extension/package-lock.json b/extension/package-lock.json
index 647e3aa2..15ea6428 100644
--- a/extension/package-lock.json
+++ b/extension/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "continue",
- "version": "0.0.13",
+ "version": "0.0.14",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "continue",
- "version": "0.0.13",
+ "version": "0.0.14",
"license": "Apache-2.0",
"dependencies": {
"@electron/rebuild": "^3.2.10",
diff --git a/extension/package.json b/extension/package.json
index 1219ca8e..2d83a58c 100644
--- a/extension/package.json
+++ b/extension/package.json
@@ -14,7 +14,7 @@
"displayName": "Continue",
"pricing": "Free",
"description": "Refine code 10x faster",
- "version": "0.0.13",
+ "version": "0.0.14",
"publisher": "Continue",
"engines": {
"vscode": "^1.74.0"
diff --git a/extension/src/util/vscode.ts b/extension/src/util/vscode.ts
index 4eab98a7..a76b53c7 100644
--- a/extension/src/util/vscode.ts
+++ b/extension/src/util/vscode.ts
@@ -128,25 +128,40 @@ export async function readFileAtRange(
});
}
+let showTextDocumentInProcess = false;
+
export function openEditorAndRevealRange(
editorFilename: string,
range?: vscode.Range,
viewColumn?: vscode.ViewColumn
): Promise<vscode.TextEditor> {
return new Promise((resolve, _) => {
- // Check if the editor is already open
- vscode.workspace.openTextDocument(editorFilename).then((doc) => {
- vscode.window
- .showTextDocument(
- doc,
- getViewColumnOfFile(editorFilename) || viewColumn
- )
- .then((editor) => {
- if (range) {
- editor.revealRange(range);
- }
- resolve(editor);
- });
- });
+ vscode.workspace.openTextDocument(editorFilename).then(async (doc) => {
+ try {
+ // An error is thrown mysteriously if you open two documents in parallel, hence this
+ while (showTextDocumentInProcess) {
+ await new Promise((resolve) => {
+ setInterval(() => {
+ resolve(null);
+ }, 200);
+ })
+ }
+ showTextDocumentInProcess = true;
+ vscode.window
+ .showTextDocument(
+ doc,
+ getViewColumnOfFile(editorFilename) || viewColumn
+ )
+ .then((editor) => {
+ if (range) {
+ editor.revealRange(range);
+ }
+ resolve(editor);
+ showTextDocumentInProcess = false;
+ })
+ } catch (err) {
+ console.log(err);
+ }
+ });
});
}