Massive update :)
This commit is contained in:
parent
57cfac7ae3
commit
30c1920e4f
@ -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
|
||||||
|
@ -28,13 +28,37 @@ 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
|
||||||
@ -44,7 +68,11 @@ function! go#complete#Package(ArgLead, CmdLine, CursorPos)
|
|||||||
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
|
||||||
@ -56,16 +84,20 @@ function! go#complete#Package(ArgLead, CmdLine, CursorPos)
|
|||||||
|
|
||||||
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")
|
||||||
|
call add(root, expand(dir . '/src'))
|
||||||
|
for r in root
|
||||||
|
for i in split(globpath(r, a:ArgLead.'*'), "\n")
|
||||||
if isdirectory(i)
|
if isdirectory(i)
|
||||||
let i .= '/'
|
let i .= '/'
|
||||||
elseif i !~ '\.a$'
|
elseif i !~ '\.a$'
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
let i = substitute(substitute(i[len(root)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g')
|
let i = substitute(substitute(i[len(r)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g')
|
||||||
let ret[i] = i
|
let ret[i] = i
|
||||||
endfor
|
endfor
|
||||||
endfor
|
endfor
|
||||||
|
endfor
|
||||||
return sort(keys(ret))
|
return sort(keys(ret))
|
||||||
endfunction
|
endfunction
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
if !exists("g:go_fmt_commands")
|
||||||
|
let g:go_fmt_commands = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
if g:go_fmt_commands
|
||||||
command! -buffer Fmt call s:GoFormat()
|
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
|
||||||
|
|
||||||
|
if !exists("g:go_import_commands")
|
||||||
|
let g:go_import_commands = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if g:go_import_commands
|
||||||
command! -buffer -nargs=? -complete=customlist,go#complete#Package Drop call s:SwitchImport(0, '', <f-args>)
|
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=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>)
|
command! -buffer -nargs=* -complete=customlist,go#complete#Package ImportAs call s:SwitchImport(1, <f-args>)
|
||||||
map <buffer> <LocalLeader>f :Import fmt<CR>
|
endif
|
||||||
map <buffer> <LocalLeader>F :Drop fmt<CR>
|
|
||||||
|
|
||||||
function! s:SwitchImport(enabled, localname, path)
|
function! s:SwitchImport(enabled, localname, path)
|
||||||
let view = winsaveview()
|
let view = winsaveview()
|
||||||
|
@ -457,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
|
||||||
|
|
||||||
|
@ -437,7 +437,7 @@ 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])
|
||||||
|
@ -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")
|
||||||
|
@ -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',
|
||||||
|
@ -343,27 +343,27 @@ fun! HtmlIndentGet(lnum)
|
|||||||
|
|
||||||
let lind = indent(lnum)
|
let lind = indent(lnum)
|
||||||
|
|
||||||
for tags in s:omittable
|
" for tags in s:omittable
|
||||||
let tags_exp = '<\(' . join(tags, '\|') . '\)>'
|
" let tags_exp = '<\(' . join(tags, '\|') . '\)>'
|
||||||
let close_tags_exp = '</\(' . join(tags, '\|') . '\)>'
|
" let close_tags_exp = '</\(' . join(tags, '\|') . '\)>'
|
||||||
if getline(a:lnum) =~ tags_exp
|
" if getline(a:lnum) =~ tags_exp
|
||||||
let block_start = search('^'.repeat(' ', lind + (&sw * ind - 1)).'\S' , 'bnW')
|
" let block_start = search('^'.repeat(' ', lind + (&sw * ind - 1)).'\S' , 'bnW')
|
||||||
let prev_tag = search(tags_exp, 'bW', block_start)
|
" let prev_tag = search(tags_exp, 'bW', block_start)
|
||||||
let prev_closetag = search(close_tags_exp, 'W', a:lnum)
|
" let prev_closetag = search(close_tags_exp, 'W', a:lnum)
|
||||||
if prev_tag && !prev_closetag
|
" if prev_tag && !prev_closetag
|
||||||
let ind = ind - 1
|
" let ind = ind - 1
|
||||||
endif
|
" endif
|
||||||
endif
|
" endif
|
||||||
|
|
||||||
if getline(a:lnum) =~ '</\w\+>'
|
" if getline(a:lnum) =~ '</\w\+>'
|
||||||
let block_start = search('^'.repeat(' ', lind + (&sw * ind - 1)).'\S' , 'bnW')
|
" let block_start = search('^'.repeat(' ', lind + (&sw * ind - 1)).'\S' , 'bnW')
|
||||||
let prev_tag = search(tags_exp, 'bW', block_start)
|
" let prev_tag = search(tags_exp, 'bW', block_start)
|
||||||
let prev_closetag = search(close_tags_exp, 'W', a:lnum)
|
" let prev_closetag = search(close_tags_exp, 'W', a:lnum)
|
||||||
if prev_tag && !prev_closetag
|
" if prev_tag && !prev_closetag
|
||||||
let ind = ind - 1
|
" let ind = ind - 1
|
||||||
endif
|
" endif
|
||||||
endif
|
" endif
|
||||||
endfor
|
" endfor
|
||||||
|
|
||||||
if restore_ic == 0
|
if restore_ic == 0
|
||||||
setlocal noic
|
setlocal noic
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
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*=>\)\@="
|
||||||
|
@ -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
|
||||||
@ -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,7 +145,7 @@ 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 rustString start='r\z(#*\)"' end='"\z1'
|
||||||
@ -174,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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user