summaryrefslogtreecommitdiff
path: root/.config/nvim/after/syntax/jolie.vim
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2024-04-16 20:43:35 +0200
committerSanto Cariotti <santo@dcariotti.me>2024-04-16 20:43:35 +0200
commit10b5d39766588dbe9a9fef6e4f09f31d287c7b9f (patch)
tree0dc0f848d4fa1d4965ee41c53cbacb36587709c6 /.config/nvim/after/syntax/jolie.vim
parent80d646215a52b8a89447129d9e0f46005572a9cf (diff)
Updates
Diffstat (limited to '.config/nvim/after/syntax/jolie.vim')
-rw-r--r--.config/nvim/after/syntax/jolie.vim59
1 files changed, 59 insertions, 0 deletions
diff --git a/.config/nvim/after/syntax/jolie.vim b/.config/nvim/after/syntax/jolie.vim
new file mode 100644
index 0000000..c7b3a21
--- /dev/null
+++ b/.config/nvim/after/syntax/jolie.vim
@@ -0,0 +1,59 @@
+if exists("b:current_syntax")
+ finish
+endif
+
+syn keyword jolieBoolean true false
+syn keyword jolieDefinitionTypes inputPort outputPort interface type define service
+syn keyword jolieKeyword location Location protocol Protocol interfaces Interfaces aggregates Aggregates redirects Redirects class Jolie JavaScript Java OneWay oneWay RequestResponse requestResponse execution
+syn keyword jolieOtherKeyword constants cH instanceof execution comp concurrent nullProcess single sequential main foreign java init cset is_defined embed embedded extender courier forward install undef include synchronized throws throw from import as
+syn keyword jolieConditional if else
+syn keyword jolieRepeat while for foreach until in
+syn keyword jolieException throw
+syn keyword jolieStatement forward scope provide
+syn keyword jolieType void bool int string long double any raw
+syn keyword jolieKeywordModifiers csets global
+syn match jolieOperators "(<<|&&|\|\||+|-|/|*|=|==|++|-|+=|-=|*=|/=|!|%=|%)"
+
+syn match jolieSpecialChar contained "\\."
+
+syn region jolieString start=+"+ end=+"+ contains=jolieSpecialChar
+
+syn match jolieNumber "\<\d\+\>"
+
+syn match jolieMethodInvocation "\<\(\w\+\)@\(\w\+\)\>" contains=jolieMethodName,jolieClassName
+
+syn match jolieMethodName "\w\+@"me=e-1 contained
+syn match jolieClassName "@\w\+\>"ms=s+1 contained
+
+syn match jolieMethodName2 "\(\w\+\)("
+
+syn keyword jolieTodo contained TODO FIXME
+syn region jolieComment start="/\*" end="\*/" contains=jolieTodo
+syn match jolieLineComment "//.*"
+
+let b:current_syntax = "jolie"
+
+hi def link jolieBoolean Boolean
+hi def link jolieComment Comment
+hi def link jolieLineComment Comment
+hi def link jolieDefinitionTypes Keyword
+hi def link jolieKeyword Keyword
+hi def link jolieOtherKeyword Keyword
+
+hi def link jolieOperators Operator
+
+hi def link jolieConditional Conditional
+hi def link jolieRepeat Repeat
+hi def link jolieException Exception
+hi def link jolieStatement Statement
+hi def link jolieType Type
+
+hi def link jolieKeywordModifiers StorageClass
+
+hi def link jolieString String
+
+hi def link jolieNumber Number
+
+hi def link jolieMethodName Function
+hi def link jolieClassName Type
+hi def link jolieMethodName2 Function