{ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "name": "qsharp", "fileTypes": ["qs"], "patterns": [ { "include": "#comments" }, { "include": "#functions" }, { "include": "#keywords" }, { "include": "#operators" }, { "include": "#types" }, { "include": "#constants" }, { "include": "#strings" }, { "include": "#variables" } ], "repository": { "comments": { "patterns": [ { "name": "comment.line.double-slash", "match": "\\/\\/.*$" }, { "name": "comment.documentation", "match": "\\/\\/\\/.*$" } ] }, "functions": { "patterns": [ { "comment": "function definition", "name": "meta.function.definition.qsharp", "begin": "\\b(function)\\s+([A-Za-z0-9_]+)(\\()", "beginCaptures": { "1": { "name": "keyword.other.qsharp" }, "2": { "name": "entity.name.function.qsharp" }, "3": { "name": "punctuation.brackets.round.qsharp" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.brackets.round.qsharp" } }, "patterns": [ { "include": "#comments" }, { "include": "#functions" }, { "include": "#keywords" }, { "include": "#operators" }, { "include": "#types" }, { "include": "#constants" }, { "include": "#strings" }, { "include": "#variables" } ] }, { "comment": "function calls", "name": "meta.function.call.qsharp", "begin": "\\b(?)|(\\+)|(-)|(\\*)|(\\/)|(\\^)|(%)|(\\|)|(\\&\\&\\&)|(\\~\\~\\~)|(\\.\\.\\.)|(\\.\\.)|(\\?)" } ] }, "types": { "patterns": [ { "name": "storage.type.qsharp", "match": "\\b(Int|BigInt|Double|Bool|Qubit|Pauli|Result|Range|String|Unit|Ctl|Adj|is)\\b" } ] }, "constants": { "patterns": [ { "name": "constant.language.qsharp", "match": "\\b(true|false|Pauli(I|X|Y|Z))\\b" }, { "name": "constant.other.result.qsharp", "match": "\\b(One|Zero)\\b" }, { "comment": "integers and decimals", "name": "constant.numeric.qsharp", "match": "\\b[\\d_]*\\.?[\\d_]\\b" } ] }, "strings": { "patterns": [ { "name": "string.quoted.double.qsharp", "begin": "(\\$|)\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.qsharp", "match": "\\\\." } ] } ] }, "variables": { "patterns": [ { "name": "variable.other.qsharp", "match": "\\b(?