summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/ondir.vim
blob: 4aeb014e1b2ab369eb567b5fc18d76a255fe34c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
" Vim syntax file
" Language:     ondir <https://github.com/alecthomas/ondir>
" Maintainer:   Jon Parise <jon@indelible.org>

if exists('b:current_syntax')
  finish
endif

let s:cpo_save = &cpoptions
set cpoptions&vim

syn case match

syn match   ondirComment  "#.*" contains=@Spell
syn keyword ondirKeyword  final contained skipwhite nextgroup=ondirKeyword
syn keyword ondirKeyword  enter leave contained skipwhite nextgroup=ondirPath
syn match   ondirPath     "[^:]\+" contained display
syn match   ondirColon    ":" contained display

syn include @ondirShell   syntax/sh.vim
syn region  ondirContent  start="^\s\+" end="^\ze\S.*$" keepend contained contains=@ondirShell

syn region  ondirSection  start="^\(final\|enter\|leave\)" end="^\ze\S.*$" fold contains=ondirKeyword,ondirPath,ondirColon,ondirContent

hi def link ondirComment  Comment
hi def link ondirKeyword  Keyword
hi def link ondirPath     Special
hi def link ondirColon    Operator

let b:current_syntax = 'ondir'

let &cpoptions = s:cpo_save
unlet s:cpo_save

" vim: et ts=4 sw=2 sts=2: