neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

vroom.vim (3492B)


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