summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler/coffee.vim4
-rw-r--r--compiler/go.vim30
-rw-r--r--ftplugin/clojure.vim5
-rw-r--r--ftplugin/csv.vim10
-rw-r--r--ftplugin/go.vim17
-rw-r--r--ftplugin/markdown.vim1
-rw-r--r--ftplugin/perl.vim1
-rw-r--r--ftplugin/scala.vim4
-rw-r--r--indent/clojure.vim6
-rw-r--r--indent/less.vim39
-rw-r--r--indent/perl.vim2
-rw-r--r--syntax/markdown.vim1
-rw-r--r--syntax/perl.vim4
-rw-r--r--syntax/rust.vim4
-rw-r--r--syntax/scala.vim56
15 files changed, 122 insertions, 62 deletions
diff --git a/compiler/coffee.vim b/compiler/coffee.vim
index a70fa64c..9a91d354 100644
--- a/compiler/coffee.vim
+++ b/compiler/coffee.vim
@@ -75,8 +75,8 @@ augroup CoffeeUpdateMakePrg
" Set autocmd locally if compiler was set locally.
if &l:makeprg =~ s:pat
- autocmd BufFilePost,BufWritePost <buffer> call s:UpdateMakePrg()
+ autocmd BufWritePre,BufFilePost <buffer> call s:UpdateMakePrg()
else
- autocmd BufFilePost,BufWritePost call s:UpdateMakePrg()
+ autocmd BufWritePre,BufFilePost call s:UpdateMakePrg()
endif
augroup END
diff --git a/compiler/go.vim b/compiler/go.vim
new file mode 100644
index 00000000..2c8cce49
--- /dev/null
+++ b/compiler/go.vim
@@ -0,0 +1,30 @@
+" 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/ftplugin/clojure.vim b/ftplugin/clojure.vim
index bbcbd319..b46b9c80 100644
--- a/ftplugin/clojure.vim
+++ b/ftplugin/clojure.vim
@@ -23,9 +23,8 @@ setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
" of user-defined def* definitions.
setlocal define=\\v[(/]def(ault)@!\\S*
-" Remove 't' from 'formatoptions' to avoid auto-wrapping code. The '+=croql'
-" is standard ftplugin boilerplate, although it is arguably intrusive.
-setlocal formatoptions-=t formatoptions+=croql
+" Remove 't' from 'formatoptions' to avoid auto-wrapping code.
+setlocal formatoptions-=t
" Lisp comments are routinely nested (e.g. ;;; SECTION HEADING)
setlocal comments=n:;
diff --git a/ftplugin/csv.vim b/ftplugin/csv.vim
index 596012a3..20532744 100644
--- a/ftplugin/csv.vim
+++ b/ftplugin/csv.vim
@@ -1606,6 +1606,9 @@ fu! <sid>AnalyzeColumn(...) "{{{3
let qty = len(data)
let res = {}
for item in data
+ if empty(item)
+ let item = 'NULL'
+ endif
if !get(res, item)
let res[item] = 0
endif
@@ -1613,6 +1616,7 @@ fu! <sid>AnalyzeColumn(...) "{{{3
endfor
let max_items = reverse(sort(values(res)))
+ let count_items = keys(res)
if len(max_items) > 5
call remove(max_items, 5, -1)
call filter(res, 'v:val =~ ''^''.join(max_items, ''\|'').''$''')
@@ -1623,9 +1627,9 @@ fu! <sid>AnalyzeColumn(...) "{{{3
else
let title="Nr\tCount\tValue"
endif
- echohl "Title"
+ echohl Title
echo printf("%s", title)
- echohl "Normal"
+ echohl Normal
echo printf("%s", repeat('=', strdisplaywidth(title)))
let i=1
@@ -1650,6 +1654,8 @@ fu! <sid>AnalyzeColumn(...) "{{{3
endif
endfor
endfor
+ echo printf("%s", repeat('=', strdisplaywidth(title)))
+ echo printf("different values: %d", len(count_items))
unlet max_items
endfunc
diff --git a/ftplugin/go.vim b/ftplugin/go.vim
new file mode 100644
index 00000000..8066733c
--- /dev/null
+++ b/ftplugin/go.vim
@@ -0,0 +1,17 @@
+" 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 comments=s1:/*,mb:*,ex:*/,://
+setlocal commentstring=//\ %s
+
+let b:undo_ftplugin = "setl com< cms<"
+
+" vim:ts=4:sw=4:et
diff --git a/ftplugin/markdown.vim b/ftplugin/markdown.vim
index 022da06e..5d6ebecd 100644
--- a/ftplugin/markdown.vim
+++ b/ftplugin/markdown.vim
@@ -1,6 +1,7 @@
" Vim filetype plugin
" Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2013 May 30
if exists("b:did_ftplugin")
finish
diff --git a/ftplugin/perl.vim b/ftplugin/perl.vim
index 9e210428..d52015e3 100644
--- a/ftplugin/perl.vim
+++ b/ftplugin/perl.vim
@@ -82,6 +82,7 @@ let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
+let b:match_words = '\<if\>:\<elsif\>:\<else\>'
" Restore the saved compatibility options.
let &cpo = s:save_cpo
diff --git a/ftplugin/scala.vim b/ftplugin/scala.vim
index 6db56d04..00d45669 100644
--- a/ftplugin/scala.vim
+++ b/ftplugin/scala.vim
@@ -4,6 +4,10 @@ setlocal softtabstop=2
setlocal expandtab
setlocal formatoptions=tcqr
setlocal commentstring=//%s
+let &l:include = '^\s*import'
+let &l:includeexpr = 'substitute(v:fname,"\\.","/","g")'
+setlocal path+=src/main/scala,src/test/scala
+setlocal suffixesadd=.scala
set makeprg=sbt\ -Dsbt.log.noformat=true\ compile
set efm=%E\ %#[error]\ %f:%l:\ %m,%C\ %#[error]\ %p^,%-C%.%#,%Z,
diff --git a/indent/clojure.vim b/indent/clojure.vim
index 41201252..fd9ebb69 100644
--- a/indent/clojure.vim
+++ b/indent/clojure.vim
@@ -53,6 +53,10 @@ if exists("*searchpairpos")
let g:clojure_align_multiline_strings = 0
endif
+ if !exists('g:clojure_align_subforms')
+ let g:clojure_align_subforms = 0
+ endif
+
function! s:SynIdName()
return synIDattr(synID(line("."), col("."), 0), "name")
endfunction
@@ -284,7 +288,7 @@ if exists("*searchpairpos")
call search('\v\_s', 'cW')
call search('\v\S', 'W')
if paren[0] < line(".")
- return paren[1] + &shiftwidth - 1
+ return paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)
endif
call search('\v\S', 'bW')
diff --git a/indent/less.vim b/indent/less.vim
index 6161c93c..556c2d08 100644
--- a/indent/less.vim
+++ b/indent/less.vim
@@ -1,41 +1,10 @@
" Vim indent file
-" Language: LessCSS
-" Maintainer: Leonard Ehrenfried <leonard.ehrenfried@web.de>
-" Last Change: 2011 Sep 26
+" Language: LessCSS
+" Maintainer: Leonard Ehrenfried <leonard.ehrenfried@web.de>
+" Last Change: 2011 Sep 26
if exists("b:did_indent")
finish
endif
-let b:did_indent = 1
-
-setlocal autoindent sw=2 et
-setlocal indentexpr=GetLessIndent()
-setlocal indentkeys=o,O,*<Return>,<:>,!^F
-
-" Only define the function once.
-if exists("*GetLessIndent")
- finish
-endif
-
-let s:property = '^\s*:\|^\s*[[:alnum:]#{}-]\+\%(:\|\s*=\)'
-
-function! GetLessIndent()
- let lnum = prevnonblank(v:lnum-1)
- let line = substitute(getline(lnum),'\s\+$','','')
- let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','')
- let lastcol = strlen(line)
- let line = substitute(line,'^\s\+','','')
- let indent = indent(lnum)
- let cindent = indent(v:lnum)
- if line !~ s:property && cline =~ s:property
- return indent + &sw
- "elseif line =~ s:property && cline !~ s:property
- "return indent - &sw
- else
- return -1
- endif
-endfunction
-
-" vim:set sw=2:
-
+runtime! indent/css.vim \ No newline at end of file
diff --git a/indent/perl.vim b/indent/perl.vim
index a8e92fd5..3ce3e59a 100644
--- a/indent/perl.vim
+++ b/indent/perl.vim
@@ -134,6 +134,7 @@ function! GetPerlIndent()
\ || synid == "perlMatchStartEnd"
\ || synid == "perlHereDoc"
\ || synid == "perlBraces"
+ \ || synid == "perlStatementIndirObj"
\ || synid =~ "^perlFiledescStatement"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let brace = strpart(line, bracepos, 1)
@@ -151,6 +152,7 @@ function! GetPerlIndent()
if synid == ""
\ || synid == "perlMatchStartEnd"
\ || synid == "perlBraces"
+ \ || synid == "perlStatementIndirObj"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let ind = ind - &sw
endif
diff --git a/syntax/markdown.vim b/syntax/markdown.vim
index 3024f2f7..4ba02b26 100644
--- a/syntax/markdown.vim
+++ b/syntax/markdown.vim
@@ -2,6 +2,7 @@
" Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.markdown
+" Last Change: 2013 May 30
if exists("b:current_syntax")
finish
diff --git a/syntax/perl.vim b/syntax/perl.vim
index e847da11..b3baa092 100644
--- a/syntax/perl.vim
+++ b/syntax/perl.vim
@@ -83,7 +83,7 @@ syn match perlControl "\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>\_s*" nextgr
syn match perlStatementStorage "\<\%(my\|our\|local\|state\)\>"
syn match perlStatementControl "\<\%(return\|last\|next\|redo\|goto\|break\)\>"
-syn match perlStatementScalar "\<\%(chom\=p\|chr\|crypt\|r\=index\|lc\%(first\)\=\|length\|ord\|pack\|sprintf\|substr\|uc\%(first\)\=\)\>"
+syn match perlStatementScalar "\<\%(chom\=p\|chr\|crypt\|r\=index\|lc\%(first\)\=\|length\|ord\|pack\|sprintf\|substr\|fc\|uc\%(first\)\=\)\>"
syn match perlStatementRegexp "\<\%(pos\|quotemeta\|split\|study\)\>"
syn match perlStatementNumeric "\<\%(abs\|atan2\|cos\|exp\|hex\|int\|log\|oct\|rand\|sin\|sqrt\|srand\)\>"
syn match perlStatementList "\<\%(splice\|unshift\|shift\|push\|pop\|join\|reverse\|grep\|map\|sort\|unpack\)\>"
@@ -94,7 +94,7 @@ syn match perlStatementFiledesc "\<\%(fcntl\|flock\|ioctl\|open\%(dir\)\=\|read
syn match perlStatementVector "\<vec\>"
syn match perlStatementFiles "\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdir\|readlink\|rename\|rmdir\|symlink\|umask\|unlink\|utime\)\>"
syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
-syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\)\>"
+syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\|evalbytes\)\>"
syn match perlStatementInclude "\<\%(require\|import\)\>"
syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
syn match perlStatementProc "\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>"
diff --git a/syntax/rust.vim b/syntax/rust.vim
index 9131c4fa..aa0549a8 100644
--- a/syntax/rust.vim
+++ b/syntax/rust.vim
@@ -66,7 +66,7 @@ syn keyword rustEnumVariant Ok Err
" Types and traits {{{3
syn keyword rustTrait Any AnyOwnExt AnyRefExt AnyMutRefExt
-syn keyword rustTrait Ascii AsciiCast OwnedAsciiCast AsciiStr ToBytesConsume
+syn keyword rustTrait Ascii AsciiCast OwnedAsciiCast AsciiStr IntoBytes
syn keyword rustTrait Bool
syn keyword rustTrait ToCStr
syn keyword rustTrait Char
@@ -94,7 +94,7 @@ syn keyword rustTrait Buffer Writer Reader Seek
syn keyword rustTrait SendStr SendStrOwned SendStrStatic IntoSendStr
syn keyword rustTrait Str StrVector StrSlice OwnedStr
syn keyword rustTrait IterBytes
-syn keyword rustTrait ToStr ToStrConsume
+syn keyword rustTrait ToStr IntoStr
syn keyword rustTrait CopyableTuple ImmutableTuple
syn keyword rustTrait Tuple1 Tuple2 Tuple3 Tuple4
syn keyword rustTrait Tuple5 Tuple6 Tuple7 Tuple8
diff --git a/syntax/scala.vim b/syntax/scala.vim
index 3c43a894..5139419b 100644
--- a/syntax/scala.vim
+++ b/syntax/scala.vim
@@ -11,12 +11,23 @@ syn sync minlines=200 maxlines=1000
syn keyword scalaKeyword catch do else final finally for forSome if
syn keyword scalaKeyword match return throw try while yield
-syn keyword scalaKeyword class trait object extends with type nextgroup=scalaInstanceDeclaration skipwhite
-syn keyword scalaKeyword case nextgroup=scalaCaseFollowing skipwhite
+syn keyword scalaKeyword class trait object extends with nextgroup=scalaInstanceDeclaration skipwhite
+syn keyword scalaKeyword type nextgroup=scalaTypeDeclaration skipwhite
+syn keyword scalaKeyword case nextgroup=scalaKeyword,scalaCaseFollowing skipwhite
syn keyword scalaKeyword val nextgroup=scalaNameDefinition,scalaQuasiQuotes skipwhite
syn keyword scalaKeyword def var nextgroup=scalaNameDefinition skipwhite
hi link scalaKeyword Keyword
+syn match scalaSymbol /'[_A-Za-z0-9$]\+/
+hi link scalaSymbol Number
+
+syn match scalaChar /'.'/
+syn match scalaEscapedChar /\\[\\ntbrf]/
+syn match scalaUnicodeChar /\\u[A-Fa-f0-9]\{4}/
+hi link scalaChar Character
+hi link scalaEscapedChar Function
+hi link scalaUnicodeChar Special
+
syn match scalaNameDefinition /\<[_A-Za-z0-9$]\+\>/ contained
syn match scalaNameDefinition /`[^`]\+`/ contained
hi link scalaNameDefinition Function
@@ -25,6 +36,19 @@ syn match scalaInstanceDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained
syn match scalaInstanceDeclaration /`[^`]\+`/ contained
hi link scalaInstanceDeclaration Special
+syn match scalaTypeDeclaration /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeExtension,scalaTypeEquals skipwhite
+syn match scalaTypeEquals /=\ze[^>]/ contained nextgroup=scalaTypePostDeclaration skipwhite
+syn match scalaTypeExtension /\%(=>\|<:\|:>\|=:=\|::\)/ contained nextgroup=scalaTypeDeclaration skipwhite
+syn match scalaTypePostDeclaration /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypePostExtension skipwhite
+syn match scalaTypePostExtension /\%(=>\|<:\|:>\|=:=\|::\)/ contained nextgroup=scalaTypePostDeclaration skipwhite
+hi link scalaTypeDeclaration Type
+hi link scalaTypeExtension Keyword
+hi link scalaTypePostDeclaration Special
+hi link scalaTypePostExtension Keyword
+
+syn match scalaTypeAnnotation /\%([_a-zA-Z0-9$)\s]:\_s*\)\@<=[_(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeExtension contains=scalaRoundBrackets
+hi link scalaTypeAnnotation Type
+
syn match scalaCaseFollowing /\<[_\.A-Za-z0-9$]*\>/ contained
syn match scalaCaseFollowing /`[^`]\+`/ contained
hi link scalaCaseFollowing Special
@@ -38,16 +62,18 @@ syn match scalaSpecial "\%(=>\|⇒\|<-\|←\|->\|→\)"
syn match scalaSpecial /`[^`]*`/ " Backtick literals
hi link scalaSpecial PreProc
-syn region scalaString start=/"/ skip=/\\"/ end=/"/
+syn match scalaStringEmbeddedQuote /\\"/ contained
+syn region scalaString start=/"/ end=/"/ contains=scalaStringEmbeddedQuote,scalaEscapedChar,scalaUnicodeChar
hi link scalaString String
+hi link scalaStringEmbeddedQuote String
-syn region scalaSString matchgroup=Special start=/s"/ skip=/\\"/ end=/"/ contains=scalaInterpolation
+syn region scalaSString matchgroup=Special start=/s"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaEscapedChar,scalaUnicodeChar
syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained
syn match scalaInterpolation /\${[^}]\+}/ contained
hi link scalaSString String
hi link scalaInterpolation Function
-syn region scalaFString matchgroup=Special start=/f"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaFInterpolation
+syn region scalaFString matchgroup=Special start=/f"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaFInterpolation,scalaEscapedChar,scalaUnicodeChar
syn match scalaFInterpolation /\$[a-zA-Z0-9_$]\+%[-A-Za-z0-9\.]\+/ contained
syn match scalaFInterpolation /\${[^}]\+}%[-A-Za-z0-9\.]\+/ contained
hi link scalaFString String
@@ -61,9 +87,9 @@ syn region scalaTripleQuasiQuotes matchgroup=Type start=/\<q"""/ end=/"""/ conta
syn region scalaTripleQuasiQuotes matchgroup=Type start=/\<[tcp]q"""/ end=/"""/ contains=scalaInterpolation
hi link scalaTripleQuasiQuotes String
-syn region scalaTripleString start=/"""/ end=/"""/
-syn region scalaTripleSString matchgroup=PreProc start=/s"""/ end=/"""/
-syn region scalaTripleFString matchgroup=PreProc start=/f"""/ end=/"""/
+syn region scalaTripleString start=/"""/ end=/"""/ contains=scalaEscapedChar,scalaUnicodeChar
+syn region scalaTripleSString matchgroup=Special start=/s"""/ end=/"""/ contains=scalaInterpolation,scalaEscapedChar,scalaUnicodeChar
+syn region scalaTripleFString matchgroup=Special start=/f"""/ end=/"""/ contains=scalaInterpolation,scalaFInterpolation,scalaEscapedChar,scalaUnicodeChar
hi link scalaTripleString String
hi link scalaTripleSString String
hi link scalaTripleFString String
@@ -76,13 +102,13 @@ syn match scalaNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
syn match scalaNumber "\<\d\+\%([eE][-+]\=\d\+\)\=[fFdD]\>"
hi link scalaNumber Number
-syn region scalaSquareBrackets matchgroup=Type start="\[" end="\]" contains=scalaSpecial,scalaTypeParameter,scalaSquareBrackets,scalaTypeOperator
-syn match scalaTypeAnnotation /\%(:\s*\)\@<=[_\.A-Za-z0-9$]\+/
-syn match scalaTypeParameter /[_\.A-Za-z0-9$]\+/ contained
-syn match scalaTypeOperator /[=:<>]\+/ contained
-hi link scalaTypeAnnotation Type
-hi link scalaTypeParameter Type
-hi link scalaTypeOperator Type
+syn region scalaRoundBrackets start="(" end=")" skipwhite contained contains=scalaTypeDeclaration,scalaSquareBrackets
+
+syn region scalaSquareBrackets matchgroup=Type start="\[" end="\]" skipwhite nextgroup=scalaTypeEquals,scalaTypeExtension contains=scalaTypeDeclaration,scalaSquareBrackets,scalaTypeOperator,scalaTypeAnnotationParameter
+syn match scalaTypeOperator /[-+=:<>]\+/ contained
+syn match scalaTypeAnnotationParameter /@\<[`_A-Za-z0-9$]\+\>/ contained
+hi link scalaTypeOperator Keyword
+hi link scalaTypeAnnotationParameter Function
syn region scalaMultilineComment start="/\*" end="\*/" contains=scalaMultilineComment,scalaDocLinks,scalaParameterAnnotation,scalaCommentAnnotation,scalaCommentCodeBlock,@scalaHtml keepend
syn match scalaCommentAnnotation "@[_A-Za-z0-9$]\+" contained