name: Prototype & Script.aculo.us (JavaScript) Bracketed scopeName: source.js.prototype.bracketed repository:

conditional-compilation: 
  patterns: 
  - name: comment.block.conditional.js
    captures: 
      "0": 
        name: punctuation.definition.comment.js
    begin: /\*(?=@)
    end: (?<=@)\*/
    patterns: 
    - include: $base
  - name: keyword.control.conditional.js
    captures: 
      "1": 
        name: punctuation.definition.keyword.js
    match: (@)(if|elif|else|end)
  - name: keyword.operator.conditional.js
    captures: 
      "1": 
        name: punctuation.definition.keyword.js
    match: (@)(cc_on|set)
  - name: variable.other.conditional.js
    captures: 
      "1": 
        name: punctuation.definition.variable.js
    match: (@)(_win32|_win16|_mac|_alpha|_x86|_mc680x0|_PowerPC|_jscript_build|_jscript_version|_jscript|_debug|_fast|[a-zA-Z]\w+)
round-brackets: 
  patterns: 
  - name: meta.group.braces.curly.function.js.prototype
    captures: 
      "1": 
        name: punctuation.section.function.js.prototype
      "2": 
        name: punctuation.separator.objects.js.prototype
    begin: (?<=\))\s*+(\{)
    end: (\})(,)?\s*
    patterns: 
    - include: $base
  - name: meta.group.braces.curly
    captures: 
      "1": 
        name: punctuation.section.scope.js
      "2": 
        name: punctuation.separator.objects.js.prototype
    begin: (\{)
    end: (\})(,)?\s*
    patterns: 
    - captures: 
        "1": 
          name: invalid.illegal.delimiter.object.comma.js
      match: (,)\s*+(?=\})
    - captures: 
        "1": 
          name: string.quoted.double.js.prototype
        "2": 
          name: punctuation.definition.string.js.prototype
        "3": 
          name: constant.other.object.key.js.prototype
        "4": 
          name: punctuation.definition.string.js.prototype
        "5": 
          name: punctuation.separator.objects.js.prototype
      match: ((")([^"]*)(")\s*)(:)\s*+(?!function)
    - captures: 
        "1": 
          name: string.quoted.single.js.prototype
        "2": 
          name: punctuation.definition.string.js.prototype
        "3": 
          name: constant.other.object.key.js.prototype
        "4": 
          name: punctuation.definition.string.js.prototype
        "5": 
          name: punctuation.separator.objects.js.prototype
      match: ((')([^']*)(')\s*)(:)\s*+(?!function)
    - captures: 
        "1": 
          name: constant.other.object.key.js.prototype
        "2": 
          name: punctuation.separator.objects.js.prototype
      match: \b(\w+\b\s*)(:)\s*+(?!function)
    - include: $base
  - name: meta.group.braces.round
    captures: 
      "1": 
        name: punctuation.section.scope.js
    begin: (\()(?!\))
    end: (\))
    patterns: 
    - include: $base
  - name: meta.group.braces.square
    captures: 
      "1": 
        name: punctuation.section.scope.js
    begin: (\[)(?!\])
    end: (\])
    patterns: 
    - include: $base

uuid: 1FD22341-8BAA-4F89-8257-92CBDD7DE29D foldingStartMarker: ({[^}]*$|([^)]*$|<%) patterns:

foldingStopMarker: (^[^{]*}|^s*)|%>) keyEquivalent: ^~J comment: This is a wrapper for and adds nested bracket scopes to Prototype & Script.aculo.us (JavaScript). It also allow for embedded ruby source. By Thomas Aylott