mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 21:25:04 -07:00
158 lines
9.2 KiB
VimL
158 lines
9.2 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: Kotlin
|
||
|
" Maintainer: Alexander Udalov
|
||
|
" URL: https://github.com/udalov/kotlin-vim
|
||
|
" Last Change: 30 December 2022
|
||
|
|
||
|
if exists('b:current_syntax')
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
syn keyword ktStatement break continue return
|
||
|
syn keyword ktConditional if else when
|
||
|
syn keyword ktRepeat do for while
|
||
|
syn keyword ktOperator in is by
|
||
|
syn keyword ktKeyword get set out super this where
|
||
|
syn keyword ktException try catch finally throw
|
||
|
|
||
|
syn keyword ktInclude import package
|
||
|
|
||
|
" Generated stdlib class names {{{
|
||
|
" The following is generated by https://github.com/udalov/kotlin-vim/blob/master/extra/generate-stdlib-class-names.main.kts
|
||
|
syn keyword ktType AbstractCollection AbstractCoroutineContextElement AbstractCoroutineContextKey AbstractDoubleTimeSource AbstractIterator AbstractList AbstractLongTimeSource
|
||
|
syn keyword ktType AbstractMap AbstractMutableCollection AbstractMutableList AbstractMutableMap AbstractMutableSet AbstractSet AccessDeniedException Accessor Annotation
|
||
|
syn keyword ktType AnnotationRetention AnnotationTarget Any Appendable ArithmeticException Array ArrayDeque ArrayList AssertionError Boolean BooleanArray BooleanIterator
|
||
|
syn keyword ktType BuilderInference Byte ByteArray ByteIterator CName CallsInPlace CancellationException Char CharArray CharCategory CharDirectionality CharIterator CharProgression
|
||
|
syn keyword ktType CharRange CharSequence CharacterCodingException Charsets ClassCastException Cloneable ClosedFloatingPointRange ClosedRange Collection Comparable
|
||
|
syn keyword ktType ComparableTimeMark Comparator ConcurrentModificationException ConditionalEffect ContextFunctionTypeParams Continuation ContinuationInterceptor ContractBuilder
|
||
|
syn keyword ktType CopyActionContext CopyActionResult CoroutineContext DeepRecursiveFunction DeepRecursiveScope Delegates Deprecated DeprecatedSinceKotlin DeprecationLevel
|
||
|
syn keyword ktType Destructured Double DoubleArray DoubleIterator DslMarker Duration DurationUnit Effect Element EmptyCoroutineContext Entry Enum EnumEntries Error Exception
|
||
|
syn keyword ktType ExperimentalContracts ExperimentalJsExport ExperimentalMultiplatform ExperimentalObjCName ExperimentalObjCRefinement ExperimentalPathApi ExperimentalStdlibApi
|
||
|
syn keyword ktType ExperimentalSubclassOptIn ExperimentalTime ExperimentalTypeInference ExperimentalUnsignedTypes ExtensionFunctionType FileAlreadyExistsException
|
||
|
syn keyword ktType FileSystemException FileTreeWalk FileVisitorBuilder FileWalkDirection Float FloatArray FloatIterator FreezingIsDeprecated Function Function0 Function1 Function10
|
||
|
syn keyword ktType Function11 Function12 Function13 Function14 Function15 Function16 Function17 Function18 Function19 Function2 Function20 Function21 Function22 Function3 Function4
|
||
|
syn keyword ktType Function5 Function6 Function7 Function8 Function9 FunctionN Getter Grouping HashMap HashSet HiddenFromObjC HidesFromObjC Ignore IllegalArgumentException
|
||
|
syn keyword ktType IllegalStateException IndexOutOfBoundsException IndexedValue Int IntArray IntIterator IntProgression IntRange InvocationKind Iterable Iterator JsExport JsName
|
||
|
syn keyword ktType JvmDefault JvmDefaultWithCompatibility JvmDefaultWithoutCompatibility JvmField JvmInline JvmMultifileClass JvmName JvmOverloads JvmRecord JvmSerializableLambda
|
||
|
syn keyword ktType JvmStatic JvmSuppressWildcards JvmSynthetic JvmWildcard KAnnotatedElement KCallable KClass KClassifier KDeclarationContainer KFunction KMutableProperty
|
||
|
syn keyword ktType KMutableProperty0 KMutableProperty1 KMutableProperty2 KParameter KProperty KProperty0 KProperty1 KProperty2 KType KTypeParameter KTypeProjection KVariance
|
||
|
syn keyword ktType KVisibility Key Kind KotlinNullPointerException KotlinReflectionNotSupportedError KotlinVersion Lazy LazyThreadSafetyMode Level LinkedHashMap LinkedHashSet List
|
||
|
syn keyword ktType ListIterator Long LongArray LongIterator LongProgression LongRange Map MatchGroup MatchGroupCollection MatchNamedGroupCollection MatchResult Metadata Monotonic
|
||
|
syn keyword ktType MustBeDocumented MutableCollection MutableEntry MutableIterable MutableIterator MutableList MutableListIterator MutableMap MutableSet NoSuchElementException
|
||
|
syn keyword ktType NoSuchFileException NoWhenBranchMatchedException NotImplementedError Nothing NullPointerException Number NumberFormatException ObjCName ObservableProperty
|
||
|
syn keyword ktType OnErrorAction OnErrorResult OpenEndRange OptIn OptionalExpectation OverloadResolutionByLambdaReturnType Pair ParameterName PathWalkOption
|
||
|
syn keyword ktType PropertyDelegateProvider PublishedApi PurelyImplements Random RandomAccess ReadOnlyProperty ReadWriteProperty RefinesInSwift Regex RegexOption Repeatable
|
||
|
syn keyword ktType ReplaceWith RequiresOptIn RestrictsSuspension Result Retention Returns ReturnsNotNull RuntimeException Sequence SequenceScope Set Setter SharedImmutable Short
|
||
|
syn keyword ktType ShortArray ShortIterator ShouldRefineInSwift SimpleEffect SinceKotlin Strictfp String StringBuilder SubclassOptInRequired Suppress Synchronized Target
|
||
|
syn keyword ktType TestTimeSource ThreadLocal Throwable Throws TimeMark TimeSource TimedValue Transient Triple TypeCastException Typography UByte UByteArray UInt UIntArray
|
||
|
syn keyword ktType UIntProgression UIntRange ULong ULongArray ULongProgression ULongRange UShort UShortArray UninitializedPropertyAccessException Unit UnsafeVariance
|
||
|
syn keyword ktType UnsupportedOperationException ValueTimeMark Volatile WithComparableMarks
|
||
|
" }}}
|
||
|
|
||
|
syn keyword ktModifier annotation companion enum inner abstract final open override sealed vararg dynamic expect actual suspend
|
||
|
syn keyword ktStructure class object interface typealias fun val var constructor init
|
||
|
|
||
|
syn keyword ktReservedKeyword typeof
|
||
|
|
||
|
syn keyword ktBoolean true false
|
||
|
syn keyword ktConstant null
|
||
|
|
||
|
syn keyword ktModifier reified external inline noinline crossinline
|
||
|
|
||
|
syn match ktModifier "\v<data>\ze\@=.*<(class|object)>"
|
||
|
syn match ktModifier "\v<value>\ze\@=.*<class>"
|
||
|
syn match ktModifier "\v<(tailrec|operator|infix)>\ze\@=.*<fun>"
|
||
|
syn match ktModifier "\v<const>\ze\@=.*<val>"
|
||
|
syn match ktModifier "\v<lateinit>\ze\@=.*<var>"
|
||
|
syn match ktModifier "\v<(internal|private|protected|public)>\ze\@=.*<(class|object|interface|typealias|fun|val|var|constructor|get|set)>"
|
||
|
|
||
|
syn match ktOperator "\v\?:|::|\<\=? | \>\=?|[!=]\=\=?|<as>\??|[-*+/%]\=?|[!&|]"
|
||
|
|
||
|
syn keyword ktTodo TODO FIXME XXX contained
|
||
|
syn match ktShebang "\v^#!.*$"
|
||
|
syn match ktLineComment "\v//.*$" contains=ktTodo,@Spell
|
||
|
syn region ktComment matchgroup=ktCommentMatchGroup start="/\*" end="\*/" contains=ktComment,ktTodo,@Spell
|
||
|
|
||
|
syn region ktDocComment start="/\*\*" end="\*/" contains=ktDocTag,ktTodo,@Spell
|
||
|
syn match ktDocTag "\v\@(author|constructor|receiver|return|since|suppress)>" contained
|
||
|
syn match ktDocTag "\v\@(exception|param|property|throws|see|sample)>\s*\S+" contains=ktDocTagParam contained
|
||
|
syn match ktDocTagParam "\v(\s|\[)\S+" contained
|
||
|
syn match ktComment "/\*\*/"
|
||
|
|
||
|
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,@Spell
|
||
|
syn region ktString start='"""' end='""""*' contains=ktSimpleInterpolation,ktComplexInterpolation,@Spell
|
||
|
syn match ktCharacter "\v'[^']*'" contains=ktSpecialChar,ktSpecialCharError
|
||
|
syn match ktCharacter "\v'\\''" contains=ktSpecialChar
|
||
|
syn match ktCharacter "\v'[^\\]'"
|
||
|
|
||
|
syn match ktAnnotation "\v(\w)@<!\@[[:alnum:]_.]*(:[[:alnum:]_.]*)?"
|
||
|
syn match ktLabel "\v\w+\@"
|
||
|
syn match ktLabel "\v(\w)@<=\@\w+"
|
||
|
|
||
|
syn match ktSimpleInterpolation "\v\$\h\w*" contained
|
||
|
syn region ktComplexInterpolation matchgroup=ktComplexInterpolationBrace start="\v\$\{" end="\v\}" contains=ALLBUT,ktSimpleInterpolation,ktTodo,ktSpecialCharError,ktSpecialChar,ktDocTag,ktDocTagParam
|
||
|
|
||
|
syn match ktNumber "\v<\d+[_[:digit:]]*(uL?|UL?|[LFf])?"
|
||
|
syn match ktNumber "\v<0[Xx]\x+[_[:xdigit:]]*(uL?|UL?|L)?"
|
||
|
syn match ktNumber "\v<0[Bb][01]+[_01]*(uL?|UL?|L)?"
|
||
|
syn match ktFloat "\v<\d*(\d[eE][-+]?\d+|\.\d+([eE][-+]?\d+)?)[Ff]?"
|
||
|
|
||
|
syn match ktEscapedName "\v`.*`"
|
||
|
|
||
|
syn match ktExclExcl "!!"
|
||
|
syn match ktArrow "->"
|
||
|
|
||
|
syn region ktFold start="{" end="}" transparent fold
|
||
|
|
||
|
exec "syntax sync ccomment ktComment minlines=10"
|
||
|
|
||
|
hi def link ktStatement Statement
|
||
|
hi def link ktConditional Conditional
|
||
|
hi def link ktRepeat Repeat
|
||
|
hi def link ktOperator Operator
|
||
|
hi def link ktKeyword Keyword
|
||
|
hi def link ktException Exception
|
||
|
hi def link ktReservedKeyword Error
|
||
|
|
||
|
hi def link ktInclude Include
|
||
|
|
||
|
hi def link ktType Type
|
||
|
hi def link ktModifier StorageClass
|
||
|
hi def link ktStructure Structure
|
||
|
hi def link ktTypedef Typedef
|
||
|
|
||
|
hi def link ktBoolean Boolean
|
||
|
hi def link ktConstant Constant
|
||
|
|
||
|
hi def link ktTodo Todo
|
||
|
hi def link ktShebang Comment
|
||
|
hi def link ktLineComment Comment
|
||
|
hi def link ktComment Comment
|
||
|
hi def link ktCommentMatchGroup Comment
|
||
|
hi def link ktDocComment Comment
|
||
|
hi def link ktDocTag Special
|
||
|
hi def link ktDocTagParam Identifier
|
||
|
|
||
|
hi def link ktSpecialChar SpecialChar
|
||
|
hi def link ktSpecialCharError Error
|
||
|
hi def link ktString String
|
||
|
hi def link ktCharacter Character
|
||
|
|
||
|
hi def link ktAnnotation Identifier
|
||
|
hi def link ktLabel Identifier
|
||
|
|
||
|
hi def link ktSimpleInterpolation Identifier
|
||
|
hi def link ktComplexInterpolationBrace Identifier
|
||
|
|
||
|
hi def link ktNumber Number
|
||
|
hi def link ktFloat Float
|
||
|
|
||
|
hi def link ktExclExcl Special
|
||
|
hi def link ktArrow Structure
|
||
|
|
||
|
let b:current_syntax = 'kotlin'
|
||
|
|
||
|
" vim:foldmethod=marker
|