File modules/editor/codemirror/src/edit/deleteNearSelection.min.js

Last commit: Tue May 22 22:39:55 2018 +0200	Jan Dankert	Fix für PHP 7.2: 'Object' darf nun nicht mehr als Klassennamen verwendet werden. AUCH NICHT IN EINEM NAMESPACE! WTF, wozu habe ich das in einen verfickten Namespace gepackt? Wozu soll der sonst da sein??? Amateure. Daher nun notgedrungen unbenannt in 'BaseObject'.
1 import { runInOp } from "../display/operations.js" 2 import { ensureCursorVisible } from "../display/scrolling.js" 3 import { cmp } from "../line/pos.js" 4 import { replaceRange } from "../model/changes.js" 5 import { lst } from "../util/misc.js" 6 7 // Helper for deleting text near the selection(s), used to implement 8 // backspace, delete, and similar functionality. 9 export function deleteNearSelection(cm, compute) { 10 let ranges = cm.doc.sel.ranges, kill = [] 11 // Build up a set of ranges to kill first, merging overlapping 12 // ranges. 13 for (let i = 0; i < ranges.length; i++) { 14 let toKill = compute(ranges[i]) 15 while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { 16 let replaced = kill.pop() 17 if (cmp(replaced.from, toKill.from) < 0) { 18 toKill.from = replaced.from 19 break 20 } 21 } 22 kill.push(toKill) 23 } 24 // Next, remove those actual ranges. 25 runInOp(cm, () => { 26 for (let i = kill.length - 1; i >= 0; i--) 27 replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete") 28 ensureCursorVisible(cm) 29 }) 30 }
Download modules/editor/codemirror/src/edit/deleteNearSelection.min.js
History Tue, 22 May 2018 22:39:55 +0200 Jan Dankert Fix für PHP 7.2: 'Object' darf nun nicht mehr als Klassennamen verwendet werden. AUCH NICHT IN EINEM NAMESPACE! WTF, wozu habe ich das in einen verfickten Namespace gepackt? Wozu soll der sonst da sein??? Amateure. Daher nun notgedrungen unbenannt in 'BaseObject'.