mirror of
https://github.com/wahyd4/cdnjs.git
synced 2026-08-26 05:05:59 +10:00
1 line
2.6 KiB
JavaScript
1 line
2.6 KiB
JavaScript
CodeMirror.tagRangeFinder=function(e,t,n){for(var i="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",a=i+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",r=RegExp("^["+i+"]["+a+"]*"),o=e.getLine(t),s=!1,l=null,c=0;!s;){if(c=o.indexOf("<",c),-1==c)return;if(o.length>c+1&&"/"==o[c+1])c++;else if(o.substr(c+1).match(r)){var u=o.indexOf(">",c+1);if(-1==u){for(var d=t+1,p=!1,m=e.lineCount();m>d&&!p;){var h=e.getLine(d),g=h.indexOf(">");if(-1!=g){p=!0;var f=h.lastIndexOf("/",g);if(-1!=f&&g>f){var b=o.substr(f,g-f+1);if(!b.match(/\/\s*\>/))return n===!0&&d++,d}}d++}s=!0}else{var v=o.lastIndexOf("/",u);if(-1==v)s=!0;else{var b=o.substr(v,u-v+1);b.match(/\/\s*\>/)||(s=!0)}}if(s){var y=o.substr(c+1);l=y.match(r),l?(l=l[0],-1!=o.indexOf("</"+l+">",c)&&(s=!1)):s=!1}s||c++}else c++}if(s)for(var _="(\\<\\/"+l+"\\>)|(\\<"+l+"\\>)|(\\<"+l+"\\s)|(\\<"+l+"$)",k=RegExp(_,"g"),C="</"+l+">",E=1,d=t+1,m=e.lineCount();m>d;){o=e.getLine(d);var T=o.match(k);if(T)for(var w=0;T.length>w;w++)if(T[w]==C?E--:E++,!E)return n===!0&&d++,d;d++}else;},CodeMirror.braceRangeFinder=function(e,t,n){for(var i,a,r=e.getLine(t),o=r.length;;){var s=r.lastIndexOf("{",o);if(0>s)break;if(a=e.getTokenAt({line:t,ch:s}).className,!/^(comment|string)/.test(a)){i=s;break}o=s-1}if(!(null==i||r.lastIndexOf("}")>i)){var l,c=1,u=e.lineCount();e:for(var d=t+1;u>d;++d)for(var p=e.getLine(d),m=0;;){var h=p.indexOf("{",m),g=p.indexOf("}",m);if(0>h&&(h=p.length),0>g&&(g=p.length),m=Math.min(h,g),m==p.length)break;if(e.getTokenAt({line:d,ch:m+1}).className==a)if(m==h)++c;else if(!--c){l=d;break e}++m}if(null!=l&&l!=t+1)return n===!0&&l++,l}},CodeMirror.indentRangeFinder=function(e,t){for(var n,i=e.getOption("tabSize"),a=e.getLineHandle(t).indentation(i),r=t+1,o=e.lineCount();o>r;++r){var s=e.getLineHandle(r);if(!/^\s*$/.test(s.text)){if(a>=s.indentation(i))break;n=r}}return n?n+1:null},CodeMirror.newFoldFunction=function(e,t,n){function i(e,t){for(var n=0;r.length>n;++n){var i=e.lineInfo(r[n].start);if(i){if(i.line==t)return{pos:n,region:r[n]}}else r.splice(n--,1)}}function a(e,t){e.clearMarker(t.start);for(var n=0;t.hidden.length>n;++n)e.showLine(t.hidden[n])}var r=[];return null==t&&(t='<div style="position: absolute; left: 2px; color:#600">▼</div>%N%'),function(o,s){o.operation(function(){var l=i(o,s);if(l)r.splice(l.pos,1),a(o,l.region);else{var c=e(o,s,n);if(null==c)return;for(var u=[],d=s+1;c>d;++d){var p=o.hideLine(d);p&&u.push(p)}var m=o.setMarker(s,t),h={start:m,hidden:u};o.onDeleteLine(m,function(){a(o,h)}),r.push(h)}})}}; |