/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { LanguageFeatureRegistry } from '../languageFeatureRegistry.js';
import { ILanguageFeaturesService } from './languageFeatures.js';
import { registerSingleton } from '../../../platform/instantiation/common/extensions.js';
export class LanguageFeaturesService {
    constructor() {
        this.referenceProvider = new LanguageFeatureRegistry();
        this.renameProvider = new LanguageFeatureRegistry();
        this.codeActionProvider = new LanguageFeatureRegistry();
        this.definitionProvider = new LanguageFeatureRegistry();
        this.typeDefinitionProvider = new LanguageFeatureRegistry();
        this.declarationProvider = new LanguageFeatureRegistry();
        this.implementationProvider = new LanguageFeatureRegistry();
        this.documentSymbolProvider = new LanguageFeatureRegistry();
        this.inlayHintsProvider = new LanguageFeatureRegistry();
        this.colorProvider = new LanguageFeatureRegistry();
        this.codeLensProvider = new LanguageFeatureRegistry();
        this.documentFormattingEditProvider = new LanguageFeatureRegistry();
        this.documentRangeFormattingEditProvider = new LanguageFeatureRegistry();
        this.onTypeFormattingEditProvider = new LanguageFeatureRegistry();
        this.signatureHelpProvider = new LanguageFeatureRegistry();
        this.hoverProvider = new LanguageFeatureRegistry();
        this.documentHighlightProvider = new LanguageFeatureRegistry();
        this.selectionRangeProvider = new LanguageFeatureRegistry();
        this.foldingRangeProvider = new LanguageFeatureRegistry();
        this.linkProvider = new LanguageFeatureRegistry();
        this.inlineCompletionsProvider = new LanguageFeatureRegistry();
        this.completionProvider = new LanguageFeatureRegistry();
        this.linkedEditingRangeProvider = new LanguageFeatureRegistry();
        this.documentRangeSemanticTokensProvider = new LanguageFeatureRegistry();
        this.documentSemanticTokensProvider = new LanguageFeatureRegistry();
    }
}
registerSingleton(ILanguageFeaturesService, LanguageFeaturesService, true);
