Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/test/common/modes/testLanguageConfigurationService.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
import { Emitter } from '../../../../base/common/event.js';
6
import { Disposable, IDisposable } from '../../../../base/common/lifecycle.js';
7
import { LanguageConfiguration } from '../../../common/languages/languageConfiguration.js';
8
import { ILanguageConfigurationService, LanguageConfigurationRegistry, LanguageConfigurationServiceChangeEvent, ResolvedLanguageConfiguration } from '../../../common/languages/languageConfigurationRegistry.js';
9
10
export class TestLanguageConfigurationService extends Disposable implements ILanguageConfigurationService {
11
_serviceBrand: undefined;
12
13
private readonly _registry = this._register(new LanguageConfigurationRegistry());
14
15
private readonly _onDidChange = this._register(new Emitter<LanguageConfigurationServiceChangeEvent>());
16
public readonly onDidChange = this._onDidChange.event;
17
18
constructor() {
19
super();
20
this._register(this._registry.onDidChange((e) => this._onDidChange.fire(new LanguageConfigurationServiceChangeEvent(e.languageId))));
21
}
22
23
register(languageId: string, configuration: LanguageConfiguration, priority?: number): IDisposable {
24
return this._registry.register(languageId, configuration, priority);
25
}
26
27
getLanguageConfiguration(languageId: string): ResolvedLanguageConfiguration {
28
return this._registry.getLanguageConfiguration(languageId) ??
29
new ResolvedLanguageConfiguration('unknown', {});
30
}
31
}
32
33