elixir top-level property

Mode elixir
final

Implementation

final elixir = Mode(
    refs: {
      '~contains~0~contains~1~contains~9': Mode(
          className: "symbol",
          begin: "[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?:(?!:)",
          relevance: 0),
      '~contains~0~contains~1~contains~8': Mode(
          className: "symbol",
          begin: ":(?![\\s:])",
          contains: [
            Mode(ref: '~contains~0'),
            Mode(
                begin:
                    "[a-zA-Z_]\\w*[!?=]?|[-+\\x7e]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?")
          ],
          relevance: 0),
      '~contains~0~contains~1~contains~7': Mode(begin: "::"),
      '~contains~0~contains~1~contains~6': Mode(
          className: "function",
          beginKeywords: "def defp defmacro defmacrop",
          end: "\\B\\b",
          contains: [
            Mode(ref: '~contains~0~contains~1~contains~5~contains~0')
          ]),
      '~contains~0~contains~1~contains~5~contains~0': Mode(
          scope: "title",
          begin: "[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",
          relevance: 0,
          endsParent: true),
      '~contains~0~contains~1~contains~5': Mode(
          className: "class",
          beginKeywords: "defimpl defmodule defprotocol defrecord",
          end: "\\bdo\\b|\$|;",
          contains: [
            Mode(ref: '~contains~0~contains~1~contains~5~contains~0')
          ]),
      '~contains~0~contains~1~contains~3': Mode(
          className: "string",
          begin: "\\x7e[a-z](?=[/|([{<\"'])",
          contains: [
            Mode(begin: "\"", end: "\"", contains: [
              Mode(scope: "char.escape", begin: "\\\\\"", relevance: 0),
              Mode(
                  ref:
                      '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
              Mode(ref: '~contains~0~contains~1')
            ]),
            Mode(begin: "'", end: "'", contains: [
              Mode(scope: "char.escape", begin: "\\\\'", relevance: 0),
              Mode(
                  ref:
                      '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
              Mode(ref: '~contains~0~contains~1')
            ]),
            Mode(begin: "\\/", end: "\\/", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\/", relevance: 0),
              Mode(
                  ref:
                      '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
              Mode(ref: '~contains~0~contains~1')
            ]),
            Mode(begin: "\\|", end: "\\|", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\|", relevance: 0),
              Mode(
                  ref:
                      '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
              Mode(ref: '~contains~0~contains~1')
            ]),
            Mode(begin: "\\(", end: "\\)", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\)", relevance: 0),
              Mode(
                  ref:
                      '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
              Mode(ref: '~contains~0~contains~1')
            ]),
            Mode(begin: "\\[", end: "\\]", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\]", relevance: 0),
              Mode(
                  ref:
                      '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
              Mode(ref: '~contains~0~contains~1')
            ]),
            Mode(begin: "\\{", end: "\\}", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\}", relevance: 0),
              Mode(
                  ref:
                      '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
              Mode(ref: '~contains~0~contains~1')
            ]),
            Mode(begin: "<", end: ">", contains: [
              Mode(scope: "char.escape", begin: "\\\\>", relevance: 0),
              Mode(
                  ref:
                      '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
              Mode(ref: '~contains~0~contains~1')
            ])
          ]),
      '~contains~0~contains~1~contains~2': Mode(
          className: "string",
          begin: "\\x7e[A-Z](?=[/|([{<\"'])",
          contains: [
            Mode(begin: "\"", end: "\"", contains: [
              Mode(scope: "char.escape", begin: "\\\\\"", relevance: 0)
            ]),
            Mode(begin: "'", end: "'", contains: [
              Mode(scope: "char.escape", begin: "\\\\'", relevance: 0)
            ]),
            Mode(begin: "\\/", end: "\\/", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\/", relevance: 0)
            ]),
            Mode(begin: "\\|", end: "\\|", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\|", relevance: 0)
            ]),
            Mode(begin: "\\(", end: "\\)", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\)", relevance: 0)
            ]),
            Mode(begin: "\\[", end: "\\]", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\]", relevance: 0)
            ]),
            Mode(begin: "\\{", end: "\\}", contains: [
              Mode(scope: "char.escape", begin: "\\\\\\}", relevance: 0)
            ]),
            Mode(begin: "<", end: ">", contains: [
              Mode(scope: "char.escape", begin: "\\\\>", relevance: 0)
            ])
          ]),
      '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1':
          Mode(match: "\\\\[\\s\\S]", scope: "char.escape", relevance: 0),
      '~contains~0~contains~1~contains~12':
          Mode(className: "variable", begin: "(\\\$\\W)|((\\\$|@@?)(\\w+))"),
      '~contains~0~contains~1~contains~11': Mode(
          className: "number",
          begin:
              "(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)",
          relevance: 0),
      '~contains~0~contains~1~contains~10': Mode(
          className: "title.class",
          begin: "(\\b[A-Z][a-zA-Z0-9_]+)",
          relevance: 0),
      '~contains~0~contains~1~contains~1': Mode(className: "regex", variants: [
        Mode(begin: "\\x7er(?=[/|([{<\"'])", contains: [
          Mode(begin: "\"", end: "\"[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\"", relevance: 0),
            Mode(
                ref:
                    '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
            Mode(ref: '~contains~0~contains~1')
          ]),
          Mode(begin: "'", end: "'[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\'", relevance: 0),
            Mode(
                ref:
                    '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
            Mode(ref: '~contains~0~contains~1')
          ]),
          Mode(begin: "\\/", end: "\\/[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\/", relevance: 0),
            Mode(
                ref:
                    '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
            Mode(ref: '~contains~0~contains~1')
          ]),
          Mode(begin: "\\|", end: "\\|[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\|", relevance: 0),
            Mode(
                ref:
                    '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
            Mode(ref: '~contains~0~contains~1')
          ]),
          Mode(begin: "\\(", end: "\\)[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\)", relevance: 0),
            Mode(
                ref:
                    '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
            Mode(ref: '~contains~0~contains~1')
          ]),
          Mode(begin: "\\[", end: "\\][uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\]", relevance: 0),
            Mode(
                ref:
                    '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
            Mode(ref: '~contains~0~contains~1')
          ]),
          Mode(begin: "\\{", end: "\\}[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\}", relevance: 0),
            Mode(
                ref:
                    '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
            Mode(ref: '~contains~0~contains~1')
          ]),
          Mode(begin: "<", end: ">[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\>", relevance: 0),
            Mode(
                ref:
                    '~contains~0~contains~1~contains~1~variants~0~contains~0~contains~1'),
            Mode(ref: '~contains~0~contains~1')
          ])
        ]),
        Mode(begin: "\\x7eR(?=[/|([{<\"'])", contains: [
          Mode(begin: "\"", end: "\"[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\"", relevance: 0)
          ]),
          Mode(begin: "'", end: "'[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\'", relevance: 0)
          ]),
          Mode(begin: "\\/", end: "\\/[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\/", relevance: 0)
          ]),
          Mode(begin: "\\|", end: "\\|[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\|", relevance: 0)
          ]),
          Mode(begin: "\\(", end: "\\)[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\)", relevance: 0)
          ]),
          Mode(begin: "\\[", end: "\\][uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\]", relevance: 0)
          ]),
          Mode(begin: "\\{", end: "\\}[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\\\}", relevance: 0)
          ]),
          Mode(begin: "<", end: ">[uismxfU]{0,7}", contains: [
            Mode(scope: "char.escape", begin: "\\\\>", relevance: 0)
          ])
        ])
      ]),
      '~contains~0~contains~1':
          Mode(className: "subst", begin: "#\\{", end: "\\}", keywords: {
        "\$pattern": "[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",
        "keyword": [
          "after",
          "alias",
          "and",
          "case",
          "catch",
          "cond",
          "defstruct",
          "defguard",
          "do",
          "else",
          "end",
          "fn",
          "for",
          "if",
          "import",
          "in",
          "not",
          "or",
          "quote",
          "raise",
          "receive",
          "require",
          "reraise",
          "rescue",
          "try",
          "unless",
          "unquote",
          "unquote_splicing",
          "use",
          "when",
          "with|0"
        ],
        "literal": ["false", "nil", "true"]
      }, contains: [
        Mode(ref: '~contains~0'),
        Mode(ref: '~contains~0~contains~1~contains~1'),
        Mode(ref: '~contains~0~contains~1~contains~2'),
        Mode(ref: '~contains~0~contains~1~contains~3'),
        HASH_COMMENT_MODE,
        Mode(ref: '~contains~0~contains~1~contains~5'),
        Mode(ref: '~contains~0~contains~1~contains~6'),
        Mode(ref: '~contains~0~contains~1~contains~7'),
        Mode(ref: '~contains~0~contains~1~contains~8'),
        Mode(ref: '~contains~0~contains~1~contains~9'),
        Mode(ref: '~contains~0~contains~1~contains~10'),
        Mode(ref: '~contains~0~contains~1~contains~11'),
        Mode(ref: '~contains~0~contains~1~contains~12')
      ]),
      '~contains~0': Mode(className: "string", contains: [
        BACKSLASH_ESCAPE,
        Mode(ref: '~contains~0~contains~1')
      ], variants: [
        Mode(begin: "\"\"\"", end: "\"\"\""),
        Mode(begin: "'''", end: "'''"),
        Mode(begin: "\\x7eS\"\"\"", end: "\"\"\"", contains: []),
        Mode(begin: "\\x7eS\"", end: "\"", contains: []),
        Mode(begin: "\\x7eS'''", end: "'''", contains: []),
        Mode(begin: "\\x7eS'", end: "'", contains: []),
        Mode(begin: "'", end: "'"),
        Mode(begin: "\"", end: "\"")
      ]),
    },
    name: "Elixir",
    aliases: ["ex", "exs"],
    keywords: {
      "\$pattern": "[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",
      "keyword": [
        "after",
        "alias",
        "and",
        "case",
        "catch",
        "cond",
        "defstruct",
        "defguard",
        "do",
        "else",
        "end",
        "fn",
        "for",
        "if",
        "import",
        "in",
        "not",
        "or",
        "quote",
        "raise",
        "receive",
        "require",
        "reraise",
        "rescue",
        "try",
        "unless",
        "unquote",
        "unquote_splicing",
        "use",
        "when",
        "with|0"
      ],
      "literal": ["false", "nil", "true"]
    },
    contains: [
      Mode(ref: '~contains~0'),
      Mode(ref: '~contains~0~contains~1~contains~1'),
      Mode(ref: '~contains~0~contains~1~contains~2'),
      Mode(ref: '~contains~0~contains~1~contains~3'),
      HASH_COMMENT_MODE,
      Mode(ref: '~contains~0~contains~1~contains~5'),
      Mode(ref: '~contains~0~contains~1~contains~6'),
      Mode(ref: '~contains~0~contains~1~contains~7'),
      Mode(ref: '~contains~0~contains~1~contains~8'),
      Mode(ref: '~contains~0~contains~1~contains~9'),
      Mode(ref: '~contains~0~contains~1~contains~10'),
      Mode(ref: '~contains~0~contains~1~contains~11'),
      Mode(ref: '~contains~0~contains~1~contains~12')
    ]);