297 lines
6.8 KiB
JSON
297 lines
6.8 KiB
JSON
{
|
|
"scopeName": "source.http",
|
|
"fileTypes": ["http", "rest"],
|
|
"keyEquivalent": "^~H",
|
|
"name": "http",
|
|
"patterns": [
|
|
{
|
|
"begin": "^\\s*(?=curl)",
|
|
"name": "http.request.curl",
|
|
"end": "^\\s*(\\#{3,}.*?)?\\s*$",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "comment.line.sharp.http"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "source.shell"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\s*(?=(\\[|{[^{]))",
|
|
"name": "http.request.body.json",
|
|
"end": "^\\s*(\\#{3,}.*?)?\\s*$",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "comment.line.sharp.http"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "source.json"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "^\\s*(?=<\\S)",
|
|
"name": "http.request.body.xml",
|
|
"end": "^\\s*(\\#{3,}.*?)?\\s*$",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "comment.line.sharp.http"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "text.xml"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\s*(?=(query|mutation))",
|
|
"name": "http.request.body.graphql",
|
|
"end": "^\\s*(\\#{3,}.*?)?\\s*$",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "comment.line.sharp.http"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "source.graphql"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\s*(?=(query|mutation))",
|
|
"name": "http.request.body.graphql",
|
|
"end": "^\\{\\s*$",
|
|
"patterns": [
|
|
{
|
|
"include": "source.graphql"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#metadata"
|
|
},
|
|
{
|
|
"include": "#comments"
|
|
},
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.other.http"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.http"
|
|
},
|
|
"3": {
|
|
"name": "string.other.http"
|
|
}
|
|
},
|
|
"match": "^\\s*(@)([^\\s=]+)\\s*=\\s*(.*?)\\s*$",
|
|
"name": "http.filevariable"
|
|
},
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.operator.http"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.http"
|
|
},
|
|
"3": {
|
|
"name": "string.other.http"
|
|
}
|
|
},
|
|
"match": "^\\s*(\\?|&)([^=\\s]+)=(.*)$",
|
|
"name": "http.query"
|
|
},
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.name.tag.http"
|
|
},
|
|
"2": {
|
|
"name": "keyword.other.http"
|
|
},
|
|
"3": {
|
|
"name": "string.other.http"
|
|
}
|
|
},
|
|
"match": "^([\\w\\-]+)\\s*(\\:)\\s*([^/].*?)\\s*$",
|
|
"name": "http.headers"
|
|
},
|
|
{
|
|
"include": "#request-line"
|
|
},
|
|
{
|
|
"include": "#response-line"
|
|
}
|
|
],
|
|
"repository": {
|
|
"metadata": {
|
|
"patterns": [
|
|
{
|
|
"match": "^\\s*\\#{1,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
},
|
|
"3": {
|
|
"name": "entity.name.type.http"
|
|
}
|
|
},
|
|
"name": "comment.line.sharp.http"
|
|
},
|
|
{
|
|
"match": "^\\s*\\/{2,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
},
|
|
"3": {
|
|
"name": "entity.name.type.http"
|
|
}
|
|
},
|
|
"name": "comment.line.double-slash.http"
|
|
},
|
|
{
|
|
"match": "^\\s*\\#{1,}\\s+((@)note)\\s*$",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
}
|
|
},
|
|
"name": "comment.line.sharp.http"
|
|
},
|
|
{
|
|
"match": "^\\s*\\/{2,}\\s+((@)note)\\s*$",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
}
|
|
},
|
|
"name": "comment.line.double-slash.http"
|
|
},
|
|
{
|
|
"match": "^\\s*\\#{1,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.http"
|
|
},
|
|
"4": {
|
|
"name": "string.other.http"
|
|
}
|
|
},
|
|
"name": "comment.line.sharp.http"
|
|
},
|
|
{
|
|
"match": "^\\s*\\/{2,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.http"
|
|
},
|
|
"4": {
|
|
"name": "string.other.http"
|
|
}
|
|
},
|
|
"name": "comment.line.double-slash.http"
|
|
}
|
|
]
|
|
},
|
|
"comments": {
|
|
"patterns": [
|
|
{
|
|
"match": "^\\s*\\#{1,}.*$",
|
|
"name": "comment.line.sharp.http"
|
|
},
|
|
{
|
|
"match": "^\\s*\\/{2,}.*$",
|
|
"name": "comment.line.double-slash.http"
|
|
}
|
|
]
|
|
},
|
|
"request-line": {
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.control.http"
|
|
},
|
|
"2": {
|
|
"name": "const.language.http"
|
|
},
|
|
"3": {
|
|
"patterns": [
|
|
{
|
|
"include": "#protocol"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"match": "(?i)^(?:(get|post|put|delete|patch|head|options|connect|trace)\\s+)?\\s*(.+?)(?:\\s+(HTTP\\/\\S+))?$",
|
|
"name": "http.requestline"
|
|
},
|
|
"response-line": {
|
|
"captures": {
|
|
"1": {
|
|
"patterns": [
|
|
{
|
|
"include": "#protocol"
|
|
}
|
|
]
|
|
},
|
|
"2": {
|
|
"name": "constant.numeric.http"
|
|
},
|
|
"3": {
|
|
"name": "string.other.http"
|
|
}
|
|
},
|
|
"match": "(?i)^\\s*(HTTP\\/\\S+)\\s([1-5][0-9][0-9])\\s(.*)$",
|
|
"name": "http.responseLine"
|
|
},
|
|
"protocol": {
|
|
"patterns": [
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.other.http"
|
|
},
|
|
"2": {
|
|
"name": "constant.numeric.http"
|
|
}
|
|
},
|
|
"name": "http.version",
|
|
"match": "(HTTP)/(\\d+.\\d+)"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|