@@ -1493,6 +1493,10 @@ ui.toolbar.beta.slide.attr("href", noteurl + "/slide");
14931493//modal actions
14941494var revisions = [ ] ;
14951495var revisionViewer = null ;
1496+ var revisionInsert = [ ] ;
1497+ var revisionDelete = [ ] ;
1498+ var revisionInsertAnnotation = null ;
1499+ var revisionDeleteAnnotation = null ;
14961500var revisionList = ui . modal . revision . find ( '.ui-revision-list' ) ;
14971501var revision = null ;
14981502var revisionTime = null ;
@@ -1559,6 +1563,8 @@ function selectRevision(time) {
15591563 var content = revision . content ;
15601564 revisionViewer . setValue ( content ) ;
15611565 revisionViewer . scrollTo ( null , lastScrollInfo . top ) ;
1566+ revisionInsert = [ ] ;
1567+ revisionDelete = [ ] ;
15621568 // mark the text which have been insert or delete
15631569 if ( revision . patch . length > 0 ) {
15641570 var bias = 0 ;
@@ -1576,6 +1582,10 @@ function selectRevision(time) {
15761582 case 1 : // insert
15771583 var prePos = revisionViewer . posFromIndex ( currIndex ) ;
15781584 var postPos = revisionViewer . posFromIndex ( currIndex + diff [ 1 ] . length ) ;
1585+ revisionInsert . push ( {
1586+ from : prePos ,
1587+ to : postPos
1588+ } ) ;
15791589 revisionViewer . markText ( prePos , postPos , {
15801590 css : 'background-color: rgba(230,255,230,0.7); text-decoration: underline;'
15811591 } ) ;
@@ -1585,6 +1595,10 @@ function selectRevision(time) {
15851595 var prePos = revisionViewer . posFromIndex ( currIndex ) ;
15861596 revisionViewer . replaceRange ( diff [ 1 ] , prePos ) ;
15871597 var postPos = revisionViewer . posFromIndex ( currIndex + diff [ 1 ] . length ) ;
1598+ revisionDelete . push ( {
1599+ from : prePos ,
1600+ to : postPos
1601+ } ) ;
15881602 revisionViewer . markText ( prePos , postPos , {
15891603 css : 'background-color: rgba(255,230,230,0.7); text-decoration: line-through;'
15901604 } ) ;
@@ -1595,6 +1609,8 @@ function selectRevision(time) {
15951609 }
15961610 }
15971611 }
1612+ revisionInsertAnnotation . update ( revisionInsert ) ;
1613+ revisionDeleteAnnotation . update ( revisionDelete ) ;
15981614 } )
15991615 . error ( function ( err ) {
16001616
@@ -1620,6 +1636,8 @@ function initRevisionViewer() {
16201636 autoRefresh : true ,
16211637 scrollbarStyle : 'overlay'
16221638 } ) ;
1639+ revisionInsertAnnotation = revisionViewer . annotateScrollbar ( { className :"CodeMirror-insert-match" } ) ;
1640+ revisionDeleteAnnotation = revisionViewer . annotateScrollbar ( { className :"CodeMirror-delete-match" } ) ;
16231641}
16241642$ ( '#revisionModalDownload' ) . click ( function ( ) {
16251643 if ( ! revision ) return ;
0 commit comments