Path: blob/main/src/vs/workbench/contrib/chat/browser/chatEdinputInputContentProvider.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { Disposable } from '../../../../base/common/lifecycle.js';6import { Schemas } from '../../../../base/common/network.js';7import { URI } from '../../../../base/common/uri.js';8import { ILanguageService } from '../../../../editor/common/languages/language.js';9import { ITextModel } from '../../../../editor/common/model.js';10import { IModelService } from '../../../../editor/common/services/model.js';11import { ITextModelContentProvider, ITextModelService } from '../../../../editor/common/services/resolverService.js';121314export class ChatInputBoxContentProvider extends Disposable implements ITextModelContentProvider {15constructor(16@ITextModelService textModelService: ITextModelService,17@IModelService private readonly modelService: IModelService,18@ILanguageService private readonly languageService: ILanguageService19) {20super();21this._register(textModelService.registerTextModelContentProvider(Schemas.vscodeChatInput, this));22}2324async provideTextContent(resource: URI): Promise<ITextModel | null> {25const existing = this.modelService.getModel(resource);26if (existing) {27return existing;28}29return this.modelService.createModel('', this.languageService.createById('chatinput'), resource);30}31}323334