Skip to content

Commit e61ea79

Browse files
kylecarbscode-asher
authored andcommitted
Bundle grammars (#563)
1 parent d073622 commit e61ea79

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

packages/vscode/src/fill/vscodeTextmate.ts

+18
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@ import * as vscodeTextmate from "../../../../lib/vscode/node_modules/vscode-text
22

33
const target = vscodeTextmate as typeof vscodeTextmate;
44

5+
const ctx = (require as any).context("../../../../lib/extensions", true, /.*\.tmLanguage.json$/);
6+
// Maps grammar scope to loaded grammar
7+
const scopeToGrammar = {} as any;
8+
9+
ctx.keys().forEach((key: string) => {
10+
const value = ctx(key);
11+
if (value.scopeName) {
12+
scopeToGrammar[value.scopeName] = value;
13+
}
14+
});
15+
516
target.Registry = class Registry extends vscodeTextmate.Registry {
617
public constructor(opts: vscodeTextmate.RegistryOptions) {
718
super({
@@ -21,6 +32,13 @@ target.Registry = class Registry extends vscodeTextmate.Registry {
2132
}).catch(reason => rej(reason));
2233
});
2334
},
35+
loadGrammar: async (scopeName: string) => {
36+
if (scopeToGrammar[scopeName]) {
37+
return scopeToGrammar[scopeName];
38+
}
39+
40+
return opts.loadGrammar(scopeName);
41+
},
2442
});
2543
}
2644
};

0 commit comments

Comments
 (0)