diff --git a/syntax/request.vim b/syntax/request.vim new file mode 100644 index 0000000..349362d --- /dev/null +++ b/syntax/request.vim @@ -0,0 +1,33 @@ +if exists("b:current_syntax") + finish +endif + +runtime! syntax/html.vim +runtime! after/syntax/html.vim + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword httpMethod OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT PATCH contained + +syn match httpProto 'HTTP/[0-9.]\+' contained +syn match httpStatusCode '[0-9]\{3\}' contained +syn match httpStatus '[0-9]\{3\} .*$' contained contains=httpStatusCode +syn match httpHeaderKey '^[A-Z][A-Za-z0-9\-]*:' contained +syn match httpURILine '^\(OPTIONS\|GET\|HEAD\|POST\|PUT\|DELETE\|TRACE\|CONNECT\|PATCH\)\( .*\)\?\(HTTP/[0-9.]\+\)\?$' contains=httpMethod,httpProto contained +syn match httpResponseLine '^HTTP/[0-9.]\+ [0-9]\{3\}.*$' contains=httpProto,httpStatus contained +syn match httpHeaderLine '^[A-Z][A-Za-z0-9\-]*: .*$' contains=httpHeaderKey contained + +syn region httpHeader start='^\(OPTIONS\|GET\|HEAD\|POST\|PUT\|DELETE\|TRACE\|CONNECT\|PATCH\)\( .*\)\?\(HTTP/[0-9.]\+\)\?$' end='\n\s*\n' contains=httpURILine,httpHeaderLine +syn region httpHeader start='^HTTP/[0-9.]\+ [0-9]\{3\}.*$' end='\n\s*\n' contains=httpResponseLine,httpHeaderLine + +hi link httpMethod Type +hi link httpProto Statement +hi link httpHeaderKey Identifier +hi link httpStatus String +hi link httpStatusCode Number + +let b:current_syntax = 'request' + +let &cpo = s:cpo_save +unlet s:cpo_save