mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-10 12:33:51 -05:00
Update latex, ruby and mason
This commit is contained in:
@@ -81,6 +81,10 @@ autocmd BufNewFile,BufRead *.markdown,*.md,*.mdown,*.mkd,*.mkdn
|
|||||||
\ else |
|
\ else |
|
||||||
\ setf markdown |
|
\ setf markdown |
|
||||||
\ endif
|
\ 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
|
au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/*,*/nginx/vhosts.d/*,nginx.conf if &ft == '' | setfiletype nginx | endif
|
||||||
autocmd BufNewFile,BufRead *.proto setfiletype proto
|
autocmd BufNewFile,BufRead *.proto setfiletype proto
|
||||||
au BufRead,BufNewFile *.pp set filetype=puppet
|
au BufRead,BufNewFile *.pp set filetype=puppet
|
||||||
|
|||||||
@@ -143,6 +143,13 @@ function! LatexBox_Latexmk(force)
|
|||||||
let texroot = shellescape(LatexBox_GetTexRoot())
|
let texroot = shellescape(LatexBox_GetTexRoot())
|
||||||
let mainfile = fnameescape(fnamemodify(LatexBox_GetMainTexFile(), ':t'))
|
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
|
" Check if already running
|
||||||
if has_key(g:latexmk_running_pids, basepath)
|
if has_key(g:latexmk_running_pids, basepath)
|
||||||
echomsg "latexmk is already running for `" . basename . "'"
|
echomsg "latexmk is already running for `" . basename . "'"
|
||||||
@@ -301,7 +308,15 @@ endfunction
|
|||||||
|
|
||||||
" LatexmkClean {{{
|
" LatexmkClean {{{
|
||||||
function! LatexBox_LatexmkClean(cleanall)
|
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)
|
let basename = LatexBox_GetTexBasename(1)
|
||||||
|
|
||||||
if has_key(g:latexmk_running_pids, basename)
|
if has_key(g:latexmk_running_pids, basename)
|
||||||
echomsg "don't clean when latexmk is running"
|
echomsg "don't clean when latexmk is running"
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -13,12 +13,18 @@ if exists("b:did_indent")
|
|||||||
endif
|
endif
|
||||||
let b:did_indent = 1
|
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
|
setlocal nosmartindent
|
||||||
|
|
||||||
" Now, set up our indentation expression and keys that trigger it.
|
" Now, set up our indentation expression and keys that trigger it.
|
||||||
setlocal indentexpr=GetRubyIndent(v:lnum)
|
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+==end,=else,=elsif,=when,=ensure,=rescue,==begin,==end
|
||||||
|
setlocal indentkeys+==private,=protected,=public
|
||||||
|
|
||||||
" Only define the function once.
|
" Only define the function once.
|
||||||
if exists("*GetRubyIndent")
|
if exists("*GetRubyIndent")
|
||||||
@@ -92,6 +98,12 @@ let s:bracket_continuation_regex = '%\@<!\%([({[]\)\s*\%(#.*\)\=$'
|
|||||||
" Regex that defines the first part of a splat pattern
|
" Regex that defines the first part of a splat pattern
|
||||||
let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
|
let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
|
||||||
|
|
||||||
|
" Regex that describes all indent access modifiers
|
||||||
|
let s:access_modifier_regex = '\C^\s*\%(private\|public\|protected\)\s*\%(#.*\)\=$'
|
||||||
|
|
||||||
|
" Regex that describes the indent access modifiers (excludes public)
|
||||||
|
let s:indent_access_modifier_regex = '\C^\s*\%(private\|protected\)\s*\%(#.*\)\=$'
|
||||||
|
|
||||||
" Regex that defines blocks.
|
" Regex that defines blocks.
|
||||||
"
|
"
|
||||||
" Note that there's a slight problem with this regex and s:continuation_regex.
|
" Note that there's a slight problem with this regex and s:continuation_regex.
|
||||||
@@ -315,6 +327,25 @@ function s:Match(lnum, regex)
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Locates the containing class/module's definition line, ignoring nested classes
|
||||||
|
" along the way.
|
||||||
|
"
|
||||||
|
function! s:FindContainingClass()
|
||||||
|
let saved_position = getpos('.')
|
||||||
|
|
||||||
|
while searchpair(s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'bW',
|
||||||
|
\ s:end_skip_expr) > 0
|
||||||
|
if expand('<cword>') =~# '\<class\|module\>'
|
||||||
|
let found_lnum = line('.')
|
||||||
|
call setpos('.', saved_position)
|
||||||
|
return found_lnum
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
call setpos('.', saved_position)
|
||||||
|
return 0
|
||||||
|
endfunction
|
||||||
|
|
||||||
" 3. GetRubyIndent Function {{{1
|
" 3. GetRubyIndent Function {{{1
|
||||||
" =========================
|
" =========================
|
||||||
|
|
||||||
@@ -335,6 +366,24 @@ function GetRubyIndent(...)
|
|||||||
let line = getline(clnum)
|
let line = getline(clnum)
|
||||||
let ind = -1
|
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
|
" 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
|
" 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.
|
" 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 line = getline(lnum)
|
||||||
let ind = indent(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 the previous line ended with a block opening, add a level of indent.
|
||||||
if s:Match(lnum, s:block_regex)
|
if s:Match(lnum, s:block_regex)
|
||||||
return indent(s:GetMSL(lnum)) + &sw
|
return indent(s:GetMSL(lnum)) + &sw
|
||||||
|
|||||||
@@ -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 masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop
|
||||||
syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=masonPod,@perlTop
|
syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=masonPod,@perlTop
|
||||||
syn region masonComp keepend matchgroup=Delimiter start="<&\s*\%(\a\+:\)\?[._/[:alnum:]]*" end="&>" contains=@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="</%args>" contains=masonPod,@perlTop
|
syn region masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=masonPod,@perlTop
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user