| Current Path : /home/azimutno/www/demo/media/editors/codemirror/addon/search/ |
| Current File : /home/azimutno/www/demo/media/editors/codemirror/addon/search/match-highlighter.min.js |
!function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("./matchesonscrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./matchesonscrollbar"],a):a(CodeMirror)}(function(a){"use strict";function b(a){"object"==typeof a&&(this.minChars=a.minChars,this.style=a.style,this.showToken=a.showToken,this.delay=a.delay,this.wordsOnly=a.wordsOnly,this.annotateScrollbar=a.annotateScrollbar),null==this.style&&(this.style=k),null==this.minChars&&(this.minChars=j),null==this.delay&&(this.delay=l),null==this.wordsOnly&&(this.wordsOnly=m),this.overlay=this.timeout=null,this.matchesonscroll=null}function c(a){var b=a.state.matchHighlighter;clearTimeout(b.timeout),b.timeout=setTimeout(function(){f(a)},b.delay)}function d(a,b,c,d){var e=a.state.matchHighlighter;if(a.addOverlay(e.overlay=i(b,c,d)),e.annotateScrollbar){var f=c?new RegExp("\\b"+b+"\\b"):b;e.matchesonscroll=a.showMatchesOnScrollbar(f,!0,{className:"CodeMirror-selection-highlight-scrollbar"})}}function e(a){var b=a.state.matchHighlighter;b.overlay&&(a.removeOverlay(b.overlay),b.overlay=null,b.annotateScrollbar&&(b.matchesonscroll.clear(),b.matchesonscroll=null))}function f(a){a.operation(function(){var b=a.state.matchHighlighter;if(e(a),!a.somethingSelected()&&b.showToken){for(var c=b.showToken===!0?/[\w$]/:b.showToken,f=a.getCursor(),h=a.getLine(f.line),i=f.ch,j=i;i&&c.test(h.charAt(i-1));)--i;for(;j<h.length&&c.test(h.charAt(j));)++j;return void(j>i&&d(a,h.slice(i,j),c,b.style))}var k=a.getCursor("from"),l=a.getCursor("to");if(k.line==l.line&&(!b.wordsOnly||g(a,k,l))){var m=a.getRange(k,l).replace(/^\s+|\s+$/g,"");m.length>=b.minChars&&d(a,m,!1,b.style)}})}function g(a,b,c){var d=a.getRange(b,c);if(null!==d.match(/^\w+$/)){if(b.ch>0){var e={line:b.line,ch:b.ch-1},f=a.getRange(e,b);if(null===f.match(/\W/))return!1}if(c.ch<a.getLine(b.line).length){var e={line:c.line,ch:c.ch+1},f=a.getRange(c,e);if(null===f.match(/\W/))return!1}return!0}return!1}function h(a,b){return!(a.start&&b.test(a.string.charAt(a.start-1))||a.pos!=a.string.length&&b.test(a.string.charAt(a.pos)))}function i(a,b,c){return{token:function(d){return!d.match(a)||b&&!h(d,b)?(d.next(),void(d.skipTo(a.charAt(0))||d.skipToEnd())):c}}}var j=2,k="matchhighlight",l=100,m=!1;a.defineOption("highlightSelectionMatches",!1,function(d,g,h){h&&h!=a.Init&&(e(d),clearTimeout(d.state.matchHighlighter.timeout),d.state.matchHighlighter=null,d.off("cursorActivity",c)),g&&(d.state.matchHighlighter=new b(g),f(d),d.on("cursorActivity",c))})});