( rangeUpdater: RangeUpdater, editor: TextEditor, edits: Edit[] )
| 3 | import { RangeUpdater } from "../core/updateSelections/RangeUpdater"; |
| 4 | |
| 5 | export 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 | } |
no test coverage detected