MCPcopy Create free account
hub / github.com/breck7/scroll / leftButtonSelect

Function leftButtonSelect

external/.scrollLibs.js:10177–10338  ·  view source on GitHub ↗
(cm, event, start, behavior)

Source from the content-addressed store, hash-verified

10175
10176 // Normal selection, as opposed to text dragging.
10177 function leftButtonSelect(cm, event, start, behavior) {
10178 var display = cm.display,
10179 doc = cm.doc
10180 e_preventDefault(event)
10181
10182 var ourRange,
10183 ourIndex,
10184 startSel = doc.sel,
10185 ranges = startSel.ranges
10186 if (behavior.addNew && !behavior.extend) {
10187 ourIndex = doc.sel.contains(start)
10188 if (ourIndex > -1) {
10189 ourRange = ranges[ourIndex]
10190 } else {
10191 ourRange = new Range(start, start)
10192 }
10193 } else {
10194 ourRange = doc.sel.primary()
10195 ourIndex = doc.sel.primIndex
10196 }
10197
10198 if (behavior.unit == "rectangle") {
10199 if (!behavior.addNew) {
10200 ourRange = new Range(start, start)
10201 }
10202 start = posFromMouse(cm, event, true, true)
10203 ourIndex = -1
10204 } else {
10205 var range$$1 = rangeForUnit(cm, start, behavior.unit)
10206 if (behavior.extend) {
10207 ourRange = extendRange(ourRange, range$$1.anchor, range$$1.head, behavior.extend)
10208 } else {
10209 ourRange = range$$1
10210 }
10211 }
10212
10213 if (!behavior.addNew) {
10214 ourIndex = 0
10215 setSelection(doc, new Selection([ourRange], 0), sel_mouse)
10216 startSel = doc.sel
10217 } else if (ourIndex == -1) {
10218 ourIndex = ranges.length
10219 setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), { scroll: false, origin: "*mouse" })
10220 } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) {
10221 setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), { scroll: false, origin: "*mouse" })
10222 startSel = doc.sel
10223 } else {
10224 replaceOneSelection(doc, ourIndex, ourRange, sel_mouse)
10225 }
10226
10227 var lastPos = start
10228 function extendTo(pos) {
10229 if (cmp(lastPos, pos) == 0) {
10230 return
10231 }
10232 lastPos = pos
10233
10234 if (behavior.unit == "rectangle") {

Callers 1

leftButtonDownFunction · 0.85

Calls 15

e_preventDefaultFunction · 0.85
posFromMouseFunction · 0.85
rangeForUnitFunction · 0.85
extendRangeFunction · 0.85
setSelectionFunction · 0.85
normalizeSelectionFunction · 0.85
replaceOneSelectionFunction · 0.85
operationFunction · 0.85
e_buttonFunction · 0.85
doneFunction · 0.85
containsMethod · 0.80
concatMethod · 0.80

Tested by

no test coverage detected