1
0
mirror of https://github.com/alecthomas/chroma.git synced 2025-03-17 20:58:08 +02:00

support http response with no reason phrase

This commit is contained in:
yhw 2023-04-09 13:55:22 +08:00 committed by Alec Thomas
parent 029798b351
commit 3c21942824
5 changed files with 71 additions and 1 deletions

View File

@ -23,7 +23,7 @@ func httpRules() Rules {
return Rules{
"root": {
{`(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH|CONNECT)( +)([^ ]+)( +)(HTTP)(/)([123](?:\.[01])?)(\r?\n|\Z)`, ByGroups(NameFunction, Text, NameNamespace, Text, KeywordReserved, Operator, LiteralNumber, Text), Push("headers")},
{`(HTTP)(/)([123](?:\.[01])?)( +)(\d{3})( +)([^\r\n]+)(\r?\n|\Z)`, ByGroups(KeywordReserved, Operator, LiteralNumber, Text, LiteralNumber, Text, NameException, Text), Push("headers")},
{`(HTTP)(/)([123](?:\.[01])?)( +)(\d{3})( *)([^\r\n]*)(\r?\n|\Z)`, ByGroups(KeywordReserved, Operator, LiteralNumber, Text, LiteralNumber, Text, NameException, Text), Push("headers")},
},
"headers": {
{`([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|\Z)`, EmitterFunc(httpHeaderBlock), nil},

View File

@ -0,0 +1,6 @@
HTTP/1.1 304
Server: nginx
Date: Sat, 08 Apr 2023 19:25:13 GMT
Connection: keep-alive
Keep-Alive: timeout=60

View File

@ -0,0 +1,28 @@
[
{"type":"KeywordReserved","value":"HTTP"},
{"type":"Operator","value":"/"},
{"type":"LiteralNumber","value":"1.1"},
{"type":"Text","value":" "},
{"type":"LiteralNumber","value":"304"},
{"type":"Text","value":"\n"},
{"type":"Name","value":"Server"},
{"type":"Operator","value":":"},
{"type":"Text","value":" "},
{"type":"Literal","value":"nginx"},
{"type":"Text","value":"\n"},
{"type":"Name","value":"Date"},
{"type":"Operator","value":":"},
{"type":"Text","value":" "},
{"type":"Literal","value":"Sat, 08 Apr 2023 19:25:13 GMT"},
{"type":"Text","value":"\n"},
{"type":"Name","value":"Connection"},
{"type":"Operator","value":":"},
{"type":"Text","value":" "},
{"type":"Literal","value":"keep-alive"},
{"type":"Text","value":"\n"},
{"type":"Name","value":"Keep-Alive"},
{"type":"Operator","value":":"},
{"type":"Text","value":" "},
{"type":"Literal","value":"timeout=60"},
{"type":"Text","value":"\n\n"}
]

6
lexers/testdata/http.response.actual vendored Normal file
View File

@ -0,0 +1,6 @@
HTTP/1.1 202 OK
Server: nginx
Date: Sat, 08 Apr 2023 19:25:13 GMT
Connection: keep-alive
Keep-Alive: timeout=60

30
lexers/testdata/http.response.expected vendored Normal file
View File

@ -0,0 +1,30 @@
[
{"type":"KeywordReserved","value":"HTTP"},
{"type":"Operator","value":"/"},
{"type":"LiteralNumber","value":"1.1"},
{"type":"Text","value":" "},
{"type":"LiteralNumber","value":"202"},
{"type":"Text","value":" "},
{"type":"NameException","value":"OK"},
{"type":"Text","value":"\n"},
{"type":"Name","value":"Server"},
{"type":"Operator","value":":"},
{"type":"Text","value":" "},
{"type":"Literal","value":"nginx"},
{"type":"Text","value":"\n"},
{"type":"Name","value":"Date"},
{"type":"Operator","value":":"},
{"type":"Text","value":" "},
{"type":"Literal","value":"Sat, 08 Apr 2023 19:25:13 GMT"},
{"type":"Text","value":"\n"},
{"type":"Name","value":"Connection"},
{"type":"Operator","value":":"},
{"type":"Text","value":" "},
{"type":"Literal","value":"keep-alive"},
{"type":"Text","value":"\n"},
{"type":"Name","value":"Keep-Alive"},
{"type":"Operator","value":":"},
{"type":"Text","value":" "},
{"type":"Literal","value":"timeout=60"},
{"type":"Text","value":"\n\n"}
]