1 line
No EOL
10 KiB
JavaScript
1 line
No EOL
10 KiB
JavaScript
(function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)})(function(n){function t(n,t,i){var u=n.getWrapperElement(),r;return r=u.appendChild(document.createElement("div")),r.className=i?"CodeMirror-dialog CodeMirror-dialog-bottom":"CodeMirror-dialog CodeMirror-dialog-top",typeof t=="string"?r.innerHTML=t:r.appendChild(t),r}function i(n,t){n.state.currentNotificationClose&&n.state.currentNotificationClose();n.state.currentNotificationClose=t}n.defineExtension("openDialog",function(r,u,f){function o(n){if(typeof n=="string")e.value=n;else{if(c)return;if(c=!0,s.parentNode.removeChild(s),l.focus(),f.onClose)f.onClose(s)}}var e,h;f||(f={});i(this,null);var s=t(this,r,f.bottom),c=!1,l=this;if(e=s.getElementsByTagName("input")[0],e){if(e.focus(),f.value&&(e.value=f.value,f.selectValueOnOpen!==!1&&e.select()),f.onInput)n.on(e,"input",function(n){f.onInput(n,e.value,o)});if(f.onKeyUp)n.on(e,"keyup",function(n){f.onKeyUp(n,e.value,o)});n.on(e,"keydown",function(t){f&&f.onKeyDown&&f.onKeyDown(t,e.value,o)||((t.keyCode==27||f.closeOnEnter!==!1&&t.keyCode==13)&&(e.blur(),n.e_stop(t),o()),t.keyCode==13&&u(e.value,t))});if(f.closeOnBlur!==!1)n.on(e,"blur",o)}else if(h=s.getElementsByTagName("button")[0]){n.on(h,"click",function(){o();l.focus()});if(f.closeOnBlur!==!1)n.on(h,"blur",o);h.focus()}return o});n.defineExtension("openConfirm",function(r,u,f){function v(){l||(l=!0,s.parentNode.removeChild(s),a.focus())}var e,o;i(this,null);var s=t(this,r,f&&f.bottom),h=s.getElementsByTagName("button"),l=!1,a=this,c=1;for(h[0].focus(),e=0;e<h.length;++e){o=h[e],function(t){n.on(o,"click",function(i){n.e_preventDefault(i);v();t&&t(a)})}(u[e]);n.on(o,"blur",function(){--c;setTimeout(function(){c<=0&&v()},200)});n.on(o,"focus",function(){++c})}});n.defineExtension("openNotification",function(r,u){function f(){o||(o=!0,clearTimeout(s),e.parentNode.removeChild(e))}i(this,f);var e=t(this,r,u&&u.bottom),o=!1,s,h=u&&typeof u.duration!="undefined"?u.duration:5e3;n.on(e,"click",function(t){n.e_preventDefault(t);f()});return h&&(s=setTimeout(f,h)),f})}),function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror"),require("./searchcursor"),require("../dialog/dialog")):typeof define=="function"&&define.amd?define(["../../lib/codemirror","./searchcursor","../dialog/dialog"],n):n(CodeMirror)}(function(n){"use strict";function y(n,t){return typeof n=="string"?n=new RegExp(n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):n.global||(n=new RegExp(n.source,n.ignoreCase?"gi":"g")),{token:function(t){n.lastIndex=t.pos;var i=n.exec(t.string);if(i&&i.index==t.pos)return t.pos+=i[0].length||1,"searching";i?t.pos=i.index:t.skipToEnd()}}}function p(){this.posFrom=this.posTo=this.lastQuery=this.query=null;this.overlay=null}function i(n){return n.state.search||(n.state.search=new p)}function f(n){return typeof n=="string"&&n==n.toLowerCase()}function r(n,t,i){return n.getSearchCursor(t,i,f(t))}function w(n,t,i,r,f){n.openDialog(t,r,{value:i,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){u(n)},onKeyDown:f})}function s(n,t,i,r,u){n.openDialog?n.openDialog(t,u,{value:r,selectValueOnOpen:!0}):u(prompt(i,r))}function b(n,t,i,r){n.openConfirm?n.openConfirm(t,r):confirm(i)&&r[0]()}function h(n){return n.replace(/\\(.)/g,function(n,t){return t=="n"?"\n":t=="r"?"\r":t})}function c(n){var t=n.match(/^\/(.*)\/([a-z]*)$/);if(t)try{n=new RegExp(t[1],t[2].indexOf("i")==-1?"":"i")}catch(i){}else n=h(n);return(typeof n=="string"?n=="":n.test(""))&&(n=/x^/),n}function e(n,t,i){t.queryText=i;t.query=c(i);n.removeOverlay(t.overlay,f(t.query));t.overlay=y(t.query,f(t.query));n.addOverlay(t.overlay);n.showMatchesOnScrollbar&&(t.annotate&&(t.annotate.clear(),t.annotate=null),t.annotate=n.showMatchesOnScrollbar(t.query,f(t.query)))}function t(t,r,u,f){var h=i(t),c,a,v;if(h.query)return o(t,r);c=t.getSelection()||h.lastQuery;u&&t.openDialog?(a=null,v=function(i,r){(n.e_stop(r),i)&&(i!=h.queryText&&(e(t,h,i),h.posFrom=h.posTo=t.getCursor()),a&&(a.style.opacity=1),o(t,r.shiftKey,function(n,i){var r;i.line<3&&document.querySelector&&(r=t.display.wrapper.querySelector(".CodeMirror-dialog"))&&r.getBoundingClientRect().bottom-4>t.cursorCoords(i,"window").top&&((a=r).style.opacity=.4)}))},w(t,l,c,v,function(r,u){var o=n.keyName(r),f=n.keyMap[t.getOption("keyMap")][o];f||(f=t.getOption("extraKeys")[o]);f=="findNext"||f=="findPrev"||f=="findPersistentNext"||f=="findPersistentPrev"?(n.e_stop(r),e(t,i(t),u),t.execCommand(f)):(f=="find"||f=="findPersistent")&&(n.e_stop(r),v(u,r))}),f&&c&&(e(t,h,c),o(t,r))):s(t,l,"Search for:",c,function(n){n&&!h.query&&t.operation(function(){e(t,h,n);h.posFrom=h.posTo=t.getCursor();o(t,r)})})}function o(t,u,f){t.operation(function(){var o=i(t),e=r(t,o.query,u?o.posFrom:o.posTo);(e.find(u)||(e=r(t,o.query,u?n.Pos(t.lastLine()):n.Pos(t.firstLine(),0)),e.find(u)))&&(t.setSelection(e.from(),e.to()),t.scrollIntoView({from:e.from(),to:e.to()},20),o.posFrom=e.from(),o.posTo=e.to(),f&&f(e.from(),e.to()))})}function u(n){n.operation(function(){var t=i(n);(t.lastQuery=t.query,t.query)&&(t.query=t.queryText=null,n.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))})}function a(n,t,i){n.operation(function(){for(var f,u=r(n,t);u.findNext();)typeof t!="string"?(f=n.getRange(u.from(),u.to()).match(t),u.replace(i.replace(/\$(\d)/g,function(n,t){return f[t]}))):u.replace(i)})}function v(n,t){if(!n.getOption("readOnly")){var e=n.getSelection()||i(n).lastQuery,f=t?"Replace all:":"Replace:";s(n,f+k,f,e,function(i){i&&(i=c(i),s(n,d,"Replace with:","",function(f){if(f=h(f),t)a(n,i,f);else{u(n);var e=r(n,i,n.getCursor("from")),o=function(){var t=e.from(),u;((u=e.findNext())||(e=r(n,i),(u=e.findNext())&&(!t||e.from().line!=t.line||e.from().ch!=t.ch)))&&(n.setSelection(e.from(),e.to()),n.scrollIntoView({from:e.from(),to:e.to()}),b(n,g,"Replace?",[function(){s(u)},o,function(){a(n,i,f)}]))},s=function(n){e.replace(typeof i=="string"?f:f.replace(/\$(\d)/g,function(t,i){return n[i]}));o()};o()}}))})}}var l='Search: <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)<\/span>',k=' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)<\/span>',d='With: <input type="text" style="width: 10em" class="CodeMirror-search-field"/>',g="Replace? <button>Yes<\/button> <button>No<\/button> <button>All<\/button> <button>Stop<\/button>";n.commands.find=function(n){u(n);t(n)};n.commands.findPersistent=function(n){u(n);t(n,!1,!0)};n.commands.findPersistentNext=function(n){t(n,!1,!0,!0)};n.commands.findPersistentPrev=function(n){t(n,!0,!0,!0)};n.commands.findNext=t;n.commands.findPrev=function(n){t(n,!0)};n.commands.clearSearch=u;n.commands.replace=v;n.commands.replaceAll=function(n){v(n,!0)}}),function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)}(function(n){"use strict";function i(n,i,u,f){var h,o,e,s;this.atOccurrence=!1;this.doc=n;f==null&&typeof i=="string"&&(f=!1);u=u?n.clipPos(u):t(0,0);this.pos={from:u,to:u};typeof i!="string"?(i.global||(i=new RegExp(i.source,i.ignoreCase?"ig":"g")),this.matches=function(r,u){var o,h,f,s,c,e;if(r){for(i.lastIndex=0,o=n.getLine(u.line).slice(0,u.ch),h=0;;){if(i.lastIndex=h,c=i.exec(o),!c)break;if(f=c,s=f.index,h=f.index+(f[0].length||1),h==o.length)break}e=f&&f[0].length||0;e||(s==0&&o.length==0?f=undefined:s!=n.getLine(u.line).length&&e++)}else{i.lastIndex=u.ch;var o=n.getLine(u.line),f=i.exec(o),e=f&&f[0].length||0,s=f&&f.index;s+e==o.length||e||(e=1)}if(f&&e)return{from:t(u.line,s),to:t(u.line,s+e),match:f}}):(h=i,f&&(i=i.toLowerCase()),o=f?function(n){return n.toLowerCase()}:function(n){return n},e=i.split("\n"),e.length==1?this.matches=i.length?function(u,f){if(u){var s=n.getLine(f.line).slice(0,f.ch),c=o(s),e=c.lastIndexOf(i);if(e>-1)return e=r(s,c,e),{from:t(f.line,e),to:t(f.line,e+h.length)}}else{var s=n.getLine(f.line).slice(f.ch),c=o(s),e=c.indexOf(i);if(e>-1)return e=r(s,c,e)+f.ch,{from:t(f.line,e),to:t(f.line,e+h.length)}}}:function(){}:(s=h.split("\n"),this.matches=function(i,r){var h=e.length-1,a,c,l,v,u,f;if(i){if(r.line-(e.length-1)<n.firstLine())return;if(o(n.getLine(r.line).slice(0,s[h].length))!=e[e.length-1])return;for(a=t(r.line,s[h].length),u=r.line-1,f=h-1;f>=1;--f,--u)if(e[f]!=o(n.getLine(u)))return;return(c=n.getLine(u),l=c.length-s[0].length,o(c.slice(l))!=e[0])?void 0:{from:t(u,l),to:a}}if(!(r.line+(e.length-1)>n.lastLine())&&(c=n.getLine(r.line),l=c.length-s[0].length,o(c.slice(l))==e[0])){for(v=t(r.line,l),u=r.line+1,f=1;f<h;++f,++u)if(e[f]!=o(n.getLine(u)))return;if(o(n.getLine(u).slice(0,s[h].length))==e[h])return{from:v,to:t(u,s[h].length)}}}))}function r(n,t,i){var r,u;if(n.length==t.length)return i;for(r=Math.min(i,n.length);;)if(u=n.slice(0,r).toLowerCase().length,u<i)++r;else if(u>i)--r;else return r}var t=n.Pos;i.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(n){function f(n){var i=t(n,0);return u.pos={from:i,to:i},u.atOccurrence=!1,!1}for(var u=this,i=this.doc.clipPos(n?this.pos.from:this.pos.to),r;;){if(this.pos=this.matches(n,i))return this.atOccurrence=!0,this.pos.match||!0;if(n){if(!i.line)return f(0);i=t(i.line-1,this.doc.getLine(i.line-1).length)}else{if(r=this.doc.lineCount(),i.line==r-1)return f(r);i=t(i.line+1,0)}}},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(i,r){if(this.atOccurrence){var u=n.splitLines(i);this.doc.replaceRange(u,this.pos.from,this.pos.to,r);this.pos.to=t(this.pos.from.line+u.length-1,u[u.length-1].length+(u.length==1?this.pos.from.ch:0))}}};n.defineExtension("getSearchCursor",function(n,t,r){return new i(this.doc,n,t,r)});n.defineDocExtension("getSearchCursor",function(n,t,r){return new i(this,n,t,r)});n.defineExtension("selectMatches",function(t,i){for(var u=[],r=this.getSearchCursor(t,this.getCursor("from"),i);r.findNext();){if(n.cmpPos(r.to(),this.getCursor("to"))>0)break;u.push({anchor:r.from(),head:r.to()})}u.length&&this.setSelections(u,0)})}) |