PluginProbe
CSS & JavaScript Toolbox / 11.8
CSS & JavaScript Toolbox v11.8
trunk 0.3 0.8 10 10.1 11 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 11.9.1 12 12.0 12.0.1 12.0.3 12.0.4 12.0.5 12.0.6 12.0.7 6.0 6.0.11 All 60 releases
← All changes | framework/js/ace/mode-css.js +623 -2 11.311.8 View file →
@@ -1,6 +1,627 @@
1 -ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();if(e==="ruleset"||t.$mode.$id=="ace/mode/scss"){var i=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+": $0;",meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(i.prototype),t.CssCompletions=i}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(f.substring(s.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(e,t,n,r,i){if(i==="!"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\s*(;|}|$)/.test(o.substring(s.column)))return{text:"!important",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./css_completions").CssCompletions,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(c.prototype),t.Mode=c}); (function() {
2 - ace.require(["ace/mode/css"], function(m) {
1 +define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
2 +var oop = require("../lib/oop");
3 +var lang = require("../lib/lang");
4 +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
5 +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
6 +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
7 +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom";
8 +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
9 +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
10 +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
11 +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
12 +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
13 +var CssHighlightRules = function () {
14 + var keywordMapper = this.createKeywordMapper({
15 + "support.function": supportFunction,
16 + "support.constant": supportConstant,
17 + "support.type": supportType,
18 + "support.constant.color": supportConstantColor,
19 + "support.constant.fonts": supportConstantFonts
20 + }, "text", true);
21 + this.$rules = {
22 + "start": [{
23 + include: ["strings", "url", "comments"]
24 + }, {
25 + token: "paren.lparen",
26 + regex: "\\{",
27 + next: "ruleset"
28 + }, {
29 + token: "paren.rparen",
30 + regex: "\\}"
31 + }, {
32 + token: "string",
33 + regex: "@(?!viewport)",
34 + next: "media"
35 + }, {
36 + token: "keyword",
37 + regex: "#[a-z0-9-_]+"
38 + }, {
39 + token: "keyword",
40 + regex: "%"
41 + }, {
42 + token: "variable",
43 + regex: "\\.[a-z0-9-_]+"
44 + }, {
45 + token: "string",
46 + regex: ":[a-z0-9-_]+"
47 + }, {
48 + token: "constant.numeric",
49 + regex: numRe
50 + }, {
51 + token: "constant",
52 + regex: "[a-z0-9-_]+"
53 + }, {
54 + caseInsensitive: true
55 + }],
56 + "media": [{
57 + include: ["strings", "url", "comments"]
58 + }, {
59 + token: "paren.lparen",
60 + regex: "\\{",
61 + next: "start"
62 + }, {
63 + token: "paren.rparen",
64 + regex: "\\}",
65 + next: "start"
66 + }, {
67 + token: "string",
68 + regex: ";",
69 + next: "start"
70 + }, {
71 + token: "keyword",
72 + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
73 + + "|page|font|keyframes|viewport|counter-style|font-feature-values"
74 + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
75 + }],
76 + "comments": [{
77 + token: "comment",
78 + regex: "\\/\\*",
79 + push: [{
80 + token: "comment",
81 + regex: "\\*\\/",
82 + next: "pop"
83 + }, {
84 + defaultToken: "comment"
85 + }]
86 + }],
87 + "ruleset": [{
88 + regex: "-(webkit|ms|moz|o)-",
89 + token: "text"
90 + }, {
91 + token: "punctuation.operator",
92 + regex: "[:;]"
93 + }, {
94 + token: "paren.rparen",
95 + regex: "\\}",
96 + next: "start"
97 + }, {
98 + include: ["strings", "url", "comments"]
99 + }, {
100 + token: ["constant.numeric", "keyword"],
101 + regex: "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"
102 + }, {
103 + token: "constant.numeric",
104 + regex: numRe
105 + }, {
106 + token: "constant.numeric",
107 + regex: "#[a-f0-9]{6}"
108 + }, {
109 + token: "constant.numeric",
110 + regex: "#[a-f0-9]{3}"
111 + }, {
112 + token: ["punctuation", "entity.other.attribute-name.pseudo-element.css"],
113 + regex: pseudoElements
114 + }, {
115 + token: ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
116 + regex: pseudoClasses
117 + }, {
118 + include: "url"
119 + }, {
120 + token: keywordMapper,
121 + regex: "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
122 + }, {
123 + caseInsensitive: true
124 + }],
125 + url: [{
126 + token: "support.function",
127 + regex: "(?:url(:?-prefix)?|domain|regexp)\\(",
128 + push: [{
129 + token: "support.function",
130 + regex: "\\)",
131 + next: "pop"
132 + }, {
133 + defaultToken: "string"
134 + }]
135 + }],
136 + strings: [{
137 + token: "string.start",
138 + regex: "'",
139 + push: [{
140 + token: "string.end",
141 + regex: "'|$",
142 + next: "pop"
143 + }, {
144 + include: "escapes"
145 + }, {
146 + token: "constant.language.escape",
147 + regex: /\\$/,
148 + consumeLineEnd: true
149 + }, {
150 + defaultToken: "string"
151 + }]
152 + }, {
153 + token: "string.start",
154 + regex: '"',
155 + push: [{
156 + token: "string.end",
157 + regex: '"|$',
158 + next: "pop"
159 + }, {
160 + include: "escapes"
161 + }, {
162 + token: "constant.language.escape",
163 + regex: /\\$/,
164 + consumeLineEnd: true
165 + }, {
166 + defaultToken: "string"
167 + }]
168 + }],
169 + escapes: [{
170 + token: "constant.language.escape",
171 + regex: /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
172 + }]
173 + };
174 + this.normalizeRules();
175 +};
176 +oop.inherits(CssHighlightRules, TextHighlightRules);
177 +exports.CssHighlightRules = CssHighlightRules;
178 +
179 +});
180 +
181 +define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module){"use strict";
182 +var Range = require("../range").Range;
183 +var MatchingBraceOutdent = function () { };
184 +(function () {
185 + this.checkOutdent = function (line, input) {
186 + if (!/^\s+$/.test(line))
187 + return false;
188 + return /^\s*\}/.test(input);
189 + };
190 + this.autoOutdent = function (doc, row) {
191 + var line = doc.getLine(row);
192 + var match = line.match(/^(\s*\})/);
193 + if (!match)
194 + return 0;
195 + var column = match[1].length;
196 + var openBracePos = doc.findMatchingBracket({ row: row, column: column });
197 + if (!openBracePos || openBracePos.row == row)
198 + return 0;
199 + var indent = this.$getIndent(doc.getLine(openBracePos.row));
200 + doc.replace(new Range(row, 0, row, column - 1), indent);
201 + };
202 + this.$getIndent = function (line) {
203 + return line.match(/^\s*/)[0];
204 + };
205 +}).call(MatchingBraceOutdent.prototype);
206 +exports.MatchingBraceOutdent = MatchingBraceOutdent;
207 +
208 +});
209 +
210 +define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module){"use strict";
211 +var propertyMap = {
212 + "background": { "#$0": 1 },
213 + "background-color": { "#$0": 1, "transparent": 1, "fixed": 1 },
214 + "background-image": { "url('/$0')": 1 },
215 + "background-repeat": { "repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1 },
216 + "background-position": { "bottom": 2, "center": 2, "left": 2, "right": 2, "top": 2, "inherit": 2 },
217 + "background-attachment": { "scroll": 1, "fixed": 1 },
218 + "background-size": { "cover": 1, "contain": 1 },
219 + "background-clip": { "border-box": 1, "padding-box": 1, "content-box": 1 },
220 + "background-origin": { "border-box": 1, "padding-box": 1, "content-box": 1 },
221 + "border": { "solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1 },
222 + "border-color": { "#$0": 1 },
223 + "border-style": { "solid": 2, "dashed": 2, "dotted": 2, "double": 2, "groove": 2, "hidden": 2, "inherit": 2, "inset": 2, "none": 2, "outset": 2, "ridged": 2 },
224 + "border-collapse": { "collapse": 1, "separate": 1 },
225 + "bottom": { "px": 1, "em": 1, "%": 1 },
226 + "clear": { "left": 1, "right": 1, "both": 1, "none": 1 },
227 + "color": { "#$0": 1, "rgb(#$00,0,0)": 1 },
228 + "cursor": { "default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1 },
229 + "display": { "none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1 },
230 + "empty-cells": { "show": 1, "hide": 1 },
231 + "float": { "left": 1, "right": 1, "none": 1 },
232 + "font-family": { "Arial": 2, "Comic Sans MS": 2, "Consolas": 2, "Courier New": 2, "Courier": 2, "Georgia": 2, "Monospace": 2, "Sans-Serif": 2, "Segoe UI": 2, "Tahoma": 2, "Times New Roman": 2, "Trebuchet MS": 2, "Verdana": 1 },
233 + "font-size": { "px": 1, "em": 1, "%": 1 },
234 + "font-weight": { "bold": 1, "normal": 1 },
235 + "font-style": { "italic": 1, "normal": 1 },
236 + "font-variant": { "normal": 1, "small-caps": 1 },
237 + "height": { "px": 1, "em": 1, "%": 1 },
238 + "left": { "px": 1, "em": 1, "%": 1 },
239 + "letter-spacing": { "normal": 1 },
240 + "line-height": { "normal": 1 },
241 + "list-style-type": { "none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1 },
242 + "margin": { "px": 1, "em": 1, "%": 1 },
243 + "margin-right": { "px": 1, "em": 1, "%": 1 },
244 + "margin-left": { "px": 1, "em": 1, "%": 1 },
245 + "margin-top": { "px": 1, "em": 1, "%": 1 },
246 + "margin-bottom": { "px": 1, "em": 1, "%": 1 },
247 + "max-height": { "px": 1, "em": 1, "%": 1 },
248 + "max-width": { "px": 1, "em": 1, "%": 1 },
249 + "min-height": { "px": 1, "em": 1, "%": 1 },
250 + "min-width": { "px": 1, "em": 1, "%": 1 },
251 + "overflow": { "hidden": 1, "visible": 1, "auto": 1, "scroll": 1 },
252 + "overflow-x": { "hidden": 1, "visible": 1, "auto": 1, "scroll": 1 },
253 + "overflow-y": { "hidden": 1, "visible": 1, "auto": 1, "scroll": 1 },
254 + "padding": { "px": 1, "em": 1, "%": 1 },
255 + "padding-top": { "px": 1, "em": 1, "%": 1 },
256 + "padding-right": { "px": 1, "em": 1, "%": 1 },
257 + "padding-bottom": { "px": 1, "em": 1, "%": 1 },
258 + "padding-left": { "px": 1, "em": 1, "%": 1 },
259 + "page-break-after": { "auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1 },
260 + "page-break-before": { "auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1 },
261 + "position": { "absolute": 1, "relative": 1, "fixed": 1, "static": 1 },
262 + "right": { "px": 1, "em": 1, "%": 1 },
263 + "table-layout": { "fixed": 1, "auto": 1 },
264 + "text-decoration": { "none": 1, "underline": 1, "line-through": 1, "blink": 1 },
265 + "text-align": { "left": 1, "right": 1, "center": 1, "justify": 1 },
266 + "text-transform": { "capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1 },
267 + "top": { "px": 1, "em": 1, "%": 1 },
268 + "vertical-align": { "top": 1, "bottom": 1 },
269 + "visibility": { "hidden": 1, "visible": 1 },
270 + "white-space": { "nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1 },
271 + "width": { "px": 1, "em": 1, "%": 1 },
272 + "word-spacing": { "normal": 1 },
273 + "filter": { "alpha(opacity=$0100)": 1 },
274 + "text-shadow": { "$02px 2px 2px #777": 1 },
275 + "text-overflow": { "ellipsis-word": 1, "clip": 1, "ellipsis": 1 },
276 + "-moz-border-radius": 1,
277 + "-moz-border-radius-topright": 1,
278 + "-moz-border-radius-bottomright": 1,
279 + "-moz-border-radius-topleft": 1,
280 + "-moz-border-radius-bottomleft": 1,
281 + "-webkit-border-radius": 1,
282 + "-webkit-border-top-right-radius": 1,
283 + "-webkit-border-top-left-radius": 1,
284 + "-webkit-border-bottom-right-radius": 1,
285 + "-webkit-border-bottom-left-radius": 1,
286 + "-moz-box-shadow": 1,
287 + "-webkit-box-shadow": 1,
288 + "transform": { "rotate($00deg)": 1, "skew($00deg)": 1 },
289 + "-moz-transform": { "rotate($00deg)": 1, "skew($00deg)": 1 },
290 + "-webkit-transform": { "rotate($00deg)": 1, "skew($00deg)": 1 }
291 +};
292 +var CssCompletions = function () {
293 +};
294 +(function () {
295 + this.completionsDefined = false;
296 + this.defineCompletions = function () {
297 + if (document) {
298 + var style = document.createElement('c').style;
299 + for (var i in style) {
300 + if (typeof style[i] !== 'string')
301 + continue;
302 + var name = i.replace(/[A-Z]/g, function (x) {
303 + return '-' + x.toLowerCase();
304 + });
305 + if (!propertyMap.hasOwnProperty(name))
306 + propertyMap[name] = 1;
307 + }
308 + }
309 + this.completionsDefined = true;
310 + };
311 + this.getCompletions = function (state, session, pos, prefix) {
312 + if (!this.completionsDefined) {
313 + this.defineCompletions();
314 + }
315 + if (state === 'ruleset' || session.$mode.$id == "ace/mode/scss") {
316 + var line = session.getLine(pos.row).substr(0, pos.column);
317 + var inParens = /\([^)]*$/.test(line);
318 + if (inParens) {
319 + line = line.substr(line.lastIndexOf('(') + 1);
320 + }
321 + if (/:[^;]+$/.test(line)) {
322 + /([\w\-]+):[^:]*$/.test(line);
323 + return this.getPropertyValueCompletions(state, session, pos, prefix);
324 + }
325 + else {
326 + return this.getPropertyCompletions(state, session, pos, prefix, inParens);
327 + }
328 + }
329 + return [];
330 + };
331 + this.getPropertyCompletions = function (state, session, pos, prefix, skipSemicolon) {
332 + skipSemicolon = skipSemicolon || false;
333 + var properties = Object.keys(propertyMap);
334 + return properties.map(function (property) {
335 + return {
336 + caption: property,
337 + snippet: property + ': $0' + (skipSemicolon ? '' : ';'),
338 + meta: "property",
339 + score: 1000000
340 + };
341 + });
342 + };
343 + this.getPropertyValueCompletions = function (state, session, pos, prefix) {
344 + var line = session.getLine(pos.row).substr(0, pos.column);
345 + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1];
346 + if (!property)
347 + return [];
348 + var values = [];
349 + if (property in propertyMap && typeof propertyMap[property] === "object") {
350 + values = Object.keys(propertyMap[property]);
351 + }
352 + return values.map(function (value) {
353 + return {
354 + caption: value,
355 + snippet: value,
356 + meta: "property value",
357 + score: 1000000
358 + };
359 + });
360 + };
361 +}).call(CssCompletions.prototype);
362 +exports.CssCompletions = CssCompletions;
363 +
364 +});
365 +
366 +define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module){"use strict";
367 +var oop = require("../../lib/oop");
368 +var Behaviour = require("../behaviour").Behaviour;
369 +var CstyleBehaviour = require("./cstyle").CstyleBehaviour;
370 +var TokenIterator = require("../../token_iterator").TokenIterator;
371 +var CssBehaviour = function () {
372 + this.inherit(CstyleBehaviour);
373 + this.add("colon", "insertion", function (state, action, editor, session, text) {
374 + if (text === ':' && editor.selection.isEmpty()) {
375 + var cursor = editor.getCursorPosition();
376 + var iterator = new TokenIterator(session, cursor.row, cursor.column);
377 + var token = iterator.getCurrentToken();
378 + if (token && token.value.match(/\s+/)) {
379 + token = iterator.stepBackward();
380 + }
381 + if (token && token.type === 'support.type') {
382 + var line = session.doc.getLine(cursor.row);
383 + var rightChar = line.substring(cursor.column, cursor.column + 1);
384 + if (rightChar === ':') {
385 + return {
386 + text: '',
387 + selection: [1, 1]
388 + };
389 + }
390 + if (/^(\s+[^;]|\s*$)/.test(line.substring(cursor.column))) {
391 + return {
392 + text: ':;',
393 + selection: [1, 1]
394 + };
395 + }
396 + }
397 + }
398 + });
399 + this.add("colon", "deletion", function (state, action, editor, session, range) {
400 + var selected = session.doc.getTextRange(range);
401 + if (!range.isMultiLine() && selected === ':') {
402 + var cursor = editor.getCursorPosition();
403 + var iterator = new TokenIterator(session, cursor.row, cursor.column);
404 + var token = iterator.getCurrentToken();
405 + if (token && token.value.match(/\s+/)) {
406 + token = iterator.stepBackward();
407 + }
408 + if (token && token.type === 'support.type') {
409 + var line = session.doc.getLine(range.start.row);
410 + var rightChar = line.substring(range.end.column, range.end.column + 1);
411 + if (rightChar === ';') {
412 + range.end.column++;
413 + return range;
414 + }
415 + }
416 + }
417 + });
418 + this.add("semicolon", "insertion", function (state, action, editor, session, text) {
419 + if (text === ';' && editor.selection.isEmpty()) {
420 + var cursor = editor.getCursorPosition();
421 + var line = session.doc.getLine(cursor.row);
422 + var rightChar = line.substring(cursor.column, cursor.column + 1);
423 + if (rightChar === ';') {
424 + return {
425 + text: '',
426 + selection: [1, 1]
427 + };
428 + }
429 + }
430 + });
431 + this.add("!important", "insertion", function (state, action, editor, session, text) {
432 + if (text === '!' && editor.selection.isEmpty()) {
433 + var cursor = editor.getCursorPosition();
434 + var line = session.doc.getLine(cursor.row);
435 + if (/^\s*(;|}|$)/.test(line.substring(cursor.column))) {
436 + return {
437 + text: '!important',
438 + selection: [10, 10]
439 + };
440 + }
441 + }
442 + });
443 +};
444 +oop.inherits(CssBehaviour, CstyleBehaviour);
445 +exports.CssBehaviour = CssBehaviour;
446 +
447 +});
448 +
449 +define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
450 +var oop = require("../../lib/oop");
451 +var Range = require("../../range").Range;
452 +var BaseFoldMode = require("./fold_mode").FoldMode;
453 +var FoldMode = exports.FoldMode = function (commentRegex) {
454 + if (commentRegex) {
455 + this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start));
456 + this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end));
457 + }
458 +};
459 +oop.inherits(FoldMode, BaseFoldMode);
460 +(function () {
461 + this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/;
462 + this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/;
463 + this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/;
464 + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
465 + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
466 + this._getFoldWidgetBase = this.getFoldWidget;
467 + this.getFoldWidget = function (session, foldStyle, row) {
468 + var line = session.getLine(row);
469 + if (this.singleLineBlockCommentRe.test(line)) {
470 + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
471 + return "";
472 + }
473 + var fw = this._getFoldWidgetBase(session, foldStyle, row);
474 + if (!fw && this.startRegionRe.test(line))
475 + return "start"; // lineCommentRegionStart
476 + return fw;
477 + };
478 + this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
479 + var line = session.getLine(row);
480 + if (this.startRegionRe.test(line))
481 + return this.getCommentRegionBlock(session, line, row);
482 + var match = line.match(this.foldingStartMarker);
483 + if (match) {
484 + var i = match.index;
485 + if (match[1])
486 + return this.openingBracketBlock(session, match[1], row, i);
487 + var range = session.getCommentFoldRange(row, i + match[0].length, 1);
488 + if (range && !range.isMultiLine()) {
489 + if (forceMultiline) {
490 + range = this.getSectionRange(session, row);
491 + }
492 + else if (foldStyle != "all")
493 + range = null;
494 + }
495 + return range;
496 + }
497 + if (foldStyle === "markbegin")
498 + return;
499 + var match = line.match(this.foldingStopMarker);
500 + if (match) {
501 + var i = match.index + match[0].length;
502 + if (match[1])
503 + return this.closingBracketBlock(session, match[1], row, i);
504 + return session.getCommentFoldRange(row, i, -1);
505 + }
506 + };
507 + this.getSectionRange = function (session, row) {
508 + var line = session.getLine(row);
509 + var startIndent = line.search(/\S/);
510 + var startRow = row;
511 + var startColumn = line.length;
512 + row = row + 1;
513 + var endRow = row;
514 + var maxRow = session.getLength();
515 + while (++row < maxRow) {
516 + line = session.getLine(row);
517 + var indent = line.search(/\S/);
518 + if (indent === -1)
519 + continue;
520 + if (startIndent > indent)
521 + break;
522 + var subRange = this.getFoldWidgetRange(session, "all", row);
523 + if (subRange) {
524 + if (subRange.start.row <= startRow) {
525 + break;
526 + }
527 + else if (subRange.isMultiLine()) {
528 + row = subRange.end.row;
529 + }
530 + else if (startIndent == indent) {
531 + break;
532 + }
533 + }
534 + endRow = row;
535 + }
536 + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
537 + };
538 + this.getCommentRegionBlock = function (session, line, row) {
539 + var startColumn = line.search(/\s*$/);
540 + var maxRow = session.getLength();
541 + var startRow = row;
542 + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
543 + var depth = 1;
544 + while (++row < maxRow) {
545 + line = session.getLine(row);
546 + var m = re.exec(line);
547 + if (!m)
548 + continue;
549 + if (m[1])
550 + depth--;
551 + else
552 + depth++;
553 + if (!depth)
554 + break;
555 + }
556 + var endRow = row;
557 + if (endRow > startRow) {
558 + return new Range(startRow, startColumn, endRow, line.length);
559 + }
560 + };
561 +}).call(FoldMode.prototype);
562 +
563 +});
564 +
565 +define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
566 +var oop = require("../lib/oop");
567 +var TextMode = require("./text").Mode;
568 +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
569 +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
570 +var WorkerClient = require("../worker/worker_client").WorkerClient;
571 +var CssCompletions = require("./css_completions").CssCompletions;
572 +var CssBehaviour = require("./behaviour/css").CssBehaviour;
573 +var CStyleFoldMode = require("./folding/cstyle").FoldMode;
574 +var Mode = function () {
575 + this.HighlightRules = CssHighlightRules;
576 + this.$outdent = new MatchingBraceOutdent();
577 + this.$behaviour = new CssBehaviour();
578 + this.$completer = new CssCompletions();
579 + this.foldingRules = new CStyleFoldMode();
580 +};
581 +oop.inherits(Mode, TextMode);
582 +(function () {
583 + this.foldingRules = "cStyle";
584 + this.blockComment = { start: "/*", end: "*/" };
585 + this.getNextLineIndent = function (state, line, tab) {
586 + var indent = this.$getIndent(line);
587 + var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
588 + if (tokens.length && tokens[tokens.length - 1].type == "comment") {
589 + return indent;
590 + }
591 + var match = line.match(/^.*\{\s*$/);
592 + if (match) {
593 + indent += tab;
594 + }
595 + return indent;
596 + };
597 + this.checkOutdent = function (state, line, input) {
598 + return this.$outdent.checkOutdent(line, input);
599 + };
600 + this.autoOutdent = function (state, doc, row) {
601 + this.$outdent.autoOutdent(doc, row);
602 + };
603 + this.getCompletions = function (state, session, pos, prefix) {
604 + return this.$completer.getCompletions(state, session, pos, prefix);
605 + };
606 + this.createWorker = function (session) {
607 + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
608 + worker.attachToDocument(session.getDocument());
609 + worker.on("annotate", function (e) {
610 + session.setAnnotations(e.data);
611 + });
612 + worker.on("terminate", function () {
613 + session.clearAnnotations();
614 + });
615 + return worker;
616 + };
617 + this.$id = "ace/mode/css";
618 + this.snippetFileId = "ace/snippets/css";
619 +}).call(Mode.prototype);
620 +exports.Mode = Mode;
621 +
622 +}); (function() {
623 + window.require(["ace/mode/css"], function(m) {
3 624 if (typeof module == "object" && typeof exports == "object" && module) {
4 625 module.exports = m;
5 626 }
6 627 });