blob: a36bb9e927f2aaf3565caf882db2851991008903 [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>
5" Latest Revision: 2024-06-10
6
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
16syn match kdlComment "//.*$" contains=kdlTodo
17
18" Regular int like number with - + or nothing in front
19syn match kdlNumber '\d\+'
20syn match kdlNumber '[-+]\d\+'
21
22" Floating point number with decimal no E or e (+,-)
23syn match kdlNumber '\d\+\.\d*' contained display
24syn match kdlNumber '[-+]\d\+\.\d*' contained display
25
26" Floating point like number with E and no decimal point (+,-)
27syn match kdlNumber '[-+]\=\d[[:digit:]]*[eE][\-+]\=\d\+' contained display
28syn match kdlNumber '\d[[:digit:]]*[eE][\-+]\=\d\+' contained display
29
30" Floating point like number with E and decimal point (+,-)
31syn match kdlNumber '[-+]\=\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display
32syn match kdlNumber '\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display
33
34syn region kdlString start='"' end='"' skip='\\\\\|\\"' display
35
36syn region kdlChildren start="{" end="}" contains=kdlString,kdlNumber,kdlNode,kdlBool,kdlComment
37
38hi def link kdlTodo Todo
39hi def link kdlComment Comment
40hi def link kdlNode Statement
41hi def link kdlBool Boolean
42hi def link kdlString String
43hi def link kdlNumber Number
44
45let b:current_syntax = "kdl"