diff options
-rw-r--r-- | compiler/coffee.vim | 4 | ||||
-rw-r--r-- | compiler/go.vim | 30 | ||||
-rw-r--r-- | ftplugin/clojure.vim | 5 | ||||
-rw-r--r-- | ftplugin/csv.vim | 10 | ||||
-rw-r--r-- | ftplugin/go.vim | 17 | ||||
-rw-r--r-- | ftplugin/markdown.vim | 1 | ||||
-rw-r--r-- | ftplugin/perl.vim | 1 | ||||
-rw-r--r-- | ftplugin/scala.vim | 4 | ||||
-rw-r--r-- | indent/clojure.vim | 6 | ||||
-rw-r--r-- | indent/less.vim | 39 | ||||
-rw-r--r-- | indent/perl.vim | 2 | ||||
-rw-r--r-- | syntax/markdown.vim | 1 | ||||
-rw-r--r-- | syntax/perl.vim | 4 | ||||
-rw-r--r-- | syntax/rust.vim | 4 | ||||
-rw-r--r-- | syntax/scala.vim | 56 |
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 |