Current File : /home/pacjaorg/public_html/kmm/media/vendor/codemirror/addon/edit/matchbrackets.min.js |
(function(f){typeof exports=="object"&&typeof module=="object"?f(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],f):f(CodeMirror)})(function(f){var H=/MSIE \d/.test(navigator.userAgent)&&(document.documentMode==null||document.documentMode<8),o=f.Pos,x={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<","<":">>",">":"<<"};function p(t){return t&&t.bracketRegex||/[(){}[\]]/}function y(t,n,e){var s=t.getLineHandle(n.line),r=n.ch-1,u=e&&e.afterCursor;u==null&&(u=/(^| )cm-fat-cursor($| )/.test(t.getWrapperElement().className));var h=p(e),l=!u&&r>=0&&h.test(s.text.charAt(r))&&x[s.text.charAt(r)]||h.test(s.text.charAt(r+1))&&x[s.text.charAt(++r)];if(!l)return null;var a=l.charAt(1)==">"?1:-1;if(e&&e.strict&&a>0!=(r==n.ch))return null;var g=t.getTokenTypeAt(o(n.line,r+1)),i=L(t,o(n.line,r+(a>0?1:0)),a,g,e);return i==null?null:{from:o(n.line,r),to:i&&i.pos,match:i&&i.ch==l.charAt(0),forward:a>0}}function L(t,n,e,s,r){for(var u=r&&r.maxScanLineLength||1e4,h=r&&r.maxScanLines||1e3,l=[],a=p(r),g=e>0?Math.min(n.line+h,t.lastLine()+1):Math.max(t.firstLine()-1,n.line-h),i=n.line;i!=g;i+=e){var c=t.getLine(i);if(c){var k=e>0?0:c.length-1,M=e>0?c.length:-1;if(!(c.length>u))for(i==n.line&&(k=n.ch-(e<0?1:0));k!=M;k+=e){var d=c.charAt(k);if(a.test(d)&&(s===void 0||(t.getTokenTypeAt(o(i,k+1))||"")==(s||""))){var b=x[d];if(b&&b.charAt(1)==">"==e>0)l.push(d);else if(l.length)l.pop();else return{pos:o(i,k),ch:d}}}}}return i-e==(e>0?t.lastLine():t.firstLine())?!1:null}function A(t,n,e){for(var s=t.state.matchBrackets.maxHighlightLineLength||1e3,r=e&&e.highlightNonMatching,u=[],h=t.listSelections(),l=0;l<h.length;l++){var a=h[l].empty()&&y(t,h[l].head,e);if(a&&(a.match||r!==!1)&&t.getLine(a.from.line).length<=s){var g=a.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";u.push(t.markText(a.from,o(a.from.line,a.from.ch+1),{className:g})),a.to&&t.getLine(a.to.line).length<=s&&u.push(t.markText(a.to,o(a.to.line,a.to.ch+1),{className:g}))}}if(u.length){H&&t.state.focused&&t.focus();var i=function(){t.operation(function(){for(var c=0;c<u.length;c++)u[c].clear()})};if(n)setTimeout(i,800);else return i}}function v(t){t.operation(function(){t.state.matchBrackets.currentlyHighlighted&&(t.state.matchBrackets.currentlyHighlighted(),t.state.matchBrackets.currentlyHighlighted=null),t.state.matchBrackets.currentlyHighlighted=A(t,!1,t.state.matchBrackets)})}function B(t){t.state.matchBrackets&&t.state.matchBrackets.currentlyHighlighted&&(t.state.matchBrackets.currentlyHighlighted(),t.state.matchBrackets.currentlyHighlighted=null)}f.defineOption("matchBrackets",!1,function(t,n,e){e&&e!=f.Init&&(t.off("cursorActivity",v),t.off("focus",v),t.off("blur",B),B(t)),n&&(t.state.matchBrackets=typeof n=="object"?n:{},t.on("cursorActivity",v),t.on("focus",v),t.on("blur",B))}),f.defineExtension("matchBrackets",function(){A(this,!0)}),f.defineExtension("findMatchingBracket",function(t,n,e){return(e||typeof n=="boolean")&&(e?(e.strict=n,n=e):n=n?{strict:!0}:null),y(this,t,n)}),f.defineExtension("scanForBracket",function(t,n,e,s){return L(this,t,n,e,s)})});