{ "name": "Processing", "scopeName": "source.processing", "patterns": [ { "name": "meta.package.processing", "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?", "captures": { "1": { "name": "keyword.other.package.processing" }, "2": { "name": "storage.modifier.package.processing" }, "3": { "name": "punctuation.terminator.processing" } } }, { "name": "meta.import.static.processing", "match": "^\\s*(import static)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?", "captures": { "1": { "name": "keyword.other.import.static.processing" }, "2": { "name": "storage.modifier.import.processing" }, "3": { "name": "punctuation.terminator.processing" } } }, { "name": "meta.import.processing", "match": "^\\s*(import)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?", "captures": { "1": { "name": "keyword.other.import.processing" }, "2": { "name": "storage.modifier.import.processing" }, "3": { "name": "punctuation.terminator.processing" } } }, { "include": "#class-body" } ], "repository": { "all-types": { "patterns": [ { "include": "#primitive-arrays" }, { "include": "#primitive-types" }, { "include": "#object-types" } ] }, "annotations": { "patterns": [ { "name": "meta.declaration.annotation.processing", "begin": "(@[^ (]+)(\\()", "end": "(\\))", "patterns": [ { "match": "(\\w*)\\s*(=)", "captures": { "1": { "name": "constant.other.key.processing" }, "2": { "name": "keyword.operator.assignment.processing" } } }, { "include": "#code" }, { "name": "punctuation.seperator.property.processing", "match": "," } ], "beginCaptures": { "1": { "name": "storage.type.annotation.processing" }, "2": { "name": "punctuation.definition.annotation-arguments.begin.processing" } }, "endCaptures": { "1": { "name": "punctuation.definition.annotation-arguments.end.processing" } } }, { "name": "storage.type.annotation.processing", "match": "@\\w*" } ] }, "anonymous-classes-and-new": { "begin": "\\bnew\\b", "end": "(?\u003c=\\)|\\])(?!\\s*{)|(?\u003c=})|(?=;)", "patterns": [ { "begin": "(\\w+)\\s*(?=\\[)", "end": "}|(?=\\s*(?:;|\\)))", "patterns": [ { "begin": "\\[", "end": "\\]", "patterns": [ { "include": "#code" } ] }, { "begin": "{", "end": "(?=})", "patterns": [ { "include": "#code" } ] } ], "beginCaptures": { "1": { "name": "storage.type.processing" } } }, { "begin": "(?=\\w.*\\()", "end": "(?\u003c=\\))", "patterns": [ { "include": "#object-types" }, { "begin": "\\(", "end": "\\)", "patterns": [ { "include": "#code" } ], "beginCaptures": { "1": { "name": "storage.type.processing" } } } ] }, { "name": "meta.inner-class.processing", "begin": "{", "end": "}", "patterns": [ { "include": "#class-body" } ] } ], "beginCaptures": { "0": { "name": "keyword.control.new.processing" } } }, "assertions": { "patterns": [ { "name": "meta.declaration.assertion.processing", "begin": "\\b(assert)\\s", "end": "$", "patterns": [ { "name": "keyword.operator.assert.expression-seperator.processing", "match": ":" }, { "include": "#code" } ], "beginCaptures": { "1": { "name": "keyword.control.assert.processing" } } } ] }, "class": { "name": "meta.class.processing", "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)", "end": "}", "patterns": [ { "include": "#storage-modifiers" }, { "include": "#comments" }, { "name": "meta.class.identifier.processing", "match": "(class|(?:@)?interface|enum)\\s+(\\w+)", "captures": { "1": { "name": "storage.modifier.processing" }, "2": { "name": "entity.name.type.class.processing" } } }, { "name": "meta.definition.class.inherited.classes.processing", "begin": "extends", "end": "(?={|implements)", "patterns": [ { "include": "#object-types-inherited" }, { "include": "#comments" } ], "beginCaptures": { "0": { "name": "storage.modifier.extends.processing" } } }, { "name": "meta.definition.class.implemented.interfaces.processing", "begin": "(implements)\\s", "end": "(?=\\s*extends|\\{)", "patterns": [ { "include": "#object-types-inherited" }, { "include": "#comments" } ], "beginCaptures": { "1": { "name": "storage.modifier.implements.processing" } } }, { "name": "meta.class.body.processing", "begin": "{", "end": "(?=})", "patterns": [ { "include": "#class-body" } ] } ], "endCaptures": { "0": { "name": "punctuation.section.class.end.processing" } } }, "class-body": { "patterns": [ { "include": "#comments" }, { "include": "#class" }, { "include": "#enums" }, { "include": "#methods" }, { "include": "#annotations" }, { "include": "#storage-modifiers" }, { "include": "#code" } ] }, "code": { "patterns": [ { "include": "#comments" }, { "include": "#class" }, { "begin": "{", "end": "}", "patterns": [ { "include": "#code" } ] }, { "include": "#assertions" }, { "include": "#parens" }, { "include": "#constants-and-special-vars" }, { "include": "#anonymous-classes-and-new" }, { "include": "#keywords" }, { "include": "#storage-modifiers" }, { "include": "#strings" }, { "include": "#all-types" }, { "include": "#processing-methods" }, { "include": "#processing-classes" } ] }, "comments": { "patterns": [ { "name": "comment.block.empty.processing", "match": "/\\*\\*/", "captures": { "0": { "name": "punctuation.definition.comment.processing" } } }, { "include": "#comments-javadoc" }, { "include": "#comments-inline" } ] }, "comments-inline": { "patterns": [ { "name": "comment.block.processing", "begin": "/\\*(?!\\*)", "end": "\\*/", "captures": { "0": { "name": "punctuation.definition.comment.processing" } } }, { "begin": "(^[ \\t]+)?(?=//)", "end": "(?!\\G)", "patterns": [ { "name": "comment.line.double-slash.processing", "begin": "//", "end": "\\n", "beginCaptures": { "0": { "name": "punctuation.definition.comment.processing" } } } ], "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.processing" } } } ] }, "comments-javadoc": { "patterns": [ { "name": "comment.block.documentation.processing", "begin": "/\\*\\*", "end": "\\*/", "patterns": [ { "match": "\\{\\s*(@link)\\s*([a-zA-Z_][a-zA-Z0-9_]+)\\s*\\}", "captures": { "0": { "name": "keyword.other.documentation.inlinetag.processing" }, "1": { "name": "keyword.other.documentation.tag.processing" }, "2": { "name": "keyword.other.documentation.value.processing" } } }, { "include": "#comments-javadoc-tags" } ], "captures": { "0": { "name": "punctuation.definition.comment.processing" } } } ] }, "comments-javadoc-tags": { "patterns": [ { "match": "(@param)\\s+([a-zA-Z_][a-zA-Z0-9_]+)\\b", "captures": { "1": { "name": "keyword.other.documentation.params.processing" }, "2": { "name": "keyword.other.documentation.value.processing" } } }, { "name": "keyword.other.documentation.tag.processing", "match": "@[a-zA-Z]+\\b" } ] }, "constants-and-special-vars": { "patterns": [ { "include": "#processing-variables-and-constants" }, { "name": "constant.language.processing", "match": "\\b(true|false|null)\\b" }, { "name": "variable.language.processing", "match": "\\b(this|super)\\b" }, { "name": "constant.numeric.processing", "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b" }, { "name": "constant.other.processing", "match": "(\\.)?\\b([A-Z][A-Z0-9_]+)(?!\u003c|\\.class|\\s*\\w+\\s*=)\\b", "captures": { "1": { "name": "keyword.operator.dereference.processing" } } } ] }, "enums": { "begin": "^(?=\\s*[A-Z0-9_]+\\s*({|\\(|,))", "end": "(?=;|})", "patterns": [ { "name": "meta.enum.processing", "begin": "\\w+", "end": "(?=,|;|})", "patterns": [ { "include": "#parens" }, { "begin": "{", "end": "}", "patterns": [ { "include": "#class-body" } ] } ], "beginCaptures": { "0": { "name": "constant.other.enum.processing" } } } ] }, "keywords": { "patterns": [ { "name": "keyword.operator.assignment.bitwise.processing", "match": "((\u0026|\\^|\\||\u003c\u003c|\u003e\u003e\u003e?)=)" }, { "name": "keyword.operator.bitwise.processing", "match": "(\u003c\u003c|\u003e\u003e\u003e?|~|\\^)" }, { "name": "keyword.control.catch-exception.processing", "match": "\\b(try|catch|finally|throw)\\b" }, { "name": "keyword.control.ternary.processing", "match": "\\?|:" }, { "name": "keyword.control.processing", "match": "\\b(return|break|case|continue|default|do|while|for|switch|if|else)\\b" }, { "name": "keyword.operator.instanceof.processing", "match": "\\b(instanceof)\\b" }, { "name": "keyword.operator.comparison.processing", "match": "(===?|!=|\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e)" }, { "name": "keyword.operator.assignment.arithmetic.processing", "match": "([+*/%-]=)" }, { "name": "keyword.operator.assignment.processing", "match": "(=)" }, { "name": "keyword.operator.increment-decrement.processing", "match": "(\\-\\-|\\+\\+)" }, { "name": "keyword.operator.arithmetic.processing", "match": "(\\-|\\+|\\*|\\/|%)" }, { "name": "keyword.operator.logical.processing", "match": "(!|\u0026\u0026|\\|\\|)" }, { "name": "keyword.operator.bitwise.processing", "match": "(\\||\u0026)" }, { "name": "keyword.operator.dereference.processing", "match": "(?\u003c=\\S)\\.(?=\\S)" }, { "name": "punctuation.terminator.processing", "match": ";" } ] }, "methods": { "name": "meta.method.processing", "begin": "(?!new)(?=\\w.*\\s+)(?=[^=]+\\()(?=.+{)", "end": "}|(?=;)", "patterns": [ { "include": "#storage-modifiers" }, { "name": "meta.method.identifier.processing", "begin": "(\\w+)\\s*\\(", "end": "\\)", "patterns": [ { "include": "#parameters" } ], "beginCaptures": { "1": { "name": "entity.name.function.processing" } } }, { "name": "meta.method.return-type.processing", "begin": "(?=\\w.*\\s+\\w+\\s*\\()", "end": "(?=\\w+\\s*\\()", "patterns": [ { "include": "#all-types" } ] }, { "include": "#throws" }, { "name": "meta.method.body.processing", "begin": "{", "end": "(?=})", "patterns": [ { "include": "#code" } ] } ] }, "object-types": { "patterns": [ { "include": "#processing-classes" }, { "name": "storage.type.generic.processing", "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)\u003c", "end": "\u003e|[^\\w\\s,\\?\u003c\\[\\]]", "patterns": [ { "include": "#object-types" }, { "name": "storage.type.generic.processing", "begin": "\u003c", "end": "\u003e|[^\\w\\s,\\[\\]\u003c]" } ] }, { "name": "storage.type.object.array.processing", "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)", "end": "(?=[^\\]\\s])", "patterns": [ { "begin": "\\[", "end": "\\]", "patterns": [ { "include": "#code" } ] } ] }, { "name": "storage.type.processing", "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*\\b", "captures": { "1": { "name": "keyword.operator.dereference.processing" } } } ] }, "object-types-inherited": { "patterns": [ { "name": "entity.other.inherited-class.processing", "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)\u003c", "end": "\u003e|[^\\w\\s,\u003c]", "patterns": [ { "include": "#object-types" }, { "name": "storage.type.generic.processing", "begin": "\u003c", "end": "\u003e|[^\\w\\s,\u003c]" } ] }, { "name": "entity.other.inherited-class.processing", "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*", "captures": { "1": { "name": "keyword.operator.dereference.processing" } } } ] }, "parameters": { "patterns": [ { "name": "storage.modifier.processing", "match": "final" }, { "include": "#primitive-arrays" }, { "include": "#primitive-types" }, { "include": "#object-types" }, { "name": "variable.parameter.processing", "match": "\\w+" } ] }, "parens": { "begin": "\\(", "end": "\\)", "patterns": [ { "include": "#code" } ] }, "primitive-arrays": { "patterns": [ { "name": "storage.type.primitive.array.processing", "match": "\\b(?:void|boolean|byte|char|color|short|int|float|long|double)(?=(\\[\\s*\\])+)\\b" } ] }, "primitive-types": { "patterns": [ { "name": "storage.type.primitive.processing", "match": "\\b(?:void|boolean|byte|char|color|short|int|float|long|double)(?!\\s*\\()\\b" } ] }, "processing-classes": { "patterns": [ { "name": "support.type.object.processing", "match": "\\b(P(Applet|Constants|Font|Graphics|Graphics2D|Graphics3D|GraphicsJava2D|Image|Line|Matrix|Matrix2D|Matrix3D|Polygon|Shape|ShapeSVG|SmoothTriangle|Style|Triangle|Vector)|StdXML(Builder|Parser|Reader)|XML(Element|EntityResolver|Exception|ParseException|ValidationException|Validator|Writer))\\b" } ] }, "processing-methods": { "patterns": [ { "name": "support.function.processing", "match": "\\b(?\u003c!\\.)(abs|acos|alpha|ambient|ambientLight|append|applyMatrix|arc|arrayCopy|asin|atan|atan2|background|beginCamera|beginRaw|beginRecord|beginShape|bezier|bezierDetail|bezierPoint|bezierTangent|bezierVertex|binary|blend|blendColor|blue|boolean|box|brightness|byte|cache|camera|ceil|char|charAt|color|colorMode|concat|constrain|contract|copy|cos|createFont|createGraphics|createImage|createInput|createOutput|createReader|createWriter|cursor|curve|curveDetail|curvePoint|curveSegments|curveTangent|curveTightness|curveVertex|day|degrees|delay|directionalLight|dist|draw|duration|ellipse|ellipseMode|emissive|endCamera|endRaw|endRecord|endShape|equals|exit|exp|expand|fill|filter|float|floor|frameRate|frustum|get|green|hex|hint|hour|hue|image|imageMode|indexOf|int|join|keyPressed|keyReleased|keyTyped|length|lerp|lerpColor|lightFalloff|lights|lightSpecular|line|link|list|loadBytes|loadFont|loadImage|loadPixels|loadShape|loadSound|loadStrings|log|lookat|loop|mag|map|mask|match|matchAll|max|millis|min|minute|modelX|modelY|modelZ|month|mouseClicked|mouseDragged|mouseMoved|mousePressed|mouseReleased|nf|nfc|nfp|nfs|noCursor|noFill|noise|noiseDetail|noiseSeed|noLights|noLoop|norm|normal|noSmooth|noStroke|noTint|open|openStream|ortho|param|pause|perspective|play|point|pointLight|popMatrix|popStyle|pow|print|printCamera|println|printMatrix|printProjection|pushMatrix|pushStyle|quad|radians|random|randomSeed|rect|rectMode|red|redraw|requestImage|resetMatrix|reverse|rotate|rotateX|rotateY|rotateZ|round|saturation|save|saveBytes|saveFrame|saveStream|saveStrings|scale|screenX|screenY|screenZ|second|selectFolder|selectInput|selectOutput|set|setup|shape|shapeMode|shininess|shorten|sin|size|skewX|skewY|smooth|sort|specular|sphere|sphereDetail|splice|split|splitTokens|spotLight|sq|sqrt|status|stop|str|stroke|strokeCap|strokeJoin|strokeWeight|subset|substring|tan|text|textAlign|textAscent|textDescent|textFont|textLeading|textMode|textSize|texture|textureMode|textWidth|time|tint|toLowerCase|toUpperCase|translate|triangle|trim|unbinary|unhex|unHint|updatePixels|vertex|volume|year)(?=\\s*\\()" } ] }, "processing-variables-and-constants": { "patterns": [ { "name": "variable.other.processing", "match": "\\b(focused|frameCount|frameRate|height|height|key|keyCode|keyPressed|mouseButton|mousePressed|mouseX|mouseY|online|pixels|pmouseX|pmouseY|screen|width)(?!\\s*\\()\\b" }, { "name": "support.constant.processing", "match": "\\b(ADD|ALIGN_CENTER|ALIGN_LEFT|ALIGN_RIGHT|ALPHA|ALPHA_MASK|ALT|AMBIENT|ARGB|ARROW|BACKSPACE|BEVEL|BLEND|BLEND|BLUE_MASK|BLUR|CENTER|CENTER_RADIUS|CHATTER|CODED|COMPLAINT|COMPONENT|COMPOSITE|CONCAVE_POLYGON|CONTROL|CONVEX_POLYGON|CORNER|CORNERS|CROSS|CUSTOM|DARKEST|DEGREES|DEG_TO_RAD|DELETE|DIFFERENCE|DIFFUSE|DISABLED|DISABLE_TEXT_SMOOTH|DOWN|ENTER|EPSILON|ESC|GIF|GREEN_MASK|GREY|HALF|HALF_PI|HALF_PI|HAND|HARD_LIGHT|HSB|IMAGE|INVERT|JAVA2D|JPEG|LEFT|LIGHTEST|LINES|LINE_LOOP|LINE_STRIP|MAX_FLOAT|MITER|MODEL|MOVE|MULTIPLY|NORMALIZED|NO_DEPTH_TEST|NTSC|ONE|OPAQUE|OPENGL|ORTHOGRAPHIC|OVERLAY|P2D|P3D|PAL|PERSPECTIVE|PI|PI|PIXEL_CENTER|POINTS|POLYGON|POSTERIZE|PROBLEM|PROJECT|QUADS|QUAD_STRIP|QUARTER_PI|RADIANS|RAD_TO_DEG|RED_MASK|REPLACE|RETURN|RGB|RIGHT|ROUND|SCREEN|SECAM|SHIFT|SOFT_LIGHT|SPECULAR|SQUARE|SUBTRACT|SVIDEO|TAB|TARGA|TEXT|TFF|THIRD_PI|THRESHOLD|TIFF|TRIANGLES|TRIANGLE_FAN|TRIANGLE_STRIP|TUNER|TWO|TWO_PI|TWO_PI|UP|WAIT|WHITESPACE)\\b" } ] }, "storage-modifiers": { "match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient)\\b", "captures": { "1": { "name": "storage.modifier.processing" } } }, "strings": { "patterns": [ { "name": "string.quoted.double.processing", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.processing", "match": "\\\\." } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.processing" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.processing" } } }, { "name": "string.quoted.single.processing", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.literal.processing", "match": "\\\\([0-7]{3}|u[A-Fa-f0-9]{4})" }, { "name": "constant.character.escape.processing", "match": "\\\\." } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.processing" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.processing" } } } ] }, "throws": { "name": "meta.throwables.processing", "begin": "throws", "end": "(?={|;)", "patterns": [ { "include": "#object-types" } ], "beginCaptures": { "0": { "name": "storage.modifier.processing" } } }, "values": { "patterns": [ { "include": "#strings" }, { "include": "#object-types" }, { "include": "#constants-and-special-vars" } ] } } }