Skip to content

Commit

Permalink
Remove node references from Talon spoken form reader (#2480)
Browse files Browse the repository at this point in the history
  • Loading branch information
AndreasArvidsson committed Jul 11, 2024
1 parent 57047bf commit c530f04
Show file tree
Hide file tree
Showing 10 changed files with 48 additions and 17 deletions.
14 changes: 7 additions & 7 deletions packages/cursorless-engine/src/cursorlessEngine.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
import {
Command,
CommandServerApi,
ensureCommandShape,
FileSystem,
Hats,
IDE,
ScopeProvider,
ensureCommandShape,
} from "@cursorless/common";
import { KeyboardTargetUpdater } from "./KeyboardTargetUpdater";
import {
CommandRunnerDecorator,
CursorlessEngine,
} from "./api/CursorlessEngineApi";
import { Debug } from "./core/Debug";
import { HatTokenMapImpl } from "./core/HatTokenMapImpl";
import { KeyboardTargetUpdater } from "./KeyboardTargetUpdater";
import type { Snippets } from "./core/Snippets";
import { StoredTargetMap } from "./core/StoredTargets";
import { RangeUpdater } from "./core/updateSelections/RangeUpdater";
import { DisabledSnippets } from "./disabledComponents/DisabledSnippets";
import { DisabledTalonSpokenForms } from "./disabledComponents/DisabledTalonSpokenForms";
import { CustomSpokenFormGeneratorImpl } from "./generateSpokenForm/CustomSpokenFormGeneratorImpl";
import { LanguageDefinitions } from "./languages/LanguageDefinitions";
import { TalonSpokenFormsJsonReader } from "./nodeCommon/TalonSpokenFormsJsonReader";
import { ModifierStageFactoryImpl } from "./processTargets/ModifierStageFactoryImpl";
import { ScopeHandlerFactoryImpl } from "./processTargets/modifiers/scopeHandlers";
import { runCommand } from "./runCommand";
Expand All @@ -29,16 +30,17 @@ import { ScopeRangeProvider } from "./scopeProviders/ScopeRangeProvider";
import { ScopeRangeWatcher } from "./scopeProviders/ScopeRangeWatcher";
import { ScopeSupportChecker } from "./scopeProviders/ScopeSupportChecker";
import { ScopeSupportWatcher } from "./scopeProviders/ScopeSupportWatcher";
import { type TalonSpokenForms } from "./scopeProviders/TalonSpokenForms";
import { injectIde } from "./singletons/ide.singleton";
import { TreeSitter } from "./typings/TreeSitter";
import { DisabledSnippets } from "./disabledComponents/DisabledSnippets";

export async function createCursorlessEngine(
treeSitter: TreeSitter,
ide: IDE,
hats: Hats,
commandServerApi: CommandServerApi | null,
fileSystem: FileSystem,
talonSpokenForms: TalonSpokenForms | undefined,
snippets: Snippets = new DisabledSnippets(),
): Promise<CursorlessEngine> {
injectIde(ide);
Expand All @@ -62,10 +64,8 @@ export async function createCursorlessEngine(
const languageDefinitions = new LanguageDefinitions(fileSystem, treeSitter);
await languageDefinitions.init();

const talonSpokenForms = new TalonSpokenFormsJsonReader(fileSystem);

const customSpokenFormGenerator = new CustomSpokenFormGeneratorImpl(
talonSpokenForms,
talonSpokenForms ?? new DisabledTalonSpokenForms(),
);

ide.disposeOnExit(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import type {
SpokenFormEntry,
TalonSpokenForms,
} from "../scopeProviders/TalonSpokenForms";

export class DisabledTalonSpokenForms implements TalonSpokenForms {
getSpokenFormEntries(): Promise<SpokenFormEntry[]> {
throw Error("Talon spoken forms are not implemented.");
}

onDidChange() {
return { dispose: () => {} };
}
}
1 change: 1 addition & 0 deletions packages/cursorless-engine/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export * from "./CommandHistory";
export * from "./CommandHistoryAnalyzer";
export * from "./util/grammarHelpers";
export * from "./ScopeTestRecorder";
export * from "./scopeProviders/TalonSpokenForms";
export * from "./core/Snippets";
export * from "./core/mergeSnippets";
export * from "./util/object";
3 changes: 0 additions & 3 deletions packages/cursorless-engine/src/nodeCommon/README.md

This file was deleted.

7 changes: 6 additions & 1 deletion packages/cursorless-vscode/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ import {
TestCaseRecorder,
TreeSitter,
} from "@cursorless/cursorless-engine";
import { FileSystemCommandHistoryStorage } from "@cursorless/file-system-common";
import {
FileSystemCommandHistoryStorage,
FileSystemTalonSpokenForms,
} from "@cursorless/file-system-common";
import {
CursorlessApi,
getCommandServerApi,
Expand Down Expand Up @@ -84,6 +87,7 @@ export async function activate(
: await getCommandServerApi();

const treeSitter: TreeSitter = createTreeSitter(parseTreeApi);
const talonSpokenForms = new FileSystemTalonSpokenForms(fileSystem);

const snippets = new VscodeSnippets(normalizedIde);
void snippets.init();
Expand All @@ -103,6 +107,7 @@ export async function activate(
hats,
commandServerApi,
fileSystem,
talonSpokenForms,
snippets,
);

Expand Down
1 change: 1 addition & 0 deletions packages/file-system-common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
},
"dependencies": {
"@cursorless/common": "workspace:*",
"@cursorless/cursorless-engine": "workspace:*",
"glob": "^10.3.10",
"pathe": "^1.1.2"
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
import { Disposable, FileSystem, Notifier } from "@cursorless/common";
import {
Disposable,
FileSystem,
Notifier,
type Listener,
} from "@cursorless/common";
import { readFile } from "fs/promises";

import * as path from "pathe";
import {
NeedsInitialTalonUpdateError,
SpokenFormEntry,
TalonSpokenForms,
} from "../scopeProviders/TalonSpokenForms";
} from "@cursorless/cursorless-engine";
import * as path from "pathe";

interface TalonSpokenFormsPayload {
version: number;
Expand All @@ -15,7 +19,7 @@ interface TalonSpokenFormsPayload {

const LATEST_SPOKEN_FORMS_JSON_VERSION = 0;

export class TalonSpokenFormsJsonReader implements TalonSpokenForms {
export class FileSystemTalonSpokenForms implements TalonSpokenForms {
private disposable: Disposable;
private notifier = new Notifier();

Expand All @@ -31,7 +35,9 @@ export class TalonSpokenFormsJsonReader implements TalonSpokenForms {
* @param callback The callback to run when the scope ranges change
* @returns A {@link Disposable} which will stop the callback from running
*/
onDidChange = this.notifier.registerListener;
onDidChange(listener: Listener) {
return this.notifier.registerListener(listener);
}

async getSpokenFormEntries(): Promise<SpokenFormEntry[]> {
let payload: TalonSpokenFormsPayload;
Expand Down
1 change: 1 addition & 0 deletions packages/file-system-common/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export * from "./FileSystemTalonSpokenForms";
export * from "./FileSystemCommandHistoryStorage";
3 changes: 3 additions & 0 deletions packages/file-system-common/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
"references": [
{
"path": "../common"
},
{
"path": "../cursorless-engine"
}
]
}
3 changes: 3 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit c530f04

Please sign in to comment.