{ "comment": "Ada -- chris@cjack.com. Feel free to modify, distribute, be happy. Share and enjoy.", "fileTypes": [ "adb", "ads" ], "keyEquivalent": "^~A", "name": "Ada", "patterns": [ { "captures": { "1": { "name": "storage.type.function.ada" }, "2": { "name": "entity.name.function.ada" } }, "match": "\\b(?i:(function|procedure))\\b\\s+(\\w+(\\.\\w+)?|\"(?:\\+|-|=|\\*|/)\")", "name": "meta.function.ada" }, { "captures": { "1": { "name": "storage.type.package.ada" }, "2": { "name": "keyword.other.body.ada" }, "3": { "name": "entity.name.type.package.ada" } }, "match": "\\b(?i:(package)(?:\\b\\s+(body))?)\\b\\s+(\\w+(\\.\\w+)*|\"(?:\\+|-|=|\\*|/)\")", "name": "meta.function.ada" }, { "captures": { "1": { "name": "storage.type.function.ada" }, "2": { "name": "entity.name.function.ada" } }, "match": "\\b(?i:(end))\\b\\s+(\\w+(\\.\\w+)*|\"(\\+|-|=|\\*|/)\")\\s?;", "name": "meta.function.end.ada" }, { "captures": { "1": { "name": "keyword.control.import.limited.ada" }, "2": { "name": "keyword.control.import.private.ada" }, "3": { "name": "keyword.control.import.ada" }, "4": { "name": "entity.name.function.ada" } }, "match": "^\\s*(?:(limited)\\s+)?(?:(private)\\s+)?(with)\\s+(\\w+(\\.\\w+)*)\\s*;", "name": "meta.import.ada" }, { "match": "\\b(?i:(begin|end|package))\\b", "name": "keyword.control.ada" }, { "match": "\\b(?i:(\\=>|abort|abs|abstract|accept|access|aliased|all|and|array|at|body|case|constant|declare|delay|delta|digits|do|else|elsif|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|or|others|out|overriding|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor))\\b", "name": "keyword.other.ada" }, { "match": "\\b(?i:([0-9](_?[0-9])*((#[0-9a-f](_?[0-9a-f])*#((e(\\+|-)?[0-9](_?[0-9])*\\b)|\\B))|((\\.[0-9](_?[0-9])*)?(e(\\+|-)?[0-9](_?[0-9])*)?\\b))))", "name": "constant.numeric.ada" }, { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ada" } }, "end": "\"(?!\")", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ada" } }, "name": "string.quoted.double.ada", "patterns": [ { "match": "\"\"", "name": "constant.character.escape.ada" }, { "match": "\\n", "name": "invalid.illegal.lf-in-string.ada" } ] }, { "captures": { "1": { "name": "punctuation.definition.string.begin.ada" }, "2": { "name": "punctuation.definition.string.end.ada" } }, "match": "(').(')", "name": "string.quoted.single.ada" }, { "begin": "(^[ \\t]+)?(?=--)", "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.ada" } }, "end": "(?!\\G)", "patterns": [ { "begin": "--", "beginCaptures": { "0": { "name": "punctuation.definition.comment.ada" } }, "end": "\\n", "name": "comment.line.double-dash.ada" } ] } ], "scopeName": "source.ada", "uuid": "0AB8A36E-6B1D-11D9-B034-000D93589AF6" }