(cm, primary = true)
| 11 | } |
| 12 | |
| 13 | export function prepareSelection(cm, primary = true) { |
| 14 | let doc = cm.doc, result = {} |
| 15 | let curFragment = result.cursors = document.createDocumentFragment() |
| 16 | let selFragment = result.selection = document.createDocumentFragment() |
| 17 | |
| 18 | for (let i = 0; i < doc.sel.ranges.length; i++) { |
| 19 | if (!primary && i == doc.sel.primIndex) continue |
| 20 | let range = doc.sel.ranges[i] |
| 21 | if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) continue |
| 22 | let collapsed = range.empty() |
| 23 | if (collapsed || cm.options.showCursorWhenSelecting) |
| 24 | drawSelectionCursor(cm, range.head, curFragment) |
| 25 | if (!collapsed) |
| 26 | drawSelectionRange(cm, range, selFragment) |
| 27 | } |
| 28 | return result |
| 29 | } |
| 30 | |
| 31 | // Draws a cursor for the given range |
| 32 | export function drawSelectionCursor(cm, head, output) { |
no test coverage detected