neovim/runtime/syntax/treetop.vim
Justin M. Keyes a98a6996c2 re-integrate runtime/ vim-patch:0 #938
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7

Excluding:
  Amiga icons (*.info, icons/)
  doc/hangulin.txt
  tutor/
  spell/
  lang/ (only used for menu translations)
  macros/maze/, macros/hanoi/, macros/life/, macros/urm/
      These were used to test vi compatibility.
  termcap
      "Demonstration of a termcap file (for the Amiga and Archimedes)"

Helped-by: Rich Wareham <rjw57@cam.ac.uk>
Helped-by: John <john.schmidt.h@gmail.com>
Helped-by: Yann <yann@yann-salaun.com>
Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com>
Helped-by: drasill <github@tof2k.com>
Helped-by: Tae Sandoval Murgan <taecilla@gmail.com>
Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
2014-07-29 02:12:31 +00:00

111 lines
3.6 KiB
VimL

" Vim syntax file
" Language: Treetop
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2011-03-14
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn keyword treetopTodo
\ contained
\ TODO
\ FIXME
\ XXX
\ NOTE
syn match treetopComment
\ '#.*'
\ display
\ contains=treetopTodo
syn include @treetopRuby syntax/ruby.vim
unlet b:current_syntax
syn keyword treetopKeyword
\ require
\ end
syn region treetopKeyword
\ matchgroup=treetopKeyword
\ start='\<\%(grammar\|include\|module\)\>\ze\s'
\ end='$'
\ transparent
\ oneline
\ keepend
\ contains=@treetopRuby
syn keyword treetopKeyword
\ rule
\ nextgroup=treetopRuleName
\ skipwhite skipnl
syn match treetopGrammarName
\ '\u\w*'
\ contained
syn match treetopRubyModuleName
\ '\u\w*'
\ contained
syn match treetopRuleName
\ '\h\w*'
\ contained
syn region treetopString
\ matchgroup=treetopStringDelimiter
\ start=+"+
\ end=+"+
syn region treetopString
\ matchgroup=treetopStringDelimiter
\ start=+'+
\ end=+'+
syn region treetopCharacterClass
\ matchgroup=treetopCharacterClassDelimiter
\ start=+\[+
\ skip=+\\\]+
\ end=+\]+
syn region treetopRubyBlock
\ matchgroup=treetopRubyBlockDelimiter
\ start=+{+
\ end=+}+
\ contains=@treetopRuby
syn region treetopSemanticPredicate
\ matchgroup=treetopSemanticPredicateDelimiter
\ start=+[!&]{+
\ end=+}+
\ contains=@treetopRuby
syn region treetopSubclassDeclaration
\ matchgroup=treetopSubclassDeclarationDelimiter
\ start=+<+
\ end=+>+
\ contains=@treetopRuby
syn match treetopEllipsis
\ +''+
hi def link treetopTodo Todo
hi def link treetopComment Comment
hi def link treetopKeyword Keyword
hi def link treetopGrammarName Constant
hi def link treetopRubyModuleName Constant
hi def link treetopRuleName Identifier
hi def link treetopString String
hi def link treetopStringDelimiter treetopString
hi def link treetopCharacterClass treetopString
hi def link treetopCharacterClassDelimiter treetopCharacterClass
hi def link treetopRubyBlockDelimiter PreProc
hi def link treetopSemanticPredicateDelimiter PreProc
hi def link treetopSubclassDeclarationDelimiter PreProc
hi def link treetopEllipsis Special
let b:current_syntax = 'treetop'
let &cpo = s:cpo_save
unlet s:cpo_save