summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--after/ftplugin/puppet.vim23
-rw-r--r--after/syntax/c.vim24
-rw-r--r--autoload/go/complete.vim103
-rw-r--r--compiler/go.vim30
-rw-r--r--ftdetect/polyglot.vim16
-rw-r--r--ftplugin/go.vim19
-rw-r--r--ftplugin/go/fmt.vim69
-rw-r--r--ftplugin/go/import.vim250
-rw-r--r--ftplugin/sass.vim3
-rw-r--r--ftplugin/scss.vim1
-rw-r--r--indent/go.vim77
-rw-r--r--indent/html.vim2
-rw-r--r--indent/puppet.vim13
-rw-r--r--syntax/go.vim207
-rw-r--r--syntax/godoc.vim20
-rw-r--r--syntax/jade.vim4
-rw-r--r--syntax/perl6.vim2
-rw-r--r--syntax/php.vim7
-rw-r--r--syntax/puppet.vim2
-rw-r--r--syntax/rust.vim2
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