blob: 97e8f93b61846096581fdf5954c0f772ad7ad143 [file] [log] [blame]
inzuo Jiang2d882102024-06-10 21:13:56 +02001" Vim syntax file
2" Language: KDL
3" Maintainer: Aram Drevekenin <aram@poor.dev>
4" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
Yinzuo Jiang79da22d2024-06-16 14:47:47 +08005" Latest Revision: 2024-06-16
inzuo Jiang2d882102024-06-10 21:13:56 +02006
7" quit when a syntax file was already loaded
8if exists("b:current_syntax")
9 finish
10endif
11
12syn match kdlNode '\v(\w|-|\=)' display
13syn match kdlBool '\v(true|false)' display
14
15syn keyword kdlTodo contained TODO FIXME XXX NOTE
Yinzuo Jiang79da22d2024-06-16 14:47:47 +080016syn region kdlComment start="//" end="$" contains=kdlTodo,@Spell
17syn region kdlComment start="/\*" end="\*/" contains=kdlTodo,@Spell
inzuo Jiang2d882102024-06-10 21:13:56 +020018
19" Regular int like number with - + or nothing in front
20syn match kdlNumber '\d\+'
21syn match kdlNumber '[-+]\d\+'
22
23" Floating point number with decimal no E or e (+,-)
24syn match kdlNumber '\d\+\.\d*' contained display
25syn match kdlNumber '[-+]\d\+\.\d*' contained display
Yinzuo Jiang79da22d2024-06-16 14:47:47 +080026
inzuo Jiang2d882102024-06-10 21:13:56 +020027" Floating point like number with E and no decimal point (+,-)
28syn match kdlNumber '[-+]\=\d[[:digit:]]*[eE][\-+]\=\d\+' contained display
29syn match kdlNumber '\d[[:digit:]]*[eE][\-+]\=\d\+' contained display
Yinzuo Jiang79da22d2024-06-16 14:47:47 +080030
inzuo Jiang2d882102024-06-10 21:13:56 +020031" Floating point like number with E and decimal point (+,-)
32syn match kdlNumber '[-+]\=\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display
33syn match kdlNumber '\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display
34
35syn region kdlString start='"' end='"' skip='\\\\\|\\"' display
Yinzuo Jiang79da22d2024-06-16 14:47:47 +080036
inzuo Jiang2d882102024-06-10 21:13:56 +020037syn region kdlChildren start="{" end="}" contains=kdlString,kdlNumber,kdlNode,kdlBool,kdlComment
38
39hi def link kdlTodo Todo
40hi def link kdlComment Comment
41hi def link kdlNode Statement
42hi def link kdlBool Boolean
43hi def link kdlString String
44hi def link kdlNumber Number
45
46let b:current_syntax = "kdl"
Yinzuo Jiang79da22d2024-06-16 14:47:47 +080047
48" vim: sw=2 sts=2 et