Path: blob/main/extensions/copilot/src/extension/inlineEdits/vscode-node/parts/common.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 { TextDocument, TextDocumentContentChangeEvent } from 'vscode';6import { IAlternativeNotebookDocument } from '../../../../platform/notebook/common/alternativeNotebookTextDocument';7import { StringEdit, StringReplacement } from '../../../../util/vs/editor/common/core/edits/stringEdit';8import { OffsetRange } from '../../../../util/vs/editor/common/core/ranges/offsetRange';9import { StringText } from '../../../../util/vs/editor/common/core/text/abstractText';1011export function stringValueFromDoc(doc: TextDocument | IAlternativeNotebookDocument): StringText {12return new StringText(doc.getText());13}1415export function editFromTextDocumentContentChangeEvents(events: readonly TextDocumentContentChangeEvent[]): StringEdit {16const replacementsInApplicationOrder = events.map(e => StringReplacement.replace(OffsetRange.ofStartAndLength(e.rangeOffset, e.rangeLength), e.text));17return StringEdit.composeSequentialReplacements(replacementsInApplicationOrder);18}192021