neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

kotlin.vim (9434B)


      1 " Vim syntax file
      2 " Language:     Kotlin
      3 " Maintainer:   Alexander Udalov
      4 " URL:          https://github.com/udalov/kotlin-vim
      5 " Last Change:  30 December 2022
      6 
      7 if exists('b:current_syntax')
      8    finish
      9 endif
     10 
     11 syn keyword ktStatement break continue return
     12 syn keyword ktConditional if else when
     13 syn keyword ktRepeat do for while
     14 syn keyword ktOperator in is by
     15 syn keyword ktKeyword get set out super this where
     16 syn keyword ktException try catch finally throw
     17 
     18 syn keyword ktInclude import package
     19 
     20 " Generated stdlib class names {{{
     21 " The following is generated by https://github.com/udalov/kotlin-vim/blob/master/extra/generate-stdlib-class-names.main.kts
     22 syn keyword ktType AbstractCollection AbstractCoroutineContextElement AbstractCoroutineContextKey AbstractDoubleTimeSource AbstractIterator AbstractList AbstractLongTimeSource
     23 syn keyword ktType AbstractMap AbstractMutableCollection AbstractMutableList AbstractMutableMap AbstractMutableSet AbstractSet AccessDeniedException Accessor Annotation
     24 syn keyword ktType AnnotationRetention AnnotationTarget Any Appendable ArithmeticException Array ArrayDeque ArrayList AssertionError Boolean BooleanArray BooleanIterator
     25 syn keyword ktType BuilderInference Byte ByteArray ByteIterator CName CallsInPlace CancellationException Char CharArray CharCategory CharDirectionality CharIterator CharProgression
     26 syn keyword ktType CharRange CharSequence CharacterCodingException Charsets ClassCastException Cloneable ClosedFloatingPointRange ClosedRange Collection Comparable
     27 syn keyword ktType ComparableTimeMark Comparator ConcurrentModificationException ConditionalEffect ContextFunctionTypeParams Continuation ContinuationInterceptor ContractBuilder
     28 syn keyword ktType CopyActionContext CopyActionResult CoroutineContext DeepRecursiveFunction DeepRecursiveScope Delegates Deprecated DeprecatedSinceKotlin DeprecationLevel
     29 syn keyword ktType Destructured Double DoubleArray DoubleIterator DslMarker Duration DurationUnit Effect Element EmptyCoroutineContext Entry Enum EnumEntries Error Exception
     30 syn keyword ktType ExperimentalContracts ExperimentalJsExport ExperimentalMultiplatform ExperimentalObjCName ExperimentalObjCRefinement ExperimentalPathApi ExperimentalStdlibApi
     31 syn keyword ktType ExperimentalSubclassOptIn ExperimentalTime ExperimentalTypeInference ExperimentalUnsignedTypes ExtensionFunctionType FileAlreadyExistsException
     32 syn keyword ktType FileSystemException FileTreeWalk FileVisitorBuilder FileWalkDirection Float FloatArray FloatIterator FreezingIsDeprecated Function Function0 Function1 Function10
     33 syn keyword ktType Function11 Function12 Function13 Function14 Function15 Function16 Function17 Function18 Function19 Function2 Function20 Function21 Function22 Function3 Function4
     34 syn keyword ktType Function5 Function6 Function7 Function8 Function9 FunctionN Getter Grouping HashMap HashSet HiddenFromObjC HidesFromObjC Ignore IllegalArgumentException
     35 syn keyword ktType IllegalStateException IndexOutOfBoundsException IndexedValue Int IntArray IntIterator IntProgression IntRange InvocationKind Iterable Iterator JsExport JsName
     36 syn keyword ktType JvmDefault JvmDefaultWithCompatibility JvmDefaultWithoutCompatibility JvmField JvmInline JvmMultifileClass JvmName JvmOverloads JvmRecord JvmSerializableLambda
     37 syn keyword ktType JvmStatic JvmSuppressWildcards JvmSynthetic JvmWildcard KAnnotatedElement KCallable KClass KClassifier KDeclarationContainer KFunction KMutableProperty
     38 syn keyword ktType KMutableProperty0 KMutableProperty1 KMutableProperty2 KParameter KProperty KProperty0 KProperty1 KProperty2 KType KTypeParameter KTypeProjection KVariance
     39 syn keyword ktType KVisibility Key Kind KotlinNullPointerException KotlinReflectionNotSupportedError KotlinVersion Lazy LazyThreadSafetyMode Level LinkedHashMap LinkedHashSet List
     40 syn keyword ktType ListIterator Long LongArray LongIterator LongProgression LongRange Map MatchGroup MatchGroupCollection MatchNamedGroupCollection MatchResult Metadata Monotonic
     41 syn keyword ktType MustBeDocumented MutableCollection MutableEntry MutableIterable MutableIterator MutableList MutableListIterator MutableMap MutableSet NoSuchElementException
     42 syn keyword ktType NoSuchFileException NoWhenBranchMatchedException NotImplementedError Nothing NullPointerException Number NumberFormatException ObjCName ObservableProperty
     43 syn keyword ktType OnErrorAction OnErrorResult OpenEndRange OptIn OptionalExpectation OverloadResolutionByLambdaReturnType Pair ParameterName PathWalkOption
     44 syn keyword ktType PropertyDelegateProvider PublishedApi PurelyImplements Random RandomAccess ReadOnlyProperty ReadWriteProperty RefinesInSwift Regex RegexOption Repeatable
     45 syn keyword ktType ReplaceWith RequiresOptIn RestrictsSuspension Result Retention Returns ReturnsNotNull RuntimeException Sequence SequenceScope Set Setter SharedImmutable Short
     46 syn keyword ktType ShortArray ShortIterator ShouldRefineInSwift SimpleEffect SinceKotlin Strictfp String StringBuilder SubclassOptInRequired Suppress Synchronized Target
     47 syn keyword ktType TestTimeSource ThreadLocal Throwable Throws TimeMark TimeSource TimedValue Transient Triple TypeCastException Typography UByte UByteArray UInt UIntArray
     48 syn keyword ktType UIntProgression UIntRange ULong ULongArray ULongProgression ULongRange UShort UShortArray UninitializedPropertyAccessException Unit UnsafeVariance
     49 syn keyword ktType UnsupportedOperationException ValueTimeMark Volatile WithComparableMarks
     50 " }}}
     51 
     52 syn keyword ktModifier annotation companion enum inner abstract final open override sealed vararg dynamic expect actual suspend
     53 syn keyword ktStructure class object interface typealias fun val var constructor init
     54 
     55 syn keyword ktReservedKeyword typeof
     56 
     57 syn keyword ktBoolean true false
     58 syn keyword ktConstant null
     59 
     60 syn keyword ktModifier reified external inline noinline crossinline
     61 
     62 syn match ktModifier "\v<data>\ze\@=.*<(class|object)>"
     63 syn match ktModifier "\v<value>\ze\@=.*<class>"
     64 syn match ktModifier "\v<(tailrec|operator|infix)>\ze\@=.*<fun>"
     65 syn match ktModifier "\v<const>\ze\@=.*<val>"
     66 syn match ktModifier "\v<lateinit>\ze\@=.*<var>"
     67 syn match ktModifier "\v<(internal|private|protected|public)>\ze\@=.*<(class|object|interface|typealias|fun|val|var|constructor|get|set)>"
     68 
     69 syn match ktOperator "\v\?:|::|\<\=? | \>\=?|[!=]\=\=?|<as>\??|[-*+/%]\=?|[!&|]"
     70 
     71 syn keyword ktTodo TODO FIXME XXX contained
     72 syn match ktShebang "\v^#!.*$"
     73 syn match ktLineComment "\v//.*$" contains=ktTodo,@Spell
     74 syn region ktComment matchgroup=ktCommentMatchGroup start="/\*" end="\*/" contains=ktComment,ktTodo,@Spell
     75 
     76 syn region ktDocComment start="/\*\*" end="\*/" contains=ktDocTag,ktTodo,@Spell
     77 syn match ktDocTag "\v\@(author|constructor|receiver|return|since|suppress)>" contained
     78 syn match ktDocTag "\v\@(exception|param|property|throws|see|sample)>\s*\S+" contains=ktDocTagParam contained
     79 syn match ktDocTagParam "\v(\s|\[)\S+" contained
     80 syn match ktComment "/\*\*/"
     81 
     82 syn match ktSpecialCharError "\v\\." contained
     83 syn match ktSpecialChar "\v\\([tbnr'"$\\]|u\x{4})" contained
     84 syn region ktString start='"' skip='\\"' end='"' contains=ktSimpleInterpolation,ktComplexInterpolation,ktSpecialChar,ktSpecialCharError,@Spell
     85 syn region ktString start='"""' end='""""*' contains=ktSimpleInterpolation,ktComplexInterpolation,@Spell
     86 syn match ktCharacter "\v'[^']*'" contains=ktSpecialChar,ktSpecialCharError
     87 syn match ktCharacter "\v'\\''" contains=ktSpecialChar
     88 syn match ktCharacter "\v'[^\\]'"
     89 
     90 syn match ktAnnotation "\v(\w)@<!\@[[:alnum:]_.]*(:[[:alnum:]_.]*)?"
     91 syn match ktLabel "\v\w+\@"
     92 syn match ktLabel "\v(\w)@<=\@\w+"
     93 
     94 syn match ktSimpleInterpolation "\v\$\h\w*" contained
     95 syn region ktComplexInterpolation matchgroup=ktComplexInterpolationBrace start="\v\$\{" end="\v\}" contains=ALLBUT,ktSimpleInterpolation,ktTodo,ktSpecialCharError,ktSpecialChar,ktDocTag,ktDocTagParam
     96 
     97 syn match ktNumber "\v<\d+[_[:digit:]]*(uL?|UL?|[LFf])?"
     98 syn match ktNumber "\v<0[Xx]\x+[_[:xdigit:]]*(uL?|UL?|L)?"
     99 syn match ktNumber "\v<0[Bb][01]+[_01]*(uL?|UL?|L)?"
    100 syn match ktFloat "\v<\d*(\d[eE][-+]?\d+|\.\d+([eE][-+]?\d+)?)[Ff]?"
    101 
    102 syn match ktEscapedName "\v`.*`"
    103 
    104 syn match ktExclExcl "!!"
    105 syn match ktArrow "->"
    106 
    107 syn region ktFold start="{" end="}" transparent fold
    108 
    109 exec "syntax sync ccomment ktComment minlines=10"
    110 
    111 hi def link ktStatement Statement
    112 hi def link ktConditional Conditional
    113 hi def link ktRepeat Repeat
    114 hi def link ktOperator Operator
    115 hi def link ktKeyword Keyword
    116 hi def link ktException Exception
    117 hi def link ktReservedKeyword Error
    118 
    119 hi def link ktInclude Include
    120 
    121 hi def link ktType Type
    122 hi def link ktModifier StorageClass
    123 hi def link ktStructure Structure
    124 hi def link ktTypedef Typedef
    125 
    126 hi def link ktBoolean Boolean
    127 hi def link ktConstant Constant
    128 
    129 hi def link ktTodo Todo
    130 hi def link ktShebang Comment
    131 hi def link ktLineComment Comment
    132 hi def link ktComment Comment
    133 hi def link ktCommentMatchGroup Comment
    134 hi def link ktDocComment Comment
    135 hi def link ktDocTag Special
    136 hi def link ktDocTagParam Identifier
    137 
    138 hi def link ktSpecialChar SpecialChar
    139 hi def link ktSpecialCharError Error
    140 hi def link ktString String
    141 hi def link ktCharacter Character
    142 
    143 hi def link ktAnnotation Identifier
    144 hi def link ktLabel Identifier
    145 
    146 hi def link ktSimpleInterpolation Identifier
    147 hi def link ktComplexInterpolationBrace Identifier
    148 
    149 hi def link ktNumber Number
    150 hi def link ktFloat Float
    151 
    152 hi def link ktExclExcl Special
    153 hi def link ktArrow Structure
    154 
    155 let b:current_syntax = 'kotlin'
    156 
    157 " vim:foldmethod=marker