MCPcopy Create free account
hub / github.com/cursorless-dev/cursorless / performDocumentEdits

Function performDocumentEdits

src/util/performDocumentEdits.ts:5–30  ·  view source on GitHub ↗
(
  rangeUpdater: RangeUpdater,
  editor: TextEditor,
  edits: Edit[]
)

Source from the content-addressed store, hash-verified

3import { RangeUpdater } from "../core/updateSelections/RangeUpdater";
4
5export async function performDocumentEdits(
6 rangeUpdater: RangeUpdater,
7 editor: TextEditor,
8 edits: Edit[]
9) {
10 const deregister = rangeUpdater.registerReplaceEditList(
11 editor.document,
12 edits.filter((edit) => edit.isReplace)
13 );
14
15 const wereEditsApplied = await editor.edit((editBuilder) => {
16 edits.forEach(({ range, text, isReplace }) => {
17 if (text === "") {
18 editBuilder.delete(range);
19 } else if (range.isEmpty && !isReplace) {
20 editBuilder.insert(range.start, text);
21 } else {
22 editBuilder.replace(range, text);
23 }
24 });
25 });
26
27 deregister();
28
29 return wereEditsApplied;
30}

Callers 1

funcFunction · 0.90

Calls 3

editMethod · 0.80
deleteMethod · 0.65

Tested by

no test coverage detected