less top-level property

Mode less
final

Implementation

final less = Mode(
    refs: {
      '~contains~3~starts~contains~13~contains~5': Mode(
          variants: [Mode(begin: "[\\.#:&\\[>]", end: "[;{}]"), Mode(begin: "([\\w-]+|@{[\\w-]+})", end: "{")],
          returnBegin: true,
          returnEnd: true,
          illegal: "[<='\$\"]",
          relevance: 0,
          contains: [
            cLineCommentMode,
            cBlockCommentMode,
            Mode(beginKeywords: "when", endsWithParent: true, contains: [
              Mode(beginKeywords: "and not"),
              cLineCommentMode,
              cBlockCommentMode,
              Mode(ref: '~contains~2~starts~contains~2'),
              Mode(ref: '~contains~2~starts~contains~3'),
              cssNumberMode,
              Mode(ref: '~contains~2~starts~contains~5'),
              Mode(ref: '~contains~2~starts~contains~6'),
              Mode(ref: '~contains~2~starts~contains~7'),
              Mode(ref: '~contains~2~starts~contains~7~contains~8'),
              Mode(ref: '~contains~2~starts~contains~7~contains~9'),
              Mode(ref: '~contains~2~starts~contains~7~contains~10'),
              Mode(ref: '~contains~2~starts~contains~7~contains~11'),
              Mode(ref: '~contains~2~starts~contains~7~contains~12')
            ]),
            Mode(className: "keyword", begin: "all\\b"),
            Mode(className: "variable", begin: "@{[\\w-]+}"),
            Mode(className: "selector-tag", begin: "([\\w-]+|@{[\\w-]+})%?", relevance: 0),
            Mode(className: "selector-id", begin: "#([\\w-]+|@{[\\w-]+})"),
            Mode(className: "selector-class", begin: "\\.([\\w-]+|@{[\\w-]+})", relevance: 0),
            Mode(className: "selector-tag", begin: "&", relevance: 0),
            Mode(className: "selector-attr", begin: "\\[", end: "\\]"),
            Mode(className: "selector-pseudo", begin: ":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+"),
            Mode(begin: "\\(", end: "\\)", contains: [
              cLineCommentMode,
              cBlockCommentMode,
              Mode(ref: '~contains~2~starts~contains~2'),
              Mode(ref: '~contains~2~starts~contains~3'),
              cssNumberMode,
              Mode(ref: '~contains~2~starts~contains~5'),
              Mode(ref: '~contains~2~starts~contains~6'),
              Mode(ref: '~contains~2~starts~contains~7'),
              Mode(ref: '~contains~2~starts~contains~7~contains~8'),
              Mode(ref: '~contains~2~starts~contains~7~contains~9'),
              Mode(ref: '~contains~2~starts~contains~7~contains~10'),
              Mode(ref: '~contains~2~starts~contains~7~contains~11'),
              Mode(ref: '~contains~2~starts~contains~7~contains~12'),
              Mode(ref: '~contains~3~starts~contains~13')
            ]),
            Mode(begin: "!important")
          ]),
      '~contains~3~starts~contains~13~contains~4': Mode(begin: "([\\w-]+|@{[\\w-]+})\\s*:", returnBegin: true, end: "[;}]", relevance: 0, contains: [
        Mode(
            className: "attribute",
            begin: "([\\w-]+|@{[\\w-]+})",
            end: ":",
            excludeEnd: true,
            starts: Mode(endsWithParent: true, illegal: "[<=\$]", relevance: 0, contains: [
              cLineCommentMode,
              cBlockCommentMode,
              Mode(ref: '~contains~2~starts~contains~2'),
              Mode(ref: '~contains~2~starts~contains~3'),
              cssNumberMode,
              Mode(ref: '~contains~2~starts~contains~5'),
              Mode(ref: '~contains~2~starts~contains~6'),
              Mode(ref: '~contains~2~starts~contains~7'),
              Mode(ref: '~contains~2~starts~contains~7~contains~8'),
              Mode(ref: '~contains~2~starts~contains~7~contains~9'),
              Mode(ref: '~contains~2~starts~contains~7~contains~10'),
              Mode(ref: '~contains~2~starts~contains~7~contains~11'),
              Mode(ref: '~contains~2~starts~contains~7~contains~12')
            ]))
      ]),
      '~contains~3~starts~contains~13': Mode(begin: "{", end: "}", contains: [cLineCommentMode, cBlockCommentMode, Mode(ref: '~contains~2'), Mode(ref: '~contains~3'), Mode(ref: '~contains~3~starts~contains~13~contains~4'), Mode(ref: '~contains~3~starts~contains~13~contains~5')]),
      '~contains~3': Mode(
          className: "variable",
          variants: [Mode(begin: "@[\\w-]+\\s*:", relevance: 15), Mode(begin: "@[\\w-]+")],
          starts: Mode(end: "[;}]", returnEnd: true, contains: [
            cLineCommentMode,
            cBlockCommentMode,
            Mode(ref: '~contains~2~starts~contains~2'),
            Mode(ref: '~contains~2~starts~contains~3'),
            cssNumberMode,
            Mode(ref: '~contains~2~starts~contains~5'),
            Mode(ref: '~contains~2~starts~contains~6'),
            Mode(ref: '~contains~2~starts~contains~7'),
            Mode(ref: '~contains~2~starts~contains~7~contains~8'),
            Mode(ref: '~contains~2~starts~contains~7~contains~9'),
            Mode(ref: '~contains~2~starts~contains~7~contains~10'),
            Mode(ref: '~contains~2~starts~contains~7~contains~11'),
            Mode(ref: '~contains~2~starts~contains~7~contains~12'),
            Mode(ref: '~contains~3~starts~contains~13')
          ])),
      '~contains~2~starts~contains~7~contains~9': Mode(className: "variable", begin: "@{[\\w-]+}"),
      '~contains~2~starts~contains~7~contains~8': Mode(className: "variable", begin: "@@?[\\w-]+", relevance: 10),
      '~contains~2~starts~contains~7~contains~12': Mode(className: "meta", begin: "!important"),
      '~contains~2~starts~contains~7~contains~11': Mode(className: "attribute", begin: "[\\w-]+\\s*:", end: ":", returnBegin: true, excludeEnd: true),
      '~contains~2~starts~contains~7~contains~10': Mode(className: "built_in", begin: "\\x7e?`[^`]*?`"),
      '~contains~2~starts~contains~7': Mode(
          begin: "\\(",
          end: "\\)",
          contains: [
            cLineCommentMode,
            cBlockCommentMode,
            Mode(ref: '~contains~2~starts~contains~2'),
            Mode(ref: '~contains~2~starts~contains~3'),
            cssNumberMode,
            Mode(ref: '~contains~2~starts~contains~5'),
            Mode(ref: '~contains~2~starts~contains~6'),
            Mode(ref: '~contains~2~starts~contains~7'),
            Mode(ref: '~contains~2~starts~contains~7~contains~8'),
            Mode(ref: '~contains~2~starts~contains~7~contains~9'),
            Mode(ref: '~contains~2~starts~contains~7~contains~10'),
            Mode(ref: '~contains~2~starts~contains~7~contains~11'),
            Mode(ref: '~contains~2~starts~contains~7~contains~12')
          ],
          relevance: 0),
      '~contains~2~starts~contains~6': Mode(className: "number", begin: "#[0-9A-Fa-f]+\\b"),
      '~contains~2~starts~contains~5': Mode(begin: "(url|data-uri)\\(", starts: Mode(className: "string", end: "[\\)\\n]", excludeEnd: true)),
      '~contains~2~starts~contains~3': Mode(className: "string", begin: "\\x7e?\".*?\""),
      '~contains~2~starts~contains~2': Mode(className: "string", begin: "\\x7e?'.*?'"),
      '~contains~2': Mode(
          className: "keyword",
          begin: "@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
          starts: Mode(
              end: "[;{}]",
              returnEnd: true,
              contains: [
                cLineCommentMode,
                cBlockCommentMode,
                Mode(ref: '~contains~2~starts~contains~2'),
                Mode(ref: '~contains~2~starts~contains~3'),
                cssNumberMode,
                Mode(ref: '~contains~2~starts~contains~5'),
                Mode(ref: '~contains~2~starts~contains~6'),
                Mode(ref: '~contains~2~starts~contains~7'),
                Mode(ref: '~contains~2~starts~contains~7~contains~8'),
                Mode(ref: '~contains~2~starts~contains~7~contains~9'),
                Mode(ref: '~contains~2~starts~contains~7~contains~10'),
                Mode(ref: '~contains~2~starts~contains~7~contains~11'),
                Mode(ref: '~contains~2~starts~contains~7~contains~12')
              ],
              relevance: 0)),
    },
    caseInsensitive: true,
    illegal: "[=>'/<(\$\"]",
    contains: [cLineCommentMode, cBlockCommentMode, Mode(ref: '~contains~2'), Mode(ref: '~contains~3'), Mode(ref: '~contains~3~starts~contains~13~contains~4'), Mode(ref: '~contains~3~starts~contains~13~contains~5')]);