Path: blob/main/extensions/copilot/src/extension/prompts/node/inline/summarizedDocument/summarizeDocument.ts
13406 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*--------------------------------------------------------------------------------------------*/4import { VsCodeTextDocument } from '../../../../../platform/editing/common/abstractText';5import { TextDocumentSnapshot } from '../../../../../platform/editing/common/textDocumentSnapshot';6import { OverlayNode } from '../../../../../platform/parser/node/nodes';7import { StringEdit } from '../../../../../util/vs/editor/common/core/edits/stringEdit';8import { Range } from '../../../../../vscodeTypes';9import { ICostFnFactory, IProjectedDocumentDebugInfo, ISummarizedDocumentSettings as ISummarizedDocumentSettingsImpl, RemovableNode, summarizeDocumentsSyncImpl } from './implementation';10import { ProjectedText } from './projectedText';1112export type ISummarizedDocumentSettings = ISummarizedDocumentSettingsImpl<VsCodeTextDocument>;1314export class ProjectedDocument extends ProjectedText {15constructor(16originalText: string,17edits: StringEdit,18public readonly languageId: string,19) {20super(originalText, edits);21}22}2324export interface IDocumentSummarizationItem {25document: TextDocumentSnapshot;26selection: Range | undefined;27overlayNodeRoot: OverlayNode;28}2930export { ICostFnFactory, RemovableNode };3132export function summarizeDocumentsSync(33charLimit: number,34settings: ISummarizedDocumentSettings,35items: IDocumentSummarizationItem[],36): ProjectedDocument[] {37const result = summarizeDocumentsSyncImpl(charLimit, settings, items.map(i => ({38document: new VsCodeTextDocument(i.document),39selection: i.selection,40overlayNodeRoot: i.overlayNodeRoot,41})));42return result.map(r => {43const d = new ProjectedDocument(r.originalText, r.edits, r.baseDocument.languageId);44(d as IProjectedDocumentDebugInfo).getVisualization = (r as IProjectedDocumentDebugInfo).getVisualization;45return d;46});47}484950