" Vim syntax file
" Language: Vroom (vim testing and executable documentation)
" Maintainer: David Barnett (https://github.com/google/vim-ft-vroom)
" Last Change: 2014 Jul 23
" quit when a syntax file was already loaded
if exists('b:current_syntax')
finish
endif
let s:cpo_save = &cpo
set cpo-=C
syn include @vroomVim syntax/vim.vim
syn include @vroomShell syntax/sh.vim
syntax region vroomAction
\ matchgroup=vroomOutput
\ start='\m^ ' end='\m$' keepend
\ contains=vroomControlBlock
syntax region vroomAction
\ matchgroup=vroomOutput
\ start='\m^ & ' end='\m$' keepend
\ contains=vroomControlBlock
syntax match vroomOutput '\m^ &$'
syntax region vroomMessageBody
\ matchgroup=vroomMessage
\ start='\m^ \~ ' end='\m$' keepend
\ contains=vroomControlBlock
syntax region vroomColoredAction
\ matchgroup=vroomInput
\ start='\m^ > ' end='\m$' keepend
\ contains=vimNotation,vroomControlBlock
syntax region vroomAction
\ matchgroup=vroomInput
\ start='\m^ % ' end='\m$' keepend
\ contains=vimNotation,vroomControlBlock
syntax region vroomAction
\ matchgroup=vroomContinuation
\ start='\m^ |' end='\m$' keepend
syntax region vroomAction
\ start='\m^ \ze:' end='\m$' keepend
\ contains=@vroomVim,vroomControlBlock
syntax region vroomAction
\ matchgroup=vroomDirective
\ start='\m^ @\i\+' end='\m$' keepend
\ contains=vroomControlBlock
syntax region vroomSystemAction
\ matchgroup=vroomSystem
\ start='\m^ ! ' end='\m$' keepend
\ contains=@vroomShell,vroomControlBlock
syntax region vroomHijackAction
\ matchgroup=vroomHijack
\ start='\m^ \$ ' end='\m$' keepend
\ contains=vroomControlBlock
syntax match vroomControlBlock contains=vroomControlEscape,@vroomControls
\ '\v \([^&()][^()]*\)$'
syntax match vroomControlEscape '\m&' contained
syntax cluster vroomControls
\ contains=vroomDelay,vroomMode,vroomBuffer,vroomRange
\,vroomChannel,vroomBind,vroomStrictness
syntax match vroomRange '\v\.(,\+?(\d+|\$)?)?' contained
syntax match vroomRange '\v\d*,\+?(\d+|\$)?' contained
syntax match vroomBuffer '\v\d+,@!' contained
syntax match vroomDelay '\v\d+(\.\d+)?s' contained
syntax match vroomMode '\v<%(regex|glob|verbatim)' contained
syntax match vroomChannel '\v<%(stderr|stdout|command|status)>' contained
syntax match vroomBind '\v