--- name: Context Free fileTypes: - cfdg - context free scopeName: source.context-free repository: rule-directive: endCaptures: "1": name: punctuation.section.rule.end.cfdg begin: \b(rule)\s++([a-zA-Z_][a-zA-Z_\.\d]*+)(\s++(((\d++)?(\.))?\d++))? beginCaptures: "7": name: punctuation.separator.integer-float.cfdg "1": name: keyword.control.rule.cfdg "2": name: entity.name.function.rule.definition.cfdg "4": name: constant.numeric.cfdg end: (\}) patterns: - include: "#rule" - include: "#comment" color-adjustment-block: patterns: - begin: (\{) beginCaptures: "1": name: punctuation.section.unordered-block.begin.cfdg end: (?=\}) patterns: - include: "#color-adjustment" - include: "#number" - include: "#comment" - begin: (\[) beginCaptures: "1": name: punctuation.section.ordered-block.begin.cfdg end: (?=\]) patterns: - include: "#color-adjustment" - include: "#number" - include: "#comment" color-adjustment: name: constant.language.color-adjustment.cfdg match: \||\b(h(ue)?|sat(uration)?|b(rightness)?|a(lpha)?)\b number: name: constant.numeric.cfdg captures: "1": name: keyword.operator.sign.cfdg "4": name: punctuation.separator.integer-float.cfdg match: (\+|\-)?((\d++)?(\.))?\d++ shape-adjustment-block: patterns: - begin: (\{) beginCaptures: "1": name: punctuation.section.unordered-block.begin.cfdg end: (?=\}) patterns: - include: "#color-adjustment" - include: "#geometry-adjustment" - include: "#number" - include: "#comment" - begin: (\[) beginCaptures: "1": name: punctuation.section.ordered-block.begin.cfdg end: (?=\]) patterns: - include: "#color-adjustment" - include: "#geometry-adjustment" - include: "#number" - include: "#comment" startshape-directive: captures: "1": name: keyword.control.startshape.cfdg "2": name: entity.name.function.rule.cfdg match: \b(startshape)\s++([a-zA-Z_][a-zA-Z_\.\d]*+) background-directive: endCaptures: "1": name: punctuation.section.unordered-block.end.cfdg "2": name: punctuation.section.ordered-block.end.cfdg begin: \b(background) beginCaptures: "1": name: keyword.control.background.cfdg end: (\})|(\]) patterns: - include: "#color-adjustment-block" - include: "#comment" shape-replacement: endCaptures: "1": name: punctuation.section.unordered-block.end.cfdg "2": name: punctuation.section.ordered-block.end.cfdg begin: ([a-zA-Z_][a-zA-Z_\.\d]*+) beginCaptures: "1": name: entity.name.function.rule.cfdg end: (\})|(\]) patterns: - include: "#shape-adjustment-block" - include: "#comment" loop: endCaptures: "1": name: punctuation.section.unordered-block.end.cfdg "2": name: punctuation.section.ordered-block.end.cfdg begin: (\d++)\s*+(\*) beginCaptures: "1": name: constant.numeric.cfdg "2": name: keyword.operator.loop.cfdg end: (\})|(\]) patterns: - include: "#shape-adjustment-block" - include: "#comment" geometry-adjustment: name: constant.language.geometry-adjustment.cfdg match: \b(x|y|z|s(ize)?|r(ot(ate)?)?|f(lip)?|skew)\b comment: patterns: - name: comment.line.cfdg begin: (//|#) beginCaptures: "1": name: punctuation.definition.comment.cfdg end: $\n? - name: comment.block.cfdg endCaptures: "1": name: punctuation.definition.comment.end.cfdg begin: (/\*) beginCaptures: "1": name: punctuation.definition.comment.begin.cfdg end: (\*/) rule: begin: (\{) beginCaptures: "1": name: punctuation.section.rule.begin.cfdg end: (?=\}) patterns: - include: "#loop" - include: "#shape-replacement" - include: "#comment" include-directive: captures: "1": name: keyword.control.include.cfdg "2": name: string.unquoted.file-name.cfdg match: \b(include)\s++(\S++) uuid: 8D0EE5A2-FB60-40F8-8D0F-1E1FFB506462 foldingStartMarker: "[\\{\\[]\\s*$" patterns: - include: "#comment" - include: "#startshape-directive" - include: "#include-directive" - include: "#background-directive" - include: "#rule-directive" foldingStopMarker: ^\s*[\}\]] keyEquivalent: ^~C