{ "name": "Lisp", "scopeName": "source.lisp", "patterns": [ { "begin": "(^[ \\t]+)?(?=;)", "end": "(?!\\G)", "patterns": [ { "name": "comment.line.semicolon.lisp", "begin": ";", "end": "\\n", "beginCaptures": { "0": { "name": "punctuation.definition.comment.lisp" } } } ], "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.lisp" } } }, { "name": "meta.function.lisp", "match": "(\\b(?i:(defun|defmethod|defmacro))\\b)(\\s+)((\\w|\\-|\\!|\\?)*)", "captures": { "2": { "name": "storage.type.function-type.lisp" }, "4": { "name": "entity.name.function.lisp" } } }, { "name": "constant.character.lisp", "match": "(#|\\?)(\\w|[\\\\+-=\u003c\u003e'\"\u0026#])+", "captures": { "1": { "name": "punctuation.definition.constant.lisp" } } }, { "name": "variable.other.global.lisp", "match": "(\\*)(\\S*)(\\*)", "captures": { "1": { "name": "punctuation.definition.variable.lisp" }, "3": { "name": "punctuation.definition.variable.lisp" } } }, { "name": "keyword.control.lisp", "match": "\\b(?i:case|do|let|loop|if|else|when)\\b" }, { "name": "keyword.operator.lisp", "match": "\\b(?i:eq|neq|and|or)\\b" }, { "name": "constant.language.lisp", "match": "\\b(?i:null|nil)\\b" }, { "name": "support.function.lisp", "match": "(?\u003c![-\\w])(?i:cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn)(?![-\\w])" }, { "name": "constant.numeric.lisp", "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" }, { "name": "string.quoted.double.lisp", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.lisp", "match": "\\\\." } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.lisp" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.lisp" } } } ] }