You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.3 KiB

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