Path: blob/main/extensions/copilot/src/extension/chatSessions/copilotcli/vscode-node/readonlyContentProvider.ts
13405 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, TextDocumentContentProvider, Uri, workspace } from 'vscode';67export const READONLY_SCHEME = 'copilot-cli-readonly';89export class ReadonlyContentProvider implements TextDocumentContentProvider {10private readonly _contentStore = new Map<string, string>();1112provideTextDocumentContent(uri: Uri): string {13const content = this._contentStore.get(uri.toString());14return content ?? '';15}1617setContent(uri: Uri, content: string): void {18this._contentStore.set(uri.toString(), content);19}2021clearContent(uri: Uri): void {22this._contentStore.delete(uri.toString());23}2425register(): Disposable {26return workspace.registerTextDocumentContentProvider(READONLY_SCHEME, this);27}28}2930export function createReadonlyUri(originalPath: string, suffix: string): Uri {31const fileUri = Uri.file(originalPath);32return Uri.from({33scheme: READONLY_SCHEME,34path: fileUri.path,35query: suffix,36});37}383940