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