提交 8959af85 编写于 作者: M Matt Bierner

Use real map for languagePerId

上级 d52e5881
...@@ -448,7 +448,7 @@ class LanguageProvider { ...@@ -448,7 +448,7 @@ class LanguageProvider {
class TypeScriptServiceClientHost implements ITypescriptServiceClientHost { class TypeScriptServiceClientHost implements ITypescriptServiceClientHost {
private client: TypeScriptServiceClient; private client: TypeScriptServiceClient;
private languages: LanguageProvider[] = []; private languages: LanguageProvider[] = [];
private languagePerId: ObjectMap<LanguageProvider>; private languagePerId: Map<string, LanguageProvider>;
private readonly disposables: Disposable[] = []; private readonly disposables: Disposable[] = [];
private readonly versionStatus: VersionStatus; private readonly versionStatus: VersionStatus;
...@@ -476,12 +476,12 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost { ...@@ -476,12 +476,12 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost {
this.disposables.push(this.versionStatus); this.disposables.push(this.versionStatus);
this.client = new TypeScriptServiceClient(this, workspaceState, this.versionStatus, plugins, this.disposables); this.client = new TypeScriptServiceClient(this, workspaceState, this.versionStatus, plugins, this.disposables);
this.languagePerId = Object.create(null); this.languagePerId = new Map();
for (const description of descriptions) { for (const description of descriptions) {
const manager = new LanguageProvider(this.client, description); const manager = new LanguageProvider(this.client, description);
this.languages.push(manager); this.languages.push(manager);
this.disposables.push(manager); this.disposables.push(manager);
this.languagePerId[description.id] = manager; this.languagePerId.set(description.id, manager);
} }
this.client.onReady().then(() => { this.client.onReady().then(() => {
...@@ -504,7 +504,7 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost { ...@@ -504,7 +504,7 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost {
const manager = new LanguageProvider(this.client, description); const manager = new LanguageProvider(this.client, description);
this.languages.push(manager); this.languages.push(manager);
this.disposables.push(manager); this.disposables.push(manager);
this.languagePerId[description.id] = manager; this.languagePerId.set(description.id, manager);
} }
}); });
...@@ -615,13 +615,17 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost { ...@@ -615,13 +615,17 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost {
} }
private triggerAllDiagnostics() { private triggerAllDiagnostics() {
Object.keys(this.languagePerId).forEach(key => this.languagePerId[key].triggerAllDiagnostics()); for (const language of this.languagePerId.values()) {
language.triggerAllDiagnostics();
}
} }
/* internal */ populateService(): void { /* internal */ populateService(): void {
// See https://github.com/Microsoft/TypeScript/issues/5530 // See https://github.com/Microsoft/TypeScript/issues/5530
workspace.saveAll(false).then(_ => { workspace.saveAll(false).then(() => {
Object.keys(this.languagePerId).forEach(key => this.languagePerId[key].reInitialize()); for (const language of this.languagePerId.values()) {
language.reInitialize();
}
}); });
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册