From ab73fed5f08823f0eac48e5f98ff2c5d46c0c02a Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 6 May 2025 10:08:06 +0200 Subject: [PATCH 1/9] Fix quickjs test --- .../src/quickjsTest.ts | 168 +++++++++--------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts b/packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts index 5219ddde9f..63a5ae1477 100644 --- a/packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts +++ b/packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts @@ -1,4 +1,4 @@ -import type { ActionDescriptor, CommandLatest } from "@cursorless/common"; +// import type { ActionDescriptor, CommandLatest } from "@cursorless/common"; import { activate } from "@cursorless/cursorless-everywhere-talon-core"; import * as std from "std"; import talonMock from "./talonMock"; @@ -12,8 +12,8 @@ async function runTests() { console.log(); console.log("Running quickjs tests"); - await test("testTake", testTake); - await test("testChuck", testChuck); + // await test("testTake", testTake); + // await test("testChuck", testChuck); } catch (_error) { hasFailed = true; } @@ -21,86 +21,86 @@ async function runTests() { std.exit(hasFailed ? 1 : 0); } -async function testTake() { - const testHelpers = talonMock.getTestHelpers(); - const initialText = "Hello, world!"; - - testHelpers.setEditorState({ - text: initialText, - selections: [{ anchor: 0, active: 0 }], - }); - - await runAction({ - name: "setSelection", - target: { - type: "primitive", - modifiers: [{ type: "containingScope", scopeType: { type: "token" } }], - }, - }); - - const { text, selections } = testHelpers.getFinalEditorState(); - - assert.equal(text, initialText); - assert.equal(selections.length, 1); - assert.equal(selections[0].anchor, 0); - assert.equal(selections[0].active, 5); -} - -async function testChuck() { - const testHelpers = talonMock.getTestHelpers(); - - testHelpers.setEditorState({ - text: "Hello, world!", - selections: [{ anchor: 0, active: 0 }], - }); - - await runAction({ - name: "remove", - target: { - type: "primitive", - modifiers: [{ type: "containingScope", scopeType: { type: "token" } }], - }, - }); - - const { text, selections } = testHelpers.getFinalEditorState(); - - assert.equal(text, ", world!"); - assert.equal(selections.length, 1); - assert.equal(selections[0].anchor, 0); - assert.equal(selections[0].active, 0); -} - -function runAction(action: ActionDescriptor) { - const command: CommandLatest = { - version: 7, - usePrePhraseSnapshot: false, - action, - }; - return talonMock - .getTestHelpers() - .contextActions.private_cursorless_talonjs_run_and_wait( - "cursorless.command", - command, - ); -} - -const assert = { - equal: (actual: unknown, expected: unknown) => { - if (actual !== expected) { - throw new Error(`Actual '${actual}' Expected '${expected}'`); - } - }, -}; - -async function test(name: string, fn: () => Promise) { - try { - await fn(); - console.log(` * ${name}`); - } catch (error) { - console.error(` x ${name}`); - console.error(error); - hasFailed = true; - } -} +// async function testTake() { +// const testHelpers = talonMock.getTestHelpers(); +// const initialText = "Hello, world!"; + +// testHelpers.setEditorState({ +// text: initialText, +// selections: [{ anchor: 0, active: 0 }], +// }); + +// await runAction({ +// name: "setSelection", +// target: { +// type: "primitive", +// modifiers: [{ type: "containingScope", scopeType: { type: "token" } }], +// }, +// }); + +// const { text, selections } = testHelpers.getFinalEditorState(); + +// assert.equal(text, initialText); +// assert.equal(selections.length, 1); +// assert.equal(selections[0].anchor, 0); +// assert.equal(selections[0].active, 5); +// } + +// async function testChuck() { +// const testHelpers = talonMock.getTestHelpers(); + +// testHelpers.setEditorState({ +// text: "Hello, world!", +// selections: [{ anchor: 0, active: 0 }], +// }); + +// await runAction({ +// name: "remove", +// target: { +// type: "primitive", +// modifiers: [{ type: "containingScope", scopeType: { type: "token" } }], +// }, +// }); + +// const { text, selections } = testHelpers.getFinalEditorState(); + +// assert.equal(text, ", world!"); +// assert.equal(selections.length, 1); +// assert.equal(selections[0].anchor, 0); +// assert.equal(selections[0].active, 0); +// } + +// function runAction(action: ActionDescriptor) { +// const command: CommandLatest = { +// version: 7, +// usePrePhraseSnapshot: false, +// action, +// }; +// return talonMock +// .getTestHelpers() +// .contextActions.private_cursorless_talonjs_run_and_wait( +// "cursorless.command", +// command, +// ); +// } + +// const assert = { +// equal: (actual: unknown, expected: unknown) => { +// if (actual !== expected) { +// throw new Error(`Actual '${actual}' Expected '${expected}'`); +// } +// }, +// }; + +// async function test(name: string, fn: () => Promise) { +// try { +// await fn(); +// console.log(` * ${name}`); +// } catch (error) { +// console.error(` x ${name}`); +// console.error(error); +// hasFailed = true; +// } +// } await runTests(); From c5ca7513c61a161574891a38ec8dba0f57e7f535 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 6 May 2025 10:24:23 +0200 Subject: [PATCH 2/9] Debug print --- .../src/disabledComponents/DisabledTalonSpokenForms.ts | 1 + .../src/spokenForms/CustomSpokenForms.ts | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts b/packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts index c188a8ddf0..fc4d68e8f2 100644 --- a/packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts +++ b/packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts @@ -6,6 +6,7 @@ import { export class DisabledTalonSpokenForms implements TalonSpokenForms { getSpokenFormEntries(): Promise { + console.log("getSpokenFormEntries() throw DisabledCustomSpokenFormsError"); throw new DisabledCustomSpokenFormsError(); } diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index 1432656059..b26ba0c409 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -58,9 +58,10 @@ export class CustomSpokenForms { } constructor(private talonSpokenForms: TalonSpokenForms) { - this.disposable = talonSpokenForms.onDidChange(() => - this.updateSpokenFormMaps().catch(() => {}), - ); + this.disposable = talonSpokenForms.onDidChange(() => { + console.log("CustomSpokenForms.onDidChange"); + this.updateSpokenFormMaps().catch(() => {}); + }); this.customSpokenFormsInitialized = this.updateSpokenFormMaps(); this.customSpokenFormsInitialized.catch(() => {}); @@ -74,6 +75,7 @@ export class CustomSpokenForms { onDidChangeCustomSpokenForms = this.notifier.registerListener; private async updateSpokenFormMaps(): Promise { + console.log("updateSpokenFormMaps()"); let allCustomEntries: SpokenFormEntry[]; try { allCustomEntries = await this.talonSpokenForms.getSpokenFormEntries(); From 6b06145dc9d189be380a50e1bb9baedc1d38c302 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 6 May 2025 10:39:01 +0200 Subject: [PATCH 3/9] More debug --- .../src/spokenForms/CustomSpokenForms.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index b26ba0c409..9a7cb1c308 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -63,8 +63,11 @@ export class CustomSpokenForms { this.updateSpokenFormMaps().catch(() => {}); }); - this.customSpokenFormsInitialized = this.updateSpokenFormMaps(); - this.customSpokenFormsInitialized.catch(() => {}); + this.customSpokenFormsInitialized = this.updateSpokenFormMaps().catch( + () => { + console.log("CustomSpokenForms.updateSpokenFormMaps() catch"); + }, + ); } /** @@ -87,6 +90,7 @@ export class CustomSpokenForms { // Handle case where spokenForms.json doesn't exist yet this.needsInitialTalonUpdate_ = true; } else if (err instanceof DisabledCustomSpokenFormsError) { + console.log("catch DisabledCustomSpokenFormsError"); // Do nothing: this ide doesn't currently support custom spoken forms } else { console.error("Error loading custom spoken forms", err); @@ -101,6 +105,8 @@ export class CustomSpokenForms { this.spokenFormMap_ = { ...defaultSpokenFormMap }; this.notifier.notifyListeners(); + console.log("rethrowing err"); + throw err; } From 86bb56489361ee87500a93788eaf18790a3dadbd Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 6 May 2025 10:54:08 +0200 Subject: [PATCH 4/9] debug --- packages/cursorless-engine/src/cursorlessEngine.ts | 1 + .../src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts | 1 + .../cursorless-engine/src/spokenForms/CustomSpokenForms.ts | 5 +++-- packages/cursorless-everywhere-talon-core/src/extension.ts | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/cursorless-engine/src/cursorlessEngine.ts index fb9d7dd867..da29d63674 100644 --- a/packages/cursorless-engine/src/cursorlessEngine.ts +++ b/packages/cursorless-engine/src/cursorlessEngine.ts @@ -62,6 +62,7 @@ export async function createCursorlessEngine({ talonSpokenForms = new DisabledTalonSpokenForms(), snippets = new DisabledSnippets(), }: EngineProps): Promise { + console.log("createCursorlessEngine"); injectIde(ide); const debug = new Debug(ide); diff --git a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts b/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts index a9d1642296..f4f5fe8050 100644 --- a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts +++ b/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts @@ -28,6 +28,7 @@ export class CustomSpokenFormGeneratorImpl public readonly customSpokenFormsInitialized: Promise; constructor(talonSpokenForms: TalonSpokenForms) { + console.log("CustomSpokenFormGeneratorImpl constructor"); this.customSpokenForms = new CustomSpokenForms(talonSpokenForms); this.customSpokenFormsInitialized = this.customSpokenForms.customSpokenFormsInitialized; diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index 9a7cb1c308..44ee2dfe3f 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -59,10 +59,11 @@ export class CustomSpokenForms { constructor(private talonSpokenForms: TalonSpokenForms) { this.disposable = talonSpokenForms.onDidChange(() => { - console.log("CustomSpokenForms.onDidChange"); - this.updateSpokenFormMaps().catch(() => {}); + // this.updateSpokenFormMaps().catch(() => {}); }); + console.log("CustomSpokenForms constructor"); + this.customSpokenFormsInitialized = this.updateSpokenFormMaps().catch( () => { console.log("CustomSpokenForms.updateSpokenFormMaps() catch"); diff --git a/packages/cursorless-everywhere-talon-core/src/extension.ts b/packages/cursorless-everywhere-talon-core/src/extension.ts index c59bded006..633768cf45 100644 --- a/packages/cursorless-everywhere-talon-core/src/extension.ts +++ b/packages/cursorless-everywhere-talon-core/src/extension.ts @@ -21,6 +21,7 @@ export async function activate( try { return await activateHelper(talon, runMode); } catch (error) { + console.log("Error activating talon.js"); console.error(error); throw error; } From 1edbdda85fafb29707db7fd3067e56adbee4a9da Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 6 May 2025 11:06:09 +0200 Subject: [PATCH 5/9] More debug --- .../cursorless-engine/src/spokenForms/CustomSpokenForms.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index 44ee2dfe3f..f55e702e73 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -59,7 +59,10 @@ export class CustomSpokenForms { constructor(private talonSpokenForms: TalonSpokenForms) { this.disposable = talonSpokenForms.onDidChange(() => { - // this.updateSpokenFormMaps().catch(() => {}); + console.log("CustomSpokenForms.onDidChange"); + this.updateSpokenFormMaps().catch(() => { + console.log("CustomSpokenForms.onDidChange() catch"); + }); }); console.log("CustomSpokenForms constructor"); From 71f4b875cd9f022852e1de129f69d5badccf77ff Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 6 May 2025 11:18:40 +0200 Subject: [PATCH 6/9] debug --- .../src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts | 4 ++++ .../cursorless-engine/src/spokenForms/CustomSpokenForms.ts | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts b/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts index f4f5fe8050..e8781c0c9e 100644 --- a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts +++ b/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts @@ -37,11 +37,15 @@ export class CustomSpokenFormGeneratorImpl ); this.disposable = this.customSpokenForms.onDidChangeCustomSpokenForms( () => { + console.log( + "CustomSpokenFormGeneratorImpl.onDidChangeCustomSpokenForms", + ); this.spokenFormGenerator = new SpokenFormGenerator( this.customSpokenForms.spokenFormMap, ); }, ); + console.log("CustomSpokenFormGeneratorImpl constructor done"); } onDidChangeCustomSpokenForms(listener: Listener<[]>) { diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index f55e702e73..2a1adab781 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -58,6 +58,8 @@ export class CustomSpokenForms { } constructor(private talonSpokenForms: TalonSpokenForms) { + console.log("CustomSpokenForms constructor"); + this.disposable = talonSpokenForms.onDidChange(() => { console.log("CustomSpokenForms.onDidChange"); this.updateSpokenFormMaps().catch(() => { @@ -65,13 +67,13 @@ export class CustomSpokenForms { }); }); - console.log("CustomSpokenForms constructor"); - this.customSpokenFormsInitialized = this.updateSpokenFormMaps().catch( () => { console.log("CustomSpokenForms.updateSpokenFormMaps() catch"); }, ); + + console.log("CustomSpokenForms constructor done"); } /** From 3a4a18c1d4761daca7d268462dc30c4b1c05369f Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 6 May 2025 11:35:39 +0200 Subject: [PATCH 7/9] whatever --- .../src/spokenForms/CustomSpokenForms.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index 2a1adab781..783983dafb 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -67,11 +67,17 @@ export class CustomSpokenForms { }); }); - this.customSpokenFormsInitialized = this.updateSpokenFormMaps().catch( - () => { - console.log("CustomSpokenForms.updateSpokenFormMaps() catch"); - }, - ); + try { + this.customSpokenFormsInitialized = this.updateSpokenFormMaps().catch( + () => { + console.log("CustomSpokenForms.updateSpokenFormMaps() catch"); + }, + ); + } catch (error) { + console.log("CustomSpokenForms constructor catch"); + console.log(error); + throw error; + } console.log("CustomSpokenForms constructor done"); } From 8d769eef578bc9a629605963baa6d67b151d5d0b Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 6 May 2025 11:48:22 +0200 Subject: [PATCH 8/9] don't throw unnecessary --- .../src/spokenForms/CustomSpokenForms.ts | 25 +++++-------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index 783983dafb..9ad2efb662 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -60,24 +60,11 @@ export class CustomSpokenForms { constructor(private talonSpokenForms: TalonSpokenForms) { console.log("CustomSpokenForms constructor"); - this.disposable = talonSpokenForms.onDidChange(() => { - console.log("CustomSpokenForms.onDidChange"); - this.updateSpokenFormMaps().catch(() => { - console.log("CustomSpokenForms.onDidChange() catch"); - }); - }); + this.disposable = talonSpokenForms.onDidChange(() => + this.updateSpokenFormMaps(), + ); - try { - this.customSpokenFormsInitialized = this.updateSpokenFormMaps().catch( - () => { - console.log("CustomSpokenForms.updateSpokenFormMaps() catch"); - }, - ); - } catch (error) { - console.log("CustomSpokenForms constructor catch"); - console.log(error); - throw error; - } + this.customSpokenFormsInitialized = this.updateSpokenFormMaps(); console.log("CustomSpokenForms constructor done"); } @@ -117,9 +104,9 @@ export class CustomSpokenForms { this.spokenFormMap_ = { ...defaultSpokenFormMap }; this.notifier.notifyListeners(); - console.log("rethrowing err"); + console.log("return early"); - throw err; + return; } for (const entryType of SUPPORTED_ENTRY_TYPES) { From e098b6fc01c520bb3389305dc65d8f01535b5dbe Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 6 May 2025 12:05:43 +0200 Subject: [PATCH 9/9] Cleanup --- .../cursorless-engine/src/cursorlessEngine.ts | 1 - .../DisabledTalonSpokenForms.ts | 1 - .../CustomSpokenFormGeneratorImpl.ts | 5 - .../src/spokenForms/CustomSpokenForms.ts | 8 - .../src/extension.ts | 1 - .../src/quickjsTest.ts | 168 +++++++++--------- 6 files changed, 84 insertions(+), 100 deletions(-) diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/cursorless-engine/src/cursorlessEngine.ts index da29d63674..fb9d7dd867 100644 --- a/packages/cursorless-engine/src/cursorlessEngine.ts +++ b/packages/cursorless-engine/src/cursorlessEngine.ts @@ -62,7 +62,6 @@ export async function createCursorlessEngine({ talonSpokenForms = new DisabledTalonSpokenForms(), snippets = new DisabledSnippets(), }: EngineProps): Promise { - console.log("createCursorlessEngine"); injectIde(ide); const debug = new Debug(ide); diff --git a/packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts b/packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts index fc4d68e8f2..c188a8ddf0 100644 --- a/packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts +++ b/packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts @@ -6,7 +6,6 @@ import { export class DisabledTalonSpokenForms implements TalonSpokenForms { getSpokenFormEntries(): Promise { - console.log("getSpokenFormEntries() throw DisabledCustomSpokenFormsError"); throw new DisabledCustomSpokenFormsError(); } diff --git a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts b/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts index e8781c0c9e..a9d1642296 100644 --- a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts +++ b/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts @@ -28,7 +28,6 @@ export class CustomSpokenFormGeneratorImpl public readonly customSpokenFormsInitialized: Promise; constructor(talonSpokenForms: TalonSpokenForms) { - console.log("CustomSpokenFormGeneratorImpl constructor"); this.customSpokenForms = new CustomSpokenForms(talonSpokenForms); this.customSpokenFormsInitialized = this.customSpokenForms.customSpokenFormsInitialized; @@ -37,15 +36,11 @@ export class CustomSpokenFormGeneratorImpl ); this.disposable = this.customSpokenForms.onDidChangeCustomSpokenForms( () => { - console.log( - "CustomSpokenFormGeneratorImpl.onDidChangeCustomSpokenForms", - ); this.spokenFormGenerator = new SpokenFormGenerator( this.customSpokenForms.spokenFormMap, ); }, ); - console.log("CustomSpokenFormGeneratorImpl constructor done"); } onDidChangeCustomSpokenForms(listener: Listener<[]>) { diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts index 9ad2efb662..6812b6f2db 100644 --- a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts +++ b/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts @@ -58,15 +58,11 @@ export class CustomSpokenForms { } constructor(private talonSpokenForms: TalonSpokenForms) { - console.log("CustomSpokenForms constructor"); - this.disposable = talonSpokenForms.onDidChange(() => this.updateSpokenFormMaps(), ); this.customSpokenFormsInitialized = this.updateSpokenFormMaps(); - - console.log("CustomSpokenForms constructor done"); } /** @@ -77,7 +73,6 @@ export class CustomSpokenForms { onDidChangeCustomSpokenForms = this.notifier.registerListener; private async updateSpokenFormMaps(): Promise { - console.log("updateSpokenFormMaps()"); let allCustomEntries: SpokenFormEntry[]; try { allCustomEntries = await this.talonSpokenForms.getSpokenFormEntries(); @@ -89,7 +84,6 @@ export class CustomSpokenForms { // Handle case where spokenForms.json doesn't exist yet this.needsInitialTalonUpdate_ = true; } else if (err instanceof DisabledCustomSpokenFormsError) { - console.log("catch DisabledCustomSpokenFormsError"); // Do nothing: this ide doesn't currently support custom spoken forms } else { console.error("Error loading custom spoken forms", err); @@ -104,8 +98,6 @@ export class CustomSpokenForms { this.spokenFormMap_ = { ...defaultSpokenFormMap }; this.notifier.notifyListeners(); - console.log("return early"); - return; } diff --git a/packages/cursorless-everywhere-talon-core/src/extension.ts b/packages/cursorless-everywhere-talon-core/src/extension.ts index 633768cf45..c59bded006 100644 --- a/packages/cursorless-everywhere-talon-core/src/extension.ts +++ b/packages/cursorless-everywhere-talon-core/src/extension.ts @@ -21,7 +21,6 @@ export async function activate( try { return await activateHelper(talon, runMode); } catch (error) { - console.log("Error activating talon.js"); console.error(error); throw error; } diff --git a/packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts b/packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts index 63a5ae1477..5219ddde9f 100644 --- a/packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts +++ b/packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts @@ -1,4 +1,4 @@ -// import type { ActionDescriptor, CommandLatest } from "@cursorless/common"; +import type { ActionDescriptor, CommandLatest } from "@cursorless/common"; import { activate } from "@cursorless/cursorless-everywhere-talon-core"; import * as std from "std"; import talonMock from "./talonMock"; @@ -12,8 +12,8 @@ async function runTests() { console.log(); console.log("Running quickjs tests"); - // await test("testTake", testTake); - // await test("testChuck", testChuck); + await test("testTake", testTake); + await test("testChuck", testChuck); } catch (_error) { hasFailed = true; } @@ -21,86 +21,86 @@ async function runTests() { std.exit(hasFailed ? 1 : 0); } -// async function testTake() { -// const testHelpers = talonMock.getTestHelpers(); -// const initialText = "Hello, world!"; - -// testHelpers.setEditorState({ -// text: initialText, -// selections: [{ anchor: 0, active: 0 }], -// }); - -// await runAction({ -// name: "setSelection", -// target: { -// type: "primitive", -// modifiers: [{ type: "containingScope", scopeType: { type: "token" } }], -// }, -// }); - -// const { text, selections } = testHelpers.getFinalEditorState(); - -// assert.equal(text, initialText); -// assert.equal(selections.length, 1); -// assert.equal(selections[0].anchor, 0); -// assert.equal(selections[0].active, 5); -// } - -// async function testChuck() { -// const testHelpers = talonMock.getTestHelpers(); - -// testHelpers.setEditorState({ -// text: "Hello, world!", -// selections: [{ anchor: 0, active: 0 }], -// }); - -// await runAction({ -// name: "remove", -// target: { -// type: "primitive", -// modifiers: [{ type: "containingScope", scopeType: { type: "token" } }], -// }, -// }); - -// const { text, selections } = testHelpers.getFinalEditorState(); - -// assert.equal(text, ", world!"); -// assert.equal(selections.length, 1); -// assert.equal(selections[0].anchor, 0); -// assert.equal(selections[0].active, 0); -// } - -// function runAction(action: ActionDescriptor) { -// const command: CommandLatest = { -// version: 7, -// usePrePhraseSnapshot: false, -// action, -// }; -// return talonMock -// .getTestHelpers() -// .contextActions.private_cursorless_talonjs_run_and_wait( -// "cursorless.command", -// command, -// ); -// } - -// const assert = { -// equal: (actual: unknown, expected: unknown) => { -// if (actual !== expected) { -// throw new Error(`Actual '${actual}' Expected '${expected}'`); -// } -// }, -// }; - -// async function test(name: string, fn: () => Promise) { -// try { -// await fn(); -// console.log(` * ${name}`); -// } catch (error) { -// console.error(` x ${name}`); -// console.error(error); -// hasFailed = true; -// } -// } +async function testTake() { + const testHelpers = talonMock.getTestHelpers(); + const initialText = "Hello, world!"; + + testHelpers.setEditorState({ + text: initialText, + selections: [{ anchor: 0, active: 0 }], + }); + + await runAction({ + name: "setSelection", + target: { + type: "primitive", + modifiers: [{ type: "containingScope", scopeType: { type: "token" } }], + }, + }); + + const { text, selections } = testHelpers.getFinalEditorState(); + + assert.equal(text, initialText); + assert.equal(selections.length, 1); + assert.equal(selections[0].anchor, 0); + assert.equal(selections[0].active, 5); +} + +async function testChuck() { + const testHelpers = talonMock.getTestHelpers(); + + testHelpers.setEditorState({ + text: "Hello, world!", + selections: [{ anchor: 0, active: 0 }], + }); + + await runAction({ + name: "remove", + target: { + type: "primitive", + modifiers: [{ type: "containingScope", scopeType: { type: "token" } }], + }, + }); + + const { text, selections } = testHelpers.getFinalEditorState(); + + assert.equal(text, ", world!"); + assert.equal(selections.length, 1); + assert.equal(selections[0].anchor, 0); + assert.equal(selections[0].active, 0); +} + +function runAction(action: ActionDescriptor) { + const command: CommandLatest = { + version: 7, + usePrePhraseSnapshot: false, + action, + }; + return talonMock + .getTestHelpers() + .contextActions.private_cursorless_talonjs_run_and_wait( + "cursorless.command", + command, + ); +} + +const assert = { + equal: (actual: unknown, expected: unknown) => { + if (actual !== expected) { + throw new Error(`Actual '${actual}' Expected '${expected}'`); + } + }, +}; + +async function test(name: string, fn: () => Promise) { + try { + await fn(); + console.log(` * ${name}`); + } catch (error) { + console.error(` x ${name}`); + console.error(error); + hasFailed = true; + } +} await runTests();