neovim

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

treetop.vim (3668B)


      1 " Vim syntax file
      2 " Language:             Treetop
      3 " Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
      4 " Latest Revision:      2011-03-14
      5 
      6 if exists("b:current_syntax")
      7  finish
      8 endif
      9 
     10 let s:cpo_save = &cpo
     11 set cpo&vim
     12 
     13 syn keyword treetopTodo
     14      \ contained
     15      \ TODO
     16      \ FIXME
     17      \ XXX
     18      \ NOTE
     19 
     20 syn match treetopComment
     21                        \ '#.*'
     22                        \ display
     23                        \ contains=treetopTodo
     24 
     25 syn include @treetopRuby syntax/ruby.vim
     26 unlet b:current_syntax
     27 
     28 syn keyword treetopKeyword
     29                         \ require
     30                         \ end
     31 syn region  treetopKeyword
     32                         \ matchgroup=treetopKeyword
     33                         \ start='\<\%(grammar\|include\|module\)\>\ze\s'
     34                         \ end='$'
     35                         \ transparent
     36                         \ oneline
     37                         \ keepend
     38                         \ contains=@treetopRuby
     39 syn keyword treetopKeyword
     40                         \ rule
     41                         \ nextgroup=treetopRuleName
     42                         \ skipwhite skipnl
     43 
     44 syn match   treetopGrammarName
     45                             \ '\u\w*'
     46                             \ contained
     47 
     48 syn match   treetopRubyModuleName
     49                                \ '\u\w*'
     50                                \ contained
     51 
     52 syn match   treetopRuleName
     53                          \ '\h\w*'
     54                          \ contained
     55 
     56 syn region  treetopString
     57                        \ matchgroup=treetopStringDelimiter
     58                        \ start=+"+
     59                        \ end=+"+
     60 syn region  treetopString
     61                        \ matchgroup=treetopStringDelimiter
     62                        \ start=+'+
     63                        \ end=+'+
     64 
     65 syn region  treetopCharacterClass
     66                                \ matchgroup=treetopCharacterClassDelimiter
     67                                \ start=+\[+
     68                                \ skip=+\\\]+
     69                                \ end=+\]+
     70 
     71 syn region  treetopRubyBlock
     72                           \ matchgroup=treetopRubyBlockDelimiter
     73                           \ start=+{+
     74                           \ end=+}+
     75                           \ contains=@treetopRuby
     76 
     77 syn region  treetopSemanticPredicate
     78                           \ matchgroup=treetopSemanticPredicateDelimiter
     79                           \ start=+[!&]{+
     80                           \ end=+}+
     81                           \ contains=@treetopRuby
     82 
     83 syn region  treetopSubclassDeclaration
     84                           \ matchgroup=treetopSubclassDeclarationDelimiter
     85                           \ start=+<+
     86                           \ end=+>+
     87                           \ contains=@treetopRuby
     88 
     89 syn match   treetopEllipsis
     90                          \ +''+
     91 
     92 hi def link treetopTodo                         Todo
     93 hi def link treetopComment                      Comment
     94 hi def link treetopKeyword                      Keyword
     95 hi def link treetopGrammarName                  Constant
     96 hi def link treetopRubyModuleName               Constant
     97 hi def link treetopRuleName                     Identifier
     98 hi def link treetopString                       String
     99 hi def link treetopStringDelimiter              treetopString
    100 hi def link treetopCharacterClass               treetopString
    101 hi def link treetopCharacterClassDelimiter      treetopCharacterClass
    102 hi def link treetopRubyBlockDelimiter           PreProc
    103 hi def link treetopSemanticPredicateDelimiter   PreProc
    104 hi def link treetopSubclassDeclarationDelimiter PreProc
    105 hi def link treetopEllipsis                     Special
    106 
    107 let b:current_syntax = 'treetop'
    108 
    109 let &cpo = s:cpo_save
    110 unlet s:cpo_save