summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/nvim/ftdetect/HeavenCfg.vim1
-rw-r--r--config/nvim/syntax/HeavenCfg.vim24
2 files changed, 25 insertions, 0 deletions
diff --git a/config/nvim/ftdetect/HeavenCfg.vim b/config/nvim/ftdetect/HeavenCfg.vim
new file mode 100644
index 0000000..e8fac4b
--- /dev/null
+++ b/config/nvim/ftdetect/HeavenCfg.vim
@@ -0,0 +1 @@
+au BufRead,BufNewFile *.hmap,*.hcfg set filetype=HeavenCfg
diff --git a/config/nvim/syntax/HeavenCfg.vim b/config/nvim/syntax/HeavenCfg.vim
new file mode 100644
index 0000000..3297f8e
--- /dev/null
+++ b/config/nvim/syntax/HeavenCfg.vim
@@ -0,0 +1,24 @@
+function! DefineKeywords(keywords)
+ for keyword in a:keywords
+ execute 'syntax keyword HeavenCfgKeyword '. keyword
+ endfor
+ hi def link HeavenCfgKeyword Keyword
+endfunction
+
+function! DefineSpecial(keywords)
+ for keyword in a:keywords
+ execute 'syntax keyword HeavenCfgSpecial '. keyword
+ endfor
+ hi def link HeavenCfgSpecial Special
+endfunction
+
+call DefineKeywords( ['DEF', 'I32', 'F32', 'STR', 'BYTES', 'U8', 'CLR', 'VEC2', 'VEC3' ] )
+
+call DefineSpecial( ['map', 'mat'] )
+
+syntax match HeavenCfgVar /\<\w\+\>/
+syntax match HeavenCfgString /"[^"]*"/
+syntax match HeavenCfgNum /\v\d+(\.\d+)?([eE][+-]?\d+)?/
+hi def link HeavenCfgNum Number
+hi def link HeavenCfgString String
+hi def link HeavenCfgVar Variable