I've attached a patch to add a "vroom" filetype into vim, with syntax highlighting and filetype configuration. Could you integrate it into the vim repository?
It's merged from https://github.com/google/vim-ft.vroom, which is itself under Apache license, but I have approval to license this patch under the Vim license. David -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
diff -r d8d7de0a150b runtime/filetype.vim --- a/runtime/filetype.vim Wed Jul 09 17:51:51 2014 +0200 +++ b/runtime/filetype.vim Thu Jul 10 10:11:44 2014 -0700 @@ -2297,6 +2297,9 @@ " VRML V1.0c au BufNewFile,BufRead *.wrl setf vrml +" Vroom (vim testing and executable documentation) +au BufNewFile,BufRead *.vroom setf vroom + " Webmacro au BufNewFile,BufRead *.wm setf webmacro diff -r d8d7de0a150b runtime/ftplugin/vroom.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/runtime/ftplugin/vroom.vim Thu Jul 10 10:11:44 2014 -0700 @@ -0,0 +1,35 @@ +" Vim filetype plugin file +" Language: Vroom (vim testing and executable documentation) +" Maintainer: David Barnett (https://github.com/google/vim-ft.vroom) +" Last Change: 2014 Jul 7 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo-=C + + +let b:undo_ftplugin = 'setlocal formatoptions< shiftwidth< softtabstop<' . + \ ' expandtab< iskeyword< comments< commentstring<' + +setlocal formatoptions-=t + +" The vroom interpreter doesn't accept anything but 2-space indent. +setlocal shiftwidth=2 +setlocal softtabstop=2 +setlocal expandtab + +" To allow tag lookup and autocomplete for whole autoload functions, '#' must be +" a keyword character. This also conforms to the behavior of ftplugin/vim.vim. +setlocal iskeyword+=# + +" Vroom files have no comments (text is inert documentation unless indented). +setlocal comments= +setlocal commentstring= + + +let &cpo = s:cpo_save +unlet s:cpo_save diff -r d8d7de0a150b runtime/indent/vroom.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/runtime/indent/vroom.vim Thu Jul 10 10:11:44 2014 -0700 @@ -0,0 +1,21 @@ +" Vim indent file +" Language: Vroom (vim testing and executable documentation) +" Maintainer: David Barnett (https://github.com/google/vim-ft.vroom) +" Last Change: 2014 Jul 7 + +if exists('b:did_indent') + finish +endif +let b:did_indent = 1 + +let s:cpo_save = &cpo +set cpo-=C + + +let b:undo_indent = 'setlocal autoindent<' + +setlocal autoindent + + +let &cpo = s:cpo_save +unlet s:cpo_save diff -r d8d7de0a150b runtime/syntax/vroom.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/runtime/syntax/vroom.vim Thu Jul 10 10:11:44 2014 -0700 @@ -0,0 +1,113 @@ +" Vim syntax file +" Language: Vroom (vim testing and executable documentation) +" Maintainer: David Barnett (https://github.com/google/vim-ft.vroom) +" Last Change: 2014 July 7 + +" For version 5.x: Clear all syntax items. +" For version 6.x and later: Quit when a syntax file was already loaded. +if v:version < 600 + syntax clear +elseif exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpo +set cpo-=C + + +syn include @vroomVim syntax/vim.vim +syn include @vroomShell syntax/sh.vim + +syntax region vroomAction + \ matchgroup=vroomOutput + \ start='\m^ ' end='\m$' keepend + \ contains=vroomControlBlock + +syntax region vroomAction + \ matchgroup=vroomOutput + \ start='\m^ & ' end='\m$' keepend + \ contains=vroomControlBlock + +syntax match vroomOutput '\m^ &$' + +syntax region vroomMessageBody + \ matchgroup=vroomMessage + \ start='\m^ \~ ' end='\m$' keepend + \ contains=vroomControlBlock + +syntax region vroomColoredAction + \ matchgroup=vroomInput + \ start='\m^ > ' end='\m$' keepend + \ contains=vimNotation,vroomControlBlock +syntax region vroomAction + \ matchgroup=vroomInput + \ start='\m^ % ' end='\m$' keepend + \ contains=vimNotation,vroomControlBlock + +syntax region vroomAction + \ matchgroup=vroomContinuation + \ start='\m^ |' end='\m$' keepend + +syntax region vroomAction + \ start='\m^ \ze:' end='\m$' keepend + \ contains=@vroomVim,vroomControlBlock + +syntax region vroomAction + \ matchgroup=vroomDirective + \ start='\m^ @\i\+' end='\m$' keepend + \ contains=vroomControlBlock + +syntax region vroomSystemAction + \ matchgroup=vroomSystem + \ start='\m^ ! ' end='\m$' keepend + \ contains=@vroomShell,vroomControlBlock + +syntax region vroomHijackAction + \ matchgroup=vroomHijack + \ start='\m^ \$ ' end='\m$' keepend + \ contains=vroomControlBlock + +syntax match vroomControlBlock contains=vroomControlEscape,@vroomControls + \ '\v \([^&()][^()]*\)$' + +syntax match vroomControlEscape '\m&' contained + +syntax cluster vroomControls + \ contains=vroomDelay,vroomMode,vroomBuffer,vroomRange + \,vroomChannel,vroomBind,vroomStrictness +syntax match vroomRange '\v\.(,\+?(\d+|\$)?)?' contained +syntax match vroomRange '\v\d*,\+?(\d+|\$)?' contained +syntax match vroomBuffer '\v\d+,@!' contained +syntax match vroomDelay '\v\d+(\.\d+)?s' contained +syntax match vroomMode '\v<%(regex|glob|verbatim)' contained +syntax match vroomChannel '\v<%(stderr|stdout|command|status)>' contained +syntax match vroomBind '\v<bind>' contained +syntax match vroomStrictness '\v\<%(STRICT|RELAXED|GUESS-ERRORS)\>' contained + +highlight default link vroomInput Identifier +highlight default link vroomDirective vroomInput +highlight default link vroomControlBlock vroomInput +highlight default link vroomSystem vroomInput +highlight default link vroomOutput Statement +highlight default link vroomContinuation Constant +highlight default link vroomHijack Special +highlight default link vroomColoredAction Statement +highlight default link vroomSystemAction vroomSystem +highlight default link vroomHijackAction vroomHijack +highlight default link vroomMessage vroomOutput +highlight default link vroomMessageBody Constant + +highlight default link vroomControlEscape Special +highlight default link vroomBuffer vroomInput +highlight default link vroomRange Include +highlight default link vroomMode Constant +highlight default link vroomDelay Type +highlight default link vroomStrictness vroomMode +highlight default link vroomChannel vroomMode +highlight default link vroomBind vroomMode + +let b:current_syntax = 'vroom' + + +let &cpo = s:cpo_save +unlet s:cpo_save
