Current File : /home/pacjaorg/public_html/kmm/media/vendor/codemirror/addon/search/match-highlighter.min.js |
(function(l){typeof exports=="object"&&typeof module=="object"?l(require("../../lib/codemirror"),require("./matchesonscrollbar")):typeof define=="function"&&define.amd?define(["../../lib/codemirror","./matchesonscrollbar"],l):l(CodeMirror)})(function(l){"use strict";var f={style:"matchhighlight",minChars:2,delay:100,wordsOnly:!1,annotateScrollbar:!1,showToken:!1,trim:!0};function d(t){this.options={};for(var e in f)this.options[e]=(t&&t.hasOwnProperty(e)?t:f)[e];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}l.defineOption("highlightSelectionMatches",!1,function(t,e,i){if(i&&i!=l.Init&&(w(t),clearTimeout(t.state.matchHighlighter.timeout),t.state.matchHighlighter=null,t.off("cursorActivity",u),t.off("focus",g)),e){var o=t.state.matchHighlighter=new d(e);t.hasFocus()?(o.active=!0,y(t)):t.on("focus",g),t.on("cursorActivity",u)}});function u(t){var e=t.state.matchHighlighter;(e.active||t.hasFocus())&&v(t,e)}function g(t){var e=t.state.matchHighlighter;e.active||(e.active=!0,v(t,e))}function v(t,e){clearTimeout(e.timeout),e.timeout=setTimeout(function(){y(t)},e.options.delay)}function p(t,e,i,o){var n=t.state.matchHighlighter;if(t.addOverlay(n.overlay=O(e,i,o)),n.options.annotateScrollbar&&t.showMatchesOnScrollbar){var r=i?new RegExp((/\w/.test(e.charAt(0))?"\\b":"")+e.replace(/[\\\[.+*?(){|^$]/g,"\\$&")+(/\w/.test(e.charAt(e.length-1))?"\\b":"")):e;n.matchesonscroll=t.showMatchesOnScrollbar(r,!1,{className:"CodeMirror-selection-highlight-scrollbar"})}}function w(t){var e=t.state.matchHighlighter;e.overlay&&(t.removeOverlay(e.overlay),e.overlay=null,e.matchesonscroll&&(e.matchesonscroll.clear(),e.matchesonscroll=null))}function y(t){t.operation(function(){var e=t.state.matchHighlighter;if(w(t),!t.somethingSelected()&&e.options.showToken){for(var i=e.options.showToken===!0?/[\w$]/:e.options.showToken,o=t.getCursor(),n=t.getLine(o.line),r=o.ch,s=r;r&&i.test(n.charAt(r-1));)--r;for(;s<n.length&&i.test(n.charAt(s));)++s;r<s&&p(t,n.slice(r,s),i,e.options.style);return}var h=t.getCursor("from"),c=t.getCursor("to");if(h.line==c.line&&!(e.options.wordsOnly&&!b(t,h,c))){var a=t.getRange(h,c);e.options.trim&&(a=a.replace(/^\s+|\s+$/g,"")),a.length>=e.options.minChars&&p(t,a,!1,e.options.style)}})}function b(t,e,i){var o=t.getRange(e,i);if(o.match(/^\w+$/)!==null){if(e.ch>0){var n={line:e.line,ch:e.ch-1},r=t.getRange(n,e);if(r.match(/\W/)===null)return!1}if(i.ch<t.getLine(e.line).length){var n={line:i.line,ch:i.ch+1},r=t.getRange(i,n);if(r.match(/\W/)===null)return!1}return!0}else return!1}function A(t,e){return(!t.start||!e.test(t.string.charAt(t.start-1)))&&(t.pos==t.string.length||!e.test(t.string.charAt(t.pos)))}function O(t,e,i){return{token:function(o){if(o.match(t)&&(!e||A(o,e)))return i;o.next(),o.skipTo(t.charAt(0))||o.skipToEnd()}}}});