mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-01 11:06:54 -04:00
191 lines
5.4 KiB
Scheme
191 lines
5.4 KiB
Scheme
;;; Kotlin
|
|
|
|
(simple_identifier) @variable
|
|
; Reset some
|
|
(navigation_suffix (simple_identifier) @none)
|
|
(import_header (identifier (simple_identifier) @none))
|
|
(package_header (identifier (simple_identifier) @none))
|
|
|
|
|
|
;; Strings
|
|
(line_string_literal) @string
|
|
(multi_line_string_literal) @string
|
|
; Interpolated
|
|
(interpolated_identifier) @variable
|
|
(interpolated_expression) @none
|
|
|
|
|
|
;; Suffixes
|
|
(navigation_expression (navigation_suffix (simple_identifier) @property ))
|
|
; Reset some
|
|
(assignment (navigation_expression (navigation_suffix (simple_identifier) @none )))
|
|
(call_expression (navigation_expression (navigation_suffix (simple_identifier) @none )))
|
|
(navigation_expression (navigation_expression (navigation_suffix (simple_identifier) @none )))
|
|
|
|
|
|
|
|
;; Variables/fields
|
|
; attribute in data classes etc.
|
|
(class_parameter (simple_identifier) @field)
|
|
; variable in normal classes
|
|
(property_declaration (variable_declaration (simple_identifier) @variable))
|
|
; accessed field in blocks. `logger` in `logger.info("")`
|
|
(statements (call_expression (navigation_expression (simple_identifier) @variable)))
|
|
(indexing_expression (call_expression (navigation_expression (simple_identifier) @variable)))
|
|
; `classProp` in `classProp.lastIndex`
|
|
(statements (navigation_expression (simple_identifier) @variable))
|
|
; `variable` in `variable = car.doors`
|
|
(directly_assignable_expression (simple_identifier) @variable)
|
|
|
|
|
|
;; Constants
|
|
; Assume all-caps names are constants
|
|
((simple_identifier) @constant
|
|
(#match? @constant "^[A-Z][A-Z_0-9]+$"))
|
|
((interpolated_identifier) @constant
|
|
(#vim-match? @constant "^[A-Z][A-Z_0-9]+$"))
|
|
|
|
|
|
(lambda_parameters) @parameter
|
|
|
|
|
|
;; Builtin functions
|
|
((simple_identifier) @function.macro
|
|
(#vim-match? @function.macro "^(commonPrefixWith|commonSuffixWith|endsWith|findAnyOf|findLastAnyOf|hasSurrogatePairAt|ifBlank|ifEmpty|indexOf|indexOfAny|isEmpty|isNotBlank|isNotEmpty|isNullOrBlank|isNullOrEmpty|lastIndexOf|lastIndexOfAny|lineSequence|lines|orEmpty|padEnd|padStart|removePrefix|removeRange|removeSuffix|removeSurrounding|replace|replaceAfter|replaceAfterLast|replaceBefore|replaceBeforeLast|replaceFirst|replaceRange|split|splitToSequence|startsWith|subSequence|substring|substringAfter|substringAfterLast|substringBefore|substringBeforeLast|trim|trimEnd|trimStart|containsKey|containsValue|filter|filterKeys|filterNot|filterNotTo|filterTo|filterValues|getOrElse|getOrPut|getValue|ifEmpty|isNotEmpty|isNullOrEmpty|mapKeys|mapKeysTo|mapValues|mapValuesTo|orEmpty|putAll|remove|toMap|toMutableMap|toPair|also|apply|let|run|takeIf|takeUnless|prependIndent|replaceIndent|replaceIndentByMargin|trimIndent|trimMargin|all|any|asIterable|asSequence|associate|associateBy|associateByTo|associateTo|associateWith|associateWithTo|chunked|chunkedSequence|count|drop|dropLast|dropLastWhile|dropWhile|elementAtOrElse|elementAtOrNull|filter|filterIndexed|filterIndexedTo|filterNot|filterNotTo|filterTo|find|findLast|first|firstOrNull|flatMap|flatMapIndexed|flatMapIndexedTo|flatMapTo|fold|foldIndexed|foldRight|foldRightIndexed|forEach|forEachIndexed|getOrElse|getOrNull|groupBy|groupByTo|groupingBy|indexOfFirst|indexOfLast|last|lastOrNull|map|mapIndexed|mapIndexedNotNull|mapIndexedNotNullTo|mapIndexedTo|mapNotNull|mapNotNullTo|mapTo|max|maxBy|maxByOrNull|maxOf|maxOfOrNull|maxOfWith|maxOfWithOrNull|maxOrNull|maxWith|maxWithOrNull|min|minBy|minByOrNull|minOf|minOfOrNull|minOfWith|minOfWithOrNull|minOrNull|minWith|minWithOrNull|none|onEach|onEachIndexed|partition|random|randomOrNull|reduce|reduceIndexed|reduceIndexedOrNull|reduceOrNull|reduceRight|reduceRightIndexed|reduceRightIndexedOrNull|reduceRightOrNull|reversed|runningFold|runningFoldIndexed|runningReduce|runningReduceIndexed|scan|scanIndexed|scanReduce|scanReduceIndexed|single|singleOrNull|slice|sumBy|sumByDouble|sumOf|take|takeLast|takeLastWhile|takeWhile|toCollection|toHashSet|toList|toMutableList|toSet|windowed|windowedSequence|withIndex|zip|zipWithNext)$"))
|
|
|
|
(call_expression
|
|
(simple_identifier) @function)
|
|
|
|
((simple_identifier) @function.builtin
|
|
(#vim-match? @function.builtin "^(print|println|buildMap|emptyMap|hashMapOf|linkedMapOf|mapOf|mutableMapOf|buildSet|emptySet|hashSetOf|linkedSetOf|mutableSetOf|setOf|setOfNotNull|TODO|repeat|run|with)$"))
|
|
|
|
|
|
;; Numbers
|
|
(integer_literal) @number
|
|
|
|
;; Booleans
|
|
(boolean_literal) @boolean
|
|
|
|
;; Types
|
|
(type_identifier) @type
|
|
|
|
;; Annotations
|
|
(annotation (single_annotation) @attribute)
|
|
(single_annotation (user_type (type_identifier) @attribute))
|
|
(single_annotation (constructor_invocation (user_type (type_identifier) @attribute)))
|
|
|
|
|
|
;; it
|
|
(indexing_expression (simple_identifier) @variable.builtin
|
|
(#vim-match? @variable.builtin "^it$"))
|
|
|
|
|
|
;; Operators
|
|
[
|
|
"="
|
|
"-"
|
|
"->"
|
|
"+"
|
|
"++"
|
|
"--"
|
|
"*"
|
|
] @operator
|
|
|
|
;; Keyword operators
|
|
[
|
|
"in"
|
|
] @keyword.operator
|
|
|
|
((simple_identifier) @keyword.operator
|
|
(#vim-match? @keyword.operator "^to$"))
|
|
|
|
|
|
;; Keywords
|
|
[
|
|
"this"
|
|
"override"
|
|
"enum"
|
|
"as"
|
|
"class"
|
|
"object"
|
|
"data"
|
|
"val"
|
|
"init"
|
|
"private"
|
|
"var"
|
|
"break"
|
|
"by"
|
|
"fun"
|
|
"companion"
|
|
"constructor"
|
|
"throw"
|
|
] @keyword
|
|
|
|
"return" @keyword.return
|
|
|
|
(null_literal) @keyword
|
|
|
|
; const etc.
|
|
(property_modifier) @keyword
|
|
|
|
|
|
;; Conditionals
|
|
[
|
|
"if"
|
|
"is"
|
|
"else"
|
|
"when"
|
|
] @conditional
|
|
|
|
|
|
;; Loops
|
|
[
|
|
"for"
|
|
"while"
|
|
] @repeat
|
|
|
|
|
|
;; Includes
|
|
|
|
"import" @include
|
|
"package" @include
|
|
|
|
|
|
;; Punctuation
|
|
|
|
[
|
|
"::"
|
|
";"
|
|
"."
|
|
","
|
|
] @punctuation.delimiter
|
|
|
|
[
|
|
"$"
|
|
"${"
|
|
"}"
|
|
] @none
|
|
|
|
[
|
|
"["
|
|
"]"
|
|
"{"
|
|
"}"
|
|
"("
|
|
")"
|
|
] @punctuation.bracket
|
|
|
|
[
|
|
"$"
|
|
] @punctuation.special
|
|
|
|
;; Comments
|
|
(comment) @comment
|
|
|
|
; Functions
|
|
(function_declaration (simple_identifier) @function)
|
|
|
|
|
|
(ERROR) @error
|
|
|
|
; TODO parameter
|