summaryrefslogtreecommitdiffstats
path: root/syntax/kotlin.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2015-10-10 17:15:29 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2015-10-10 17:15:29 +0200
commita6b0efd5301406adb44dfb12bfc73cf40f28b55b (patch)
treeff6ef884650dd709860cbcce29b44ec2cd1ffd9a /syntax/kotlin.vim
parent0de043adbc144510635702dadedc946e3c69f64e (diff)
downloadvim-polyglot-a6b0efd5301406adb44dfb12bfc73cf40f28b55b.tar.gz
vim-polyglot-a6b0efd5301406adb44dfb12bfc73cf40f28b55b.zip
Add glsl and kotlin languages, fixes #72, #71
Diffstat (limited to '')
-rw-r--r--syntax/kotlin.vim103
1 files changed, 103 insertions, 0 deletions
diff --git a/syntax/kotlin.vim b/syntax/kotlin.vim
new file mode 100644
index 00000000..e3d3f079
--- /dev/null
+++ b/syntax/kotlin.vim
@@ -0,0 +1,103 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kotlin') == -1
+
+" Vim syntax file
+" Language: Kotlin
+" Maintainer: Alexander Udalov
+" Latest Revision: 1 October 2015
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let b:current_syntax = "kotlin"
+
+syn keyword ktStatement break continue return
+syn keyword ktConditional if else when
+syn keyword ktRepeat do for while
+syn keyword ktOperator as in is by
+syn keyword ktKeyword get set out super this This where
+syn keyword ktException try catch finally throw
+
+syn keyword ktInclude import package
+
+syn keyword ktType Any Boolean Byte Char Double Float Int Long Nothing Short Unit
+syn keyword ktModifier annotation companion enum inner internal private protected public abstract final open override sealed vararg dynamic
+syn keyword ktStructure class object interface fun val var constructor init
+syn keyword ktTypedef typealias
+
+syn keyword ktBoolean true false
+syn keyword ktConstant null
+
+syn keyword ktModifier data tailrec lateinit reified external inline noinline crossinline const operator infix
+
+syn keyword ktTodo TODO FIXME XXX contained
+syn match ktLineComment "//.*$" contains=ktTodo,@Spell
+syn region ktComment matchgroup=ktCommentMatchGroup start="/\*" end="\*/" contains=ktComment,ktTodo,@Spell
+
+syn match ktSpecialCharError "\v\\." contained
+syn match ktSpecialChar "\v\\([tbnr'"$\\]|u\x{4})" contained
+syn region ktString start='"' skip='\\"' end='"' contains=ktSimpleInterpolation,ktComplexInterpolation,ktSpecialChar,ktSpecialCharError
+syn region ktString start='"""' end='"""' contains=ktSimpleInterpolation,ktComplexInterpolation,ktSpecialChar,ktSpecialCharError
+syn match ktCharacter "\v'[^']*'" contains=ktSpecialChar,ktSpecialCharError
+syn match ktCharacter "\v'\\''" contains=ktSpecialChar
+syn match ktCharacter "\v'[^\\]'"
+
+" TODO: highlight label in 'this@Foo'
+syn match ktAnnotation "\v(\w)@<!\@[[:alnum:]_.]*(:[[:alnum:]_.]*)?"
+syn match ktLabel "\v\w+\@"
+
+syn match ktSimpleInterpolation "\v\$\h\w*" contained
+syn region ktComplexInterpolation matchgroup=ktComplexInterpolationBrace start="\v\$\{" end="\v\}" contains=ALLBUT,ktSimpleInterpolation
+
+syn match ktNumber "\v<\d+[LFf]?"
+syn match ktNumber "\v<0[Xx]\x+L?"
+syn match ktNumber "\v<0[Bb]\d+L?"
+syn match ktFloat "\v<\d*(\d[eE][-+]?\d+|\.\d+([eE][-+]?\d+)?)[Ff]?"
+
+syn match ktEscapedName "\v`.*`"
+
+syn match ktExclExcl "!!"
+syn match ktArrow "->"
+
+
+
+hi link ktStatement Statement
+hi link ktConditional Conditional
+hi link ktRepeat Repeat
+hi link ktOperator Operator
+hi link ktKeyword Keyword
+hi link ktException Exception
+
+hi link ktInclude Include
+
+hi link ktType Type
+hi link ktModifier StorageClass
+hi link ktStructure Structure
+hi link ktTypedef Typedef
+
+hi link ktBoolean Boolean
+hi link ktConstant Constant
+
+hi link ktTodo Todo
+hi link ktLineComment Comment
+hi link ktComment Comment
+hi link ktCommentMatchGroup Comment
+
+hi link ktSpecialChar SpecialChar
+hi link ktSpecialCharError Error
+hi link ktString String
+hi link ktCharacter Character
+
+hi link ktAnnotation Identifier
+hi link ktLabel Identifier
+
+hi link ktSimpleInterpolation Identifier
+hi link ktComplexInterpolationBrace Identifier
+
+hi link ktNumber Number
+hi link ktFloat Float
+
+hi link ktExclExcl Special
+hi link ktArrow Structure
+
+endif