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