From b2d556d384e13d3180013ef8161936a4c3b990cd Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Wed, 6 Nov 2013 23:55:01 +0100 Subject: Update latex, ruby and mason --- ftdetect/polyglot.vim | 4 +++ ftplugin/latex-box/latexmk.vim | 15 ++++++++++ indent/ruby.vim | 65 +++++++++++++++++++++++++++++++++++++++++- syntax/mason.vim | 2 ++ 4 files changed, 85 insertions(+), 1 deletion(-) diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim index 03efb46e..457fd19a 100644 --- a/ftdetect/polyglot.vim +++ b/ftdetect/polyglot.vim @@ -81,6 +81,10 @@ autocmd BufNewFile,BufRead *.markdown,*.md,*.mdown,*.mkd,*.mkdn \ else | \ setf markdown | \ endif +autocmd BufRead *.html + \ if getline(1) =~ '^\(%\|<[%&].*>\)' | + \ set filetype=mason | + \ endif au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/*,*/nginx/vhosts.d/*,nginx.conf if &ft == '' | setfiletype nginx | endif autocmd BufNewFile,BufRead *.proto setfiletype proto au BufRead,BufNewFile *.pp set filetype=puppet diff --git a/ftplugin/latex-box/latexmk.vim b/ftplugin/latex-box/latexmk.vim index 0049146a..87ac2a99 100644 --- a/ftplugin/latex-box/latexmk.vim +++ b/ftplugin/latex-box/latexmk.vim @@ -143,6 +143,13 @@ function! LatexBox_Latexmk(force) let texroot = shellescape(LatexBox_GetTexRoot()) let mainfile = fnameescape(fnamemodify(LatexBox_GetMainTexFile(), ':t')) + " Check if latexmk is installed + if !executable('latexmk') + echomsg "Error: LaTeX-Box relies on latexmk for compilation, but it" . + \ " is not installed!" + return + endif + " Check if already running if has_key(g:latexmk_running_pids, basepath) echomsg "latexmk is already running for `" . basename . "'" @@ -301,7 +308,15 @@ endfunction " LatexmkClean {{{ function! LatexBox_LatexmkClean(cleanall) + " Check if latexmk is installed + if !executable('latexmk') + echomsg "Error: LaTeX-Box relies on latexmk for compilation, but it" . + \ " is not installed!" + return + endif + let basename = LatexBox_GetTexBasename(1) + if has_key(g:latexmk_running_pids, basename) echomsg "don't clean when latexmk is running" return diff --git a/indent/ruby.vim b/indent/ruby.vim index c669a1d5..89a430c4 100644 --- a/indent/ruby.vim +++ b/indent/ruby.vim @@ -13,12 +13,18 @@ if exists("b:did_indent") endif let b:did_indent = 1 +if !exists('g:ruby_indent_access_modifier_style') + " Possible values: "normal", "indent", "outdent" + let g:ruby_indent_access_modifier_style = 'normal' +endif + setlocal nosmartindent " Now, set up our indentation expression and keys that trigger it. setlocal indentexpr=GetRubyIndent(v:lnum) -setlocal indentkeys=0{,0},0),0],!^F,o,O,e +setlocal indentkeys=0{,0},0),0],!^F,o,O,e,: setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue,==begin,==end +setlocal indentkeys+==private,=protected,=public " Only define the function once. if exists("*GetRubyIndent") @@ -92,6 +98,12 @@ let s:bracket_continuation_regex = '%\@ 0 + if expand('') =~# '\' + let found_lnum = line('.') + call setpos('.', saved_position) + return found_lnum + endif + endif + + call setpos('.', saved_position) + return 0 +endfunction + " 3. GetRubyIndent Function {{{1 " ========================= @@ -335,6 +366,24 @@ function GetRubyIndent(...) let line = getline(clnum) let ind = -1 + " If this line is an access modifier keyword, align according to the closest + " class declaration. + if g:ruby_indent_access_modifier_style == 'indent' + if s:Match(clnum, s:access_modifier_regex) + let class_line = s:FindContainingClass() + if class_line > 0 + return indent(class_line) + &sw + endif + endif + elseif g:ruby_indent_access_modifier_style == 'outdent' + if s:Match(clnum, s:access_modifier_regex) + let class_line = s:FindContainingClass() + if class_line > 0 + return indent(class_line) + endif + endif + endif + " If we got a closing bracket on an empty line, find its match and indent " according to it. For parentheses we indent to its column - 1, for the " others we indent to the containing line's MSL's level. Return -1 if fail. @@ -411,6 +460,20 @@ function GetRubyIndent(...) let line = getline(lnum) let ind = indent(lnum) + if g:ruby_indent_access_modifier_style == 'indent' + " If the previous line was a private/protected keyword, add a + " level of indent. + if s:Match(lnum, s:indent_access_modifier_regex) + return indent(lnum) + &sw + endif + elseif g:ruby_indent_access_modifier_style == 'outdent' + " If the previous line was a private/protected/public keyword, add + " a level of indent, since the keyword has been out-dented. + if s:Match(lnum, s:access_modifier_regex) + return indent(lnum) + &sw + endif + endif + " If the previous line ended with a block opening, add a level of indent. if s:Match(lnum, s:block_regex) return indent(s:GetMSL(lnum)) + &sw diff --git a/syntax/mason.vim b/syntax/mason.vim index 71a1e37e..c94f8e8e 100644 --- a/syntax/mason.vim +++ b/syntax/mason.vim @@ -59,6 +59,8 @@ syn region masonLine matchgroup=Delimiter start="^%" end="$" keepend contains=@p syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop syn region masonPerl matchgroup=Delimiter start="<%perl>" end="" contains=masonPod,@perlTop syn region masonComp keepend matchgroup=Delimiter start="<&\s*\%(\a\+:\)\?[._/[:alnum:]]*" end="&>" contains=@perlTop +syn region masonComp keepend matchgroup=Delimiter skipnl start="<&|\s*\%(\a\+:\)\?[._/[:alnum:]]*" end="&>" contains=@perlTop nextgroup=masonCompContent +syn region masonCompContent matchgroup=Delimiter start="" end="" contained contains=@masonTop syn region masonArgs matchgroup=Delimiter start="<%args>" end="" contains=masonPod,@perlTop -- cgit v1.2.3