PHP Classes

File: editor/codemirror/src/edit/deleteNearSelection.js

Recommend this page to a friend!
  Classes of Cedric Maenetja   Custom PHP HTML Parser   editor/codemirror/src/edit/deleteNearSelection.js   Download  
File: editor/codemirror/src/edit/deleteNearSelection.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Custom PHP HTML Parser
Process HTML to replace it with parameter values
Author: By
Last change:
Date: 2 years ago
Size: 1,058 bytes
 

Contents

Class file image Download
import { runInOp } from "../display/operations.js" import { ensureCursorVisible } from "../display/scrolling.js" import { cmp } from "../line/pos.js" import { replaceRange } from "../model/changes.js" import { lst } from "../util/misc.js" // Helper for deleting text near the selection(s), used to implement // backspace, delete, and similar functionality. export function deleteNearSelection(cm, compute) { let ranges = cm.doc.sel.ranges, kill = [] // Build up a set of ranges to kill first, merging overlapping // ranges. for (let i = 0; i < ranges.length; i++) { let toKill = compute(ranges[i]) while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { let replaced = kill.pop() if (cmp(replaced.from, toKill.from) < 0) { toKill.from = replaced.from break } } kill.push(toKill) } // Next, remove those actual ranges. runInOp(cm, () => { for (let i = kill.length - 1; i >= 0; i--) replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete") ensureCursorVisible(cm) }) }