15 lines
568 B
TypeScript
15 lines
568 B
TypeScript
import { displaySlice } from "./display"
|
|
|
|
export function expandPastedTextPlaceholders(
|
|
text: string,
|
|
pasted: readonly { text: string; source: { text: string } }[],
|
|
) {
|
|
return pasted.reduce((result, part) => result.replace(part.source.text, part.text), text)
|
|
}
|
|
|
|
export function expandTrackedPastedText(text: string, ranges: { start: number; end: number; text: string }[]) {
|
|
return ranges
|
|
.slice()
|
|
.sort((a, b) => b.start - a.start)
|
|
.reduce((result, part) => displaySlice(result, 0, part.start) + part.text + displaySlice(result, part.end), text)
|
|
}
|