micro/runtime/syntax/kotlin.yaml
Campbell Jones da32457037
Enable syntax highlighting for Kotlin script files
In addition, make the following changes to the kotlin syntax highlighting: 
- Add new unsigned types to type.storage
- Add const as a statement keyword
- Remove typeof from type keywords
2019-12-26 19:13:23 -05:00

67 lines
1.8 KiB
YAML

filetype: kotlin
detect:
filename: "\\.kts?$"
rules:
# Operators
- symbol.operator: ([.:;,+*|=!?\\%]|<|>|/|-|&)
# Statements Keywords
- statement: \b(as|by|class|constructor|companion|const|fun|import|in|infix|interface|inline|is|out|operator|package|return|suspend|super|this|when|val|var)\b
- statement.properties: \b(get|set)\b
- statement.control: \b(break|continue|else|do|if|try|catch|finally|for|while)\b
- statement.class: \b(abstract|annotation|data|enum|final|open|sealed)\b
- statement.member: \b(override|lateinit|init)\b
- statement.access: \b(internal|private|protected|public)\b
- statement.parameter: \b(crossinline|noinline|reified|vararg)\b
# Expression and types
- type: \b(dynamic|object|throw|typealias)\b
# Meta
- statement.meta: \@(\bfile|delegate|field|get|property|receiver|set|setparam|param|)\b
# Constant
- constant: \b(true|false|null)
- constant.number: ([0-9]+)
# Storage Types
- type.storage: \b(Byte|UByte|Char|Double|Float|Int|UInt|Long|ULong|Short|UShort|Boolean|Unit|Nothing)\b
# Collections
- type.collections: \b(Array)\b
# String
- constant.string:
start: \"
end: \"
skip: \\.
rules:
- constant.specialChar: (\\0|\\\\|\\t|\\n|\\r|\\"|\\')
- constant.unicode: \\u\{[[:xdigit:]]+}
# Shebang Line
- comment.shebang: ^(#!).*
# Line Comment
- comment.line: "//.*"
# Block Comment
- comment.block:
start: "/\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
# Doc Block Comment
- comment.block:
start: "/\\*\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
# Todo
- todo: "(TODO|XXX|FIXME):?"