301 lines
6.8 KiB
JSON
301 lines
6.8 KiB
JSON
{
|
|
"displayName": "HTTP",
|
|
"fileTypes": [
|
|
"http",
|
|
"rest"
|
|
],
|
|
"name": "http",
|
|
"patterns": [
|
|
{
|
|
"begin": "^\\s*(?=curl)",
|
|
"end": "^\\s*(#{3,}.*?)?\\s*$",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "comment.line.sharp.http"
|
|
}
|
|
},
|
|
"name": "http.request.curl",
|
|
"patterns": [
|
|
{
|
|
"include": "source.shell"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\s*(?=(\\[|\\{[^{]))",
|
|
"end": "^\\s*(#{3,}.*?)?\\s*$",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "comment.line.sharp.http"
|
|
}
|
|
},
|
|
"name": "http.request.body.json",
|
|
"patterns": [
|
|
{
|
|
"include": "source.json"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "^\\s*(?=<\\S)",
|
|
"end": "^\\s*(#{3,}.*?)?\\s*$",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "comment.line.sharp.http"
|
|
}
|
|
},
|
|
"name": "http.request.body.xml",
|
|
"patterns": [
|
|
{
|
|
"include": "text.xml"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\s*(?=(query|mutation))",
|
|
"end": "^\\s*(#{3,}.*?)?\\s*$",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "comment.line.sharp.http"
|
|
}
|
|
},
|
|
"name": "http.request.body.graphql",
|
|
"patterns": [
|
|
{
|
|
"include": "source.graphql"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\s*(?=(query|mutation))",
|
|
"end": "^\\{\\s*$",
|
|
"name": "http.request.body.graphql",
|
|
"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": {
|
|
"comments": {
|
|
"patterns": [
|
|
{
|
|
"match": "^\\s*#+.*$",
|
|
"name": "comment.line.sharp.http"
|
|
},
|
|
{
|
|
"match": "^\\s*/{2,}.*$",
|
|
"name": "comment.line.double-slash.http"
|
|
}
|
|
]
|
|
},
|
|
"metadata": {
|
|
"patterns": [
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
},
|
|
"3": {
|
|
"name": "entity.name.type.http"
|
|
}
|
|
},
|
|
"match": "^\\s*#+\\s+((@)name)\\s+([^.\\s]+)$",
|
|
"name": "comment.line.sharp.http"
|
|
},
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
},
|
|
"3": {
|
|
"name": "entity.name.type.http"
|
|
}
|
|
},
|
|
"match": "^\\s*/{2,}\\s+((@)name)\\s+([^.\\s]+)$",
|
|
"name": "comment.line.double-slash.http"
|
|
},
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
}
|
|
},
|
|
"match": "^\\s*#+\\s+((@)note)\\s*$",
|
|
"name": "comment.line.sharp.http"
|
|
},
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
}
|
|
},
|
|
"match": "^\\s*/{2,}\\s+((@)note)\\s*$",
|
|
"name": "comment.line.double-slash.http"
|
|
},
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.http"
|
|
},
|
|
"4": {
|
|
"name": "string.other.http"
|
|
}
|
|
},
|
|
"match": "^\\s*#+\\s+((@)prompt)\\s+(\\S+)(?:\\s+(.*))?\\s*$",
|
|
"name": "comment.line.sharp.http"
|
|
},
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.block.tag.metadata"
|
|
},
|
|
"3": {
|
|
"name": "variable.other.http"
|
|
},
|
|
"4": {
|
|
"name": "string.other.http"
|
|
}
|
|
},
|
|
"match": "^\\s*/{2,}\\s+((@)prompt)\\s+(\\S+)(?:\\s+(.*))?\\s*$",
|
|
"name": "comment.line.double-slash.http"
|
|
}
|
|
]
|
|
},
|
|
"protocol": {
|
|
"patterns": [
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.other.http"
|
|
},
|
|
"2": {
|
|
"name": "constant.numeric.http"
|
|
}
|
|
},
|
|
"match": "(HTTP)/(\\d+.\\d+)",
|
|
"name": "http.version"
|
|
}
|
|
]
|
|
},
|
|
"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|lock|unlock|propfind|proppatch|copy|move|mkcol|mkcalendar|acl|search)\\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"
|
|
}
|
|
},
|
|
"scopeName": "source.http"
|
|
}
|