Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.ts
5283 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
6
import { IWorkbenchContribution } from '../../../../common/contributions.js';
7
import { PromptLinkProvider } from './languageProviders/promptLinkProvider.js';
8
import { PromptBodyAutocompletion } from './languageProviders/promptBodyAutocompletion.js';
9
import { PromptHeaderAutocompletion } from './languageProviders/promptHeaderAutocompletion.js';
10
import { PromptHoverProvider } from './languageProviders/promptHovers.js';
11
import { PromptHeaderDefinitionProvider } from './languageProviders/PromptHeaderDefinitionProvider.js';
12
import { PromptValidatorContribution } from './languageProviders/promptValidator.js';
13
import { PromptDocumentSemanticTokensProvider } from './languageProviders/promptDocumentSemanticTokensProvider.js';
14
import { PromptCodeActionProvider } from './languageProviders/promptCodeActions.js';
15
import { ILanguageFeaturesService } from '../../../../../editor/common/services/languageFeatures.js';
16
import { Disposable } from '../../../../../base/common/lifecycle.js';
17
import { ALL_PROMPTS_LANGUAGE_SELECTOR } from './promptTypes.js';
18
import { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';
19
20
export class PromptLanguageFeaturesProvider extends Disposable implements IWorkbenchContribution {
21
static readonly ID = 'chat.promptLanguageFeatures';
22
23
constructor(
24
@ILanguageFeaturesService languageService: ILanguageFeaturesService,
25
@IInstantiationService instantiationService: IInstantiationService,
26
) {
27
super();
28
29
this._register(languageService.linkProvider.register(ALL_PROMPTS_LANGUAGE_SELECTOR, instantiationService.createInstance(PromptLinkProvider)));
30
this._register(languageService.completionProvider.register(ALL_PROMPTS_LANGUAGE_SELECTOR, instantiationService.createInstance(PromptBodyAutocompletion)));
31
this._register(languageService.completionProvider.register(ALL_PROMPTS_LANGUAGE_SELECTOR, instantiationService.createInstance(PromptHeaderAutocompletion)));
32
this._register(languageService.hoverProvider.register(ALL_PROMPTS_LANGUAGE_SELECTOR, instantiationService.createInstance(PromptHoverProvider)));
33
this._register(languageService.definitionProvider.register(ALL_PROMPTS_LANGUAGE_SELECTOR, instantiationService.createInstance(PromptHeaderDefinitionProvider)));
34
this._register(languageService.documentSemanticTokensProvider.register(ALL_PROMPTS_LANGUAGE_SELECTOR, instantiationService.createInstance(PromptDocumentSemanticTokensProvider)));
35
this._register(languageService.codeActionProvider.register(ALL_PROMPTS_LANGUAGE_SELECTOR, instantiationService.createInstance(PromptCodeActionProvider)));
36
37
this._register(instantiationService.createInstance(PromptValidatorContribution));
38
}
39
}
40
41