···11-" Vim indent file
22-" Language : Scala (http://scala-lang.org/)
33-" Maintainer : Stefan Matthias Aust
44-" Last Change: 2006 Apr 13
55-66-if exists("b:did_indent")
77- finish
88-endif
99-let b:did_indent = 1
1010-1111-setlocal indentexpr=GetScalaIndent()
1212-1313-setlocal indentkeys=0{,0},0),!^F,<>>,<CR>
1414-1515-setlocal autoindent shiftwidth=2 tabstop=2 softtabstop=2 expandtab
1616-1717-if exists("*GetScalaIndent")
1818- finish
1919-endif
2020-2121-function! CountParens(line)
2222- let line = substitute(a:line, '"\(.\|\\"\)*"', '', 'g')
2323- let open = substitute(line, '[^(]', '', 'g')
2424- let close = substitute(line, '[^)]', '', 'g')
2525- return strlen(open) - strlen(close)
2626-endfunction
2727-2828-function! GetScalaIndent()
2929- " Find a non-blank line above the current line.
3030- let lnum = prevnonblank(v:lnum - 1)
3131-3232- " Hit the start of the file, use zero indent.
3333- if lnum == 0
3434- return 0
3535- endif
3636-3737- let ind = indent(lnum)
3838- let prevline = getline(lnum)
3939-4040- "Indent html literals
4141- if prevline !~ '/>\s*$' && prevline =~ '^\s*<[a-zA-Z][^>]*>\s*$'
4242- return ind + &shiftwidth
4343- endif
4444-4545- " Add a 'shiftwidth' after lines that start a block
4646- " If if, for or while end with ), this is a one-line block
4747- " If val, var, def end with =, this is a one-line block
4848- if prevline =~ '^\s*\<\(\(else\s\+\)\?if\|for\|while\)\>.*[)]\s*$'
4949- \ || prevline =~ '^\s*\<\(\(va[lr]\|def\)\>.*[=]\s*$'
5050- \ || prevline =~ '^\s*\<else\>\s*$'
5151- \ || prevline =~ '{\s*$'
5252- let ind = ind + &shiftwidth
5353- endif
5454-5555- " If parenthesis are unbalanced, indent or dedent
5656- let c = CountParens(prevline)
5757- echo c
5858- if c > 0
5959- let ind = ind + &shiftwidth
6060- elseif c < 0
6161- let ind = ind - &shiftwidth
6262- endif
6363-6464- " Dedent after if, for, while and val, var, def without block
6565- let pprevline = getline(prevnonblank(lnum - 1))
6666- if pprevline =~ '^\s*\<\(\(else\s\+\)\?if\|for\|while\)\>.*[)]\s*$'
6767- \ || pprevline =~ '^\s*\<\(\va[lr]\|def\)\>.*[=]\s*$'
6868- \ || pprevline =~ '^\s*\<else\>\s*$'
6969- let ind = ind - &shiftwidth
7070- endif
7171-7272- " Align 'for' clauses nicely
7373- if prevline =~ '^\s*\<for\> (.*;\s*$'
7474- let ind = ind - &shiftwidth + 5
7575- endif
7676-7777- " Subtract a 'shiftwidth' on '}' or html
7878- let thisline = getline(v:lnum)
7979- if thisline =~ '^\s*[})]'
8080- \ || thisline =~ '^\s*</[a-zA-Z][^>]*>'
8181- let ind = ind - &shiftwidth
8282- endif
8383-8484- return ind
8585-endfunction
-4
nvim/init.vim
···132132" Choose window
133133nmap wc <Plug>(choosewin)
134134135135-" Ctrl-F12 to generate ctags for current project
136136-noremap <silent> <F12> :!ctags -R .<CR>
137137-set tags=.tags
138138-139135" Yanks
140136noremap <Leader>p "+p
141137noremap <Leader>P "+P
···11-snippet header
22- " File: ${1:`expand('%:t')`}
33- " Author: ${2:`g:snips_author`}
44- " Description: ${3}
55- ${4:" Last Modified: `strftime("%B %d, %Y")`}
66-snippet guard
77- if exists('${1:did_`Filename()`}') || &cp${2: || version < 700}
88- finish
99- endif
1010- let $1 = 1${3}
1111-snippet f
1212- fun ${1:function_name}(${2})
1313- ${3:" code}
1414- endf
1515-snippet for
1616- for ${1:needle} in ${2:haystack}
1717- ${3:" code}
1818- endfor
1919-snippet wh
2020- while ${1:condition}
2121- ${2:" code}
2222- endw
2323-snippet if
2424- if ${1:condition}
2525- ${2:" code}
2626- endif
2727-snippet ife
2828- if ${1:condition}
2929- ${2}
3030- else
3131- ${3}
3232- endif
-112
nvim/syntax/ktap.vim
···11-" Vim syntax file
22-" Language: ktap
33-" Maintainer: Jovi Zhangwei <jovi.zhangwei@gmail.com>
44-" First Author: Jovi Zhangwei <jovi.zhangwei@gmail.com>
55-" Last Change: 2013 Dec 19
66-77-" For version 5.x: Clear all syntax items
88-" For version 6.x: Quit when a syntax file was already loaded
99-if version < 600
1010- syn clear
1111-elseif exists("b:current_syntax")
1212- finish
1313-endif
1414-1515-setlocal iskeyword=@,48-57,_,$
1616-1717-syn keyword ktapStatement break continue return
1818-syn keyword ktapRepeat while for in
1919-syn keyword ktapConditional if else elseif
2020-syn keyword ktapDeclaration trace trace_end
2121-syn keyword ktapIdentifier var
2222-syn keyword ktapFunction function
2323-syn match ktapBraces "[{}\[\]]"
2424-syn match ktapParens "[()]"
2525-syn keyword ktapReserved argstr probename arg0 arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9
2626-syn keyword ktapReserved cpu pid tid uid execname
2727-2828-2929-syn region ktapTraceDec start="\<trace\>"lc=5 end="{"me=s-1 contains=ktapString,ktapNumber
3030-syn region ktapTraceDec start="\<trace_end\>"lc=9 end="{"me=s-1 contains=ktapString,ktapNumber
3131-syn match ktapTrace contained "\<\w\+\>" containedin=ktapTraceDec
3232-3333-syn region ktapFuncDec start="\<function\>"lc=8 end=":\|("me=s-1 contains=ktapString,ktapNumber
3434-syn match ktapFuncCall contained "\<\w\+\ze\(\s\|\n\)*("
3535-syn match ktapFunc contained "\<\w\+\>" containedin=ktapFuncDec,ktapFuncCall
3636-3737-syn match ktapStat contained "@\<\w\+\ze\(\s\|\n\)*("
3838-3939-" decimal number
4040-syn match ktapNumber "\<\d\+\>"
4141-" octal number
4242-syn match ktapNumber "\<0\o\+\>" contains=ktapOctalZero
4343-" Flag the first zero of an octal number as something special
4444-syn match ktapOctalZero contained "\<0"
4545-" flag an octal number with wrong digits
4646-syn match ktapOctalError "\<0\o*[89]\d*"
4747-" hex number
4848-syn match ktapNumber "\<0x\x\+\>"
4949-" numeric arguments
5050-syn match ktapNumber "\<\$\d\+\>"
5151-syn match ktapNumber "\<\$#"
5252-5353-syn region ktapString oneline start=+"+ skip=+\\"+ end=+"+
5454-" string arguments
5555-syn match ktapString "@\d\+\>"
5656-syn match ktapString "@#"
5757-syn region ktapString2 matchgroup=ktapString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell
5858-5959-" syn keyword ktapTodo contained TODO FIXME XXX
6060-6161-syn match ktapComment "#.*"
6262-6363-" treat ^#! as special
6464-syn match ktapSharpBang "^#!.*"
6565-6666-6767-syn keyword ktapFunc printf print print_hist stack
6868-syn keyword ktapFunc gettimeofday_us
6969-syn keyword ktapFunc pairs
7070-7171-syn match ktapFunc /\<ffi\.cdef\>/
7272-syn match ktapFunc /\<ffi\.new\>/
7373-syn match ktapFunc /\<ffi\.free\>/
7474-syn match ktapFunc /\<ffi\.C\>/
7575-7676-7777-7878-" Define the default highlighting.
7979-" For version 5.7 and earlier: only when not done already
8080-" For version 5.8 and later: only when an item doesn't have highlighting yet
8181-if version >= 508 || !exists("did_lua_syntax_inits")
8282- if version < 508
8383- let did_lua_syntax_inits = 1
8484- command -nargs=+ HiLink hi link <args>
8585- else
8686- command -nargs=+ HiLink hi def link <args>
8787- endif
8888-8989- HiLink ktapNumber Number
9090- HiLink ktapOctalZero PreProc " c.vim does it this way...
9191- HiLink ktapOctalError Error
9292- HiLink ktapString String
9393- HiLink ktapString2 String
9494- HiLink ktapTodo Todo
9595- HiLink ktapComment Comment
9696- HiLink ktapSharpBang PreProc
9797- HiLink ktapStatement Statement
9898- HiLink ktapConditional Conditional
9999- HiLink ktapRepeat Repeat
100100- HiLink ktapTrace Function
101101- HiLink ktapFunc Function
102102- HiLink ktapStat Function
103103- HiLink ktapFunction Function
104104- HiLink ktapBraces Function
105105- HiLink ktapDeclaration Typedef
106106- HiLink ktapIdentifier Identifier
107107- HiLink ktapReserved Keyword
108108-109109- delcommand HiLink
110110-endif
111111-112112-let b:current_syntax = "ktap"
-151
nvim/syntax/scala.vim
···11-" Vim syntax file
22-" Language : Scala (http://scala-lang.org/)
33-" Maintainers: Stefan Matthias Aust, Julien Wetterwald
44-" Last Change: 2007 June 13
55-66-if version < 600
77- syntax clear
88-elseif exists("b:current_syntax")
99- finish
1010-endif
1111-1212-syn case match
1313-syn sync minlines=50
1414-1515-" most Scala keywords
1616-syn keyword scalaKeyword abstract case catch do else extends final finally for forSome if implicit lazy match new null override private protected requires return sealed super this throw try type while with yield
1717-syn match scalaKeyword "=>"
1818-syn match scalaKeyword "<-"
1919-syn match scalaKeyword "\<_\>"
2020-2121-syn match scalaOperator ":\{2,\}" "this is not a type
2222-2323-" package and import statements
2424-syn keyword scalaPackage package nextgroup=scalaFqn skipwhite
2525-syn keyword scalaImport import nextgroup=scalaFqn skipwhite
2626-syn match scalaFqn "\<[._$a-zA-Z0-9,]*" contained nextgroup=scalaFqnSet
2727-syn region scalaFqnSet start="{" end="}" contained
2828-2929-" boolean literals
3030-syn keyword scalaBoolean true false
3131-3232-" definitions
3333-syn keyword scalaDef def nextgroup=scalaDefName skipwhite
3434-syn keyword scalaVal val nextgroup=scalaValName skipwhite
3535-syn keyword scalaVar var nextgroup=scalaVarName skipwhite
3636-syn keyword scalaClass class nextgroup=scalaClassName skipwhite
3737-syn keyword scalaObject object nextgroup=scalaClassName skipwhite
3838-syn keyword scalaTrait trait nextgroup=scalaClassName skipwhite
3939-syn match scalaDefName "[^ =:;([]\+" contained nextgroup=scalaDefSpecializer skipwhite
4040-syn match scalaValName "[^ =:;([]\+" contained
4141-syn match scalaVarName "[^ =:;([]\+" contained
4242-syn match scalaClassName "[^ =:;(\[]\+" contained nextgroup=scalaClassSpecializer skipwhite
4343-syn region scalaDefSpecializer start="\[" end="\]" contained contains=scalaDefSpecializer
4444-syn region scalaClassSpecializer start="\[" end="\]" contained contains=scalaClassSpecializer
4545-4646-" type constructor (actually anything with an uppercase letter)
4747-syn match scalaConstructor "\<[A-Z][_$a-zA-Z0-9]*\>" nextgroup=scalaConstructorSpecializer
4848-syn region scalaConstructorSpecializer start="\[" end="\]" contained contains=scalaConstructorSpecializer
4949-5050-" method call
5151-syn match scalaRoot "\<[a-zA-Z][_$a-zA-Z0-9]*\."me=e-1
5252-syn match scalaMethodCall "\.[a-z][_$a-zA-Z0-9]*"ms=s+1
5353-5454-" type declarations in val/var/def
5555-syn match scalaType ":\s*\(=>\s*\)\?[._$a-zA-Z0-9]\+\(\[[^]]*\]\+\)\?\(\s*\(<:\|>:\|#\|=>\)\s*[._$a-zA-Z0-9]\+\(\[[^]]*\]\+\)*\)*"ms=s+1
5656-5757-" comments
5858-syn match scalaTodo "[tT][oO][dD][oO]" contained
5959-syn match scalaLineComment "//.*" contains=scalaTodo
6060-syn region scalaComment start="/\*" end="\*/" contains=scalaTodo
6161-syn case ignore
6262-syn include @scalaHtml syntax/html.vim
6363-unlet b:current_syntax
6464-syn case match
6565-syn region scalaDocComment start="/\*\*" end="\*/" contains=scalaDocTags,scalaTodo,@scalaHtml keepend
6666-syn region scalaDocTags start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}" contained
6767-syn match scalaDocTags "@[a-z]\+" contained
6868-6969-syn match scalaEmptyString "\"\""
7070-7171-" multi-line string literals
7272-syn region scalaMultiLineString start="\"\"\"" end="\"\"\"" contains=scalaUnicode
7373-syn match scalaUnicode "\\u[0-9a-fA-F]\{4}" contained
7474-7575-" string literals with escapes
7676-syn region scalaString start="\"[^"]" skip="\\\"" end="\"" contains=scalaStringEscape " TODO end \n or not?
7777-syn match scalaStringEscape "\\u[0-9a-fA-F]\{4}" contained
7878-syn match scalaStringEscape "\\[nrfvb\\\"]" contained
7979-8080-" symbol and character literals
8181-syn match scalaSymbol "'[_a-zA-Z0-9][_a-zA-Z0-9]*\>"
8282-syn match scalaChar "'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'"
8383-8484-" number literals
8585-syn match scalaNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
8686-syn match scalaNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
8787-syn match scalaNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
8888-syn match scalaNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
8989-9090-" xml literals
9191-syn match scalaXmlTag "<[a-zA-Z]\_[^>]*/>" contains=scalaXmlQuote,scalaXmlEscape,scalaXmlString
9292-syn region scalaXmlString start="\"" end="\"" contained
9393-syn match scalaXmlStart "<[a-zA-Z]\_[^>]*>" contained contains=scalaXmlQuote,scalaXmlEscape,scalaXmlString
9494-syn region scalaXml start="<\([a-zA-Z]\_[^>]*\_[^/]\|[a-zA-Z]\)>" matchgroup=scalaXmlStart end="</\_[^>]\+>" contains=scalaXmlEscape,scalaXmlQuote,scalaXml,scalaXmlStart,scalaXmlComment
9595-syn region scalaXmlEscape matchgroup=scalaXmlEscapeSpecial start="{" matchgroup=scalaXmlEscapeSpecial end="}" contained contains=TOP
9696-syn match scalaXmlQuote "&[^;]\+;" contained
9797-syn match scalaXmlComment "<!--\_[^>]*-->" contained
9898-9999-syn sync fromstart
100100-101101-" map Scala groups to standard groups
102102-hi link scalaKeyword Keyword
103103-hi link scalaPackage Include
104104-hi link scalaImport Include
105105-hi link scalaBoolean Boolean
106106-hi link scalaOperator Normal
107107-hi link scalaNumber Number
108108-hi link scalaEmptyString String
109109-hi link scalaString String
110110-hi link scalaChar String
111111-hi link scalaMultiLineString String
112112-hi link scalaStringEscape Special
113113-hi link scalaSymbol Special
114114-hi link scalaUnicode Special
115115-hi link scalaComment Comment
116116-hi link scalaLineComment Comment
117117-hi link scalaDocComment Comment
118118-hi link scalaDocTags Special
119119-hi link scalaTodo Todo
120120-hi link scalaType Type
121121-hi link scalaTypeSpecializer scalaType
122122-hi link scalaXml String
123123-hi link scalaXmlTag Include
124124-hi link scalaXmlString String
125125-hi link scalaXmlStart Include
126126-hi link scalaXmlEscape Normal
127127-hi link scalaXmlEscapeSpecial Special
128128-hi link scalaXmlQuote Special
129129-hi link scalaXmlComment Comment
130130-hi link scalaDef Keyword
131131-hi link scalaVar Keyword
132132-hi link scalaVal Keyword
133133-hi link scalaClass Keyword
134134-hi link scalaObject Keyword
135135-hi link scalaTrait Keyword
136136-hi link scalaDefName Function
137137-hi link scalaDefSpecializer Function
138138-hi link scalaClassName Special
139139-hi link scalaClassSpecializer Special
140140-hi link scalaConstructor Special
141141-hi link scalaConstructorSpecializer scalaConstructor
142142-143143-let b:current_syntax = "scala"
144144-145145-" you might like to put these lines in your .vimrc
146146-"
147147-" customize colors a little bit (should be a different file)
148148-" hi scalaNew gui=underline
149149-" hi scalaMethodCall gui=italic
150150-" hi scalaValName gui=underline
151151-" hi scalaVarName gui=underline