{ "name": "Nim Source Code Filter", "scopeName": "source.nim_filter", "patterns": [ { "name": "meta.start.nim_filter", "begin": "\\A(#!)", "end": "\\z(!?\\n)", "patterns": [ { "name": "comment.line.nim_filter", "begin": "^\\s*#", "end": "\\n", "patterns": [ { "name": "constant.numeric.float.decimal.nim_filter", "match": "\\b((\\d[_\\d]*\\.[_\\d]+([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*))('[fF](32|64))?" }, { "name": "constant.numeric.integer.hexadecimal.nim_filter", "match": "\\b(0[xX][0-9A-Fa-f][_0-9A-Fa-f]*)('[iIuU](8|16|32|64))?" }, { "name": "constant.numeric.integer.octal.nim_filter", "match": "\\b(0o[0-7][_0-7]*)('[iIuUfF](8|16|32|64))?" }, { "name": "constant.numeric.integer.binary.nim_filter", "match": "\\b(0(b|B)[01][_01]*)('[iIuUfF](8|16|32|64))?" }, { "name": "constant.numeric.integer.decimal.nim_filter", "match": "\\b(\\d[_\\d]*)('[iIuUfF](8|16|32|64))?" }, { "name": "constant.language.nim_filter", "match": "\\b(true|false|inf|nil)\\b" }, { "name": "keyword.control.nim_filter", "match": "\\b(block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b" }, { "name": "keyword.operator.boolean.nim_filter", "match": "(\\b(and|in|is|isnot|not|notin|or|xor)\\b)" }, { "name": "keyword.operator.nim_filter", "match": "(\\b()\\b|(=|\\+|-|\\*|/|\u003c|\u003e|@|\\$|~|\u0026|%|!|\\?|\\^|\\.|:|\\\\)+)" }, { "name": "keyword.other.nim_filter", "match": "(\\b(addr|as|asm|atomic|bind|cast|concept|const|discard|distinct|div|enum|export|from|import|include|let|mod|object|of|ptr|ref|shl|shr|static|tuple|type|var)\\b)" }, { "name": "keyword.invalid.nim_filter", "match": "(\\b(converter|generic|interface|lambda|mixin|out|shared|with|without)\\b)" }, { "name": "storage.type.concrete.nim_filter", "match": "\\b(((uint|int|float)(8|16|32|64)?)|bool|string|cstring|char|tobject|typedesc)\\b" }, { "name": "storage.type.generic.nim_filter", "match": "\\b(range|array|seq|natural|set|ref|ptr)\\b" }, { "name": "storage.type.function.nim_filter", "match": "\\b(proc|iterator|method|template|macro)\\b" }, { "name": "keyword.function.nim_filter", "match": "\\b(echo|newException)\\b" }, { "name": "storage.type.generic.nim_filter", "match": "\\b(openarray|varargs|void)\\b" }, { "name": "string.quoted.triple.nim_filter", "begin": "(\\w[_\\w]*)?\\\"\\\"\\\"", "end": "\\\"\\\"\\\"[^\"]" }, { "name": "string.quoted.double.raw.nim_filter", "begin": "r\\\"", "end": "\\\"", "patterns": [ { "match": "\\\"\\\"" } ] }, { "name": "string.quoted.double.nim_filter", "begin": "(\\w[_\\w]*)?\\\"", "end": "\\\"", "patterns": [ { "match": "(\\\\([abenrclftv]|[\"']|[0-9])|x[0-9A-Fa-f]{2})" } ] }, { "name": "string.quoted.single.nim_filter", "match": "\\'(\\\\\\d{1,3}|\\\\?[^\\n]?)\\'" } ] } ] } ] }