| 248 | eventMixin(SharedTextMarker) |
| 249 | |
| 250 | function markTextShared(doc, from, to, options, type) { |
| 251 | options = copyObj(options) |
| 252 | options.shared = false |
| 253 | let markers = [markText(doc, from, to, options, type)], primary = markers[0] |
| 254 | let widget = options.widgetNode |
| 255 | linkedDocs(doc, doc => { |
| 256 | if (widget) options.widgetNode = widget.cloneNode(true) |
| 257 | markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)) |
| 258 | for (let i = 0; i < doc.linked.length; ++i) |
| 259 | if (doc.linked[i].isParent) return |
| 260 | primary = lst(markers) |
| 261 | }) |
| 262 | return new SharedTextMarker(markers, primary) |
| 263 | } |
| 264 | |
| 265 | export function findSharedMarkers(doc) { |
| 266 | return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), m => m.parent) |