diff options
Diffstat (limited to '')
| -rw-r--r-- | after/ftplugin/puppet.vim | 23 | ||||
| -rw-r--r-- | after/syntax/c.vim | 24 | ||||
| -rw-r--r-- | autoload/go/complete.vim | 103 | ||||
| -rw-r--r-- | compiler/go.vim | 30 | ||||
| -rw-r--r-- | ftdetect/polyglot.vim | 16 | ||||
| -rw-r--r-- | ftplugin/go.vim | 19 | ||||
| -rw-r--r-- | ftplugin/go/fmt.vim | 69 | ||||
| -rw-r--r-- | ftplugin/go/import.vim | 250 | ||||
| -rw-r--r-- | ftplugin/sass.vim | 3 | ||||
| -rw-r--r-- | ftplugin/scss.vim | 1 | ||||
| -rw-r--r-- | indent/go.vim | 77 | ||||
| -rw-r--r-- | indent/html.vim | 2 | ||||
| -rw-r--r-- | indent/puppet.vim | 13 | ||||
| -rw-r--r-- | syntax/go.vim | 207 | ||||
| -rw-r--r-- | syntax/godoc.vim | 20 | ||||
| -rw-r--r-- | syntax/jade.vim | 4 | ||||
| -rw-r--r-- | syntax/perl6.vim | 2 | ||||
| -rw-r--r-- | syntax/php.vim | 7 | ||||
| -rw-r--r-- | syntax/puppet.vim | 2 | ||||
| -rw-r--r-- | syntax/rust.vim | 2 | 
20 files changed, 69 insertions, 805 deletions
| diff --git a/after/ftplugin/puppet.vim b/after/ftplugin/puppet.vim index 2bac2dc8..f976a457 100644 --- a/after/ftplugin/puppet.vim +++ b/after/ftplugin/puppet.vim @@ -1,11 +1,16 @@ -inoremap <buffer> <silent> > ><Esc>:call <SID>puppetalign()<CR>A -function! s:puppetalign() -    let p = '^\s*\w+\s*[=+]>.*$' -    let lineContainsHashrocket = getline('.') =~# '^\s*\w+\s*[=+]>' -    let hashrocketOnPrevLine = getline(line('.') - 1) =~# p -    let hashrocketOnNextLine = getline(line('.') + 1) =~# p -    if exists(':Tabularize') " && lineContainsHashrocket && (hashrocketOnPrevLine || hashrocketOnNextLine) +if !exists('g:puppet_align_hashes') +    let g:puppet_align_hashes = 1 +endif + +if g:puppet_align_hashes && exists(':Tabularize') +    inoremap <buffer> <silent> > ><Esc>:call <SID>puppetalign()<CR>a +    function! s:puppetalign() +        let p = '^\s*\w+\s*[=+]>.*$' +        let column = strlen(substitute(getline('.')[0:col('.')],'\([^=]\|=[^>]\)','','g')) +        let position = strlen(matchstr(getline('.')[0:col('.')],'.*=>\s*\zs.*'))          Tabularize /=>/l1          normal! 0 -    endif -endfunction +        echo repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position) +        call search(repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) +    endfunction +endif diff --git a/after/syntax/c.vim b/after/syntax/c.vim index 42c9b9db..be34d256 100644 --- a/after/syntax/c.vim +++ b/after/syntax/c.vim @@ -1,4 +1,28 @@  " Vim syntax file +" Language: C Additions +" Maintainer: Jon Haggblad <jon@haeggblad.com> +" URL: http://www.haeggblad.com +" Last Change: 9 Aug 2014 +" Version: 0.1 +" Changelog: +"   0.1 - initial version. +" +" Syntax highlighting for functions in C. +" +" Based on: +"   http://stackoverflow.com/questions/736701/class-function-names-highlighting-in-vim + +" ----------------------------------------------------------------------------- +"  Highlight Class and Function names. +" ----------------------------------------------------------------------------- +syn match    cCustomParen    "(" contains=cParen contains=cCppParen +syn match    cCustomFunc     "\w\+\s*(\@=" contains=cCustomParen +syn match    cCustomScope    "::" +syn match    cCustomClass    "\w\+\s*::" contains=cCustomScope + +hi def link cCustomFunc  Function + +" Vim syntax file  " Language:	C Additions  " Maintainer:	Mikhail Wolfson <mywolfson@gmail.com>  " URL: http://web.mit.edu/wolfsonm diff --git a/autoload/go/complete.vim b/autoload/go/complete.vim deleted file mode 100644 index a4fa6b66..00000000 --- a/autoload/go/complete.vim +++ /dev/null @@ -1,103 +0,0 @@ -" Copyright 2011 The Go Authors. All rights reserved. -" Use of this source code is governed by a BSD-style -" license that can be found in the LICENSE file. -" -" This file provides a utility function that performs auto-completion of -" package names, for use by other commands. - -let s:goos = $GOOS -let s:goarch = $GOARCH - -if len(s:goos) == 0 -  if exists('g:golang_goos') -    let s:goos = g:golang_goos -  elseif has('win32') || has('win64') -    let s:goos = 'windows' -  elseif has('macunix') -    let s:goos = 'darwin' -  else -    let s:goos = '*' -  endif -endif - -if len(s:goarch) == 0 -  if exists('g:golang_goarch') -    let s:goarch = g:golang_goarch -  else -    let s:goarch = '*' -  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) -  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') -    let goroot = substitute(system('go env GOROOT'), '\n', '', 'g') -    if v:shell_error -      echomsg '''go env GOROOT'' failed' -    endif -  else -    let goroot = $GOROOT -  endif - -  if len(goroot) != 0 && isdirectory(goroot) -    let dirs += [goroot] -  endif - -  let pathsep = ':' -  if s:goos == 'windows' -    let pathsep = ';' -  endif -  let workspaces = split($GOPATH, pathsep) -  if workspaces != [] -    let dirs += workspaces -  endif - -  if len(dirs) == 0 -    " should not happen -    return [] -  endif - -  let ret = {} -  for dir in dirs -    " this may expand to multiple lines -    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) -          let i .= '/' -        elseif i !~ '\.a$' -          continue -        endif -        let i = substitute(substitute(i[len(r)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g') -        let ret[i] = i -      endfor -    endfor -  endfor -  return sort(keys(ret)) -endfunction diff --git a/compiler/go.vim b/compiler/go.vim deleted file mode 100644 index 2c8cce49..00000000 --- a/compiler/go.vim +++ /dev/null @@ -1,30 +0,0 @@ -" Copyright 2013 The Go Authors. All rights reserved. -" Use of this source code is governed by a BSD-style -" license that can be found in the LICENSE file. -" -" compiler/go.vim: Vim compiler file for Go. - -if exists("current_compiler") -    finish -endif -let current_compiler = "go" - -if exists(":CompilerSet") != 2 -    command -nargs=* CompilerSet setlocal <args> -endif - -let s:save_cpo = &cpo -set cpo-=C - -CompilerSet makeprg=go\ build -CompilerSet errorformat= -        \%-G#\ %.%#, -        \%A%f:%l:%c:\ %m, -        \%A%f:%l:\ %m, -        \%C%*\\s%m, -        \%-G%.%# - -let &cpo = s:save_cpo -unlet s:save_cpo - -" vim:ts=4:sw=4:et diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim index d1cc2bf0..17dad437 100644 --- a/ftdetect/polyglot.vim +++ b/ftdetect/polyglot.vim @@ -35,21 +35,6 @@ autocmd BufNewFile,BufRead *        \ if getline(1) =~ '^From \x\{40\} Mon Sep 17 00:00:00 2001$' |        \   set filetype=gitsendemail |        \ endif -let s:current_fileformats = '' -let s:current_fileencodings = '' -function! s:gofiletype_pre() -  let s:current_fileformats = &g:fileformats -  let s:current_fileencodings = &g:fileencodings -  set fileencodings=utf-8 fileformats=unix -  setlocal filetype=go -endfunction -function! s:gofiletype_post() -  let &g:fileformats = s:current_fileformats -  let &g:fileencodings = s:current_fileencodings -endfunction -au BufNewFile *.go setlocal filetype=go fileencoding=utf-8 fileformat=unix -au BufRead *.go call s:gofiletype_pre() -au BufReadPost *.go call s:gofiletype_post()  autocmd BufNewFile,BufRead *.haml,*.hamlbars,*.hamlc setf haml  autocmd BufNewFile,BufRead *.sass setf sass  autocmd BufNewFile,BufRead *.scss setf scss @@ -133,6 +118,7 @@ autocmd BufReadPost *.pl,*.pm,*.t call s:DetectPerl6()  autocmd BufNew,BufRead *.nqp setf perl6  autocmd BufNewFile,BufRead *.proto setfiletype proto  au! BufRead,BufNewFile *.pp setfiletype puppet +au! BufRead,BufNewFile Puppetfile setfiletype ruby  function! s:setf(filetype) abort    if &filetype !=# a:filetype      let &filetype = a:filetype diff --git a/ftplugin/go.vim b/ftplugin/go.vim deleted file mode 100644 index 532fb172..00000000 --- a/ftplugin/go.vim +++ /dev/null @@ -1,19 +0,0 @@ -" Copyright 2013 The Go Authors. All rights reserved. -" Use of this source code is governed by a BSD-style -" license that can be found in the LICENSE file. -" -" go.vim: Vim filetype plugin for Go. - -if exists("b:did_ftplugin") -    finish -endif -let b:did_ftplugin = 1 - -setlocal formatoptions-=t - -setlocal comments=s1:/*,mb:*,ex:*/,:// -setlocal commentstring=//\ %s - -let b:undo_ftplugin = "setl fo< com< cms<" - -" vim:ts=4:sw=4:et diff --git a/ftplugin/go/fmt.vim b/ftplugin/go/fmt.vim deleted file mode 100644 index 359545bd..00000000 --- a/ftplugin/go/fmt.vim +++ /dev/null @@ -1,69 +0,0 @@ -" Copyright 2011 The Go Authors. All rights reserved. -" Use of this source code is governed by a BSD-style -" license that can be found in the LICENSE file. -" -" fmt.vim: Vim command to format Go files with gofmt. -" -" This filetype plugin add a new commands for go buffers: -" -"   :Fmt -" -"       Filter the current Go buffer through gofmt. -"       It tries to preserve cursor position and avoids -"       replacing the buffer with stderr output. -" -" Options: -" -"   g:go_fmt_commands [default=1] -" -"       Flag to indicate whether to enable the commands listed above. -" -"   g:gofmt_command [default="gofmt"] -" -"       Flag naming the gofmt executable to use. -" -if exists("b:did_ftplugin_go_fmt") -    finish -endif - -if !exists("g:go_fmt_commands") -    let g:go_fmt_commands = 1 -endif - -if !exists("g:gofmt_command") -    let g:gofmt_command = "gofmt" -endif - -if g:go_fmt_commands -    command! -buffer Fmt call s:GoFormat() -endif - -function! s:GoFormat() -    let view = winsaveview() -    silent execute "%!" . g:gofmt_command -    if v:shell_error -        let errors = [] -        for line in getline(1, line('$')) -            let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)') -            if !empty(tokens) -                call add(errors, {"filename": @%, -                                 \"lnum":     tokens[2], -                                 \"col":      tokens[3], -                                 \"text":     tokens[4]}) -            endif -        endfor -        if empty(errors) -            % | " Couldn't detect gofmt error format, output errors -        endif -        undo -        if !empty(errors) -            call setqflist(errors, 'r') -        endif -        echohl Error | echomsg "Gofmt returned error" | echohl None -    endif -    call winrestview(view) -endfunction - -let b:did_ftplugin_go_fmt = 1 - -" vim:ts=4:sw=4:et diff --git a/ftplugin/go/import.vim b/ftplugin/go/import.vim deleted file mode 100644 index 91c8697a..00000000 --- a/ftplugin/go/import.vim +++ /dev/null @@ -1,250 +0,0 @@ -" Copyright 2011 The Go Authors. All rights reserved. -" Use of this source code is governed by a BSD-style -" license that can be found in the LICENSE file. -" -" import.vim: Vim commands to import/drop Go packages. -" -" This filetype plugin adds three new commands for go buffers: -" -"   :Import {path} -" -"       Import ensures that the provided package {path} is imported -"       in the current Go buffer, using proper style and ordering. -"       If {path} is already being imported, an error will be -"       displayed and the buffer will be untouched. -" -"   :ImportAs {localname} {path} -" -"       Same as Import, but uses a custom local name for the package. -" -"   :Drop {path} -" -"       Remove the import line for the provided package {path}, if -"       present in the current Go buffer.  If {path} is not being -"       imported, an error will be displayed and the buffer will be -"       untouched. -" -" If you would like to add shortcuts, you can do so by doing the following: -" -"   Import fmt -"   au Filetype go nnoremap <buffer> <LocalLeader>f :Import fmt<CR> -" -"   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). -" -" Options: -" -"   g:go_import_commands [default=1] -" -"       Flag to indicate whether to enable the commands listed above. -" -if exists("b:did_ftplugin_go_import") -    finish -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=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) -    let view = winsaveview() -    let path = a:path - -    " Quotes are not necessary, so remove them if provided. -    if path[0] == '"' -        let path = strpart(path, 1) -    endif -    if path[len(path)-1] == '"' -        let path = strpart(path, 0, len(path) - 1) -    endif -    if path == '' -        call s:Error('Import path not provided') -        return -    endif - -    " Extract any site prefix (e.g. github.com/). -    " If other imports with the same prefix are grouped separately, -    " we will add this new import with them. -    " Only up to and including the first slash is used. -    let siteprefix = matchstr(path, "^[^/]*/") - -    let qpath = '"' . path . '"' -    if a:localname != '' -        let qlocalpath = a:localname . ' ' . qpath -    else -        let qlocalpath = qpath -    endif -    let indentstr = 0 -    let packageline = -1 " Position of package name statement -    let appendline = -1  " Position to introduce new import -    let deleteline = -1  " Position of line with existing import -    let linesdelta = 0   " Lines added/removed - -    " Find proper place to add/remove import. -    let line = 0 -    while line <= line('$') -        let linestr = getline(line) - -        if linestr =~# '^package\s' -            let packageline = line -            let appendline = line - -        elseif linestr =~# '^import\s\+(' -            let appendstr = qlocalpath -            let indentstr = 1 -            let appendline = line -            let firstblank = -1 -            let lastprefix = "" -            while line <= line("$") -                let line = line + 1 -                let linestr = getline(line) -                let m = matchlist(getline(line), '^\()\|\(\s\+\)\(\S*\s*\)"\(.\+\)"\)') -                if empty(m) -                    if siteprefix == "" && a:enabled -                        " must be in the first group -                        break -                    endif -                    " record this position, but keep looking -                    if firstblank < 0 -                        let firstblank = line -                    endif -                    continue -                endif -                if m[1] == ')' -                    " if there's no match, add it to the first group -                    if appendline < 0 && firstblank >= 0 -                        let appendline = firstblank -                    endif -                    break -                endif -                let lastprefix = matchstr(m[4], "^[^/]*/") -                if a:localname != '' && m[3] != '' -                    let qlocalpath = printf('%-' . (len(m[3])-1) . 's %s', a:localname, qpath) -                endif -                let appendstr = m[2] . qlocalpath -                let indentstr = 0 -                if m[4] == path -                    let appendline = -1 -                    let deleteline = line -                    break -                elseif m[4] < path -                    " don't set candidate position if we have a site prefix, -                    " we've passed a blank line, and this doesn't share the same -                    " site prefix. -                    if siteprefix == "" || firstblank < 0 || match(m[4], "^" . siteprefix) >= 0 -                        let appendline = line -                    endif -                elseif siteprefix != "" && match(m[4], "^" . siteprefix) >= 0 -                    " first entry of site group -                    let appendline = line - 1 -                    break -                endif -            endwhile -            break - -        elseif linestr =~# '^import ' -            if appendline == packageline -                let appendstr = 'import ' . qlocalpath -                let appendline = line - 1 -            endif -            let m = matchlist(linestr, '^import\(\s\+\)\(\S*\s*\)"\(.\+\)"') -            if !empty(m) -                if m[3] == path -                    let appendline = -1 -                    let deleteline = line -                    break -                endif -                if m[3] < path -                    let appendline = line -                endif -                if a:localname != '' && m[2] != '' -                    let qlocalpath = printf("%s %" . len(m[2])-1 . "s", a:localname, qpath) -                endif -                let appendstr = 'import' . m[1] . qlocalpath -            endif - -        elseif linestr =~# '^\(var\|const\|type\|func\)\>' -            break - -        endif -        let line = line + 1 -    endwhile - -    " Append or remove the package import, as requested. -    if a:enabled -        if deleteline != -1 -            call s:Error(qpath . ' already being imported') -        elseif appendline == -1 -            call s:Error('No package line found') -        else -            if appendline == packageline -                call append(appendline + 0, '') -                call append(appendline + 1, 'import (') -                call append(appendline + 2, ')') -                let appendline += 2 -                let linesdelta += 3 -                let appendstr = qlocalpath -                let indentstr = 1 -            endif -            call append(appendline, appendstr) -            execute appendline + 1 -            if indentstr -                execute 'normal >>' -            endif -            let linesdelta += 1 -        endif -    else -        if deleteline == -1 -            call s:Error(qpath . ' not being imported') -        else -            execute deleteline . 'd' -            let linesdelta -= 1 - -            if getline(deleteline-1) =~# '^import\s\+(' && getline(deleteline) =~# '^)' -                " Delete empty import block -                let deleteline -= 1 -                execute deleteline . "d" -                execute deleteline . "d" -                let linesdelta -= 2 -            endif - -            if getline(deleteline) == '' && getline(deleteline - 1) == '' -                " Delete spacing for removed line too. -                execute deleteline . "d" -                let linesdelta -= 1 -            endif -        endif -    endif - -    " Adjust view for any changes. -    let view.lnum += linesdelta -    let view.topline += linesdelta -    if view.topline < 0 -        let view.topline = 0 -    endif - -    " Put buffer back where it was. -    call winrestview(view) - -endfunction - -function! s:Error(s) -    echohl Error | echo a:s | echohl None -endfunction - -let b:did_ftplugin_go_import = 1 - -" vim:ts=4:sw=4:et diff --git a/ftplugin/sass.vim b/ftplugin/sass.vim index 64232a08..27c87ada 100644 --- a/ftplugin/sass.vim +++ b/ftplugin/sass.vim @@ -9,8 +9,9 @@ if exists("b:did_ftplugin")  endif  let b:did_ftplugin = 1 -let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<" +let b:undo_ftplugin = "setl com< cms< def< inc< inex< ofu< sua<" +setlocal comments=://  setlocal commentstring=//\ %s  setlocal define=^\\s*\\%(@mixin\\\|=\\)  setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','') diff --git a/ftplugin/scss.vim b/ftplugin/scss.vim index 981fb1b8..2e3c5f1d 100644 --- a/ftplugin/scss.vim +++ b/ftplugin/scss.vim @@ -8,5 +8,6 @@ if exists("b:did_ftplugin")  endif  runtime! ftplugin/sass.vim +setlocal comments=s1:/*,mb:*,ex:*/,://  " vim:set sw=2: diff --git a/indent/go.vim b/indent/go.vim deleted file mode 100644 index e3d6e841..00000000 --- a/indent/go.vim +++ /dev/null @@ -1,77 +0,0 @@ -" Copyright 2011 The Go Authors. All rights reserved. -" Use of this source code is governed by a BSD-style -" license that can be found in the LICENSE file. -" -" indent/go.vim: Vim indent file for Go. -" -" TODO: -" - function invocations split across lines -" - general line splits (line ends in an operator) - -if exists("b:did_indent") -    finish -endif -let b:did_indent = 1 - -" C indentation is too far off useful, mainly due to Go's := operator. -" Let's just define our own. -setlocal nolisp -setlocal autoindent -setlocal indentexpr=GoIndent(v:lnum) -setlocal indentkeys+=<:>,0=},0=) - -if exists("*GoIndent") -  finish -endif - -" The shiftwidth() function is relatively new. -" Don't require it to exist. -if exists('*shiftwidth') -  func s:sw() -    return shiftwidth() -  endfunc -else -  func s:sw() -    return &shiftwidth -  endfunc -endif - -function! GoIndent(lnum) -  let prevlnum = prevnonblank(a:lnum-1) -  if prevlnum == 0 -    " top of file -    return 0 -  endif - -  " grab the previous and current line, stripping comments. -  let prevl = substitute(getline(prevlnum), '//.*$', '', '') -  let thisl = substitute(getline(a:lnum), '//.*$', '', '') -  let previ = indent(prevlnum) - -  let ind = previ - -  if prevl =~ '[({]\s*$' -    " previous line opened a block -    let ind += s:sw() -  endif -  if prevl =~# '^\s*\(case .*\|default\):$' -    " previous line is part of a switch statement -    let ind += s:sw() -  endif -  " TODO: handle if the previous line is a label. - -  if thisl =~ '^\s*[)}]' -    " this line closed a block -    let ind -= s:sw() -  endif - -  " Colons are tricky. -  " We want to outdent if it's part of a switch ("case foo:" or "default:"). -  " We ignore trying to deal with jump labels because (a) they're rare, and -  " (b) they're hard to disambiguate from a composite literal key. -  if thisl =~# '^\s*\(case .*\|default\):$' -    let ind -= s:sw() -  endif - -  return ind -endfunction diff --git a/indent/html.vim b/indent/html.vim index ab8a72fa..cbd324bc 100644 --- a/indent/html.vim +++ b/indent/html.vim @@ -61,6 +61,8 @@ call add(s:tags, 'dfn')  call add(s:tags, 'dir')  call add(s:tags, 'div')  call add(s:tags, 'dl') +call add(s:tags, 'dt') +call add(s:tags, 'dd')  call add(s:tags, 'em')  call add(s:tags, 'fieldset')  call add(s:tags, 'font') diff --git a/indent/puppet.vim b/indent/puppet.vim index 56ee46d5..cf49de88 100644 --- a/indent/puppet.vim +++ b/indent/puppet.vim @@ -76,6 +76,19 @@ function! GetPuppetIndent()      if line =~ '^\s*}\s*els\(e\|if\).*{\s*$'          let ind -= &sw      endif +     +    " Don't indent resources that are one after another with a ->(ordering arrow) +    " file {'somefile': +    "    ... +    " } -> +    " +    " package { 'mycoolpackage': +    "    ... +    " } +    if line =~ '->$' +        let ind -= &sw +    endif +      return ind  endfunction diff --git a/syntax/go.vim b/syntax/go.vim deleted file mode 100644 index 1ce6cb27..00000000 --- a/syntax/go.vim +++ /dev/null @@ -1,207 +0,0 @@ -" Copyright 2009 The Go Authors. All rights reserved. -" Use of this source code is governed by a BSD-style -" license that can be found in the LICENSE file. -" -" go.vim: Vim syntax file for Go. -" -" Options: -"   There are some options for customizing the highlighting; the recommended -"   settings are the default values, but you can write: -"     let OPTION_NAME = 0 -"   in your ~/.vimrc file to disable particular options. You can also write: -"     let OPTION_NAME = 1 -"   to enable particular options. At present, all options default to on. -" -"   - go_highlight_array_whitespace_error -"     Highlights white space after "[]". -"   - go_highlight_chan_whitespace_error -"     Highlights white space around the communications operator that don't follow -"     the standard style. -"   - go_highlight_extra_types -"     Highlights commonly used library types (io.Reader, etc.). -"   - go_highlight_space_tab_error -"     Highlights instances of tabs following spaces. -"   - go_highlight_trailing_whitespace_error -"     Highlights trailing white space. - -" Quit when a (custom) syntax file was already loaded -if exists("b:current_syntax") -  finish -endif - -if !exists("go_highlight_array_whitespace_error") -  let go_highlight_array_whitespace_error = 1 -endif -if !exists("go_highlight_chan_whitespace_error") -  let go_highlight_chan_whitespace_error = 1 -endif -if !exists("go_highlight_extra_types") -  let go_highlight_extra_types = 1 -endif -if !exists("go_highlight_space_tab_error") -  let go_highlight_space_tab_error = 1 -endif -if !exists("go_highlight_trailing_whitespace_error") -  let go_highlight_trailing_whitespace_error = 1 -endif - -syn case match - -syn keyword     goDirective         package import -syn keyword     goDeclaration       var const type -syn keyword     goDeclType          struct interface - -hi def link     goDirective         Statement -hi def link     goDeclaration       Keyword -hi def link     goDeclType          Keyword - -" Keywords within functions -syn keyword     goStatement         defer go goto return break continue fallthrough -syn keyword     goConditional       if else switch select -syn keyword     goLabel             case default -syn keyword     goRepeat            for range - -hi def link     goStatement         Statement -hi def link     goConditional       Conditional -hi def link     goLabel             Label -hi def link     goRepeat            Repeat - -" Predefined types -syn keyword     goType              chan map bool string error -syn keyword     goSignedInts        int int8 int16 int32 int64 rune -syn keyword     goUnsignedInts      byte uint uint8 uint16 uint32 uint64 uintptr -syn keyword     goFloats            float32 float64 -syn keyword     goComplexes         complex64 complex128 - -hi def link     goType              Type -hi def link     goSignedInts        Type -hi def link     goUnsignedInts      Type -hi def link     goFloats            Type -hi def link     goComplexes         Type - -" Treat func specially: it's a declaration at the start of a line, but a type -" elsewhere. Order matters here. -syn match       goType              /\<func\>/ -syn match       goDeclaration       /^func\>/ - -" Predefined functions and values -syn keyword     goBuiltins          append cap close complex copy delete imag len -syn keyword     goBuiltins          make new panic print println real recover -syn keyword     goConstants         iota true false nil - -hi def link     goBuiltins          Keyword -hi def link     goConstants         Keyword - -" Comments; their contents -syn keyword     goTodo              contained TODO FIXME XXX BUG -syn cluster     goCommentGroup      contains=goTodo -syn region      goComment           start="/\*" end="\*/" contains=@goCommentGroup,@Spell -syn region      goComment           start="//" end="$" contains=@goCommentGroup,@Spell - -hi def link     goComment           Comment -hi def link     goTodo              Todo - -" Go escapes -syn match       goEscapeOctal       display contained "\\[0-7]\{3}" -syn match       goEscapeC           display contained +\\[abfnrtv\\'"]+ -syn match       goEscapeX           display contained "\\x\x\{2}" -syn match       goEscapeU           display contained "\\u\x\{4}" -syn match       goEscapeBigU        display contained "\\U\x\{8}" -syn match       goEscapeError       display contained +\\[^0-7xuUabfnrtv\\'"]+ - -hi def link     goEscapeOctal       goSpecialString -hi def link     goEscapeC           goSpecialString -hi def link     goEscapeX           goSpecialString -hi def link     goEscapeU           goSpecialString -hi def link     goEscapeBigU        goSpecialString -hi def link     goSpecialString     Special -hi def link     goEscapeError       Error - -" Strings and their contents -syn cluster     goStringGroup       contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU,goEscapeError -syn region      goString            start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup -syn region      goRawString         start=+`+ end=+`+ - -hi def link     goString            String -hi def link     goRawString         String - -" Characters; their contents -syn cluster     goCharacterGroup    contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU -syn region      goCharacter         start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@goCharacterGroup - -hi def link     goCharacter         Character - -" Regions -syn region      goBlock             start="{" end="}" transparent fold -syn region      goParen             start='(' end=')' transparent - -" Integers -syn match       goDecimalInt        "\<\d\+\([Ee]\d\+\)\?\>" -syn match       goHexadecimalInt    "\<0x\x\+\>" -syn match       goOctalInt          "\<0\o\+\>" -syn match       goOctalError        "\<0\o*[89]\d*\>" - -hi def link     goDecimalInt        Integer -hi def link     goHexadecimalInt    Integer -hi def link     goOctalInt          Integer -hi def link     Integer             Number - -" Floating point -syn match       goFloat             "\<\d\+\.\d*\([Ee][-+]\d\+\)\?\>" -syn match       goFloat             "\<\.\d\+\([Ee][-+]\d\+\)\?\>" -syn match       goFloat             "\<\d\+[Ee][-+]\d\+\>" - -hi def link     goFloat             Float - -" Imaginary literals -syn match       goImaginary         "\<\d\+i\>" -syn match       goImaginary         "\<\d\+\.\d*\([Ee][-+]\d\+\)\?i\>" -syn match       goImaginary         "\<\.\d\+\([Ee][-+]\d\+\)\?i\>" -syn match       goImaginary         "\<\d\+[Ee][-+]\d\+i\>" - -hi def link     goImaginary         Number - -" Spaces after "[]" -if go_highlight_array_whitespace_error != 0 -  syn match goSpaceError display "\(\[\]\)\@<=\s\+" -endif - -" Spacing errors around the 'chan' keyword -if go_highlight_chan_whitespace_error != 0 -  " receive-only annotation on chan type -  syn match goSpaceError display "\(<-\)\@<=\s\+\(chan\>\)\@=" -  " send-only annotation on chan type -  syn match goSpaceError display "\(\<chan\)\@<=\s\+\(<-\)\@=" -  " value-ignoring receives in a few contexts -  syn match goSpaceError display "\(\(^\|[={(,;]\)\s*<-\)\@<=\s\+" -endif - -" Extra types commonly seen -if go_highlight_extra_types != 0 -  syn match goExtraType /\<bytes\.\(Buffer\)\>/ -  syn match goExtraType /\<io\.\(Reader\|Writer\|ReadWriter\|ReadWriteCloser\)\>/ -  syn match goExtraType /\<reflect\.\(Kind\|Type\|Value\)\>/ -  syn match goExtraType /\<unsafe\.Pointer\>/ -endif - -" Space-tab error -if go_highlight_space_tab_error != 0 -  syn match goSpaceError display " \+\t"me=e-1 -endif - -" Trailing white space error -if go_highlight_trailing_whitespace_error != 0 -  syn match goSpaceError display excludenl "\s\+$" -endif - -hi def link     goExtraType         Type -hi def link     goSpaceError        Error - -" Search backwards for a global declaration to start processing the syntax. -"syn sync match goSync grouphere NONE /^\(const\|var\|type\|func\)\>/ - -" There's a bug in the implementation of grouphere. For now, use the -" following as a more expensive/less precise workaround. -syn sync minlines=500 - -let b:current_syntax = "go" diff --git a/syntax/godoc.vim b/syntax/godoc.vim deleted file mode 100644 index bd4443f7..00000000 --- a/syntax/godoc.vim +++ /dev/null @@ -1,20 +0,0 @@ -" Copyright 2011 The Go Authors. All rights reserved. -" Use of this source code is governed by a BSD-style -" license that can be found in the LICENSE file. - -if exists("b:current_syntax") -  finish -endif - -syn case match -syn match  godocTitle "^\([A-Z][A-Z ]*\)$" - -command -nargs=+ HiLink hi def link <args> - -HiLink godocTitle Title - -delcommand HiLink - -let b:current_syntax = "godoc" - -" vim:ts=4 sts=2 sw=2: diff --git a/syntax/jade.vim b/syntax/jade.vim index 5c6e2199..ab488d1d 100644 --- a/syntax/jade.vim +++ b/syntax/jade.vim @@ -31,7 +31,7 @@ syn match   jadeBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=jadeTag,jadeClassCha  syn match   jadeTag "+\?\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@jadeComponent  syn cluster jadeComponent contains=jadeAttributes,jadeIdChar,jadeBlockExpansionChar,jadeClassChar,jadePlainChar,jadeJavascript,jadeTagBlockChar,jadeTagInlineText  syn match   jadeComment '\s*\/\/.*$' -syn region  jadeHtmlComment start="^\z(\s*\)/"  end="^\%(\z1\s\|\s*$\)\@!" +syn region  jadeHtmlConditionalComment start="<!--\%(.*\)>" end="<!\%(.*\)-->"  syn region  jadeAttributes matchgroup=jadeAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,jadeHtmlArg,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@jadeComponent  syn match   jadeClassChar "\." contained nextgroup=jadeClass  syn match   jadeBlockExpansionChar ":\s\+" contained nextgroup=jadeTag @@ -90,7 +90,7 @@ hi def link jadeInlineDelimiter        Delimiter  hi def link jadeFilter                 PreProc  hi def link jadeDocType                PreProc  hi def link jadeComment                Comment -hi def link jadeHtmlComment            jadeComment +hi def link jadeHtmlConditionalComment jadeComment  let b:current_syntax = "jade" diff --git a/syntax/perl6.vim b/syntax/perl6.vim index af430a30..fbb39c8f 100644 --- a/syntax/perl6.vim +++ b/syntax/perl6.vim @@ -235,7 +235,7 @@ let s:routines = [   \ "acos acosh atanh sech cosech cotanh sech acosech acotanh asech ok",   \ "plan_ok dies_ok lives_ok skip todo pass flunk force_todo use_ok isa_ok",   \ "diag is_deeply isnt like skip_rest unlike cmp_ok eval_dies_ok nok_error", - \ "eval_lives_ok approx is_approx throws_ok version_lt plan eval succ pred", + \ "eval_lives_ok approx is_approx throws_ok version_lt plan EVAL succ pred",   \ "times nonce once signature new connect operator undef undefine sleep",   \ "from to infix postfix prefix circumfix postcircumfix minmax lazy count",   \ "unwrap getc pi e context void quasi body each contains rewinddir subst", diff --git a/syntax/php.vim b/syntax/php.vim index d5c28aea..7a3eee73 100644 --- a/syntax/php.vim +++ b/syntax/php.vim @@ -85,6 +85,10 @@ if !exists("main_syntax")    let main_syntax = 'php'  endif +" Save the 'iskeyword' setting before including the HTML syntax. +" See https://github.com/pangloss/vim-javascript/issues/153 +let s:iskeyword_save = &iskeyword +  if !exists("php_html_load")    let php_html_load=1  endif @@ -816,6 +820,9 @@ endif  delcommand SynFold  let b:current_syntax = "php" +let &iskeyword = s:iskeyword_save +unlet s:iskeyword_save +  if main_syntax == 'php'    unlet main_syntax  endif diff --git a/syntax/puppet.vim b/syntax/puppet.vim index 010ada45..a979acae 100644 --- a/syntax/puppet.vim +++ b/syntax/puppet.vim @@ -76,7 +76,7 @@ syn region  puppetString        start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pupp  syn match   puppetNotVariable   "\\$\w\+" contained  syn match   puppetNotVariable   "\\${\w\+}" contained -syn keyword puppetKeyword       import inherits include require +syn keyword puppetKeyword       import inherits include require contains  syn keyword puppetControl       case default if else elsif  syn keyword puppetSpecial       true false undef diff --git a/syntax/rust.vim b/syntax/rust.vim index 0204d42a..d8330b84 100644 --- a/syntax/rust.vim +++ b/syntax/rust.vim @@ -76,7 +76,7 @@ syn keyword   rustType        f64 i8 i16 i32 i64 str Self  " to make it easy to update.  " Core operators {{{3 -syn keyword   rustTrait       Copy Send Sized Share +syn keyword   rustTrait       Copy Send Sized Sync  syn keyword   rustTrait       Add Sub Mul Div Rem Neg Not  syn keyword   rustTrait       BitAnd BitOr BitXor  syn keyword   rustTrait       Drop Deref DerefMut | 
