{ "name": "Wavefront Material", "scopeName": "source.wavefront.mtl", "fileTypes": [ "mtl" ], "patterns": [ { "include": "#main" } ], "repository": { "main": { "patterns": [ { "include": "#comment" }, { "include": "#newmtl" }, { "include": "#colour" }, { "include": "#texture" }, { "include": "#reflection" }, { "include": "#number" } ] }, "comment": { "name": "comment.line.number-sign.wavefront.mtl", "begin": "#", "end": "$", "beginCaptures": { "0": { "name": "punctuation.definition.comment.wavefront.mtl" } } }, "number": { "patterns": [ { "name": "constant.numeric.integer.wavefront.mtl", "match": "(?<=[\\s,]|^)-?\\d+(?![-\\d.])" }, { "name": "constant.numeric.float.wavefront.mtl", "match": "(?<=[\\s,]|^)-?(\\d+)(?:(\\.)(\\d+))?\\b", "captures": { "1": { "name": "leading.decimal" }, "2": { "name": "decimal.separator" }, "3": { "name": "trailing.decimal" } } }, { "name": "constant.numeric.float.no-leading-digits.wavefront.mtl", "match": "(?<=[\\s,]|^)-?(\\.)(\\d+)\\b", "captures": { "1": { "name": "decimal.separator" }, "2": { "name": "trailing.decimal" } } } ] }, "newmtl": { "name": "meta.constructor.wavefront.mtl", "match": "^\\s*(newmtl)(?=\\s|$)(?:\\s+(\\w+))?", "captures": { "1": { "name": "keyword.function.$1.wavefront.mtl" }, "2": { "name": "variable.parameter.material-name.wavefront.mtl" } } }, "colour": { "patterns": [ { "include": "#ka" }, { "include": "#kd" }, { "include": "#ks" }, { "include": "#ke" }, { "include": "#tf" }, { "include": "#illum" }, { "include": "#d" }, { "include": "#tr" }, { "include": "#ns" }, { "include": "#sharpness" }, { "include": "#ni" } ] }, "ka": { "patterns": [ { "name": "meta.ambient-reflectivity.spectral-curve.wavefront.mtl", "match": "^\\s*(Ka)\\s+(spectral)\\s+(?!#)(\\S+)(?