aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/syntax/ox.vim
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/syntax/ox.vim')
-rw-r--r--.config/nvim/syntax/ox.vim51
1 files changed, 51 insertions, 0 deletions
diff --git a/.config/nvim/syntax/ox.vim b/.config/nvim/syntax/ox.vim
new file mode 100644
index 0000000..c5abff4
--- /dev/null
+++ b/.config/nvim/syntax/ox.vim
@@ -0,0 +1,51 @@
+if exists("b:current_syntax")
+ finish
+endif
+
+syn keyword oxTodo contained TODO FIXME HACK
+syn match oxComment /\/\/.*$/ contains=oxTodo
+syn region oxMComment start=/\/\*/ end=/\*\//
+
+syn keyword oxStatement return var break continue
+syn keyword oxFunc fn
+syn keyword oxRepeat for while
+syn keyword oxDeclaration fn var
+syn keyword oxStructure class enum
+syn keyword oxConstants true false
+syn keyword oxConditional if else
+syn keyword oxStorageClass global local
+
+syn keyword oxOperator and or
+syn match oxSymOperator /[+\-\*/%]|[\>\<\=\!]\=?/
+
+syn match oxIdentifier /[A-z_]+[A-z0-9_]*/
+
+syn match oxNumber /\<\d\+\>/
+syn match oxNumber /\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=/
+syn match oxNumber /\.\d\+\%([eE][-+]\=\d\+\)\=\>/
+syn match oxNumber /\<\d\+[eE][-+]\=\d\+\>/
+
+syn match oxEscape contained /\\[ntr\\\"']/
+syn match oxStringD /\".*\"/ contains=oxEscape
+syn match oxStringS /\'.*\'/ contains=oxEscape
+syn match oxType /(?<=\:)\s*[A-z_]+[A-z0-9_]*/
+
+let b:current_syntax = "ox"
+
+hi def link oxComment Comment
+hi def link oxMComment Comment
+hi def link oxStatement Statement
+hi def link oxFunc Function
+hi def link oxDeclaration Statement
+hi def link oxRepeat Repeat
+hi def link oxIdentifier Identifier
+hi def link oxNumber Number
+hi def link oxStringD String
+hi def link oxStringS String
+hi def link oxConstants Constant
+hi def link oxOperator Operator
+hi def link oxSymOperator Operator
+hi def link oxConditional Conditional
+hi def link oxStructure Structure
+hi def link oxStorageClass StorageClass
+hi def link oxType Type