Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/src/extension/inlineEdits/vscode-node/parts/common.ts
13405 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 { TextDocument, TextDocumentContentChangeEvent } from 'vscode';
7
import { IAlternativeNotebookDocument } from '../../../../platform/notebook/common/alternativeNotebookTextDocument';
8
import { StringEdit, StringReplacement } from '../../../../util/vs/editor/common/core/edits/stringEdit';
9
import { OffsetRange } from '../../../../util/vs/editor/common/core/ranges/offsetRange';
10
import { StringText } from '../../../../util/vs/editor/common/core/text/abstractText';
11
12
export function stringValueFromDoc(doc: TextDocument | IAlternativeNotebookDocument): StringText {
13
return new StringText(doc.getText());
14
}
15
16
export function editFromTextDocumentContentChangeEvents(events: readonly TextDocumentContentChangeEvent[]): StringEdit {
17
const replacementsInApplicationOrder = events.map(e => StringReplacement.replace(OffsetRange.ofStartAndLength(e.rangeOffset, e.rangeLength), e.text));
18
return StringEdit.composeSequentialReplacements(replacementsInApplicationOrder);
19
}
20
21