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
}
23
>
register(languageId: string, configuration: LanguageConfiguration, priority?: number): IDisposable {
24
return this._registry.register(languageId, configuration, priority);
25
}
27
>
getLanguageConfiguration(languageId: string): ResolvedLanguageConfiguration {
28
return this._registry.getLanguageConfiguration(languageId) ??
29
new ResolvedLanguageConfiguration('unknown', {});
30
}