{ "scopeName": "source.strings", "fileTypes": [ "strings" ], "name": "Strings File (Objective-C)", "patterns": [ { "begin": "/\\*", "captures": { "0": { "name": "punctuation.definition.comment.strings" } }, "end": "\\*/", "name": "comment.block.strings" }, { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.strings" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.strings" } }, "name": "string.quoted.double.strings", "patterns": [ { "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)", "name": "constant.character.escape.strings" }, { "match": "\\\\.", "name": "invalid.illegal.unknown-escape.strings" }, { "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t[,;:_]? # separator character (AltiVec)\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n\t\t\t\t\t\t[@diouxXDOUeEfFgGaACcSspn%] # conversion type\n\t\t\t\t\t", "name": "constant.other.placeholder.strings" }, { "match": "%", "name": "invalid.illegal.placeholder.c" } ] } ] }