docs/assets/app.js
function bidiSimplify(cm,range$$1){var anchor=range$$1.anchor;var head=range$$1.head;var anchorLine=getLine(cm.doc,anchor.line);if(cmp(anchor,head)==0&&anchor.sticky==head.sticky){return range$$1;}var order=getOrder(anchorLine);if(!order){return range$$1;}var index=getBidiPartAt(order,anchor.ch,anchor.sticky),part=order[index];if(part.from!=anchor.ch&&part.to!=anchor.ch){return range$$1;}var boundary=index+(part.from==anchor.ch==(part.level!=1)?0:1);if(boundary==0||boundary==order.length){return range$$1;}// Compute the relative visual position of the head compared to the
// anchor (<0 is to the left, >0 to the right)
var leftSide;if(head.line!=anchor.line){leftSide=(head.line-anchor.line)*(cm.doc.direction=="ltr"?1:-1)>0;}else{var headIndex=getBidiPartAt(order,head.ch,head.sticky);var dir=headIndex-index||(head.ch-anchor.ch)*(part.level==1?-1:1);if(headIndex==boundary-1||headIndex==boundary){leftSide=dir<0;}else{leftSide=dir>0;}}var usePart=order[boundary+(leftSide?-1:0)];var from=leftSide==(usePart.level==1);var ch=from?usePart.from:usePart.to,sticky=from?"after":"before";return anchor.ch==ch&&anchor.sticky==sticky?range$$1:new Range(new Pos(anchor.line,ch,sticky),head);}
function bidiSimplify(cm,range$$1){var anchor=range$$1.anchor;var head=range$$1.head;var anchorLine=getLine(cm.doc,anchor.line);if(cmp(anchor,head)==0&&anchor.sticky==head.sticky){return range$$1;}var order=getOrder(anchorLine);if(!order){return range$$1;}var index=getBidiPartAt(order,anchor.ch,anchor.sticky),part=order[index];if(part.from!=anchor.ch&&part.to!=anchor.ch){return range$$1;}var boundary=index+(part.from==anchor.ch==(part.level!=1)?0:1);if(boundary==0||boundary==order.length){return range$$1;}// Compute the relative visual position of the head compared to the
// anchor (<0 is to the left, >0 to the right)
var leftSide;if(head.line!=anchor.line){leftSide=(head.line-anchor.line)*(cm.doc.direction=="ltr"?1:-1)>0;}else{var headIndex=getBidiPartAt(order,head.ch,head.sticky);var dir=headIndex-index||(head.ch-anchor.ch)*(part.level==1?-1:1);if(headIndex==boundary-1||headIndex==boundary){leftSide=dir<0;}else{leftSide=dir>0;}}var usePart=order[boundary+(leftSide?-1:0)];var from=leftSide==(usePart.level==1);var ch=from?usePart.from:usePart.to,sticky=from?"after":"before";return anchor.ch==ch&&anchor.sticky==sticky?range$$1:new Range(new Pos(anchor.line,ch,sticky),head);}
function bidiSimplify ( cm , range$$1 ) { var anchor = range$$1 . anchor ; var head = range$$1 . head ; var anchorLine = getLine ( cm . doc , anchor . line ) ; if ( cmp ( anchor , head ) == 0 && anchor . sticky == head . sticky ) { return range$$1 ; } var order = getOrder ( anchorLine ) ; if ( ! order ) { return range$$1 ; } var index = getBidiPartAt ( order , anchor . ch , anchor . sticky ) , part = order [ index ] ; if ( part . from != anchor . ch && part . to != anchor . ch ) { return range$$1 ; } var boundary = index + ( part . from == anchor . ch == ( part . level != 1 ) ? 0 : 1 ) ; if ( boundary == 0 || boundary == order . length ) { return range$$1 ; } // Compute the relative visual position of the head compared to the // anchor (<0 is to the left, >0 to the right) var leftSide ; if ( head . line != anchor . line ) { leftSide = ( head . line - anchor . line ) * ( cm . doc . direction == "ltr" ? 1 : - 1 ) > 0 ; } else { var headIndex = getBidiPartAt ( order , head . ch , head . sticky ) ; var dir = headIndex - index || ( head . ch - anchor . ch ) * ( part . level == 1 ? - 1 : 1 ) ; if ( headIndex == boundary - 1 || headIndex == boundary ) { leftSide = dir < 0 ; } else { leftSide = dir > 0 ; } } var usePart = order [ boundary + ( leftSide ? - 1 : 0 ) ] ; var from = leftSide == ( usePart . level == 1 ) ; var ch = from ? usePart . from : usePart . to , sticky = from ? "after" : "before" ; return anchor . ch == ch && anchor . sticky == sticky ? range$$1 : new Range ( new Pos ( anchor . line , ch , sticky ) , head ) ; }
Used when mouse-selecting to adjust the anchor to the proper side of a bidi jump depending on the visual position of the head.
Used when mouse - selecting to adjust the anchor to the proper side of a bidi jump depending on the visual position of the head .