mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-10 04:23:51 -05:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30c1920e4f | ||
|
|
57cfac7ae3 | ||
|
|
085aad28a4 | ||
|
|
e108a087b4 | ||
|
|
b3257271db | ||
|
|
e9d8c39608 | ||
|
|
04e6a8a73c | ||
|
|
b6a2261cc2 |
@@ -57,6 +57,7 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
|||||||
- [puppet](https://github.com/ajf/puppet-vim) (syntax, indent, ftplugin, ftdetect)
|
- [puppet](https://github.com/ajf/puppet-vim) (syntax, indent, ftplugin, ftdetect)
|
||||||
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, ftdetect)
|
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, ftdetect)
|
||||||
- [python](https://github.com/vim-scripts/python.vim--Vasiliev) (syntax)
|
- [python](https://github.com/vim-scripts/python.vim--Vasiliev) (syntax)
|
||||||
|
- [r-lang](https://github.com/vim-scripts/R.vim) (syntax, ftplugin)
|
||||||
- [rspec](https://github.com/sheerun/rspec.vim) (syntax, ftdetect)
|
- [rspec](https://github.com/sheerun/rspec.vim) (syntax, ftdetect)
|
||||||
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin, ftdetect)
|
||||||
- [rust](https://github.com/wting/rust.vim) (syntax, indent, compiler, ftplugin, ftdetect)
|
- [rust](https://github.com/wting/rust.vim) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
|
|||||||
@@ -4,12 +4,12 @@
|
|||||||
" License: WTFPL
|
" License: WTFPL
|
||||||
|
|
||||||
" Load the coffee and html indent functions.
|
" Load the coffee and html indent functions.
|
||||||
unlet b:did_indent
|
silent! unlet b:did_indent
|
||||||
runtime indent/coffee.vim
|
runtime indent/coffee.vim
|
||||||
let s:coffeeIndentExpr = &l:indentexpr
|
let s:coffeeIndentExpr = &l:indentexpr
|
||||||
|
|
||||||
" Load html last so it can overwrite coffee settings.
|
" Load html last so it can overwrite coffee settings.
|
||||||
unlet b:did_indent
|
silent! unlet b:did_indent
|
||||||
runtime indent/html.vim
|
runtime indent/html.vim
|
||||||
let s:htmlIndentExpr = &l:indentexpr
|
let s:htmlIndentExpr = &l:indentexpr
|
||||||
|
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ if has("gui_running") || &t_Co==256
|
|||||||
if out !~ '^cssDefinition ' | continue | endif
|
if out !~ '^cssDefinition ' | continue | endif
|
||||||
let out = substitute( out, ' \+xxx \+', ' ', '' )
|
let out = substitute( out, ' \+xxx \+', ' ', '' )
|
||||||
let out = substitute( out, ' contains=\zs', '@cssColors,', '' )
|
let out = substitute( out, ' contains=\zs', '@cssColors,', '' )
|
||||||
|
syn clear cssDefinition
|
||||||
exe 'syn region' out
|
exe 'syn region' out
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,2 +1,4 @@
|
|||||||
" adds support for cleverref package (`\cref` and `\Cref`)
|
" adds support for cleverref package
|
||||||
syn region texRefZone matchgroup=texStatement start="\\\(c\|C\)ref{" end="}\|%stopzone\>" contains=@texRefGroup
|
" \Cref, \cref, \cpageref, \labelcref, \labelcpageref
|
||||||
|
syn region texRefZone matchgroup=texStatement start="\\Cref{" end="}\|%stopzone\>" contains=@texRefGroup
|
||||||
|
syn region texRefZone matchgroup=texStatement start="\\\(label\|\)c\(page\|\)ref{" end="}\|%stopzone\>" contains=@texRefGroup
|
||||||
|
|||||||
@@ -28,43 +28,75 @@ if len(s:goarch) == 0
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
function! go#complete#PackageMembers(package, member)
|
||||||
|
silent! let content = system('godoc ' . a:package)
|
||||||
|
if v:shell_error || !len(content)
|
||||||
|
return []
|
||||||
|
endif
|
||||||
|
let lines = filter(split(content, "\n"),"v:val !~ '^\\s\\+$'")
|
||||||
|
try
|
||||||
|
let mx1 = '^\s\+\(\S+\)\s\+=\s\+.*'
|
||||||
|
let mx2 = '^\%(const\|var\|type\|func\) \([A-Z][^ (]\+\).*'
|
||||||
|
let candidates =
|
||||||
|
\ map(filter(copy(lines), 'v:val =~ mx1'), 'substitute(v:val, mx1, "\\1", "")')
|
||||||
|
\ + map(filter(copy(lines), 'v:val =~ mx2'), 'substitute(v:val, mx2, "\\1", "")')
|
||||||
|
return filter(candidates, '!stridx(v:val, a:member)')
|
||||||
|
catch
|
||||||
|
return []
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! go#complete#Package(ArgLead, CmdLine, CursorPos)
|
function! go#complete#Package(ArgLead, CmdLine, CursorPos)
|
||||||
let dirs = []
|
let dirs = []
|
||||||
|
|
||||||
|
let words = split(a:CmdLine, '\s\+', 1)
|
||||||
|
if len(words) > 2
|
||||||
|
" Complete package members
|
||||||
|
return go#complete#PackageMembers(words[1], words[2])
|
||||||
|
endif
|
||||||
|
|
||||||
if executable('go')
|
if executable('go')
|
||||||
let goroot = substitute(system('go env GOROOT'), '\n', '', 'g')
|
let goroot = substitute(system('go env GOROOT'), '\n', '', 'g')
|
||||||
if v:shell_error
|
if v:shell_error
|
||||||
echo '\'go env GOROOT\' failed'
|
echomsg '\'go env GOROOT\' failed'
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let goroot = $GOROOT
|
let goroot = $GOROOT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if len(goroot) != 0 && isdirectory(goroot)
|
if len(goroot) != 0 && isdirectory(goroot)
|
||||||
let dirs += [ goroot ]
|
let dirs += [goroot]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let workspaces = split($GOPATH, ':')
|
let pathsep = ':'
|
||||||
|
if s:goos == 'windows'
|
||||||
|
let pathsep = ';'
|
||||||
|
endif
|
||||||
|
let workspaces = split($GOPATH, pathsep)
|
||||||
if workspaces != []
|
if workspaces != []
|
||||||
let dirs += workspaces
|
let dirs += workspaces
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if len(dirs) == 0
|
if len(dirs) == 0
|
||||||
" should not happen
|
" should not happen
|
||||||
return []
|
return []
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let ret = {}
|
let ret = {}
|
||||||
for dir in dirs
|
for dir in dirs
|
||||||
let root = expand(dir . '/pkg/' . s:goos . '_' . s:goarch)
|
" this may expand to multiple lines
|
||||||
for i in split(globpath(root, a:ArgLead.'*'), "\n")
|
let root = split(expand(dir . '/pkg/' . s:goos . '_' . s:goarch), "\n")
|
||||||
if isdirectory(i)
|
call add(root, expand(dir . '/src'))
|
||||||
let i .= '/'
|
for r in root
|
||||||
elseif i !~ '\.a$'
|
for i in split(globpath(r, a:ArgLead.'*'), "\n")
|
||||||
continue
|
if isdirectory(i)
|
||||||
endif
|
let i .= '/'
|
||||||
let i = substitute(substitute(i[len(root)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g')
|
elseif i !~ '\.a$'
|
||||||
let ret[i] = i
|
continue
|
||||||
|
endif
|
||||||
|
let i = substitute(substitute(i[len(r)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g')
|
||||||
|
let ret[i] = i
|
||||||
|
endfor
|
||||||
endfor
|
endfor
|
||||||
endfor
|
endfor
|
||||||
return sort(keys(ret))
|
return sort(keys(ret))
|
||||||
|
|||||||
1
build
1
build
@@ -97,6 +97,7 @@ PACKS="
|
|||||||
puppet:ajf/puppet-vim
|
puppet:ajf/puppet-vim
|
||||||
protobuf:uarun/vim-protobuf
|
protobuf:uarun/vim-protobuf
|
||||||
python:vim-scripts/python.vim--Vasiliev
|
python:vim-scripts/python.vim--Vasiliev
|
||||||
|
r-lang:vim-scripts/R.vim
|
||||||
rspec:sheerun/rspec.vim
|
rspec:sheerun/rspec.vim
|
||||||
ruby:vim-ruby/vim-ruby
|
ruby:vim-ruby/vim-ruby
|
||||||
rust:wting/rust.vim
|
rust:wting/rust.vim
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ function! s:GetMakePrg()
|
|||||||
\ ' -c' .
|
\ ' -c' .
|
||||||
\ ' ' . b:coffee_litcoffee .
|
\ ' ' . b:coffee_litcoffee .
|
||||||
\ ' ' . g:coffee_make_options .
|
\ ' ' . g:coffee_make_options .
|
||||||
\ ' ' . fnameescape(expand('%')) .
|
\ ' $*' .
|
||||||
\ ' $*'
|
\ ' ' . fnameescape(expand('%'))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Set `makeprg` and return 1 if coffee is still the compiler, else return 0.
|
" Set `makeprg` and return 1 if coffee is still the compiler, else return 0.
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ autocmd BufNewFile,BufRead *.haml,*.hamlbars setf haml
|
|||||||
autocmd BufNewFile,BufRead *.sass setf sass
|
autocmd BufNewFile,BufRead *.sass setf sass
|
||||||
autocmd BufNewFile,BufRead *.scss setf scss
|
autocmd BufNewFile,BufRead *.scss setf scss
|
||||||
if has("autocmd")
|
if has("autocmd")
|
||||||
au BufNewFile,BufRead *.{handlebars,hb,hbs,hbt}{,.erb} set ft=html syntax=handlebars | runtime! ftplugin/handlebars.vim ftplugin/handlebars*.vim ftplugin/handlebars/*.vim
|
au BufNewFile,BufRead *.{handlebars,hb,hbs,hbt}{,.erb} set ft=handlebars.html syntax=handlebars | runtime! ftplugin/handlebars.vim ftplugin/handlebars*.vim ftplugin/handlebars/*.vim
|
||||||
endif
|
endif
|
||||||
autocmd BufNewFile,BufReadPost *.jade set filetype=jade
|
autocmd BufNewFile,BufReadPost *.jade set filetype=jade
|
||||||
au BufNewFile,BufRead *.js setf javascript
|
au BufNewFile,BufRead *.js setf javascript
|
||||||
|
|||||||
@@ -11,10 +11,10 @@
|
|||||||
" though, implementation differs.
|
" though, implementation differs.
|
||||||
|
|
||||||
" Plugin folklore "{{{2
|
" Plugin folklore "{{{2
|
||||||
if v:version < 700 || exists('b:did_ftplugin')
|
if v:version < 700 || exists('b:did_csv_ftplugin')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let b:did_ftplugin = 1
|
let b:did_csv_ftplugin = 1
|
||||||
|
|
||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|||||||
@@ -12,11 +12,25 @@
|
|||||||
" It tries to preserve cursor position and avoids
|
" It tries to preserve cursor position and avoids
|
||||||
" replacing the buffer with stderr output.
|
" replacing the buffer with stderr output.
|
||||||
"
|
"
|
||||||
|
" Options:
|
||||||
|
"
|
||||||
|
" g:go_fmt_commands [default=1]
|
||||||
|
"
|
||||||
|
" Flag to indicate whether to enable the commands listed above.
|
||||||
|
"
|
||||||
if exists("b:did_ftplugin_go_fmt")
|
if exists("b:did_ftplugin_go_fmt")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
command! -buffer Fmt call s:GoFormat()
|
|
||||||
|
if !exists("g:go_fmt_commands")
|
||||||
|
let g:go_fmt_commands = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
if g:go_fmt_commands
|
||||||
|
command! -buffer Fmt call s:GoFormat()
|
||||||
|
endif
|
||||||
|
|
||||||
function! s:GoFormat()
|
function! s:GoFormat()
|
||||||
let view = winsaveview()
|
let view = winsaveview()
|
||||||
|
|||||||
@@ -24,23 +24,40 @@
|
|||||||
" imported, an error will be displayed and the buffer will be
|
" imported, an error will be displayed and the buffer will be
|
||||||
" untouched.
|
" untouched.
|
||||||
"
|
"
|
||||||
" In addition to these commands, there are also two shortcuts mapped:
|
" If you would like to add shortcuts, you can do so by doing the following:
|
||||||
"
|
"
|
||||||
" \f - Runs :Import fmt
|
" Import fmt
|
||||||
" \F - Runs :Drop fmt
|
" au Filetype go nnoremap <buffer> <LocalLeader>f :Import fmt<CR>
|
||||||
"
|
"
|
||||||
" The backslash is the default maplocalleader, so it is possible that
|
" Drop fmt
|
||||||
|
" au Filetype go nnoremap <buffer> <LocalLeader>F :Drop fmt<CR>
|
||||||
|
"
|
||||||
|
" Import the word under your cursor
|
||||||
|
" au Filetype go nnoremap <buffer> <LocalLeader>k
|
||||||
|
" \ :exe 'Import ' . expand('<cword>')<CR>
|
||||||
|
"
|
||||||
|
" The backslash '\' is the default maplocalleader, so it is possible that
|
||||||
" your vim is set to use a different character (:help maplocalleader).
|
" your vim is set to use a different character (:help maplocalleader).
|
||||||
"
|
"
|
||||||
|
" Options:
|
||||||
|
"
|
||||||
|
" g:go_import_commands [default=1]
|
||||||
|
"
|
||||||
|
" Flag to indicate whether to enable the commands listed above.
|
||||||
|
"
|
||||||
if exists("b:did_ftplugin_go_import")
|
if exists("b:did_ftplugin_go_import")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
command! -buffer -nargs=? -complete=customlist,go#complete#Package Drop call s:SwitchImport(0, '', <f-args>)
|
if !exists("g:go_import_commands")
|
||||||
command! -buffer -nargs=1 -complete=customlist,go#complete#Package Import call s:SwitchImport(1, '', <f-args>)
|
let g:go_import_commands = 1
|
||||||
command! -buffer -nargs=* -complete=customlist,go#complete#Package ImportAs call s:SwitchImport(1, <f-args>)
|
endif
|
||||||
map <buffer> <LocalLeader>f :Import fmt<CR>
|
|
||||||
map <buffer> <LocalLeader>F :Drop fmt<CR>
|
if g:go_import_commands
|
||||||
|
command! -buffer -nargs=? -complete=customlist,go#complete#Package Drop call s:SwitchImport(0, '', <f-args>)
|
||||||
|
command! -buffer -nargs=1 -complete=customlist,go#complete#Package Import call s:SwitchImport(1, '', <f-args>)
|
||||||
|
command! -buffer -nargs=* -complete=customlist,go#complete#Package ImportAs call s:SwitchImport(1, <f-args>)
|
||||||
|
endif
|
||||||
|
|
||||||
function! s:SwitchImport(enabled, localname, path)
|
function! s:SwitchImport(enabled, localname, path)
|
||||||
let view = winsaveview()
|
let view = winsaveview()
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
" Error Format {{{
|
" Error Format {{{
|
||||||
" Note: The error formats assume we're using the -file-line-error with
|
" Note: The error formats assume we're using the -file-line-error with
|
||||||
" [pdf]latex.
|
" [pdf]latex.
|
||||||
|
" Note: See |errorformat-LaTeX| for more info.
|
||||||
|
|
||||||
" Check for options
|
" Check for options
|
||||||
if !exists("g:LatexBox_show_warnings")
|
if !exists("g:LatexBox_show_warnings")
|
||||||
@@ -15,9 +16,14 @@ if !exists("g:LatexBox_ignore_warnings")
|
|||||||
\ 'specifier changed to']
|
\ 'specifier changed to']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" See |errorformat-LaTeX|
|
" Standard error message formats
|
||||||
|
" Note: We consider statements that starts with "!" as errors
|
||||||
setlocal efm=%E!\ LaTeX\ %trror:\ %m
|
setlocal efm=%E!\ LaTeX\ %trror:\ %m
|
||||||
setlocal efm+=%E%f:%l:\ %m
|
setlocal efm+=%E%f:%l:\ %m
|
||||||
|
setlocal efm+=%E!\ %m
|
||||||
|
|
||||||
|
" More info for undefined control sequences
|
||||||
|
setlocal efm+=%Z<argument>\ %m
|
||||||
|
|
||||||
" Show or ignore warnings
|
" Show or ignore warnings
|
||||||
if g:LatexBox_show_warnings
|
if g:LatexBox_show_warnings
|
||||||
@@ -28,22 +34,18 @@ if g:LatexBox_show_warnings
|
|||||||
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#
|
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#
|
||||||
setlocal efm+=%+W%.%#\ at\ lines\ %l--%*\\d
|
setlocal efm+=%+W%.%#\ at\ lines\ %l--%*\\d
|
||||||
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %m
|
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %m
|
||||||
setlocal efm+=%+W%.%#%.%#Warning:\ %m
|
setlocal efm+=%+W%.%#Warning:\ %m
|
||||||
else
|
else
|
||||||
setlocal efm+=%-WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#
|
setlocal efm+=%-WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#
|
||||||
setlocal efm+=%-W%.%#\ at\ lines\ %l--%*\\d
|
setlocal efm+=%-W%.%#\ at\ lines\ %l--%*\\d
|
||||||
setlocal efm+=%-WLaTeX\ %.%#Warning:\ %m
|
setlocal efm+=%-WLaTeX\ %.%#Warning:\ %m
|
||||||
setlocal efm+=%-W%.%#%.%#Warning:\ %m
|
setlocal efm+=%-W%.%#Warning:\ %m
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Consider the remaining statements that starts with "!" as errors
|
|
||||||
setlocal efm+=%E!\ %m
|
|
||||||
|
|
||||||
" Push file to file stack
|
" Push file to file stack
|
||||||
setlocal efm+=%+P**%f
|
setlocal efm+=%+P**%f
|
||||||
|
|
||||||
" Ignore unmatched lines
|
" Ignore unmatched lines
|
||||||
setlocal efm+=%-G\\s%#
|
|
||||||
setlocal efm+=%-G%.%#
|
setlocal efm+=%-G%.%#
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
@@ -213,7 +215,7 @@ function! LatexBox_View()
|
|||||||
if has('win32')
|
if has('win32')
|
||||||
let cmd = '!start /b' . cmd . ' >nul'
|
let cmd = '!start /b' . cmd . ' >nul'
|
||||||
else
|
else
|
||||||
let cmd = '!' . cmd . ' >/dev/null &'
|
let cmd = '!' . cmd . ' &>/dev/null &'
|
||||||
endif
|
endif
|
||||||
silent execute cmd
|
silent execute cmd
|
||||||
if !has("gui_running")
|
if !has("gui_running")
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ if !exists('g:LatexBox_cite_pattern')
|
|||||||
let g:LatexBox_cite_pattern = '\C\\\a*cite\a*\*\?\(\[[^\]]*\]\)*\_\s*{'
|
let g:LatexBox_cite_pattern = '\C\\\a*cite\a*\*\?\(\[[^\]]*\]\)*\_\s*{'
|
||||||
endif
|
endif
|
||||||
if !exists('g:LatexBox_ref_pattern')
|
if !exists('g:LatexBox_ref_pattern')
|
||||||
let g:LatexBox_ref_pattern = '\C\\v\?\(eq\|page\|[cC]\)\?ref\*\?\_\s*{'
|
let g:LatexBox_ref_pattern = '\C\\v\?\(eq\|page\|[cC]\|labelc\)\?ref\*\?\_\s*{'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists('g:LatexBox_completion_environments')
|
if !exists('g:LatexBox_completion_environments')
|
||||||
@@ -196,37 +196,42 @@ function! s:FindBibData(...)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !filereadable(file)
|
if !filereadable(file)
|
||||||
return ''
|
return []
|
||||||
endif
|
endif
|
||||||
|
let lines = readfile(file)
|
||||||
|
let bibdata_list = []
|
||||||
|
|
||||||
|
"
|
||||||
|
" Search for added bibliographies
|
||||||
|
"
|
||||||
let bibliography_cmds = [
|
let bibliography_cmds = [
|
||||||
\ '\\bibliography',
|
\ '\\bibliography',
|
||||||
\ '\\addbibresource',
|
\ '\\addbibresource',
|
||||||
\ '\\addglobalbib',
|
\ '\\addglobalbib',
|
||||||
\ '\\addsectionbib',
|
\ '\\addsectionbib',
|
||||||
\ ]
|
\ ]
|
||||||
|
|
||||||
let lines = readfile(file)
|
|
||||||
|
|
||||||
let bibdata_list = []
|
|
||||||
|
|
||||||
for cmd in bibliography_cmds
|
for cmd in bibliography_cmds
|
||||||
let bibdata_list += map(filter(copy(lines),
|
let filtered = filter(copy(lines),
|
||||||
\ 'v:val =~ ''\C' . cmd . '\s*{[^}]\+}'''),
|
\ 'v:val =~ ''\C' . cmd . '\s*{[^}]\+}''')
|
||||||
|
let files = map(filtered,
|
||||||
\ 'matchstr(v:val, ''\C' . cmd . '\s*{\zs[^}]\+\ze}'')')
|
\ 'matchstr(v:val, ''\C' . cmd . '\s*{\zs[^}]\+\ze}'')')
|
||||||
|
for file in files
|
||||||
|
let bibdata_list += map(split(file, ','),
|
||||||
|
\ 'fnamemodify(v:val, '':r'')')
|
||||||
|
endfor
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
let bibdata_list += map(filter(copy(lines),
|
"
|
||||||
\ 'v:val =~ ''\C\\\%(input\|include\)\s*{[^}]\+}'''),
|
" Also search included files
|
||||||
\ 's:FindBibData(LatexBox_kpsewhich(matchstr(v:val,'
|
"
|
||||||
\ . '''\C\\\%(input\|include\)\s*{\zs[^}]\+\ze}'')))')
|
for input in filter(lines,
|
||||||
|
\ 'v:val =~ ''\C\\\%(input\|include\)\s*{[^}]\+}''')
|
||||||
|
let bibdata_list += s:FindBibData(LatexBox_kpsewhich(
|
||||||
|
\ matchstr(input,
|
||||||
|
\ '\C\\\%(input\|include\)\s*{\zs[^}]\+\ze}')))
|
||||||
|
endfor
|
||||||
|
|
||||||
let bibdata_list += map(filter(copy(lines),
|
return bibdata_list
|
||||||
\ 'v:val =~ ''\C\\\%(input\|include\)\s\+\S\+'''),
|
|
||||||
\ 's:FindBibData(LatexBox_kpsewhich(matchstr(v:val,'
|
|
||||||
\ . '''\C\\\%(input\|include\)\s\+\zs\S\+\ze'')))')
|
|
||||||
|
|
||||||
return join(bibdata_list, ',')
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:bstfile = expand('<sfile>:p:h') . '/vimcomplete'
|
let s:bstfile = expand('<sfile>:p:h') . '/vimcomplete'
|
||||||
@@ -235,7 +240,7 @@ function! LatexBox_BibSearch(regexp)
|
|||||||
let res = []
|
let res = []
|
||||||
|
|
||||||
" Find data from bib files
|
" Find data from bib files
|
||||||
let bibdata = s:FindBibData()
|
let bibdata = join(s:FindBibData(), ',')
|
||||||
if bibdata != ''
|
if bibdata != ''
|
||||||
|
|
||||||
" write temporary aux file
|
" write temporary aux file
|
||||||
@@ -247,9 +252,18 @@ function! LatexBox_BibSearch(regexp)
|
|||||||
call writefile(['\citation{*}', '\bibstyle{' . s:bstfile . '}',
|
call writefile(['\citation{*}', '\bibstyle{' . s:bstfile . '}',
|
||||||
\ '\bibdata{' . bibdata . '}'], auxfile)
|
\ '\bibdata{' . bibdata . '}'], auxfile)
|
||||||
|
|
||||||
silent execute '! cd ' shellescape(LatexBox_GetTexRoot()) .
|
if has('win32')
|
||||||
\ ' ; bibtex -terse '
|
let l:old_shellslash = &l:shellslash
|
||||||
\ . fnamemodify(auxfile, ':t') . ' >/dev/null'
|
setlocal noshellslash
|
||||||
|
silent execute '! cd ' shellescape(LatexBox_GetTexRoot()) .
|
||||||
|
\ ' & bibtex -terse '
|
||||||
|
\ . fnamemodify(auxfile, ':t') . ' >nul'
|
||||||
|
let &l:shellslash = l:old_shellslash
|
||||||
|
else
|
||||||
|
silent execute '! cd ' shellescape(LatexBox_GetTexRoot()) .
|
||||||
|
\ ' ; bibtex -terse '
|
||||||
|
\ . fnamemodify(auxfile, ':t') . ' >/dev/null'
|
||||||
|
endif
|
||||||
|
|
||||||
let lines = split(substitute(join(readfile(bblfile), "\n"),
|
let lines = split(substitute(join(readfile(bblfile), "\n"),
|
||||||
\ '\n\n\@!\(\s\=\)\s*\|{\|}', '\1', 'g'), "\n")
|
\ '\n\n\@!\(\s\=\)\s*\|{\|}', '\1', 'g'), "\n")
|
||||||
@@ -258,6 +272,8 @@ function! LatexBox_BibSearch(regexp)
|
|||||||
let matches = matchlist(line,
|
let matches = matchlist(line,
|
||||||
\ '^\(.*\)||\(.*\)||\(.*\)||\(.*\)||\(.*\)')
|
\ '^\(.*\)||\(.*\)||\(.*\)||\(.*\)||\(.*\)')
|
||||||
if !empty(matches) && !empty(matches[1])
|
if !empty(matches) && !empty(matches[1])
|
||||||
|
let s:type_length = max([s:type_length,
|
||||||
|
\ len(matches[2]) + 3])
|
||||||
call add(res, {
|
call add(res, {
|
||||||
\ 'key': matches[1],
|
\ 'key': matches[1],
|
||||||
\ 'type': matches[2],
|
\ 'type': matches[2],
|
||||||
@@ -294,6 +310,7 @@ endfunction
|
|||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" BibTeX completion {{{
|
" BibTeX completion {{{
|
||||||
|
let s:type_length=0
|
||||||
function! LatexBox_BibComplete(regexp)
|
function! LatexBox_BibComplete(regexp)
|
||||||
|
|
||||||
" treat spaces as '.*' if needed
|
" treat spaces as '.*' if needed
|
||||||
@@ -305,9 +322,12 @@ function! LatexBox_BibComplete(regexp)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let res = []
|
let res = []
|
||||||
|
let s:type_length = 4
|
||||||
for m in LatexBox_BibSearch(regexp)
|
for m in LatexBox_BibSearch(regexp)
|
||||||
let type = m['type'] == '' ? '[-]' : '[' . m['type'] . '] '
|
let type = m['type'] == '' ? '[-]' : '[' . m['type'] . '] '
|
||||||
|
let type = printf('%-' . s:type_length . 's', type)
|
||||||
let auth = m['author'] == '' ? '' : m['author'][:20] . ' '
|
let auth = m['author'] == '' ? '' : m['author'][:20] . ' '
|
||||||
|
let auth = substitute(auth, '\~', ' ', 'g')
|
||||||
let year = m['year'] == '' ? '' : '(' . m['year'] . ')'
|
let year = m['year'] == '' ? '' : '(' . m['year'] . ')'
|
||||||
let w = { 'word': m['key'],
|
let w = { 'word': m['key'],
|
||||||
\ 'abbr': type . auth . year,
|
\ 'abbr': type . auth . year,
|
||||||
@@ -437,7 +457,7 @@ function! s:GetLabelCache(file)
|
|||||||
|
|
||||||
if !has_key(s:LabelCache , a:file) || s:LabelCache[a:file][0] != getftime(a:file)
|
if !has_key(s:LabelCache , a:file) || s:LabelCache[a:file][0] != getftime(a:file)
|
||||||
" Open file in temporary split window for label extraction.
|
" Open file in temporary split window for label extraction.
|
||||||
silent execute '1sp +let\ labels=s:ExtractLabels()|let\ inputs=s:ExtractInputs()|quit! ' . a:file
|
silent execute '1sp +let\ labels=s:ExtractLabels()|let\ inputs=s:ExtractInputs()|quit! ' . fnameescape(a:file)
|
||||||
let s:LabelCache[a:file] = [ getftime(a:file), labels, inputs ]
|
let s:LabelCache[a:file] = [ getftime(a:file), labels, inputs ]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -312,7 +312,7 @@ function! s:ReadTOC(auxfile, texfile, ...)
|
|||||||
if included != ''
|
if included != ''
|
||||||
" append the input TOX to `toc` and `fileindices`
|
" append the input TOX to `toc` and `fileindices`
|
||||||
let newaux = prefix . '/' . included
|
let newaux = prefix . '/' . included
|
||||||
let newtex = fnamemodify(fnamemodify(newaux, ':t:r') . '.tex', ':p')
|
let newtex = fnamemodify(newaux, ':r') . '.tex'
|
||||||
call s:ReadTOC(newaux, newtex, toc, fileindices)
|
call s:ReadTOC(newaux, newtex, toc, fileindices)
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
@@ -344,10 +344,11 @@ function! s:ReadTOC(auxfile, texfile, ...)
|
|||||||
let page = ''
|
let page = ''
|
||||||
endif
|
endif
|
||||||
" parse section number
|
" parse section number
|
||||||
|
let secnum = ''
|
||||||
if len(tree[1]) > 3 && empty(tree[1][1])
|
if len(tree[1]) > 3 && empty(tree[1][1])
|
||||||
call remove(tree[1], 1)
|
call remove(tree[1], 1)
|
||||||
endif
|
endif
|
||||||
if len(tree[1]) > 1
|
if len(tree[1]) > 1 && tree[1][0] =~ '\(numberline\|tocsection\)'
|
||||||
if !empty(tree[1][1])
|
if !empty(tree[1][1])
|
||||||
let secnum = LatexBox_TreeToTex(tree[1][1])
|
let secnum = LatexBox_TreeToTex(tree[1][1])
|
||||||
let secnum = substitute(secnum, '\\\S\+\s', '', 'g')
|
let secnum = substitute(secnum, '\\\S\+\s', '', 'g')
|
||||||
@@ -356,12 +357,12 @@ function! s:ReadTOC(auxfile, texfile, ...)
|
|||||||
endif
|
endif
|
||||||
let tree = tree[1][2:]
|
let tree = tree[1][2:]
|
||||||
else
|
else
|
||||||
let secnum = ''
|
|
||||||
let tree = tree[1]
|
let tree = tree[1]
|
||||||
endif
|
endif
|
||||||
" parse section title
|
" parse section title
|
||||||
let text = LatexBox_TreeToTex(tree)
|
let text = LatexBox_TreeToTex(tree)
|
||||||
let text = substitute(text, '^{\+\|}\+$', '', 'g')
|
let text = substitute(text, '^{\+\|}\+$', '', 'g')
|
||||||
|
let text = substitute(text, '\*', '', 'g')
|
||||||
|
|
||||||
" add TOC entry
|
" add TOC entry
|
||||||
call add(fileindices[texfile], len(toc))
|
call add(fileindices[texfile], len(toc))
|
||||||
@@ -436,27 +437,30 @@ endfunction
|
|||||||
function! s:FindClosestSection(toc, fileindices)
|
function! s:FindClosestSection(toc, fileindices)
|
||||||
let file = expand('%:p')
|
let file = expand('%:p')
|
||||||
if !has_key(a:fileindices, file)
|
if !has_key(a:fileindices, file)
|
||||||
echoe 'Current file is not included in main tex file ' . LatexBox_GetMainTexFile() . '.'
|
return 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let imax = len(a:fileindices[file])
|
let imax = len(a:fileindices[file])
|
||||||
let imin = 0
|
if imax > 0
|
||||||
while imin < imax - 1
|
let imin = 0
|
||||||
let i = (imax + imin) / 2
|
while imin < imax - 1
|
||||||
let tocindex = a:fileindices[file][i]
|
let i = (imax + imin) / 2
|
||||||
let entry = a:toc[tocindex]
|
let tocindex = a:fileindices[file][i]
|
||||||
let titlestr = entry['text']
|
let entry = a:toc[tocindex]
|
||||||
let titlestr = escape(titlestr, '\')
|
let titlestr = entry['text']
|
||||||
let titlestr = substitute(titlestr, ' ', '\\_\\s\\+', 'g')
|
let titlestr = escape(titlestr, '\')
|
||||||
let [lnum, cnum] = searchpos('\\' . entry['level'] . '\_\s*{' . titlestr . '}', 'nW')
|
let titlestr = substitute(titlestr, ' ', '\\_\\s\\+', 'g')
|
||||||
if lnum
|
let [lnum, cnum] = searchpos('\\' . entry['level'] . '\_\s*{' . titlestr . '}', 'nW')
|
||||||
let imax = i
|
if lnum
|
||||||
else
|
let imax = i
|
||||||
let imin = i
|
else
|
||||||
endif
|
let imin = i
|
||||||
endwhile
|
endif
|
||||||
|
endwhile
|
||||||
return a:fileindices[file][imin]
|
return a:fileindices[file][imin]
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:ConvBackPats = map([
|
let s:ConvBackPats = map([
|
||||||
|
|||||||
@@ -80,24 +80,14 @@ function! s:TOCActivate(close)
|
|||||||
|
|
||||||
execute b:calling_win . 'wincmd w'
|
execute b:calling_win . 'wincmd w'
|
||||||
|
|
||||||
let bnr = bufnr(entry['file'])
|
let files = [entry['file']]
|
||||||
if bnr == -1
|
for line in filter(readfile(entry['file']), 'v:val =~ ''\\input{''')
|
||||||
execute 'badd ' . entry['file']
|
call add(files, matchstr(line, '{\zs.*\ze\(\.tex\)\?}') . '.tex')
|
||||||
let bnr = bufnr(entry['file'])
|
endfor
|
||||||
endif
|
|
||||||
|
|
||||||
execute 'buffer! ' . bnr
|
" Find section in buffer (or inputted files)
|
||||||
|
call s:TOCFindMatch('\\' . entry['level'] . '\_\s*{' . titlestr . '}',
|
||||||
" skip duplicates
|
\ duplicates, files)
|
||||||
while duplicates > 0
|
|
||||||
if search('\\' . entry['level'] . '\_\s*{' . titlestr . '}', 'ws')
|
|
||||||
let duplicates -= 1
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
|
|
||||||
if search('\\' . entry['level'] . '\_\s*{' . titlestr . '}', 'ws')
|
|
||||||
normal zv
|
|
||||||
endif
|
|
||||||
|
|
||||||
if a:close
|
if a:close
|
||||||
if g:LatexBox_split_resize
|
if g:LatexBox_split_resize
|
||||||
@@ -109,6 +99,30 @@ function! s:TOCActivate(close)
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" {{{2 TOCFindMatch
|
||||||
|
function! s:TOCFindMatch(strsearch,duplicates,files)
|
||||||
|
|
||||||
|
call s:TOCOpenBuf(a:files[0])
|
||||||
|
let dups = a:duplicates
|
||||||
|
|
||||||
|
" Skip duplicates
|
||||||
|
while dups > 0
|
||||||
|
if search(a:strsearch, 'w')
|
||||||
|
let dups -= 1
|
||||||
|
else
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
if search(a:strsearch, 'w')
|
||||||
|
normal! zv
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
call s:TOCFindMatch(a:strsearch,dups,a:files[1:])
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
" {{{2 TOCFoldLevel
|
" {{{2 TOCFoldLevel
|
||||||
function! TOCFoldLevel(lnum)
|
function! TOCFoldLevel(lnum)
|
||||||
let line = getline(a:lnum)
|
let line = getline(a:lnum)
|
||||||
@@ -140,12 +154,25 @@ function! TOCFoldLevel(lnum)
|
|||||||
" Return previous fold level
|
" Return previous fold level
|
||||||
return "="
|
return "="
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" {{{2 TOCFoldText
|
" {{{2 TOCFoldText
|
||||||
function! TOCFoldText()
|
function! TOCFoldText()
|
||||||
let parts = matchlist(getline(v:foldstart), '^\(.*\)\t\(.*\)$')
|
let parts = matchlist(getline(v:foldstart), '^\(.*\)\t\(.*\)$')
|
||||||
return printf('%-8s%-72s', parts[1], parts[2])
|
return printf('%-8s%-72s', parts[1], parts[2])
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" {{{2 TOCOpenBuf
|
||||||
|
function! s:TOCOpenBuf(file)
|
||||||
|
|
||||||
|
let bnr = bufnr(a:file)
|
||||||
|
if bnr == -1
|
||||||
|
execute 'badd ' . a:file
|
||||||
|
let bnr = bufnr(a:file)
|
||||||
|
endif
|
||||||
|
execute 'buffer! ' . bnr
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
" }}}1
|
" }}}1
|
||||||
|
|
||||||
" {{{1 Mappings
|
" {{{1 Mappings
|
||||||
|
|||||||
@@ -33,14 +33,14 @@ endif
|
|||||||
setlocal include=\\<\\(use\\\|require\\)\\>
|
setlocal include=\\<\\(use\\\|require\\)\\>
|
||||||
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
|
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
|
||||||
setlocal define=[^A-Za-z_]
|
setlocal define=[^A-Za-z_]
|
||||||
|
setlocal iskeyword+=:
|
||||||
|
|
||||||
" The following line changes a global variable but is necessary to make
|
" The following line changes a global variable but is necessary to make
|
||||||
" gf and similar commands work. The change to iskeyword was incorrect.
|
" gf and similar commands work. Thanks to Andrew Pimlott for pointing
|
||||||
" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
|
" out the problem. If this causes a problem for you, add an
|
||||||
" problem for you, add an after/ftplugin/perl.vim file that contains
|
" after/ftplugin/perl.vim file that contains
|
||||||
" set isfname-=:
|
" set isfname-=:
|
||||||
set isfname+=:
|
set isfname+=:
|
||||||
set iskeyword+=:
|
|
||||||
|
|
||||||
" Set this once, globally.
|
" Set this once, globally.
|
||||||
if !exists("perlpath")
|
if !exists("perlpath")
|
||||||
|
|||||||
69
ftplugin/r.vim
Normal file
69
ftplugin/r.vim
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
" ftplugin for R files
|
||||||
|
"
|
||||||
|
" Author: Iago Mosqueira <i.mosqueira@ic.ac.uk>
|
||||||
|
" Author: Johannes Ranke <jranke@uni-bremen.de>
|
||||||
|
" Author: Fernando Henrique Ferraz Pereira da Rosa <feferraz@ime.usp.br>
|
||||||
|
" Maintainer: Johannes Ranke <jranke@uni-bremen.de>
|
||||||
|
" Last Change: 2007 Nov 21
|
||||||
|
" SVN: $Id: r.vim 75 2007-11-21 13:34:02Z ranke $
|
||||||
|
"
|
||||||
|
" Code written in vim is sent to R through a perl pipe
|
||||||
|
" [funnel.pl, by Larry Clapp <vim@theclapp.org>], as individual lines,
|
||||||
|
" blocks, or the whole file.
|
||||||
|
|
||||||
|
" Press <F2> to open a new xterm with a new R interpreter listening
|
||||||
|
" to its standard input (you can type R commands into the xterm)
|
||||||
|
" as well as to code pasted from within vim.
|
||||||
|
"
|
||||||
|
" After selecting a visual block, 'r' sends it to the R interpreter
|
||||||
|
"
|
||||||
|
" In insert mode, <M-Enter> sends the active line to R and moves to the next
|
||||||
|
" line (write and process mode).
|
||||||
|
"
|
||||||
|
" Maps:
|
||||||
|
" <F2> Start a listening R interpreter in new xterm
|
||||||
|
" <F3> Start a listening R-devel interpreter in new xterm
|
||||||
|
" <F4> Start a listening R --vanilla interpreter in new xterm
|
||||||
|
" <F5> Run current file
|
||||||
|
" <F9> Run line under cursor
|
||||||
|
" r Run visual block
|
||||||
|
" <M-Enter> Write and process
|
||||||
|
|
||||||
|
" Only do this when not yet done for this buffer
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Don't load another plugin for this buffer
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
" Disable backup for .r-pipe
|
||||||
|
setl backupskip=.*pipe
|
||||||
|
|
||||||
|
" Set tabstop so it is compatible with the emacs edited code. Personally, I
|
||||||
|
" prefer shiftwidth=2, which I have in my .vimrc anyway
|
||||||
|
set expandtab
|
||||||
|
set shiftwidth=4
|
||||||
|
set tabstop=8
|
||||||
|
|
||||||
|
" Start a listening R interpreter in new xterm
|
||||||
|
noremap <buffer> <F2> :!xterm -T 'R' -e funnel.pl ~/.r-pipe "R && echo -e 'Interpreter has finished. Exiting. Goodbye.\n'"&<CR><CR>
|
||||||
|
|
||||||
|
" Start a listening R-devel interpreter in new xterm
|
||||||
|
noremap <buffer> <F3> :!xterm -T 'R' -e funnel.pl ~/.r-pipe "R-devel && echo 'Interpreter has finished. Exiting. Goodbye.'"&<CR><CR>
|
||||||
|
|
||||||
|
" Start a listening R --vanilla interpreter in new xterm
|
||||||
|
noremap <buffer> <F4> :!xterm -T 'R' -e funnel.pl ~/.r-pipe "R -vanilla && echo 'Interpreter has finished. Exiting. Goodbye.'"&<CR><CR>
|
||||||
|
|
||||||
|
" Send line under cursor to R
|
||||||
|
noremap <buffer> <F9> :execute line(".") 'w >> ~/.r-pipe'<CR>
|
||||||
|
inoremap <buffer> <F9> <Esc> :execute line(".") 'w >> ~/.r-pipe'<CR>
|
||||||
|
|
||||||
|
" Send visual selected block to R
|
||||||
|
vnoremap <buffer> r :w >> ~/.r-pipe<CR>
|
||||||
|
|
||||||
|
" Write and process mode (somehow mapping <C-Enter> does not work)
|
||||||
|
inoremap <M-Enter> <Esc>:execute line(".") 'w >> ~/.r-pipe'<CR>o
|
||||||
|
|
||||||
|
" Send current file to R
|
||||||
|
noremap <buffer> <F5> :execute '1 ,' line("$") 'w >> ~/.r-pipe' <CR><CR>
|
||||||
48
ftplugin/rhelp.vim
Normal file
48
ftplugin/rhelp.vim
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
" ftplugin for R help files
|
||||||
|
"
|
||||||
|
" Author: Johannes Ranke <jranke@uni-bremen.de>
|
||||||
|
" Last Change: 2007 Nov 21
|
||||||
|
" SVN: $Id: rhelp.vim 75 2007-11-21 13:34:02Z ranke $
|
||||||
|
"
|
||||||
|
" Usage:
|
||||||
|
"
|
||||||
|
" Press <F2> to open a new xterm with a new R interpreter listening
|
||||||
|
" to its standard input (you can type R commands into the xterm)
|
||||||
|
" as well as to code pasted from within vim.
|
||||||
|
"
|
||||||
|
" After selecting a visual block, 'r' sends it to the R interpreter
|
||||||
|
"
|
||||||
|
" Add to filetypes.vim, if you don't use vim 7
|
||||||
|
" au BufNewFile,BufRead *.Rd,*.rd setf rhelp
|
||||||
|
"
|
||||||
|
" Maps:
|
||||||
|
" <F2> Start a listening R interpreter in new xterm
|
||||||
|
" <F9> Run line under cursor
|
||||||
|
" r Run visual block
|
||||||
|
" <M-Enter> Write and process R code
|
||||||
|
|
||||||
|
" Only do this when not yet done for this buffer
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Don't load another plugin for this buffer
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
" Set tabbing
|
||||||
|
set expandtab
|
||||||
|
set tabstop=2
|
||||||
|
set shiftwidth=2
|
||||||
|
|
||||||
|
" Start a listening R interpreter in new xterm
|
||||||
|
noremap <buffer> <F2> :!xterm -T 'R' -e funnel.pl ~/.r-pipe "R && echo -e 'Interpreter has finished. Exiting. Goodbye.\n'"&<CR><CR>
|
||||||
|
|
||||||
|
" Send line under cursor to R
|
||||||
|
noremap <buffer> <F9> :execute line(".") 'w >> ~/.r-pipe'<CR>
|
||||||
|
inoremap <buffer> <F9> <Esc> :execute line(".") 'w >> ~/.r-pipe'<CR>
|
||||||
|
|
||||||
|
" Send visual selected block to R
|
||||||
|
vnoremap <buffer> r :w >> ~/.r-pipe<CR>
|
||||||
|
|
||||||
|
" Write and process mode (somehow mapping <C-Enter> does not work)
|
||||||
|
inoremap <M-Enter> <Esc>:execute line(".") 'w >> ~/.r-pipe'<CR>o
|
||||||
59
ftplugin/rnoweb.vim
Normal file
59
ftplugin/rnoweb.vim
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
" ftplugin for Sweave files containing both LaTeX and R code
|
||||||
|
"
|
||||||
|
" Maintainer: Johannes Ranke <jranke@uni-bremen.de>
|
||||||
|
" Last Change: 2007 Nov 21
|
||||||
|
" SVN: $Id: rnoweb.vim 75 2007-11-21 13:34:02Z ranke $
|
||||||
|
"
|
||||||
|
" Usage:
|
||||||
|
"
|
||||||
|
" Press <F2> to open a new xterm with a new R interpreter listening
|
||||||
|
" to its standard input (you can type R commands into the xterm)
|
||||||
|
" as well as to code pasted from within vim.
|
||||||
|
"
|
||||||
|
" A Makefile for producing R noweb files is in included in my Vim script
|
||||||
|
" R.vim:
|
||||||
|
" http://www.vim.org/scripts/script.php?script_id=1048
|
||||||
|
" You can also look in my SVN repository under:
|
||||||
|
" http://kri/viewcvs/*checkout*/Makefile.rnoweb?root=vim
|
||||||
|
"
|
||||||
|
"
|
||||||
|
" After selecting a visual block, 'r' sends it to the R interpreter
|
||||||
|
"
|
||||||
|
" Add to filetypes.vim, if you don't use vim 7
|
||||||
|
" au BufNewFile,BufRead *.Rnw,*.rnw setf rnoweb
|
||||||
|
" and/or
|
||||||
|
" au BufNewFile,BufRead *.Snw,*.snw setf rnoweb
|
||||||
|
"
|
||||||
|
" Maps:
|
||||||
|
" <F2> Start a listening R interpreter in new xterm
|
||||||
|
" <F9> Run line under cursor
|
||||||
|
" r Run visual block
|
||||||
|
" <M-Enter> Write and process R code
|
||||||
|
|
||||||
|
" Only do this when not yet done for this buffer
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Don't load another plugin for this buffer
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
" Disable backup for .r-pipe
|
||||||
|
setl backupskip=.*pipe
|
||||||
|
|
||||||
|
" Set R friendly tabbing
|
||||||
|
set expandtab
|
||||||
|
set shiftwidth=2
|
||||||
|
|
||||||
|
" Start a listening R interpreter in new xterm
|
||||||
|
noremap <buffer> <F2> :!xterm -T 'R' -e funnel.pl ~/.r-pipe "R && echo -e 'Interpreter has finished. Exiting. Goodbye.\n'"&<CR><CR>
|
||||||
|
|
||||||
|
" Send line under cursor to R
|
||||||
|
noremap <buffer> <F9> :execute line(".") 'w >> ~/.r-pipe'<CR>
|
||||||
|
inoremap <buffer> <F9> <Esc> :execute line(".") 'w >> ~/.r-pipe'<CR>
|
||||||
|
|
||||||
|
" Send visual selected block to R
|
||||||
|
vnoremap <buffer> r :w >> ~/.r-pipe<CR>
|
||||||
|
|
||||||
|
" Write and process mode (somehow mapping <C-Enter> does not work)
|
||||||
|
inoremap <M-Enter> <Esc>:execute line(".") 'w >> ~/.r-pipe'<CR>o
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
compiler typescript
|
compiler typescript
|
||||||
|
|
||||||
setlocal autoindent
|
setlocal autoindent
|
||||||
setlocal cindent
|
|
||||||
setlocal smartindent
|
setlocal smartindent
|
||||||
setlocal indentexpr&
|
setlocal indentexpr&
|
||||||
|
|
||||||
|
setlocal cindent
|
||||||
|
setlocal cino=j1J1
|
||||||
|
|
||||||
setlocal commentstring=//\ %s
|
setlocal commentstring=//\ %s
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ let s:block_skip = "synIDattr(synID(line('.'),col('.'),1),'name') =~? '" . s:s
|
|||||||
let s:block_start = 'do\|fn'
|
let s:block_start = 'do\|fn'
|
||||||
let s:block_middle = 'else\|match\|elsif\|catch\|after\|rescue'
|
let s:block_middle = 'else\|match\|elsif\|catch\|after\|rescue'
|
||||||
let s:block_end = 'end'
|
let s:block_end = 'end'
|
||||||
|
let s:pipeline = '^\s*|>.*$'
|
||||||
|
|
||||||
let s:indent_keywords = '\<\%(' . s:block_start . '\|' . s:block_middle . '\)$'
|
let s:indent_keywords = '\<\%(' . s:block_start . '\|' . s:block_middle . '\)$'
|
||||||
let s:deindent_keywords = '^\s*\<\%(' . s:block_end . '\|' . s:block_middle . '\)\>'
|
let s:deindent_keywords = '^\s*\<\%(' . s:block_end . '\|' . s:block_middle . '\)\>'
|
||||||
@@ -38,7 +39,7 @@ function! GetElixirIndent(...)
|
|||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if synIDattr(synID(v:lnum, 1, 1), "name") !~ '\(Comment\|String\)$'
|
if synIDattr(synID(v:lnum, 1, 1), "name") !~ s:skip_syntax
|
||||||
let splited_line = split(getline(lnum), '\zs')
|
let splited_line = split(getline(lnum), '\zs')
|
||||||
let opened_symbol = 0
|
let opened_symbol = 0
|
||||||
let opened_symbol += count(splited_line, '[') - count(splited_line, ']')
|
let opened_symbol += count(splited_line, '[') - count(splited_line, ']')
|
||||||
@@ -51,6 +52,29 @@ function! GetElixirIndent(...)
|
|||||||
let ind += &sw
|
let ind += &sw
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" if line starts with pipeline
|
||||||
|
" and last line doesn't start with pipeline
|
||||||
|
if getline(v:lnum) =~ s:pipeline &&
|
||||||
|
\ getline(lnum) !~ s:pipeline
|
||||||
|
let ind += &sw
|
||||||
|
endif
|
||||||
|
|
||||||
|
" if last line starts with pipeline
|
||||||
|
" and currentline doesn't start with pipeline
|
||||||
|
if getline(lnum) =~ s:pipeline &&
|
||||||
|
\ getline(v:lnum) !~ s:pipeline
|
||||||
|
let ind -= &sw
|
||||||
|
endif
|
||||||
|
|
||||||
|
" if last line starts with pipeline
|
||||||
|
" and current line doesn't start with pipeline
|
||||||
|
" but last line started a block
|
||||||
|
if getline(lnum) =~ s:pipeline &&
|
||||||
|
\ getline(v:lnum) !~ s:pipeline &&
|
||||||
|
\ getline(lnum) =~ s:block_start
|
||||||
|
let ind += &sw
|
||||||
|
endif
|
||||||
|
|
||||||
if getline(v:lnum) =~ s:deindent_keywords
|
if getline(v:lnum) =~ s:deindent_keywords
|
||||||
let bslnum = searchpair( '\<\%(' . s:block_start . '\):\@!\>',
|
let bslnum = searchpair( '\<\%(' . s:block_start . '\):\@!\>',
|
||||||
\ '\<\%(' . s:block_middle . '\):\@!\>\zs',
|
\ '\<\%(' . s:block_middle . '\):\@!\>\zs',
|
||||||
|
|||||||
@@ -167,6 +167,16 @@ call add(s:tags, 'tr')
|
|||||||
call add(s:tags, 'th')
|
call add(s:tags, 'th')
|
||||||
call add(s:tags, 'td')
|
call add(s:tags, 'td')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let s:omittable = [
|
||||||
|
\ ['address', 'article', 'aside', 'blockquote', 'dir', 'div', 'dl', 'fieldset', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'menu', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'],
|
||||||
|
\ ['dt', 'dd'],
|
||||||
|
\ ['li'],
|
||||||
|
\ ['thead', 'tbody', 'tfoot'],
|
||||||
|
\ ['th', 'td'],
|
||||||
|
\]
|
||||||
|
|
||||||
if exists('g:html_exclude_tags')
|
if exists('g:html_exclude_tags')
|
||||||
for tag in g:html_exclude_tags
|
for tag in g:html_exclude_tags
|
||||||
call remove(s:tags, index(s:tags, tag))
|
call remove(s:tags, index(s:tags, tag))
|
||||||
@@ -331,11 +341,35 @@ fun! HtmlIndentGet(lnum)
|
|||||||
let ind = ind - 1
|
let ind = ind - 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let lind = indent(lnum)
|
||||||
|
|
||||||
|
" for tags in s:omittable
|
||||||
|
" let tags_exp = '<\(' . join(tags, '\|') . '\)>'
|
||||||
|
" let close_tags_exp = '</\(' . join(tags, '\|') . '\)>'
|
||||||
|
" if getline(a:lnum) =~ tags_exp
|
||||||
|
" let block_start = search('^'.repeat(' ', lind + (&sw * ind - 1)).'\S' , 'bnW')
|
||||||
|
" let prev_tag = search(tags_exp, 'bW', block_start)
|
||||||
|
" let prev_closetag = search(close_tags_exp, 'W', a:lnum)
|
||||||
|
" if prev_tag && !prev_closetag
|
||||||
|
" let ind = ind - 1
|
||||||
|
" endif
|
||||||
|
" endif
|
||||||
|
|
||||||
|
" if getline(a:lnum) =~ '</\w\+>'
|
||||||
|
" let block_start = search('^'.repeat(' ', lind + (&sw * ind - 1)).'\S' , 'bnW')
|
||||||
|
" let prev_tag = search(tags_exp, 'bW', block_start)
|
||||||
|
" let prev_closetag = search(close_tags_exp, 'W', a:lnum)
|
||||||
|
" if prev_tag && !prev_closetag
|
||||||
|
" let ind = ind - 1
|
||||||
|
" endif
|
||||||
|
" endif
|
||||||
|
" endfor
|
||||||
|
|
||||||
if restore_ic == 0
|
if restore_ic == 0
|
||||||
setlocal noic
|
setlocal noic
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return indent(lnum) + (&sw * ind)
|
return lind + (&sw * ind)
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ set cpo&vim
|
|||||||
" Regex of syntax group names that are or delimit strings/symbols or are comments.
|
" Regex of syntax group names that are or delimit strings/symbols or are comments.
|
||||||
let s:syng_strcom = '\<ruby\%(Regexp\|RegexpDelimiter\|RegexpEscape' .
|
let s:syng_strcom = '\<ruby\%(Regexp\|RegexpDelimiter\|RegexpEscape' .
|
||||||
\ '\|Symbol\|String\|StringDelimiter\|StringEscape\|ASCIICode' .
|
\ '\|Symbol\|String\|StringDelimiter\|StringEscape\|ASCIICode' .
|
||||||
\ '\|Interpolation\|NoInterpolation\|Comment\|Documentation\)\>'
|
\ '\|Interpolation\|InterpolationDelimiter\|NoInterpolation\|Comment\|Documentation\)\>'
|
||||||
|
|
||||||
" Regex of syntax group names that are strings.
|
" Regex of syntax group names that are strings.
|
||||||
let s:syng_string =
|
let s:syng_string =
|
||||||
@@ -175,7 +175,7 @@ function s:GetMSL(lnum)
|
|||||||
" something
|
" something
|
||||||
"
|
"
|
||||||
return msl
|
return msl
|
||||||
elseif s:Match(line, s:non_bracket_continuation_regex) &&
|
elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
|
||||||
\ s:Match(msl, s:non_bracket_continuation_regex)
|
\ s:Match(msl, s:non_bracket_continuation_regex)
|
||||||
" If the current line is a non-bracket continuation and so is the
|
" If the current line is a non-bracket continuation and so is the
|
||||||
" previous one, keep its indent and continue looking for an MSL.
|
" previous one, keep its indent and continue looking for an MSL.
|
||||||
@@ -299,18 +299,20 @@ function s:ExtraBrackets(lnum)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function s:Match(lnum, regex)
|
function s:Match(lnum, regex)
|
||||||
let col = match(getline(a:lnum), '\C'.a:regex) + 1
|
let line = getline(a:lnum)
|
||||||
return col > 0 && !s:IsInStringOrComment(a:lnum, col) ? col : 0
|
let offset = match(line, '\C'.a:regex)
|
||||||
endfunction
|
let col = offset + 1
|
||||||
|
|
||||||
function s:MatchLast(lnum, regex)
|
while offset > -1 && s:IsInStringOrComment(a:lnum, col)
|
||||||
let line = getline(a:lnum)
|
let offset = match(line, '\C'.a:regex, offset + 1)
|
||||||
let col = match(line, '.*\zs' . a:regex)
|
let col = offset + 1
|
||||||
while col != -1 && s:IsInStringOrComment(a:lnum, col)
|
|
||||||
let line = strpart(line, 0, col)
|
|
||||||
let col = match(line, '.*' . a:regex)
|
|
||||||
endwhile
|
endwhile
|
||||||
return col + 1
|
|
||||||
|
if offset > -1
|
||||||
|
return col
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" 3. GetRubyIndent Function {{{1
|
" 3. GetRubyIndent Function {{{1
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Rust
|
" Language: Rust
|
||||||
" Author: Chris Morgan <me@chrismorgan.info>
|
" Author: Chris Morgan <me@chrismorgan.info>
|
||||||
" Last Change: 2013 Jul 10
|
" Last Change: 2013 Oct 29
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
@@ -104,8 +104,23 @@ function GetRustIndent(lnum)
|
|||||||
let prevline = s:get_line_trimmed(prevnonblank(a:lnum - 1))
|
let prevline = s:get_line_trimmed(prevnonblank(a:lnum - 1))
|
||||||
if prevline[len(prevline) - 1] == ","
|
if prevline[len(prevline) - 1] == ","
|
||||||
\ && s:get_line_trimmed(a:lnum) !~ "^\\s*[\\[\\]{}]"
|
\ && s:get_line_trimmed(a:lnum) !~ "^\\s*[\\[\\]{}]"
|
||||||
|
\ && prevline !~ "^\\s*fn\\s"
|
||||||
" Oh ho! The previous line ended in a comma! I bet cindent will try to
|
" Oh ho! The previous line ended in a comma! I bet cindent will try to
|
||||||
" take this too far... For now, let's use the previous line's indent
|
" take this too far... For now, let's normally use the previous line's
|
||||||
|
" indent.
|
||||||
|
|
||||||
|
" One case where this doesn't work out is where *this* line contains
|
||||||
|
" square or curly brackets; then we normally *do* want to be indenting
|
||||||
|
" further.
|
||||||
|
"
|
||||||
|
" Another case where we don't want to is one like a function
|
||||||
|
" definition with arguments spread over multiple lines:
|
||||||
|
"
|
||||||
|
" fn foo(baz: Baz,
|
||||||
|
" baz: Baz) // <-- cindent gets this right by itself
|
||||||
|
"
|
||||||
|
" There are probably other cases where we don't want to do this as
|
||||||
|
" well. Add them as needed.
|
||||||
return GetRustIndent(a:lnum - 1)
|
return GetRustIndent(a:lnum - 1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
16
syntax/c.vim
16
syntax/c.vim
@@ -1,7 +1,7 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: C
|
" Language: C
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2013 Jun 06
|
" Last Change: 2013 Jul 05
|
||||||
|
|
||||||
" Quit when a (custom) syntax file was already loaded
|
" Quit when a (custom) syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@@ -11,6 +11,8 @@ endif
|
|||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
|
let s:ft = matchstr(&ft, '^\([^.]\)\+')
|
||||||
|
|
||||||
" A bunch of useful C keywords
|
" A bunch of useful C keywords
|
||||||
syn keyword cStatement goto break return continue asm
|
syn keyword cStatement goto break return continue asm
|
||||||
syn keyword cLabel case default
|
syn keyword cLabel case default
|
||||||
@@ -110,7 +112,7 @@ endif
|
|||||||
" But avoid matching <::.
|
" But avoid matching <::.
|
||||||
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
|
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
|
||||||
if exists("c_no_curly_error")
|
if exists("c_no_curly_error")
|
||||||
if &filetype ==# 'cpp' && !exists("cpp_no_cpp11")
|
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
|
||||||
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
|
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
|
||||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||||
@@ -124,7 +126,7 @@ if exists("c_no_curly_error")
|
|||||||
syn match cErrInParen display contained "^[{}]\|^<%\|^%>"
|
syn match cErrInParen display contained "^[{}]\|^<%\|^%>"
|
||||||
endif
|
endif
|
||||||
elseif exists("c_no_bracket_error")
|
elseif exists("c_no_bracket_error")
|
||||||
if &filetype ==# 'cpp' && !exists("cpp_no_cpp11")
|
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
|
||||||
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
|
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
|
||||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||||
@@ -138,7 +140,7 @@ elseif exists("c_no_bracket_error")
|
|||||||
syn match cErrInParen display contained "[{}]\|<%\|%>"
|
syn match cErrInParen display contained "[{}]\|<%\|%>"
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if &filetype ==# 'cpp' && !exists("cpp_no_cpp11")
|
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
|
||||||
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
|
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
|
||||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
|
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
|
||||||
@@ -158,7 +160,7 @@ else
|
|||||||
syn match cErrInBracket display contained "[);{}]\|<%\|%>"
|
syn match cErrInBracket display contained "[);{}]\|<%\|%>"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if &filetype ==# 'c' || exists("cpp_no_cpp11")
|
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
||||||
syn region cBadBlock keepend start="{" end="}" contained containedin=cParen,cBracket,cBadBlock transparent fold
|
syn region cBadBlock keepend start="{" end="}" contained containedin=cParen,cBracket,cBadBlock transparent fold
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -370,7 +372,7 @@ syn region cPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>
|
|||||||
|
|
||||||
" Highlight User Labels
|
" Highlight User Labels
|
||||||
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
||||||
if &filetype ==# 'c' || exists("cpp_no_cpp11")
|
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
||||||
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell
|
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell
|
||||||
endif
|
endif
|
||||||
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
|
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
|
||||||
@@ -457,6 +459,8 @@ hi def link cCppOut Comment
|
|||||||
|
|
||||||
let b:current_syntax = "c"
|
let b:current_syntax = "c"
|
||||||
|
|
||||||
|
unlet s:ft
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
" vim: ts=8
|
" vim: ts=8
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ syntax match clojureKeyword "\v<:{1,2}%([^ \n\r\t()\[\]{}";@^`~\\%/]+/)*[^ \n\r\
|
|||||||
|
|
||||||
syntax match clojureStringEscape "\v\\%([\\btnfr"]|u\x{4}|[0-3]\o{2}|\o{1,2})" contained
|
syntax match clojureStringEscape "\v\\%([\\btnfr"]|u\x{4}|[0-3]\o{2}|\o{1,2})" contained
|
||||||
|
|
||||||
syntax region clojureString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape
|
syntax region clojureString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape,@Spell
|
||||||
|
|
||||||
syntax match clojureCharacter "\\."
|
syntax match clojureCharacter "\\."
|
||||||
syntax match clojureCharacter "\\o\%([0-3]\o\{2\}\|\o\{1,2\}\)"
|
syntax match clojureCharacter "\\o\%([0-3]\o\{2\}\|\o\{1,2\}\)"
|
||||||
|
|||||||
@@ -15,9 +15,6 @@ silent! unlet b:current_syntax
|
|||||||
" Highlight long strings.
|
" Highlight long strings.
|
||||||
syntax sync fromstart
|
syntax sync fromstart
|
||||||
|
|
||||||
" CoffeeScript identifiers can have dollar signs.
|
|
||||||
setlocal isident+=$
|
|
||||||
|
|
||||||
" These are `matches` instead of `keywords` because vim's highlighting
|
" These are `matches` instead of `keywords` because vim's highlighting
|
||||||
" priority for keywords is higher than matches. This causes keywords to be
|
" priority for keywords is higher than matches. This causes keywords to be
|
||||||
" highlighted inside matches, even if a match says it shouldn't contain them --
|
" highlighted inside matches, even if a match says it shouldn't contain them --
|
||||||
@@ -67,7 +64,7 @@ syn match coffeeSpecialVar /\<\%(this\|prototype\|arguments\)\>/ display
|
|||||||
hi def link coffeeSpecialVar Special
|
hi def link coffeeSpecialVar Special
|
||||||
|
|
||||||
" An @-variable
|
" An @-variable
|
||||||
syn match coffeeSpecialIdent /@\%(\I\i*\)\?/ display
|
syn match coffeeSpecialIdent /@\%(\%(\I\|\$\)\%(\i\|\$\)*\)\?/ display
|
||||||
hi def link coffeeSpecialIdent Identifier
|
hi def link coffeeSpecialIdent Identifier
|
||||||
|
|
||||||
" A class-like name that starts with a capital letter
|
" A class-like name that starts with a capital letter
|
||||||
@@ -95,15 +92,16 @@ syn region coffeeString start=/'/ skip=/\\\\\|\\'/ end=/'/
|
|||||||
hi def link coffeeString String
|
hi def link coffeeString String
|
||||||
|
|
||||||
" A integer, including a leading plus or minus
|
" A integer, including a leading plus or minus
|
||||||
syn match coffeeNumber /\i\@<![-+]\?\d\+\%([eE][+-]\?\d\+\)\?/ display
|
syn match coffeeNumber /\%(\i\|\$\)\@<![-+]\?\d\+\%([eE][+-]\?\d\+\)\?/ display
|
||||||
" A hex, binary, or octal number
|
" A hex, binary, or octal number
|
||||||
syn match coffeeNumber /\<0[xX]\x\+\>/ display
|
syn match coffeeNumber /\<0[xX]\x\+\>/ display
|
||||||
syn match coffeeNumber /\<0[bB][01]\+\>/ display
|
syn match coffeeNumber /\<0[bB][01]\+\>/ display
|
||||||
syn match coffeeNumber /\<0[oO][0-7]\+\>/ display
|
syn match coffeeNumber /\<0[oO][0-7]\+\>/ display
|
||||||
|
syn match coffeeNumber /\<\%(Infinity\|NaN\)\>/ display
|
||||||
hi def link coffeeNumber Number
|
hi def link coffeeNumber Number
|
||||||
|
|
||||||
" A floating-point number, including a leading plus or minus
|
" A floating-point number, including a leading plus or minus
|
||||||
syn match coffeeFloat /\i\@<![-+]\?\d*\.\@<!\.\d\+\%([eE][+-]\?\d\+\)\?/
|
syn match coffeeFloat /\%(\i\|\$\)\@<![-+]\?\d*\.\@<!\.\d\+\%([eE][+-]\?\d\+\)\?/
|
||||||
\ display
|
\ display
|
||||||
hi def link coffeeFloat Float
|
hi def link coffeeFloat Float
|
||||||
|
|
||||||
@@ -114,7 +112,7 @@ syn match coffeeReservedError /\<\%(case\|default\|function\|var\|void\|with\|co
|
|||||||
hi def link coffeeReservedError Error
|
hi def link coffeeReservedError Error
|
||||||
|
|
||||||
" A normal object assignment
|
" A normal object assignment
|
||||||
syn match coffeeObjAssign /@\?\I\i*\s*\ze::\@!/ contains=@coffeeIdentifier display
|
syn match coffeeObjAssign /@\?\%(\I\|\$\)\%(\i\|\$\)*\s*\ze::\@!/ contains=@coffeeIdentifier display
|
||||||
hi def link coffeeObjAssign Identifier
|
hi def link coffeeObjAssign Identifier
|
||||||
|
|
||||||
syn keyword coffeeTodo TODO FIXME XXX contained
|
syn keyword coffeeTodo TODO FIXME XXX contained
|
||||||
@@ -148,7 +146,7 @@ hi def link coffeeEscape SpecialChar
|
|||||||
|
|
||||||
" A regex -- must not follow a parenthesis, number, or identifier, and must not
|
" A regex -- must not follow a parenthesis, number, or identifier, and must not
|
||||||
" be followed by a number
|
" be followed by a number
|
||||||
syn region coffeeRegex start=#\%(\%()\|\i\@<!\d\)\s*\|\i\)\@<!/=\@!\s\@!#
|
syn region coffeeRegex start=#\%(\%()\|\%(\i\|\$\)\@<!\d\)\s*\|\i\)\@<!/=\@!\s\@!#
|
||||||
\ end=#/[gimy]\{,4}\d\@!#
|
\ end=#/[gimy]\{,4}\d\@!#
|
||||||
\ oneline contains=@coffeeBasicString,coffeeRegexCharSet
|
\ oneline contains=@coffeeBasicString,coffeeRegexCharSet
|
||||||
syn region coffeeRegexCharSet start=/\[/ end=/]/ contained
|
syn region coffeeRegexCharSet start=/\[/ end=/]/ contained
|
||||||
@@ -182,11 +180,11 @@ syn match coffeeSemicolonError /;$/ display
|
|||||||
hi def link coffeeSemicolonError Error
|
hi def link coffeeSemicolonError Error
|
||||||
|
|
||||||
" Ignore reserved words in dot accesses.
|
" Ignore reserved words in dot accesses.
|
||||||
syn match coffeeDotAccess /\.\@<!\.\s*\I\i*/he=s+1 contains=@coffeeIdentifier
|
syn match coffeeDotAccess /\.\@<!\.\s*\%(\I\|\$\)\%(\i\|\$\)*/he=s+1 contains=@coffeeIdentifier
|
||||||
hi def link coffeeDotAccess coffeeExtendedOp
|
hi def link coffeeDotAccess coffeeExtendedOp
|
||||||
|
|
||||||
" Ignore reserved words in prototype accesses.
|
" Ignore reserved words in prototype accesses.
|
||||||
syn match coffeeProtoAccess /::\s*\I\i*/he=s+2 contains=@coffeeIdentifier
|
syn match coffeeProtoAccess /::\s*\%(\I\|\$\)\%(\i\|\$\)*/he=s+2 contains=@coffeeIdentifier
|
||||||
hi def link coffeeProtoAccess coffeeExtendedOp
|
hi def link coffeeProtoAccess coffeeExtendedOp
|
||||||
|
|
||||||
" This is required for interpolations to work.
|
" This is required for interpolations to work.
|
||||||
|
|||||||
@@ -39,6 +39,9 @@ if !exists("cpp_no_cpp11")
|
|||||||
syn keyword cppExceptions noexcept
|
syn keyword cppExceptions noexcept
|
||||||
syn keyword cppStorageClass constexpr decltype
|
syn keyword cppStorageClass constexpr decltype
|
||||||
syn keyword cppConstant nullptr
|
syn keyword cppConstant nullptr
|
||||||
|
" A C++11 raw-string literal. It tries to follow 2.14.5 and 2.14.5.2 of the
|
||||||
|
" standard.
|
||||||
|
syn region cppRawString matchgroup=cppRawDelim start=+\%(u8\=\|[LU]\)\=R"\z(\%([ ()\\\d9-\d12]\@![\d0-\d127]\)\{,16}\)(+ end=+)\z1"+ contains=@Spell
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" The minimum and maximum operators in GNU C++
|
" The minimum and maximum operators in GNU C++
|
||||||
@@ -62,6 +65,8 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
|
|||||||
HiLink cppStructure Structure
|
HiLink cppStructure Structure
|
||||||
HiLink cppBoolean Boolean
|
HiLink cppBoolean Boolean
|
||||||
HiLink cppConstant Constant
|
HiLink cppConstant Constant
|
||||||
|
HiLink cppRawDelim cFormat
|
||||||
|
HiLink cppRawString String
|
||||||
delcommand HiLink
|
delcommand HiLink
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ if exists("b:current_syntax")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
syn case match
|
syn case match
|
||||||
syn match godocTitle "^\([A-Z]*\)$"
|
syn match godocTitle "^\([A-Z][A-Z ]*\)$"
|
||||||
|
|
||||||
command -nargs=+ HiLink hi def link <args>
|
command -nargs=+ HiLink hi def link <args>
|
||||||
|
|
||||||
|
|||||||
@@ -19,29 +19,39 @@ ru! syntax/html.vim
|
|||||||
unlet b:current_syntax
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
|
||||||
syn keyword hbsTodo TODO FIXME XXX contained
|
syn region hbsInside start=/{{/ end=/}}/ keepend
|
||||||
|
|
||||||
syn match hbsError /}}}\?/
|
syn keyword hbsTodo TODO FIXME XXX contained
|
||||||
syn match hbsInsideError /{{[{#<>=!\/]\?/ containedin=@hbsInside
|
|
||||||
|
|
||||||
syn cluster htmlHbsContainer add=htmlHead,htmlTitle,htmlString,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6
|
syn match hbsError /}}}\?/
|
||||||
syn region hbsInside start=/{{/ end=/}}/ keepend transparent containedin=@htmlHbsContainer
|
syn match hbsInsideError /{{[{#<>=!\/]\?/ contained containedin=@hbsInside
|
||||||
|
|
||||||
syn match hbsHandlebars "{{\|}}" containedin=hbsInside
|
syn match hbsHandlebars "{{\|}}" contained containedin=hbsInside
|
||||||
syn match hbsUnescape "{{{\|}}}" containedin=hbsInside
|
syn match hbsUnescape "{{{\|}}}" contained containedin=hbsInside extend
|
||||||
syn match hbsOperators "=\|\.\|/" containedin=hbsInside
|
syn match hbsOperators "=\|\.\|/" contained containedin=hbsInside
|
||||||
|
|
||||||
syn region hbsSection start="{{[#/]"lc=2 end=/}}/me=e-2 containedin=hbsInside
|
syn region hbsSection start="{{[#/]"lc=2 end=/}}/me=e-2 contained containedin=hbsInside
|
||||||
syn region hbsPartial start=/{{[<>]/lc=2 end=/}}/me=e-2 containedin=hbsInside
|
syn region hbsPartial start=/{{[<>]/lc=2 end=/}}/me=e-2 contained containedin=hbsInside
|
||||||
syn region hbsMarkerSet start=/{{=/lc=2 end=/=}}/me=e-2 containedin=hbsInside
|
syn region hbsMarkerSet start=/{{=/lc=2 end=/=}}/me=e-2 contained containedin=hbsInside
|
||||||
|
|
||||||
syn region hbsComment start=/{{!/rs=s+2 end=/}}/re=e-2 containedin=htmlHead contains=hbsTodo,Todo
|
syn region hbsComment start=/{{!/rs=s+2 end=/}}/re=e-2 contained containedin=hbsInside contains=hbsTodo,Todo
|
||||||
syn region hbsBlockComment start=/{{!--/rs=s+2 end=/--}}/re=e-2 containedin=htmlHead contains=hbsTodo,Todo
|
syn region hbsBlockComment start=/{{!--/rs=s+2 end=/--}}/re=e-2 contained containedin=hbsInside contains=hbsTodo,Todo extend
|
||||||
syn region hbsQString start=/'/ skip=/\\'/ end=/'/ containedin=hbsInside
|
syn region hbsQString start=/'/ skip=/\\'/ end=/'/ contained containedin=hbsInside
|
||||||
syn region hbsDQString start=/"/ skip=/\\"/ end=/"/ containedin=hbsInside
|
syn region hbsDQString start=/"/ skip=/\\"/ end=/"/ contained containedin=hbsInside
|
||||||
|
|
||||||
syn match hbsConditionals "\([/#]\(if\|unless\)\|else\)" containedin=hbsInside
|
syn match hbsConditionals "\([/#]\(if\|unless\)\|else\)" contained containedin=hbsInside
|
||||||
syn match hbsHelpers "[/#]\(with\|each\)" containedin=hbsInside
|
syn match hbsHelpers "[/#]\(with\|each\)" contained containedin=hbsInside
|
||||||
|
|
||||||
|
syn cluster allHbsItems add=hbsTodo,hbsError,hbsInsideError,hbsInside,hbsHandlebars,
|
||||||
|
\ hbsUnescape,hbsOperators,hbsSection,hbsPartial,hbsMarkerSet,
|
||||||
|
\ hbsComment,hbsBlockComment,hbsQString,hbsDQString,hbsConditionals,
|
||||||
|
\ hbsHelpers,hbsPartial,hbsMarkerSet,hbsComment,hbsBlockComment,
|
||||||
|
\ hbsQString,hbsDQString,hbsConditionals,hbsHelpers
|
||||||
|
|
||||||
|
syn cluster htmlAdditional add=htmlTag,htmlEndTag,htmlTagName,htmlSpecialChar
|
||||||
|
|
||||||
|
syn region hbsScriptTemplate start=+<script [^>]*type *=[^>]*text/x-handlebars-template[^>]*>+
|
||||||
|
\ end=+</script>+me=s-1 keepend contains=@htmlHbsContainer,@allHbsItems,@htmlAdditional
|
||||||
|
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Define the default highlighting.
|
||||||
|
|||||||
105
syntax/mason.vim
Normal file
105
syntax/mason.vim
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: Mason (Perl embedded in HTML)
|
||||||
|
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||||
|
" Homepage: http://github.com/vim-perl/vim-perl/tree/master
|
||||||
|
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||||
|
" Last Change: {{LAST_CHANGE}}
|
||||||
|
" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
||||||
|
" Andrew Smith <andrewdsmith@yahoo.com>
|
||||||
|
"
|
||||||
|
" TODO:
|
||||||
|
" - Fix <%text> blocks to show HTML tags but ignore Mason tags.
|
||||||
|
"
|
||||||
|
|
||||||
|
" Clear previous syntax settings unless this is v6 or above, in which case just
|
||||||
|
" exit without doing anything.
|
||||||
|
"
|
||||||
|
if version < 600
|
||||||
|
syn clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" The HTML syntax file included below uses this variable.
|
||||||
|
"
|
||||||
|
if !exists("main_syntax")
|
||||||
|
let main_syntax = 'mason'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" First pull in the HTML syntax.
|
||||||
|
"
|
||||||
|
if version < 600
|
||||||
|
so <sfile>:p:h/html.vim
|
||||||
|
else
|
||||||
|
runtime! syntax/html.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn cluster htmlPreproc add=@masonTop
|
||||||
|
|
||||||
|
" Now pull in the Perl syntax.
|
||||||
|
"
|
||||||
|
if version < 600
|
||||||
|
syn include @perlTop <sfile>:p:h/perl.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
syn include @podTop <sfile>:p:h/pod.vim
|
||||||
|
else
|
||||||
|
syn include @perlTop syntax/perl.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
syn include @podTop syntax/pod.vim
|
||||||
|
endif
|
||||||
|
|
||||||
|
" It's hard to reduce down to the correct sub-set of Perl to highlight in some
|
||||||
|
" of these cases so I've taken the safe option of just using perlTop in all of
|
||||||
|
" them. If you have any suggestions, please let me know.
|
||||||
|
"
|
||||||
|
syn region masonPod start="^=[a-z]" end="^=cut" keepend contained contains=@podTop
|
||||||
|
syn region masonPerlBraces start="{" end="}" contained
|
||||||
|
syn region masonLine matchgroup=Delimiter start="^%" end="$" keepend contains=@perlTop,masonPerlBraces
|
||||||
|
syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@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 masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=masonPod,@perlTop
|
||||||
|
|
||||||
|
syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=masonPod,@perlTop
|
||||||
|
syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=masonPod,@perlTop
|
||||||
|
syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=masonPod,@perlTop
|
||||||
|
syn region masonClass matchgroup=Delimiter start="<%class>" end="</%class>" contains=masonPod,@perlTop
|
||||||
|
syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=masonPod,@perlTop
|
||||||
|
|
||||||
|
syn region masonDef matchgroup=Delimiter start="<%def\s*[._/[:alnum:]]\+\s*>" end="</%def>" contains=@htmlTop
|
||||||
|
syn region masonMethod matchgroup=Delimiter start="<%method\s*[._/[:alnum:]]\+\s*>" end="</%method>" contains=@htmlTop
|
||||||
|
|
||||||
|
syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=masonPod,@perlTop
|
||||||
|
syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=masonPod,@perlTop
|
||||||
|
|
||||||
|
syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=masonPod,@perlTop
|
||||||
|
|
||||||
|
syn region masonDoc matchgroup=Delimiter start="<%doc>" end="</%doc>"
|
||||||
|
syn region masonText matchgroup=Delimiter start="<%text>" end="</%text>"
|
||||||
|
|
||||||
|
syn cluster masonTop contains=masonLine,masonExpr,masonPerl,masonComp,masonArgs,masonInit,masonCleanup,masonOnce,masonShared,masonDef,masonMethod,masonFlags,masonAttr,masonFilter,masonDoc,masonText
|
||||||
|
|
||||||
|
" Set up default highlighting. Almost all of this is done in the included
|
||||||
|
" syntax files.
|
||||||
|
"
|
||||||
|
if version >= 508 || !exists("did_mason_syn_inits")
|
||||||
|
if version < 508
|
||||||
|
let did_mason_syn_inits = 1
|
||||||
|
com -nargs=+ HiLink hi link <args>
|
||||||
|
else
|
||||||
|
com -nargs=+ HiLink hi def link <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
HiLink masonDoc Comment
|
||||||
|
HiLink masonPod Comment
|
||||||
|
|
||||||
|
delc HiLink
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = "mason"
|
||||||
|
|
||||||
|
if main_syntax == 'mason'
|
||||||
|
unlet main_syntax
|
||||||
|
endif
|
||||||
@@ -371,13 +371,6 @@ syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgr
|
|||||||
|
|
||||||
syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
|
syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
|
||||||
|
|
||||||
if !exists("perl_no_scope_in_variables")
|
|
||||||
syn match perlFunctionPRef "\h\w*::" contained
|
|
||||||
syn match perlFunctionName "\h\w*[^:]" contained
|
|
||||||
else
|
|
||||||
syn match perlFunctionName "\h[[:alnum:]_:]*" contained
|
|
||||||
endif
|
|
||||||
|
|
||||||
" The => operator forces a bareword to the left of it to be interpreted as
|
" The => operator forces a bareword to the left of it to be interpreted as
|
||||||
" a string
|
" a string
|
||||||
syn match perlString "\I\@<!-\?\I\i*\%(\s*=>\)\@="
|
syn match perlString "\I\@<!-\?\I\i*\%(\s*=>\)\@="
|
||||||
|
|||||||
155
syntax/rhelp.vim
Normal file
155
syntax/rhelp.vim
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: R Help File
|
||||||
|
" Maintainer: Johannes Ranke <jranke@uni-bremen.de>
|
||||||
|
" Last Change: 2006 Apr 24
|
||||||
|
" Version: 0.7
|
||||||
|
" SVN: $Id: rhelp.vim 57 2006-04-24 15:52:13Z ranke $
|
||||||
|
" Remarks: - Now includes R syntax highlighting in the appropriate
|
||||||
|
" sections if an r.vim file is in the same directory or in the
|
||||||
|
" default debian location.
|
||||||
|
" - There is no Latex markup in equations
|
||||||
|
|
||||||
|
" Version Clears: {{{1
|
||||||
|
" For version 5.x: Clear all syntax items
|
||||||
|
" For version 6.x and 7.x: Quit when a syntax file was already loaded
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn case match
|
||||||
|
|
||||||
|
" R help identifiers {{{
|
||||||
|
syn region rhelpIdentifier matchgroup=rhelpSection start="\\name{" end="}"
|
||||||
|
syn region rhelpIdentifier matchgroup=rhelpSection start="\\alias{" end="}"
|
||||||
|
syn region rhelpIdentifier matchgroup=rhelpSection start="\\pkg{" end="}"
|
||||||
|
syn region rhelpIdentifier matchgroup=rhelpSection start="\\item{" end="}" contained contains=rhelpDots
|
||||||
|
syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end=/}/ contained
|
||||||
|
|
||||||
|
" Highlighting of R code using an existing r.vim syntax file if available {{{1
|
||||||
|
syn include @R syntax/r.vim
|
||||||
|
syn match rhelpDots "\\dots" containedin=@R
|
||||||
|
syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpSection
|
||||||
|
syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpIdentifier,rhelpS4method
|
||||||
|
syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end=/}/ contains=@R
|
||||||
|
syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end=/}/ contains=@R contained
|
||||||
|
syn region rhelpRcode matchgroup=Delimiter start="\\code{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpLink contained
|
||||||
|
syn region rhelpS4method matchgroup=Delimiter start="\\S4method{.*}(" matchgroup=Delimiter transparent end=/)/ contains=@R,rhelpDots contained
|
||||||
|
|
||||||
|
" Strings {{{1
|
||||||
|
syn region rhelpString start=/"/ end=/"/
|
||||||
|
|
||||||
|
" Special characters ( \$ \& \% \# \{ \} \_) {{{1
|
||||||
|
syn match rhelpSpecialChar "\\[$&%#{}_]"
|
||||||
|
|
||||||
|
" Special Delimiters {{{1
|
||||||
|
syn match rhelpDelimiter "\\cr"
|
||||||
|
syn match rhelpDelimiter "\\tab "
|
||||||
|
|
||||||
|
" Keywords {{{1
|
||||||
|
syn match rhelpKeyword "\\R"
|
||||||
|
syn match rhelpKeyword "\\ldots"
|
||||||
|
syn match rhelpKeyword "--"
|
||||||
|
syn match rhelpKeyword "---"
|
||||||
|
syn match rhelpKeyword "<"
|
||||||
|
syn match rhelpKeyword ">"
|
||||||
|
|
||||||
|
" Links {{{1
|
||||||
|
syn region rhelpLink matchgroup=rhelpSection start="\\link{" end="}" contained keepend
|
||||||
|
syn region rhelpLink matchgroup=rhelpSection start="\\link\[.*\]{" end="}" contained keepend
|
||||||
|
syn region rhelpLink matchgroup=rhelpSection start="\\linkS4class{" end="}" contained keepend
|
||||||
|
|
||||||
|
" Type Styles {{{1
|
||||||
|
syn match rhelpType "\\emph\>"
|
||||||
|
syn match rhelpType "\\strong\>"
|
||||||
|
syn match rhelpType "\\bold\>"
|
||||||
|
syn match rhelpType "\\sQuote\>"
|
||||||
|
syn match rhelpType "\\dQuote\>"
|
||||||
|
syn match rhelpType "\\preformatted\>"
|
||||||
|
syn match rhelpType "\\kbd\>"
|
||||||
|
syn match rhelpType "\\samp\>"
|
||||||
|
syn match rhelpType "\\eqn\>"
|
||||||
|
syn match rhelpType "\\deqn\>"
|
||||||
|
syn match rhelpType "\\file\>"
|
||||||
|
syn match rhelpType "\\email\>"
|
||||||
|
syn match rhelpType "\\url\>"
|
||||||
|
syn match rhelpType "\\var\>"
|
||||||
|
syn match rhelpType "\\env\>"
|
||||||
|
syn match rhelpType "\\option\>"
|
||||||
|
syn match rhelpType "\\command\>"
|
||||||
|
syn match rhelpType "\\dfn\>"
|
||||||
|
syn match rhelpType "\\cite\>"
|
||||||
|
syn match rhelpType "\\acronym\>"
|
||||||
|
|
||||||
|
" rhelp sections {{{1
|
||||||
|
syn match rhelpSection "\\encoding\>"
|
||||||
|
syn match rhelpSection "\\title\>"
|
||||||
|
syn match rhelpSection "\\description\>"
|
||||||
|
syn match rhelpSection "\\concept\>"
|
||||||
|
syn match rhelpSection "\\arguments\>"
|
||||||
|
syn match rhelpSection "\\details\>"
|
||||||
|
syn match rhelpSection "\\value\>"
|
||||||
|
syn match rhelpSection "\\references\>"
|
||||||
|
syn match rhelpSection "\\note\>"
|
||||||
|
syn match rhelpSection "\\author\>"
|
||||||
|
syn match rhelpSection "\\seealso\>"
|
||||||
|
syn match rhelpSection "\\keyword\>"
|
||||||
|
syn match rhelpSection "\\docType\>"
|
||||||
|
syn match rhelpSection "\\format\>"
|
||||||
|
syn match rhelpSection "\\source\>"
|
||||||
|
syn match rhelpSection "\\itemize\>"
|
||||||
|
syn match rhelpSection "\\describe\>"
|
||||||
|
syn match rhelpSection "\\enumerate\>"
|
||||||
|
syn match rhelpSection "\\item "
|
||||||
|
syn match rhelpSection "\\item$"
|
||||||
|
syn match rhelpSection "\\tabular{[lcr]*}"
|
||||||
|
syn match rhelpSection "\\dontrun\>"
|
||||||
|
syn match rhelpSection "\\dontshow\>"
|
||||||
|
syn match rhelpSection "\\testonly\>"
|
||||||
|
|
||||||
|
" Freely named Sections {{{1
|
||||||
|
syn region rhelpFreesec matchgroup=Delimiter start="\\section{" matchgroup=Delimiter transparent end=/}/
|
||||||
|
|
||||||
|
" R help file comments {{{1
|
||||||
|
syn match rhelpComment /%.*$/ contained
|
||||||
|
|
||||||
|
" Error {{{1
|
||||||
|
syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpCurlyError
|
||||||
|
syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpParenError
|
||||||
|
syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rhelpError,rhelpCurlyError,rhelpParenError
|
||||||
|
syn match rhelpError /[)\]}]/
|
||||||
|
syn match rhelpBraceError /[)}]/ contained
|
||||||
|
syn match rhelpCurlyError /[)\]]/ contained
|
||||||
|
syn match rhelpParenError /[\]}]/ contained
|
||||||
|
|
||||||
|
" Define the default highlighting {{{1
|
||||||
|
" For version 5.7 and earlier: only when not done already
|
||||||
|
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||||
|
if version >= 508 || !exists("did_rhelp_syntax_inits")
|
||||||
|
if version < 508
|
||||||
|
let did_rhelp_syntax_inits = 1
|
||||||
|
command -nargs=+ HiLink hi link <args>
|
||||||
|
else
|
||||||
|
command -nargs=+ HiLink hi def link <args>
|
||||||
|
endif
|
||||||
|
HiLink rhelpIdentifier Identifier
|
||||||
|
HiLink rhelpString String
|
||||||
|
HiLink rhelpKeyword Keyword
|
||||||
|
HiLink rhelpDots Keyword
|
||||||
|
HiLink rhelpLink Underlined
|
||||||
|
HiLink rhelpType Type
|
||||||
|
HiLink rhelpSection PreCondit
|
||||||
|
HiLink rhelpError Error
|
||||||
|
HiLink rhelpBraceError Error
|
||||||
|
HiLink rhelpCurlyError Error
|
||||||
|
HiLink rhelpParenError Error
|
||||||
|
HiLink rhelpDelimiter Delimiter
|
||||||
|
HiLink rhelpComment Comment
|
||||||
|
HiLink rhelpRComment Comment
|
||||||
|
HiLink rhelpSpecialChar SpecialChar
|
||||||
|
delcommand HiLink
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = "rhelp"
|
||||||
|
" vim: foldmethod=marker:
|
||||||
56
syntax/rnoweb.vim
Normal file
56
syntax/rnoweb.vim
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: R noweb Files
|
||||||
|
" Maintainer: Johannes Ranke <jranke@uni-bremen.de>
|
||||||
|
" Last Change: 2007 M<>r 30
|
||||||
|
" Version: 0.8
|
||||||
|
" SVN: $Id: rnoweb.vim 69 2007-03-30 08:55:36Z ranke $
|
||||||
|
" Remarks: - This file is inspired by the proposal of
|
||||||
|
" Fernando Henrique Ferraz Pereira da Rosa <feferraz@ime.usp.br>
|
||||||
|
" http://www.ime.usp.br/~feferraz/en/sweavevim.html
|
||||||
|
"
|
||||||
|
|
||||||
|
" Version Clears: {{{1
|
||||||
|
" For version 5.x: Clear all syntax items
|
||||||
|
" For version 6.x and 7.x: Quit when a syntax file was already loaded
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn case match
|
||||||
|
|
||||||
|
" Extension of Tex clusters {{{1
|
||||||
|
runtime syntax/tex.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
syn cluster texMatchGroup add=@rnoweb
|
||||||
|
syn cluster texEnvGroup add=@rnoweb
|
||||||
|
syn cluster texFoldGroup add=@rnoweb
|
||||||
|
syn cluster texDocGroup add=@rnoweb
|
||||||
|
syn cluster texPartGroup add=@rnoweb
|
||||||
|
syn cluster texChapterGroup add=@rnoweb
|
||||||
|
syn cluster texSectionGroup add=@rnoweb
|
||||||
|
syn cluster texSubSectionGroup add=@rnoweb
|
||||||
|
syn cluster texSubSubSectionGroup add=@rnoweb
|
||||||
|
syn cluster texParaGroup add=@rnoweb
|
||||||
|
|
||||||
|
" Highlighting of R code using an existing r.vim syntax file if available {{{1
|
||||||
|
syn include @rnowebR syntax/r.vim
|
||||||
|
syn region rnowebChunk matchgroup=rnowebDelimiter start="^<<.*>>=" matchgroup=rnowebDelimiter end="^@" contains=@rnowebR,rnowebChunkReference,rnowebChunk fold keepend
|
||||||
|
syn match rnowebChunkReference "^<<.*>>$" contained
|
||||||
|
syn region rnowebSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter end="}" contains=@rnowebR
|
||||||
|
|
||||||
|
" Sweave options command {{{1
|
||||||
|
syn region rnowebSweaveopts matchgroup=Delimiter start="\\SweaveOpts{" matchgroup=Delimiter end="}"
|
||||||
|
|
||||||
|
" rnoweb Cluster {{{1
|
||||||
|
syn cluster rnoweb contains=rnowebChunk,rnowebChunkReference,rnowebDelimiter,rnowebSexpr,rnowebSweaveopts
|
||||||
|
|
||||||
|
" Highlighting {{{1
|
||||||
|
hi def link rnowebDelimiter Delimiter
|
||||||
|
hi def link rnowebSweaveOpts Statement
|
||||||
|
hi def link rnowebChunkReference Delimiter
|
||||||
|
|
||||||
|
let b:current_syntax = "rnoweb"
|
||||||
|
" vim: foldmethod=marker:
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: Patrick Walton <pcwalton@mozilla.com>
|
" Maintainer: Patrick Walton <pcwalton@mozilla.com>
|
||||||
" Maintainer: Ben Blum <bblum@cs.cmu.edu>
|
" Maintainer: Ben Blum <bblum@cs.cmu.edu>
|
||||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||||
" Last Change: 2013 Sep 4
|
" Last Change: 2013 Oct 29
|
||||||
|
|
||||||
if version < 600
|
if version < 600
|
||||||
syntax clear
|
syntax clear
|
||||||
@@ -18,7 +18,7 @@ syn keyword rustOperator as
|
|||||||
|
|
||||||
syn match rustAssert "\<assert\(\w\)*!" contained
|
syn match rustAssert "\<assert\(\w\)*!" contained
|
||||||
syn match rustFail "\<fail\(\w\)*!" contained
|
syn match rustFail "\<fail\(\w\)*!" contained
|
||||||
syn keyword rustKeyword break do extern
|
syn keyword rustKeyword break continue do extern
|
||||||
syn keyword rustKeyword in if impl let log
|
syn keyword rustKeyword in if impl let log
|
||||||
syn keyword rustKeyword for impl let log
|
syn keyword rustKeyword for impl let log
|
||||||
syn keyword rustKeyword loop mod once priv pub
|
syn keyword rustKeyword loop mod once priv pub
|
||||||
@@ -61,48 +61,48 @@ syn keyword rustEnumVariant Ok Err
|
|||||||
" Functions {{{3
|
" Functions {{{3
|
||||||
"syn keyword rustFunction print println
|
"syn keyword rustFunction print println
|
||||||
"syn keyword rustFunction range
|
"syn keyword rustFunction range
|
||||||
|
"syn keyword rustFunction from_str
|
||||||
|
|
||||||
" Types and traits {{{3
|
" Types and traits {{{3
|
||||||
|
syn keyword rustTrait Any AnyOwnExt AnyRefExt AnyMutRefExt
|
||||||
|
syn keyword rustTrait Ascii AsciiCast OwnedAsciiCast AsciiStr ToBytesConsume
|
||||||
|
syn keyword rustTrait Bool
|
||||||
syn keyword rustTrait ToCStr
|
syn keyword rustTrait ToCStr
|
||||||
|
syn keyword rustTrait Char
|
||||||
syn keyword rustTrait Clone DeepClone
|
syn keyword rustTrait Clone DeepClone
|
||||||
syn keyword rustTrait Eq ApproxEq Ord TotalEq TotalOrd Ordering Equiv
|
syn keyword rustTrait Eq ApproxEq Ord TotalEq TotalOrd Ordering Equiv
|
||||||
syn keyword rustEnumVariant Less Equal Greater
|
syn keyword rustEnumVariant Less Equal Greater
|
||||||
syn keyword rustTrait Char
|
|
||||||
syn keyword rustTrait Container Mutable Map MutableMap Set MutableSet
|
syn keyword rustTrait Container Mutable Map MutableMap Set MutableSet
|
||||||
|
syn keyword rustTrait Default
|
||||||
syn keyword rustTrait Hash
|
syn keyword rustTrait Hash
|
||||||
syn keyword rustTrait Times
|
syn keyword rustTrait FromStr
|
||||||
syn keyword rustTrait FromIterator Extendable
|
syn keyword rustTrait FromIterator Extendable
|
||||||
syn keyword rustTrait Iterator DoubleEndedIterator RandomAccessIterator ClonableIterator
|
syn keyword rustTrait Iterator DoubleEndedIterator RandomAccessIterator ClonableIterator
|
||||||
syn keyword rustTrait OrdIterator MutableDoubleEndedIterator ExactSize
|
syn keyword rustTrait OrdIterator MutableDoubleEndedIterator ExactSize
|
||||||
|
syn keyword rustTrait Times
|
||||||
|
|
||||||
|
syn keyword rustTrait Algebraic Trigonometric Exponential Hyperbolic
|
||||||
|
syn keyword rustTrait Bitwise BitCount Bounded
|
||||||
|
syn keyword rustTrait Integer Fractional Real RealExt
|
||||||
syn keyword rustTrait Num NumCast CheckedAdd CheckedSub CheckedMul
|
syn keyword rustTrait Num NumCast CheckedAdd CheckedSub CheckedMul
|
||||||
syn keyword rustTrait Orderable Signed Unsigned Round
|
syn keyword rustTrait Orderable Signed Unsigned Round
|
||||||
syn keyword rustTrait Algebraic Trigonometric Exponential Hyperbolic
|
syn keyword rustTrait Primitive Int Float ToStrRadix ToPrimitive FromPrimitive
|
||||||
syn keyword rustTrait Integer Fractional Real RealExt
|
syn keyword rustTrait GenericPath Path PosixPath WindowsPath
|
||||||
syn keyword rustTrait Bitwise BitCount Bounded
|
|
||||||
syn keyword rustTrait Primitive Int Float ToStrRadix
|
|
||||||
syn keyword rustTrait GenericPath
|
|
||||||
syn keyword rustTrait Path
|
|
||||||
syn keyword rustTrait PosixPath
|
|
||||||
syn keyword rustTrait WindowsPath
|
|
||||||
syn keyword rustTrait RawPtr
|
syn keyword rustTrait RawPtr
|
||||||
syn keyword rustTrait Ascii AsciiCast OwnedAsciiCast AsciiStr ToBytesConsume
|
syn keyword rustTrait SendStr SendStrOwned SendStrStatic IntoSendStr
|
||||||
syn keyword rustTrait Str StrVector StrSlice OwnedStr
|
syn keyword rustTrait Str StrVector StrSlice OwnedStr
|
||||||
syn keyword rustTrait FromStr
|
|
||||||
syn keyword rustTrait IterBytes
|
syn keyword rustTrait IterBytes
|
||||||
syn keyword rustTrait ToStr ToStrConsume
|
syn keyword rustTrait ToStr ToStrConsume
|
||||||
syn keyword rustTrait CopyableTuple ImmutableTuple
|
syn keyword rustTrait CopyableTuple ImmutableTuple
|
||||||
syn keyword rustTrait CloneableTuple1 ImmutableTuple1
|
syn keyword rustTrait Tuple1 Tuple2 Tuple3 Tuple4
|
||||||
syn keyword rustTrait CloneableTuple2 CloneableTuple3 CloneableTuple4 CloneableTuple5
|
syn keyword rustTrait Tuple5 Tuple6 Tuple7 Tuple8
|
||||||
syn keyword rustTrait CloneableTuple6 CloneableTuple7 CloneableTuple8 CloneableTuple9
|
syn keyword rustTrait Tuple9 Tuple10 Tuple11 Tuple12
|
||||||
syn keyword rustTrait CloneableTuple10 CloneableTuple11 CloneableTuple12
|
syn keyword rustTrait ImmutableTuple1 ImmutableTuple2 ImmutableTuple3 ImmutableTuple4
|
||||||
syn keyword rustTrait ImmutableTuple2 ImmutableTuple3 ImmutableTuple4 ImmutableTuple5
|
syn keyword rustTrait ImmutableTuple5 ImmutableTuple6 ImmutableTuple7 ImmutableTuple8
|
||||||
syn keyword rustTrait ImmutableTuple6 ImmutableTuple7 ImmutableTuple8 ImmutableTuple9
|
syn keyword rustTrait ImmutableTuple9 ImmutableTuple10 ImmutableTuple11 ImmutableTuple12
|
||||||
syn keyword rustTrait ImmutableTuple10 ImmutableTuple11 ImmutableTuple12
|
|
||||||
syn keyword rustTrait Vector VectorVector CopyableVector ImmutableVector
|
|
||||||
syn keyword rustTrait ImmutableEqVector ImmutableTotalOrdVector ImmutableCopyableVector
|
syn keyword rustTrait ImmutableEqVector ImmutableTotalOrdVector ImmutableCopyableVector
|
||||||
syn keyword rustTrait OwnedVector OwnedCopyableVector OwnedEqVector MutableVector
|
syn keyword rustTrait OwnedVector OwnedCopyableVector OwnedEqVector MutableVector
|
||||||
syn keyword rustTrait Reader ReaderUtil Writer WriterUtil
|
syn keyword rustTrait Vector VectorVector CopyableVector ImmutableVector
|
||||||
syn keyword rustTrait Default
|
|
||||||
|
|
||||||
"syn keyword rustFunction stream
|
"syn keyword rustFunction stream
|
||||||
syn keyword rustTrait Port Chan GenericChan GenericSmartChan GenericPort Peekable
|
syn keyword rustTrait Port Chan GenericChan GenericSmartChan GenericPort Peekable
|
||||||
@@ -145,9 +145,10 @@ syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustFail
|
|||||||
|
|
||||||
syn match rustFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn?]\|\[\^\=.[^]]*\]\)" contained
|
syn match rustFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn?]\|\[\^\=.[^]]*\]\)" contained
|
||||||
syn match rustFormat display "%%" contained
|
syn match rustFormat display "%%" contained
|
||||||
syn match rustSpecial display contained /\\\([nrt\\'"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)/
|
syn match rustSpecial display contained /\\\([nrt0\\'"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)/
|
||||||
syn match rustStringContinuation display contained /\\\n\s*/
|
syn match rustStringContinuation display contained /\\\n\s*/
|
||||||
syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustTodo,rustFormat,rustSpecial,rustStringContinuation
|
syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustTodo,rustFormat,rustSpecial,rustStringContinuation
|
||||||
|
syn region rustString start='r\z(#*\)"' end='"\z1'
|
||||||
|
|
||||||
syn region rustAttribute start="#\[" end="\]" contains=rustString,rustDeriving
|
syn region rustAttribute start="#\[" end="\]" contains=rustString,rustDeriving
|
||||||
syn region rustDeriving start="deriving(" end=")" contained contains=rustTrait
|
syn region rustDeriving start="deriving(" end=")" contained contains=rustTrait
|
||||||
@@ -173,13 +174,13 @@ syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\%([eE][+-]\=[0-9
|
|||||||
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\%([eE][+-]\=[0-9_]\+\)\(f\|f32\|f64\)\>"
|
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\%([eE][+-]\=[0-9_]\+\)\(f\|f32\|f64\)\>"
|
||||||
|
|
||||||
" For the benefit of delimitMate
|
" For the benefit of delimitMate
|
||||||
syn region rustLifetimeCandidate display start=/&'\%(\([^'\\]\|\\\(['nrt\\\"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'\)\@!/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
|
syn region rustLifetimeCandidate display start=/&'\%(\([^'\\]\|\\\(['nrt0\\\"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'\)\@!/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
|
||||||
syn region rustGenericRegion display start=/<\%('\|[^[cntrl:][:space:][:punct:]]\)\@=')\S\@=/ end=/>/ contains=rustGenericLifetimeCandidate
|
syn region rustGenericRegion display start=/<\%('\|[^[cntrl:][:space:][:punct:]]\)\@=')\S\@=/ end=/>/ contains=rustGenericLifetimeCandidate
|
||||||
syn region rustGenericLifetimeCandidate display start=/\%(<\|,\s*\)\@<='/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
|
syn region rustGenericLifetimeCandidate display start=/\%(<\|,\s*\)\@<='/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
|
||||||
|
|
||||||
"rustLifetime must appear before rustCharacter, or chars will get the lifetime highlighting
|
"rustLifetime must appear before rustCharacter, or chars will get the lifetime highlighting
|
||||||
syn match rustLifetime display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*"
|
syn match rustLifetime display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*"
|
||||||
syn match rustCharacter /'\([^'\\]\|\\\([nrt\\'"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'/ contains=rustSpecial
|
syn match rustCharacter /'\([^'\\]\|\\\([nrt0\\'"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'/ contains=rustSpecial
|
||||||
|
|
||||||
syn region rustCommentML start="/\*" end="\*/" contains=rustTodo
|
syn region rustCommentML start="/\*" end="\*/" contains=rustTodo
|
||||||
syn region rustComment start="//" end="$" contains=rustTodo keepend
|
syn region rustComment start="//" end="$" contains=rustTodo keepend
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: sbt
|
" Language: sbt
|
||||||
" Maintainer: Derek Wyatt <derek@{myfirstname}{mylastname}.org>
|
" Maintainer: Derek Wyatt <derek@{myfirstname}{mylastname}.org>
|
||||||
" Last Change: 2012 Jan 19
|
" Last Change: 2013 Oct 20
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
@@ -15,6 +15,7 @@ syn match sbtStringEscape "\\[nrfvb\\\"]" contained
|
|||||||
|
|
||||||
syn match sbtIdentitifer "^\S\+\ze\s*\(:=\|++=\|+=\|<<=\|<+=\)"
|
syn match sbtIdentitifer "^\S\+\ze\s*\(:=\|++=\|+=\|<<=\|<+=\)"
|
||||||
syn match sbtBeginningSeq "^[Ss]eq\>"
|
syn match sbtBeginningSeq "^[Ss]eq\>"
|
||||||
|
syn match sbtAddPlugin "^addSbtPlugin\>"
|
||||||
|
|
||||||
syn match sbtSpecial "\(:=\|++=\|+=\|<<=\|<+=\)"
|
syn match sbtSpecial "\(:=\|++=\|+=\|<<=\|<+=\)"
|
||||||
|
|
||||||
@@ -25,6 +26,7 @@ syn region sbtDocComment start="/\*\*" end="\*/" keepend
|
|||||||
hi link sbtString String
|
hi link sbtString String
|
||||||
hi link sbtIdentitifer Keyword
|
hi link sbtIdentitifer Keyword
|
||||||
hi link sbtBeginningSeq Keyword
|
hi link sbtBeginningSeq Keyword
|
||||||
|
hi link sbtAddPlugin Keyword
|
||||||
hi link sbtSpecial Special
|
hi link sbtSpecial Special
|
||||||
hi link sbtComment Comment
|
hi link sbtComment Comment
|
||||||
hi link sbtLineComment Comment
|
hi link sbtLineComment Comment
|
||||||
|
|||||||
Reference in New Issue
Block a user