File tree Expand file tree Collapse file tree 3 files changed +18
-7
lines changed Expand file tree Collapse file tree 3 files changed +18
-7
lines changed Original file line number Diff line number Diff line change @@ -31,13 +31,13 @@ import { ScopeSupportWatcher } from "./scopeProviders/ScopeSupportWatcher";
31
31
import { injectIde } from "./singletons/ide.singleton" ;
32
32
import { TreeSitter } from "./typings/TreeSitter" ;
33
33
34
- export function createCursorlessEngine (
34
+ export async function createCursorlessEngine (
35
35
treeSitter : TreeSitter ,
36
36
ide : IDE ,
37
37
hats : Hats ,
38
38
commandServerApi : CommandServerApi | null ,
39
39
fileSystem : FileSystem ,
40
- ) : CursorlessEngine {
40
+ ) : Promise < CursorlessEngine > {
41
41
injectIde ( ide ) ;
42
42
43
43
const debug = new Debug ( treeSitter ) ;
@@ -58,6 +58,7 @@ export function createCursorlessEngine(
58
58
const storedTargets = new StoredTargetMap ( ) ;
59
59
60
60
const languageDefinitions = new LanguageDefinitions ( fileSystem , treeSitter ) ;
61
+ await languageDefinitions . init ( ) ;
61
62
62
63
const talonSpokenForms = new TalonSpokenFormsJsonReader ( fileSystem ) ;
63
64
Original file line number Diff line number Diff line change @@ -60,10 +60,6 @@ export class LanguageDefinitions {
60
60
? join ( getCursorlessRepoRoot ( ) , "queries" )
61
61
: "queries" ;
62
62
63
- ide ( ) . visibleTextEditors . forEach ( ( { document } ) =>
64
- this . loadLanguage ( document . languageId ) ,
65
- ) ;
66
-
67
63
if ( ide ( ) . runMode === "development" ) {
68
64
this . disposables . push (
69
65
fileSystem . watchDir ( this . queryDir , ( ) => {
@@ -73,6 +69,20 @@ export class LanguageDefinitions {
73
69
}
74
70
}
75
71
72
+ public async init ( ) : Promise < void > {
73
+ await this . loadAllLanguages ( ) ;
74
+ }
75
+
76
+ private async loadAllLanguages ( ) : Promise < void > {
77
+ const languageIds = ide ( ) . visibleTextEditors . map (
78
+ ( { document } ) => document . languageId ,
79
+ ) ;
80
+
81
+ await Promise . all (
82
+ languageIds . map ( ( languageId ) => this . loadLanguage ( languageId ) ) ,
83
+ ) ;
84
+ }
85
+
76
86
public async loadLanguage ( languageId : string ) : Promise < void > {
77
87
if ( this . languageDefinitions . has ( languageId ) ) {
78
88
return ;
Original file line number Diff line number Diff line change @@ -92,7 +92,7 @@ export async function activate(
92
92
runIntegrationTests,
93
93
addCommandRunnerDecorator,
94
94
customSpokenFormGenerator,
95
- } = createCursorlessEngine (
95
+ } = await createCursorlessEngine (
96
96
treeSitter ,
97
97
normalizedIde ,
98
98
hats ,
You can’t perform that action at this time.
0 commit comments