aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/logtalk.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/logtalk.vim')
-rw-r--r--runtime/syntax/logtalk.vim110
1 files changed, 57 insertions, 53 deletions
diff --git a/runtime/syntax/logtalk.vim b/runtime/syntax/logtalk.vim
index be34c7ed74..a7fe9ce925 100644
--- a/runtime/syntax/logtalk.vim
+++ b/runtime/syntax/logtalk.vim
@@ -2,14 +2,11 @@
"
" Language: Logtalk
" Maintainer: Paulo Moura <pmoura@logtalk.org>
-" Last Change: February 4, 2012
+" Last Change: August 3, 2018
-" Quit when a syntax file was already loaded:
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -82,13 +79,13 @@ syn region logtalkDir matchgroup=logtalkDirTag start=":- elif(" matchgroup=log
syn match logtalkDirTag ":- else\."
syn match logtalkDirTag ":- endif\."
syn region logtalkDir matchgroup=logtalkDirTag start=":- alias(" matchgroup=logtalkDirTag end=")\." contains=ALL
-syn region logtalkDir matchgroup=logtalkDirTag start=":- calls(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- coinductive(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- encoding(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- initialization(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- info(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- mode(" matchgroup=logtalkDirTag end=")\." contains=logtalkOperator, logtalkAtom
syn region logtalkDir matchgroup=logtalkDirTag start=":- dynamic(" matchgroup=logtalkDirTag end=")\." contains=ALL
+syn match logtalkDirTag ":- built_in\."
syn match logtalkDirTag ":- dynamic\."
syn region logtalkDir matchgroup=logtalkDirTag start=":- discontiguous(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- multifile(" matchgroup=logtalkDirTag end=")\." contains=ALL
@@ -134,17 +131,20 @@ syn match logtalkBuiltIn "\<\(instantiat\|specializ\)es_class\ze("
syn match logtalkBuiltIn "\<\(abolish\|define\)_events\ze("
syn match logtalkBuiltIn "\<current_event\ze("
-syn match logtalkBuiltIn "\<\(curren\|se\)t_logtalk_flag\ze("
+syn match logtalkBuiltIn "\<\(create\|current\|set\)_logtalk_flag\ze("
-syn match logtalkBuiltIn "\<logtalk_\(compile\|l\(ibrary_path\|oad\|oad_context\)\)\ze("
+syn match logtalkBuiltIn "\<logtalk_\(compile\|l\(ibrary_path\|oad\|oad_context\)\|make\(_target_action\)\?\)\ze("
+syn match logtalkBuiltIn "\<logtalk_make\>"
syn match logtalkBuiltIn "\<\(for\|retract\)all\ze("
syn match logtalkBuiltIn "\<threaded\(_\(call\|once\|ignore\|exit\|peek\|wait\|notify\)\)\?\ze("
+syn match logtalkBuiltIn "\<threaded_engine\(_\(create\|destroy\|self\|next\|next_reified\|yield\|post\|fetch\)\)\?\ze("
" Logtalk built-in methods
+syn match logtalkBuiltInMethod "\<context\ze("
syn match logtalkBuiltInMethod "\<parameter\ze("
syn match logtalkBuiltInMethod "\<se\(lf\|nder\)\ze("
syn match logtalkBuiltInMethod "\<this\ze("
@@ -162,6 +162,8 @@ syn match logtalkBuiltInMethod "\<f\(ind\|or\)all\ze("
syn match logtalkBuiltInMethod "\<before\ze("
syn match logtalkBuiltInMethod "\<after\ze("
+syn match logtalkBuiltInMethod "\<forward\ze("
+
syn match logtalkBuiltInMethod "\<expand_\(goal\|term\)\ze("
syn match logtalkBuiltInMethod "\<\(goal\|term\)_expansion\ze("
syn match logtalkBuiltInMethod "\<phrase\ze("
@@ -177,6 +179,7 @@ syn match logtalkOperator "@"
syn match logtalkKeyword "\<true\>"
syn match logtalkKeyword "\<fail\>"
+syn match logtalkKeyword "\<false\>"
syn match logtalkKeyword "\<ca\(ll\|tch\)\ze("
syn match logtalkOperator "!"
" syn match logtalkOperator ","
@@ -184,11 +187,14 @@ syn match logtalkOperator ";"
syn match logtalkOperator "-->"
syn match logtalkOperator "->"
syn match logtalkKeyword "\<throw\ze("
+syn match logtalkKeyword "\<\(instantiation\|system\)_error\>"
+syn match logtalkKeyword "\<\(type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze("
" Term unification
syn match logtalkOperator "="
+syn match logtalkKeyword "\<subsumes_term\ze("
syn match logtalkKeyword "\<unify_with_occurs_check\ze("
syn match logtalkOperator "\\="
@@ -202,6 +208,7 @@ syn match logtalkKeyword "\<float\ze("
syn match logtalkKeyword "\<c\(allable\|ompound\)\ze("
syn match logtalkKeyword "\<n\(onvar\|umber\)\ze("
syn match logtalkKeyword "\<ground\ze("
+syn match logtalkKeyword "\<acyclic_term\ze("
" Term comparison
@@ -222,14 +229,20 @@ syn match logtalkKeyword "\<arg\ze("
syn match logtalkOperator "=\.\."
syn match logtalkKeyword "\<copy_term\ze("
syn match logtalkKeyword "\<numbervars\ze("
+syn match logtalkKeyword "\<term_variables\ze("
+
+
+" Predicate aliases
+syn match logtalkOperator "\<as\>"
-" Arithemtic evaluation
+
+" Arithmetic evaluation
syn match logtalkOperator "\<is\>"
-" Arithemtic comparison
+" Arithmetic comparison
syn match logtalkOperator "=:="
syn match logtalkOperator "=\\="
@@ -302,16 +315,18 @@ syn match logtalkOperator "-"
syn match logtalkOperator "\*"
syn match logtalkOperator "//"
syn match logtalkOperator "/"
+syn match logtalkKeyword "\<div\ze("
syn match logtalkKeyword "\<r\(ound\|em\)\ze("
syn match logtalkKeyword "\<e\>"
syn match logtalkKeyword "\<pi\>"
+syn match logtalkKeyword "\<div\>"
syn match logtalkKeyword "\<rem\>"
-syn match logtalkKeyword "\<mod\ze("
+syn match logtalkKeyword "\<m\(ax\|in\|od\)\ze("
syn match logtalkKeyword "\<mod\>"
syn match logtalkKeyword "\<abs\ze("
syn match logtalkKeyword "\<sign\ze("
syn match logtalkKeyword "\<flo\(or\|at\(_\(integer\|fractional\)_part\)\?\)\ze("
-syn match logtalkKeyword "\<truncate\ze("
+syn match logtalkKeyword "\<t\(an\|runcate\)\ze("
syn match logtalkKeyword "\<ceiling\ze("
@@ -320,7 +335,7 @@ syn match logtalkKeyword "\<ceiling\ze("
syn match logtalkOperator "\*\*"
syn match logtalkKeyword "\<s\(in\|qrt\)\ze("
syn match logtalkKeyword "\<cos\ze("
-syn match logtalkKeyword "\<atan\ze("
+syn match logtalkKeyword "\<a\(cos\|sin\|tan\|tan2\)\ze("
syn match logtalkKeyword "\<exp\ze("
syn match logtalkKeyword "\<log\ze("
@@ -332,6 +347,7 @@ syn match logtalkOperator "<<"
syn match logtalkOperator "/\\"
syn match logtalkOperator "\\/"
syn match logtalkOperator "\\"
+syn match logtalkKeyword "\<xor\ze("
" Logtalk list operator
@@ -350,7 +366,7 @@ syn match logtalkNumber "\<\d\+\>"
syn match logtalkNumber "\<\d\+\.\d\+\>"
syn match logtalkNumber "\<\d\+[eE][-+]\=\d\+\>"
syn match logtalkNumber "\<\d\+\.\d\+[eE][-+]\=\d\+\>"
-syn match logtalkNumber "\<0'.\|0''\|0'\"\>"
+syn match logtalkNumber "\<0'[\\]\?.\|0''\|0'\"\>"
syn match logtalkNumber "\<0b[0-1]\+\>"
syn match logtalkNumber "\<0o\o\+\>"
syn match logtalkNumber "\<0x\x\+\>"
@@ -389,59 +405,47 @@ syn sync ccomment logtalkBlockComment maxlines=50
" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-
-if version >= 508 || !exists("did_logtalk_syn_inits")
- if version < 508
- let did_logtalk_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink logtalkBlockComment Comment
- HiLink logtalkLineComment Comment
+hi def link logtalkBlockComment Comment
+hi def link logtalkLineComment Comment
- HiLink logtalkOpenEntityDir Normal
- HiLink logtalkOpenEntityDirTag PreProc
+hi def link logtalkOpenEntityDir Normal
+hi def link logtalkOpenEntityDirTag PreProc
- HiLink logtalkIfContainer PreProc
- HiLink logtalkIf PreProc
- HiLink logtalkElseIf PreProc
- HiLink logtalkElse PreProc
+hi def link logtalkIfContainer PreProc
+hi def link logtalkIf PreProc
+hi def link logtalkElseIf PreProc
+hi def link logtalkElse PreProc
- HiLink logtalkEntity Normal
+hi def link logtalkEntity Normal
- HiLink logtalkEntityRel Normal
- HiLink logtalkEntityRelTag PreProc
+hi def link logtalkEntityRel Normal
+hi def link logtalkEntityRelTag PreProc
- HiLink logtalkCloseEntityDir PreProc
+hi def link logtalkCloseEntityDir PreProc
- HiLink logtalkDir Normal
- HiLink logtalkDirTag PreProc
+hi def link logtalkDir Normal
+hi def link logtalkDirTag PreProc
- HiLink logtalkAtom String
- HiLink logtalkString String
- HiLink logtalkEscapeSequence SpecialChar
+hi def link logtalkAtom String
+hi def link logtalkString String
+hi def link logtalkEscapeSequence SpecialChar
- HiLink logtalkNumber Number
+hi def link logtalkNumber Number
- HiLink logtalkKeyword Keyword
+hi def link logtalkKeyword Keyword
- HiLink logtalkBuiltIn Keyword
- HiLink logtalkBuiltInMethod Keyword
+hi def link logtalkBuiltIn Keyword
+hi def link logtalkBuiltInMethod Keyword
- HiLink logtalkOperator Operator
+hi def link logtalkOperator Operator
- HiLink logtalkExtCall Normal
- HiLink logtalkExtCallTag Operator
+hi def link logtalkExtCall Normal
+hi def link logtalkExtCallTag Operator
- HiLink logtalkVariable Identifier
+hi def link logtalkVariable Identifier
- delcommand HiLink
-
-endif
let b:current_syntax = "logtalk"