{ "fileTypes": [ "sc", "scd" ], "foldingStartMarker": "\\{|\\/\\*", "foldingStopMarker": "\\}|\\*\\/", "name": "SuperCollider", "patterns": [ { "match": "\\b(arg|var|classvar|const|this|thisThread|thisMethod|thisFunction|thisFunctionDef|thisProcess|true|false|inf|nil)\\b", "name": "keyword.control.supercollider" }, { "begin": "\"", "end": "\"", "name": "string.quoted.double.supercollider", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.supercollider" } ] }, { "begin": "'", "end": "'", "name": "entity.name.symbol.supercollider", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.supercollider" } ] }, { "match": "[a-z][a-zA-Z0-9_]*\\:", "name": "support.name.tag.supercollider" }, { "captures": { "1": { "name": "entity.name.class.supercollider" } }, "match": "^\\s*\\+*\\s*([A-Z]{1}[a-zA-Z0-9_]*)\\s*\\:{1}\\s*([A-Z]{1}[a-zA-Z0-9_]*)\\s*\\{" }, { "captures": { "1": { "name": "entity.name.class.supercollider" } }, "match": "^([A-Z_]{1}[a-zA-Z0-9_]*)[^a-zA-Z0-9_]" }, { "match": "\\|[a-zA-Z0-9\\#\\[\\]\\\"\\_\\=\\.\\(\\)[[:space:]]\\,]+\\|", "name": "variable.parameter.function.supercollider" }, { "captures": { "1": { "name": "entity.name.class.supercollider" } }, "match": "[^a-zA-Z0-9\\\\]([A-Z_]{1}[a-zA-Z0-9_]*)[^a-zA-Z0-9_]" }, { "match": "\\\\[a-zA-Z0-9\\_]+", "name": "entity.name.symbol.supercollider" }, { "captures": { "1": { "name": "entity.name.function.supercollider" } }, "match": "^\\s*(\\**[a-z]{1}[a-zA-Z0-9_]+)\\s*\\{" }, { "match": "\\~[a-z][a-zA-Z0-9_]*", "name": "variable.language.supercollider" }, { "match": "\\/\\/.*", "name": "comment.single.supercollider" }, { "begin": "\\/\\*", "end": "\\*\\/", "name": "comment.multiline.supercollider" }, { "comment": "source: ruby bundle", "match": "\\b(0[xX][0-9A-Fa-f](?>_?[0-9A-Fa-f])*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0[bB][01]+)\\b", "name": "constant.numeric.supercollider" } ], "scopeName": "source.supercollider" }