Вход Регистрация
Файл: mg-core/script/codemirror/mode/css/css.js
Строк: 1022
<?php
CodeMirror
.defineMode("css", function(config) {
  return 
CodeMirror.getMode(config"text/css");
});

CodeMirror.defineMode("css-base", function(configparserConfig) {
  
"use strict";

  var 
indentUnit config.indentUnit,
      
hooks parserConfig.hooks || {},
      
atMediaTypes parserConfig.atMediaTypes || {},
      
atMediaFeatures parserConfig.atMediaFeatures || {},
      
propertyKeywords parserConfig.propertyKeywords || {},
      
colorKeywords parserConfig.colorKeywords || {},
      
valueKeywords parserConfig.valueKeywords || {},
      
allowNested = !!parserConfig.allowNested,
      
type null;

  function 
ret(styletp) { type tp; return style; }

  function 
tokenBase(streamstate) {
    var 
ch stream.next();
    if (
hooks[ch]) {
      
// result[0] is style and result[1] is type
      
var result hooks[ch](streamstate);
      if (
result !== false) return result;
    }
    if (
ch == "@") {stream.eatWhile(/[w\-]/); return ret("def"stream.current());}
    else if (
ch == "="ret(null"compare");
    else if ((
ch == "~" || ch == "|") && stream.eat("=")) return ret(null"compare");
    else if (
ch == """ || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    }
    else if (ch == "#") {
      stream.eatWhile(/[w\-]/);
      return ret("atom", "hash");
    }
    else if (ch == "!") {
      stream.match(/^s*w*/);
      return ret("keyword", "important");
    }
    else if (/d/.test(ch)) {
      stream.eatWhile(/[w.%]/);
      return ret("number", "unit");
    }
    else if (ch === "-") {
      if (/d/.test(stream.peek())) {
        stream.eatWhile(/[w.%]/);
        return ret("number", "unit");
      } else if (stream.match(/^[^-]+-/)) {
        return ret("meta", "meta");
      }
    }
    else if (/[,+>*/]/.test(ch)) {
      return ret(null, "select-op");
    }
    else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {
      return ret("qualifier", "qualifier");
    }
    else if (ch == ":") {
      return ret("operator", ch);
    }
    else if (/[;{}[]()]/.test(ch)) {
      return ret(null, ch);
    }
    else if (ch == "u" && stream.match("rl(")) {
      stream.backUp(1);
      state.tokenize = tokenParenthesized;
      return ret("property", "variable");
    }
    else {
      stream.eatWhile(/[w\-]/);
      return ret("property", "variable");
    }
  }

  function tokenString(quote, nonInclusive) {
    return function(stream, state) {
      var escaped = false, ch;
      while ((ch = stream.next()) != null) {
        if (ch == quote && !escaped)
          break;
        escaped = !escaped && ch == "\";
      }
      if (!escaped) {
        if (nonInclusive) stream.backUp(1);
        state.tokenize = tokenBase;
      }
      return ret("string", "string");
    };
  }

  function tokenParenthesized(stream, state) {
    stream.next(); // Must be '
('
    if (!stream.match(/s*["'
]/, false))
      
state.tokenize tokenString(")"true);
    else
      
state.tokenize tokenBase;
    return 
ret(null"(");
  }

  return {
    
startState: function(base) {
      return {
tokenizetokenBase,
              
baseIndentbase || 0,
              
stack: [],
              
lastTokennull};
    },

    
token: function(streamstate) {

      
// Use these terms when applicable (see http://www.xanthir.com/blog/b4E50)
      //
      // rule** or **ruleset:
      // A selector + braces combo, or an at-rule.
      //
      // declaration block:
      // A sequence of declarations.
      //
      // declaration:
      // A property + colon + value combo.
      //
      // property value:
      // The entire value of a property.
      //
      // component value:
      // A single piece of a property value. Like the 5px in
      // text-shadow: 0 0 5px blue;. Can also refer to things that are
      // multiple terms, like the 1-4 terms that make up the background-size
      // portion of the background shorthand.
      //
      // term:
      // The basic unit of author-facing CSS, like a single number (5),
      // dimension (5px), string ("foo"), or function. Officially defined
      //  by the CSS 2.1 grammar (look for the 'term' production)
      //
      //
      // simple selector:
      // A single atomic selector, like a type selector, an attr selector, a
      // class selector, etc.
      //
      // compound selector:
      // One or more simple selectors without a combinator. div.example is
      // compound, div > .example is not.
      //
      // complex selector:
      // One or more compound selectors chained with combinators.
      //
      // combinator:
      // The parts of selectors that express relationships. There are four
      // currently - the space (descendant combinator), the greater-than
      // bracket (child combinator), the plus sign (next sibling combinator),
      // and the tilda (following sibling combinator).
      //
      // sequence of selectors:
      // One or more of the named type of selector chained with commas.

      
state.tokenize state.tokenize || tokenBase;
      if (
state.tokenize == tokenBase && stream.eatSpace()) return null;
      var 
style state.tokenize(streamstate);
      if (
style && typeof style != "string"style ret(style[0], style[1]);

      
// Changing style returned based on context
      
var context state.stack[state.stack.length-1];
      if (
style == "variable") {
        if (
type == "variable-definition"state.stack.push("propertyValue");
        return 
state.lastToken "variable-2";
      } else if (
style == "property") {
        var 
word stream.current().toLowerCase();
        if (
context == "propertyValue") {
          if (
valueKeywords.hasOwnProperty(word)) {
            
style "string-2";
          } else if (
colorKeywords.hasOwnProperty(word)) {
            
style "keyword";
          } else {
            
style "variable-2";
          }
        } else if (
context == "rule") {
          if (!
propertyKeywords.hasOwnProperty(word)) {
            
style += " error";
          }
        } else if (
context == "block") {
          
// if a value is present in both property, value, or color, the order
          // of preference is property -> color -> value
          
if (propertyKeywords.hasOwnProperty(word)) {
            
style "property";
          } else if (
colorKeywords.hasOwnProperty(word)) {
            
style "keyword";
          } else if (
valueKeywords.hasOwnProperty(word)) {
            
style "string-2";
          } else {
            
style "tag";
          }
        } else if (!
context || context == "@media{") {
          
style "tag";
        } else if (
context == "@media") {
          if (
atMediaTypes[stream.current()]) {
            
style "attribute"// Known attribute
          
} else if (/^(only|not)$/.test(word)) {
            
style "keyword";
          } else if (
word == "and") {
            
style "error"// "and" is only allowed in @mediaType
          
} else if (atMediaFeatures.hasOwnProperty(word)) {
            
style "error"// Known property, should be in @mediaType(
          
} else {
            
// Unknown, expecting keyword or attribute, assuming attribute
            
style "attribute error";
          }
        } else if (
context == "@mediaType") {
          if (
atMediaTypes.hasOwnProperty(word)) {
            
style "attribute";
          } else if (
word == "and") {
            
style "operator";
          } else if (/^(
only|not)$/.test(word)) {
            
style "error"// Only allowed in @media
          
} else {
            
// Unknown attribute or property, but expecting property (preceded
            // by "and"). Should be in parentheses
            
style "error";
          }
        } else if (
context == "@mediaType(") {
          if (
propertyKeywords.hasOwnProperty(word)) {
            
// do nothing, remains "property"
          
} else if (atMediaTypes.hasOwnProperty(word)) {
            
style "error"// Known property, should be in parentheses
          
} else if (word == "and") {
            
style "operator";
          } else if (/^(
only|not)$/.test(word)) {
            
style "error"// Only allowed in @media
          
} else {
            
style += " error";
          }
        } else if (
context == "@import") {
          
style "tag";
        } else {
          
style "error";
        }
      } else if (
style == "atom") {
        if(!
context || context == "@media{" || context == "block") {
          
style "builtin";
        } else if (
context == "propertyValue") {
          if (!/^
#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())) {
            
style += " error";
          }
        } else {
          
style "error";
        }
      } else if (
context == "@media" && type == "{") {
        
style "error";
      }

      
// Push/pop context stack
      
if (type == "{") {
        if (
context == "@media" || context == "@mediaType") {
          
state.stack[state.stack.length-1] = "@media{";
        }
        else {
          var 
newContext allowNested "block" "rule";
          
state.stack.push(newContext);
        }
      }
      else if (
type == "}") {
        if (
context == "interpolation"style "operator";
        
state.stack.pop();
        if (
context == "propertyValue"state.stack.pop();
      }
      else if (
type == "interpolation"state.stack.push("interpolation");
      else if (
type == "@media"state.stack.push("@media");
      else if (
type == "@import"state.stack.push("@import");
      else if (
context == "@media" && /b(keyword|attribute)b/.test(style))
        
state.stack[state.stack.length-1] = "@mediaType";
      else if (
context == "@mediaType" && stream.current() == ",")
        
state.stack[state.stack.length-1] = "@media";
      else if (
type == "(") {
        if (
context == "@media" || context == "@mediaType") {
          
// Make sure @mediaType is used to avoid error on {
          
state.stack[state.stack.length-1] = "@mediaType";
          
state.stack.push("@mediaType(");
        }
      }
      else if (
type == ")") {
        if (
context == "propertyValue" && state.stack[state.stack.length-2] == "@mediaType(") {
          
// In @mediaType( without closing ; after propertyValue
          
state.stack.pop();
          
state.stack.pop();
        }
        else if (
context == "@mediaType(") {
          
state.stack.pop();
        }
      }
      else if (
type == ":" && state.lastToken == "property"state.stack.push("propertyValue");
      else if (
context == "propertyValue" && type == ";"state.stack.pop();
      else if (
context == "@import" && type == ";"state.stack.pop();

      return 
state.lastToken style;
    },

    
indent: function(statetextAfter) {
      var 
state.stack.length;
      if (/^}/.
test(textAfter))
        
-= state.stack[n-1] == "propertyValue" 1;
      return 
state.baseIndent indentUnit;
    },

    
electricChars"}",
    
blockCommentStart"/*",
    
blockCommentEnd"*/",
    
fold"brace"
  
};
});

(function() {
  function 
keySet(array) {
    var 
keys = {};
    for (var 
0< array.length; ++i) {
      
keys[array[i]] = true;
    }
    return 
keys;
  }

  var 
atMediaTypes keySet([
    
"all""aural""braille""handheld""print""projection""screen",
    
"tty""tv""embossed"
  
]);

  var 
atMediaFeatures keySet([
    
"width""min-width""max-width""height""min-height""max-height",
    
"device-width""min-device-width""max-device-width""device-height",
    
"min-device-height""max-device-height""aspect-ratio",
    
"min-aspect-ratio""max-aspect-ratio""device-aspect-ratio",
    
"min-device-aspect-ratio""max-device-aspect-ratio""color""min-color",
    
"max-color""color-index""min-color-index""max-color-index",
    
"monochrome""min-monochrome""max-monochrome""resolution",
    
"min-resolution""max-resolution""scan""grid"
  
]);

  var 
propertyKeywords keySet([
    
"align-content""align-items""align-self""alignment-adjust",
    
"alignment-baseline""anchor-point""animation""animation-delay",
    
"animation-direction""animation-duration""animation-iteration-count",
    
"animation-name""animation-play-state""animation-timing-function",
    
"appearance""azimuth""backface-visibility""background",
    
"background-attachment""background-clip""background-color",
    
"background-image""background-origin""background-position",
    
"background-repeat""background-size""baseline-shift""binding",
    
"bleed""bookmark-label""bookmark-level""bookmark-state",
    
"bookmark-target""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-decoration-break",
    
"box-shadow""box-sizing""break-after""break-before""break-inside",
    
"caption-side""clear""clip""color""color-profile""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""crop""cue",
    
"cue-after""cue-before""cursor""direction""display",
    
"dominant-baseline""drop-initial-after-adjust",
    
"drop-initial-after-align""drop-initial-before-adjust",
    
"drop-initial-before-align""drop-initial-size""drop-initial-value",
    
"elevation""empty-cells""fit""fit-position""flex""flex-basis",
    
"flex-direction""flex-flow""flex-grow""flex-shrink""flex-wrap",
    
"float""float-offset""flow-from""flow-into""font""font-feature-settings",
    
"font-family""font-kerning""font-language-override""font-size""font-size-adjust",
    
"font-stretch""font-style""font-synthesis""font-variant",
    
"font-variant-alternates""font-variant-caps""font-variant-east-asian",
    
"font-variant-ligatures""font-variant-numeric""font-variant-position",
    
"font-weight""grid-cell""grid-column""grid-column-align",
    
"grid-column-sizing""grid-column-span""grid-columns""grid-flow",
    
"grid-row""grid-row-align""grid-row-sizing""grid-row-span",
    
"grid-rows""grid-template""hanging-punctuation""height""hyphens",
    
"icon""image-orientation""image-rendering""image-resolution",
    
"inline-box-align""justify-content""left""letter-spacing",
    
"line-break""line-height""line-stacking""line-stacking-ruby",
    
"line-stacking-shift""line-stacking-strategy""list-style",
    
"list-style-image""list-style-position""list-style-type""margin",
    
"margin-bottom""margin-left""margin-right""margin-top",
    
"marker-offset""marks""marquee-direction""marquee-loop",
    
"marquee-play-count""marquee-speed""marquee-style""max-height",
    
"max-width""min-height""min-width""move-to""nav-down""nav-index",
    
"nav-left""nav-right""nav-up""opacity""order""orphans""outline",
    
"outline-color""outline-offset""outline-style""outline-width",
    
"overflow""overflow-style""overflow-wrap""overflow-x""overflow-y",
    
"padding""padding-bottom""padding-left""padding-right""padding-top",
    
"page""page-break-after""page-break-before""page-break-inside",
    
"page-policy""pause""pause-after""pause-before""perspective",
    
"perspective-origin""pitch""pitch-range""play-during""position",
    
"presentation-level""punctuation-trim""quotes""region-break-after",
    
"region-break-before""region-break-inside""region-fragment",
    
"rendering-intent""resize""rest""rest-after""rest-before""richness",
    
"right""rotation""rotation-point""ruby-align""ruby-overhang",
    
"ruby-position""ruby-span""shape-inside""shape-outside""size",
    
"speak""speak-as""speak-header",
    
"speak-numeral""speak-punctuation""speech-rate""stress""string-set",
    
"tab-size""table-layout""target""target-name""target-new",
    
"target-position""text-align""text-align-last""text-decoration",
    
"text-decoration-color""text-decoration-line""text-decoration-skip",
    
"text-decoration-style""text-emphasis""text-emphasis-color",
    
"text-emphasis-position""text-emphasis-style""text-height",
    
"text-indent""text-justify""text-outline""text-overflow""text-shadow",
    
"text-size-adjust""text-space-collapse""text-transform""text-underline-position",
    
"text-wrap""top""transform""transform-origin""transform-style",
    
"transition""transition-delay""transition-duration",
    
"transition-property""transition-timing-function""unicode-bidi",
    
"vertical-align""visibility""voice-balance""voice-duration",
    
"voice-family""voice-pitch""voice-range""voice-rate""voice-stress",
    
"voice-volume""volume""white-space""widows""width""word-break",
    
"word-spacing""word-wrap""z-index""zoom",
    
// SVG-specific
    
"clip-path""clip-rule""mask""enable-background""filter""flood-color",
    
"flood-opacity""lighting-color""stop-color""stop-opacity""pointer-events",
    
"color-interpolation""color-interpolation-filters""color-profile",
    
"color-rendering""fill""fill-opacity""fill-rule""image-rendering",
    
"marker""marker-end""marker-mid""marker-start""shape-rendering""stroke",
    
"stroke-dasharray""stroke-dashoffset""stroke-linecap""stroke-linejoin",
    
"stroke-miterlimit""stroke-opacity""stroke-width""text-rendering",
    
"baseline-shift""dominant-baseline""glyph-orientation-horizontal",
    
"glyph-orientation-vertical""kerning""text-anchor""writing-mode"
  
]);

  var 
colorKeywords keySet([
    
"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""darkkhaki""darkmagenta""darkolivegreen",
    
"darkorange""darkorchid""darkred""darksalmon""darkseagreen",
    
"darkslateblue""darkslategray""darkturquoise""darkviolet",
    
"deeppink""deepskyblue""dimgray""dodgerblue""firebrick",
    
"floralwhite""forestgreen""fuchsia""gainsboro""ghostwhite",
    
"gold""goldenrod""gray""grey""green""greenyellow""honeydew",
    
"hotpink""indianred""indigo""ivory""khaki""lavender",
    
"lavenderblush""lawngreen""lemonchiffon""lightblue""lightcoral",
    
"lightcyan""lightgoldenrodyellow""lightgray""lightgreen""lightpink",
    
"lightsalmon""lightseagreen""lightskyblue""lightslategray",
    
"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""red""rosybrown""royalblue""saddlebrown""salmon",
    
"sandybrown""seagreen""seashell""sienna""silver""skyblue",
    
"slateblue""slategray""snow""springgreen""steelblue""tan",
    
"teal""thistle""tomato""turquoise""violet""wheat""white",
    
"whitesmoke""yellow""yellowgreen"
  
]);

  var 
valueKeywords keySet([
    
"above""absolute""activeborder""activecaption""afar",
    
"after-white-space""ahead""alias""all""all-scroll""alternate",
    
"always""amharic""amharic-abegede""antialiased""appworkspace",
    
"arabic-indic""armenian""asterisks""auto""avoid""avoid-column""avoid-page",
    
"avoid-region""background""backwards""baseline""below""bidi-override""binary",
    
"bengali""blink""block""block-axis""bold""bolder""border""border-box",
    
"both""bottom""break""break-all""break-word""button""button-bevel",
    
"buttonface""buttonhighlight""buttonshadow""buttontext""cambodian",
    
"capitalize""caps-lock-indicator""caption""captiontext""caret",
    
"cell""center""checkbox""circle""cjk-earthly-branch",
    
"cjk-heavenly-stem""cjk-ideographic""clear""clip""close-quote",
    
"col-resize""collapse""column""compact""condensed""contain""content",
    
"content-box""context-menu""continuous""copy""cover""crop",
    
"cross""crosshair""currentcolor""cursive""dashed""decimal",
    
"decimal-leading-zero""default""default-button""destination-atop",
    
"destination-in""destination-out""destination-over""devanagari",
    
"disc""discard""document""dot-dash""dot-dot-dash""dotted",
    
"double""down""e-resize""ease""ease-in""ease-in-out""ease-out",
    
"element""ellipse""ellipsis""embed""end""ethiopic""ethiopic-abegede",
    
"ethiopic-abegede-am-et""ethiopic-abegede-gez""ethiopic-abegede-ti-er",
    
"ethiopic-abegede-ti-et""ethiopic-halehame-aa-er",
    
"ethiopic-halehame-aa-et""ethiopic-halehame-am-et",
    
"ethiopic-halehame-gez""ethiopic-halehame-om-et",
    
"ethiopic-halehame-sid-et""ethiopic-halehame-so-et",
    
"ethiopic-halehame-ti-er""ethiopic-halehame-ti-et",
    
"ethiopic-halehame-tig""ew-resize""expanded""extra-condensed",
    
"extra-expanded""fantasy""fast""fill""fixed""flat""footnotes",
    
"forwards""from""geometricPrecision""georgian""graytext""groove",
    
"gujarati""gurmukhi""hand""hangul""hangul-consonant""hebrew",
    
"help""hidden""hide""higher""highlight""highlighttext",
    
"hiragana""hiragana-iroha""horizontal""hsl""hsla""icon""ignore",
    
"inactiveborder""inactivecaption""inactivecaptiontext""infinite",
    
"infobackground""infotext""inherit""initial""inline""inline-axis",
    
"inline-block""inline-table""inset""inside""intrinsic""invert",
    
"italic""justify""kannada""katakana""katakana-iroha""keep-all""khmer",
    
"landscape""lao""large""larger""left""level""lighter",
    
"line-through""linear""lines""list-item""listbox""listitem",
    
"local""logical""loud""lower""lower-alpha""lower-armenian",
    
"lower-greek""lower-hexadecimal""lower-latin""lower-norwegian",
    
"lower-roman""lowercase""ltr""malayalam""match",
    
"media-controls-background""media-current-time-display",
    
"media-fullscreen-button""media-mute-button""media-play-button",
    
"media-return-to-realtime-button""media-rewind-button",
    
"media-seek-back-button""media-seek-forward-button""media-slider",
    
"media-sliderthumb""media-time-remaining-display""media-volume-slider",
    
"media-volume-slider-container""media-volume-sliderthumb""medium",
    
"menu""menulist""menulist-button""menulist-text",
    
"menulist-textfield""menutext""message-box""middle""min-intrinsic",
    
"mix""mongolian""monospace""move""multiple""myanmar""n-resize",
    
"narrower""ne-resize""nesw-resize""no-close-quote""no-drop",
    
"no-open-quote""no-repeat""none""normal""not-allowed""nowrap",
    
"ns-resize""nw-resize""nwse-resize""oblique""octal""open-quote",
    
"optimizeLegibility""optimizeSpeed""oriya""oromo""outset",
    
"outside""outside-shape""overlay""overline""padding""padding-box",
    
"painted""page""paused""persian""plus-darker""plus-lighter""pointer",
    
"polygon""portrait""pre""pre-line""pre-wrap""preserve-3d""progress""push-button",
    
"radio""read-only""read-write""read-write-plaintext-only""rectangle""region",
    
"relative""repeat""repeat-x""repeat-y""reset""reverse""rgb""rgba",
    
"ridge""right""round""row-resize""rtl""run-in""running",
    
"s-resize""sans-serif""scroll""scrollbar""se-resize""searchfield",
    
"searchfield-cancel-button""searchfield-decoration",
    
"searchfield-results-button""searchfield-results-decoration",
    
"semi-condensed""semi-expanded""separate""serif""show""sidama",
    
"single""skip-white-space""slide""slider-horizontal",
    
"slider-vertical""sliderthumb-horizontal""sliderthumb-vertical""slow",
    
"small""small-caps""small-caption""smaller""solid""somali",
    
"source-atop""source-in""source-out""source-over""space""square",
    
"square-button""start""static""status-bar""stretch""stroke",
    
"sub""subpixel-antialiased""super""sw-resize""table",
    
"table-caption""table-cell""table-column""table-column-group",
    
"table-footer-group""table-header-group""table-row""table-row-group",
    
"telugu""text""text-bottom""text-top""textarea""textfield""thai",
    
"thick""thin""threeddarkshadow""threedface""threedhighlight",
    
"threedlightshadow""threedshadow""tibetan""tigre""tigrinya-er",
    
"tigrinya-er-abegede""tigrinya-et""tigrinya-et-abegede""to""top",
    
"transparent""ultra-condensed""ultra-expanded""underline""up",
    
"upper-alpha""upper-armenian""upper-greek""upper-hexadecimal",
    
"upper-latin""upper-norwegian""upper-roman""uppercase""urdu""url",
    
"vertical""vertical-text""visible""visibleFill""visiblePainted",
    
"visibleStroke""visual""w-resize""wait""wave""wider",
    
"window""windowframe""windowtext""x-large""x-small""xor",
    
"xx-large""xx-small"
  
]);

  function 
tokenCComment(streamstate) {
    var 
maybeEnd falsech;
    while ((
ch stream.next()) != null) {
      if (
maybeEnd && ch == "/") {
        
state.tokenize null;
        break;
      }
      
maybeEnd = (ch == "*");
    }
    return [
"comment""comment"];
  }

  
CodeMirror.defineMIME("text/css", {
    
atMediaTypesatMediaTypes,
    
atMediaFeaturesatMediaFeatures,
    
propertyKeywordspropertyKeywords,
    
colorKeywordscolorKeywords,
    
valueKeywordsvalueKeywords,
    
hooks: {
      
"<": function(streamstate) {
        function 
tokenSGMLComment(streamstate) {
          var 
dashes 0ch;
          while ((
ch stream.next()) != null) {
            if (
dashes >= && ch == ">") {
              
state.tokenize null;
              break;
            }
            
dashes = (ch == "-") ? dashes 0;
          }
          return [
"comment""comment"];
        }
        if (
stream.eat("!")) {
          
state.tokenize tokenSGMLComment;
          return 
tokenSGMLComment(streamstate);
        }
      },
      
"/": function(streamstate) {
        if (
stream.eat("*")) {
          
state.tokenize tokenCComment;
          return 
tokenCComment(streamstate);
        }
        return 
false;
      }
    },
    
name"css-base"
  
});

  
CodeMirror.defineMIME("text/x-scss", {
    
atMediaTypesatMediaTypes,
    
atMediaFeaturesatMediaFeatures,
    
propertyKeywordspropertyKeywords,
    
colorKeywordscolorKeywords,
    
valueKeywordsvalueKeywords,
    
allowNestedtrue,
    
hooks: {
      
"$": function(stream) {
        
stream.match(/^[w-]+/);
        if (
stream.peek() == ":") {
          return [
"variable""variable-definition"];
        }
        return [
"variable""variable"];
      },
      
"/": function(streamstate) {
        if (
stream.eat("/")) {
          
stream.skipToEnd();
          return [
"comment""comment"];
        } else if (
stream.eat("*")) {
          
state.tokenize tokenCComment;
          return 
tokenCComment(streamstate);
        } else {
          return [
"operator""operator"];
        }
      },
      
"#": function(stream) {
        if (
stream.eat("{")) {
          return [
"operator""interpolation"];
        } else {
          
stream.eatWhile(/[w\-]/);
          return [
"atom""hash"];
        }
      }
    },
    
name"css-base"
  
});
})();
?>
Онлайн: 0
Реклама