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
>
6
>
import { Emitter, Event } from '../../../base/common/event.js';
7
>
import { Disposable } from '../../../base/common/lifecycle.js';
8
>
import { URI } from '../../../base/common/uri.js';
9
>
import { IPosition, Position } from '../core/position.js';
10
>
import { ILanguageService } from '../languages/language.js';
11
>
import { IModelService } from './model.js';
12
>
import { ITextResourceConfigurationService, ITextResourceConfigurationChangeEvent } from './textResourceConfiguration.js';
13
>
import { IConfigurationService, ConfigurationTarget, IConfigurationValue, IConfigurationChangeEvent } from '../../../platform/configuration/common/configuration.js';
14
>
15
>
export class TextResourceConfigurationService extends Disposable implements ITextResourceConfigurationService {
16
>
17
>
public _serviceBrand: undefined;
18
>
19
>
private readonly _onDidChangeConfiguration: Emitter<ITextResourceConfigurationChangeEvent> = this._register(new Emitter<ITextResourceConfigurationChangeEvent>());
20
>
public readonly onDidChangeConfiguration: Event<ITextResourceConfigurationChangeEvent> = this._onDidChangeConfiguration.event;
21
>
22
>
constructor(
23
>
@IConfigurationService private readonly configurationService: IConfigurationService,
24
>
@IModelService private readonly modelService: IModelService,
25
>
@ILanguageService private readonly languageService: ILanguageService,
26
>
) {
27
>
super();
28
>
this._register(this.configurationService.onDidChangeConfiguration(e => this._onDidChangeConfiguration.fire(this.toResourceConfigurationChangeEvent(e))));
29
>
}
30
>
31
>
getValue<T>(resource: URI | undefined, section?: string): T;
32
>
getValue<T>(resource: URI | undefined, at?: IPosition, section?: string): T;
33
>
getValue<T>(resource: URI | undefined, arg2?: unknown, arg3?: unknown): T {
34
if (typeof arg3 === 'string') {
35
return this._getValue(resource, Position.isIPosition(arg2) ? arg2 : null, arg3);