1" Vim syntax file 2" Language: Vroom (vim testing and executable documentation) 3" Maintainer: David Barnett (https://github.com/google/vim-ft-vroom) 4" Last Change: 2014 Jul 23 5 6" For version 5.x: Clear all syntax items. 7" For version 6.x and later: Quit when a syntax file was already loaded. 8if v:version < 600 9 syntax clear 10elseif exists('b:current_syntax') 11 finish 12endif 13 14let s:cpo_save = &cpo 15set cpo-=C 16 17 18syn include @vroomVim syntax/vim.vim 19syn include @vroomShell syntax/sh.vim 20 21syntax region vroomAction 22 \ matchgroup=vroomOutput 23 \ start='\m^ ' end='\m$' keepend 24 \ contains=vroomControlBlock 25 26syntax region vroomAction 27 \ matchgroup=vroomOutput 28 \ start='\m^ & ' end='\m$' keepend 29 \ contains=vroomControlBlock 30 31syntax match vroomOutput '\m^ &$' 32 33syntax region vroomMessageBody 34 \ matchgroup=vroomMessage 35 \ start='\m^ \~ ' end='\m$' keepend 36 \ contains=vroomControlBlock 37 38syntax region vroomColoredAction 39 \ matchgroup=vroomInput 40 \ start='\m^ > ' end='\m$' keepend 41 \ contains=vimNotation,vroomControlBlock 42syntax region vroomAction 43 \ matchgroup=vroomInput 44 \ start='\m^ % ' end='\m$' keepend 45 \ contains=vimNotation,vroomControlBlock 46 47syntax region vroomAction 48 \ matchgroup=vroomContinuation 49 \ start='\m^ |' end='\m$' keepend 50 51syntax region vroomAction 52 \ start='\m^ \ze:' end='\m$' keepend 53 \ contains=@vroomVim,vroomControlBlock 54 55syntax region vroomAction 56 \ matchgroup=vroomDirective 57 \ start='\m^ @\i\+' end='\m$' keepend 58 \ contains=vroomControlBlock 59 60syntax region vroomSystemAction 61 \ matchgroup=vroomSystem 62 \ start='\m^ ! ' end='\m$' keepend 63 \ contains=@vroomShell,vroomControlBlock 64 65syntax region vroomHijackAction 66 \ matchgroup=vroomHijack 67 \ start='\m^ \$ ' end='\m$' keepend 68 \ contains=vroomControlBlock 69 70syntax match vroomControlBlock contains=vroomControlEscape,@vroomControls 71 \ '\v \([^&()][^()]*\)$' 72 73syntax match vroomControlEscape '\m&' contained 74 75syntax cluster vroomControls 76 \ contains=vroomDelay,vroomMode,vroomBuffer,vroomRange 77 \,vroomChannel,vroomBind,vroomStrictness 78syntax match vroomRange '\v\.(,\+?(\d+|\$)?)?' contained 79syntax match vroomRange '\v\d*,\+?(\d+|\$)?' contained 80syntax match vroomBuffer '\v\d+,@!' contained 81syntax match vroomDelay '\v\d+(\.\d+)?s' contained 82syntax match vroomMode '\v<%(regex|glob|verbatim)' contained 83syntax match vroomChannel '\v<%(stderr|stdout|command|status)>' contained 84syntax match vroomBind '\v<bind>' contained 85syntax match vroomStrictness '\v\<%(STRICT|RELAXED|GUESS-ERRORS)\>' contained 86 87highlight default link vroomInput Identifier 88highlight default link vroomDirective vroomInput 89highlight default link vroomControlBlock vroomInput 90highlight default link vroomSystem vroomInput 91highlight default link vroomOutput Statement 92highlight default link vroomContinuation Constant 93highlight default link vroomHijack Special 94highlight default link vroomColoredAction Statement 95highlight default link vroomSystemAction vroomSystem 96highlight default link vroomHijackAction vroomHijack 97highlight default link vroomMessage vroomOutput 98highlight default link vroomMessageBody Constant 99 100highlight default link vroomControlEscape Special 101highlight default link vroomBuffer vroomInput 102highlight default link vroomRange Include 103highlight default link vroomMode Constant 104highlight default link vroomDelay Type 105highlight default link vroomStrictness vroomMode 106highlight default link vroomChannel vroomMode 107highlight default link vroomBind vroomMode 108 109let b:current_syntax = 'vroom' 110 111 112let &cpo = s:cpo_save 113unlet s:cpo_save 114