1
0
Fork 0
mirror of https://github.com/vim/vim synced 2025-03-21 17:25:11 +01:00
vim/runtime/syntax/logtalk.vim

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

456 lines
17 KiB
VimL
Raw Permalink Normal View History

2004-06-13 20:20:40 +00:00
" Vim syntax file
"
" Language: Logtalk
" Maintainer: Paulo Moura <pmoura@logtalk.org>
" Last Change: December 16, 2023
2004-06-13 20:20:40 +00:00
" quit when a syntax file was already loaded
if exists("b:current_syntax")
2004-06-13 20:20:40 +00:00
finish
endif
let s:cpo_save = &cpo
set cpo&vim
2004-06-13 20:20:40 +00:00
" Logtalk is case sensitive:
syn case match
" Logtalk variables
syn match logtalkVariable "\<\(\u\|_\)\(\w\)*\>"
" Logtalk clause functor
syn match logtalkOperator ":-"
" Logtalk quoted atoms and strings
syn region logtalkString start=+"+ skip=+\\"+ end=+"+ contains=logtalkEscapeSequence
2008-07-13 17:41:49 +00:00
syn region logtalkAtom start=+'+ skip=+\\'+ end=+'+ contains=logtalkEscapeSequence
syn match logtalkEscapeSequence contained "\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+\|[0-7]\+\)\\\)"
2004-06-13 20:20:40 +00:00
" Logtalk message sending operators
syn match logtalkOperator "::"
syn match logtalkOperator "\(0'\)\@<!:"
2004-06-13 20:20:40 +00:00
syn match logtalkOperator "\^\^"
" Logtalk external call
syn region logtalkExtCall matchgroup=logtalkExtCallTag start="{" matchgroup=logtalkExtCallTag end="}" contains=ALL
" Logtalk opening entity directives
2010-01-06 20:54:52 +01:00
syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- object(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel,logtalkLineComment
syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- protocol(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- category(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
2004-06-13 20:20:40 +00:00
" Logtalk closing entity directives
2005-06-06 21:59:07 +00:00
syn match logtalkCloseEntityDir ":- end_object\."
syn match logtalkCloseEntityDir ":- end_protocol\."
syn match logtalkCloseEntityDir ":- end_category\."
2004-06-13 20:20:40 +00:00
" Logtalk entity relations
2008-07-13 17:41:49 +00:00
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="instantiates(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom contained
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="specializes(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom contained
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="extends(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom contained
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="imports(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom contained
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="implements(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom contained
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="complements(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom contained
2004-06-13 20:20:40 +00:00
" Logtalk directives
syn region logtalkDir matchgroup=logtalkDirTag start=":- if(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- elif(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn match logtalkDirTag ":- else\."
syn match logtalkDirTag ":- endif\."
2005-03-16 09:57:51 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- alias(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- coinductive(" matchgroup=logtalkDirTag end=")\." contains=ALL
2008-07-13 17:41:49 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- encoding(" matchgroup=logtalkDirTag end=")\." contains=ALL
2004-06-13 20:20:40 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- initialization(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- info(" matchgroup=logtalkDirTag end=")\." contains=ALL
2005-03-16 09:57:51 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- mode(" matchgroup=logtalkDirTag end=")\." contains=logtalkOperator, logtalkAtom
2004-06-13 20:20:40 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- dynamic(" matchgroup=logtalkDirTag end=")\." contains=ALL
2018-08-11 18:00:22 +02:00
syn match logtalkDirTag ":- built_in\."
2004-06-13 20:20:40 +00:00
syn match logtalkDirTag ":- dynamic\."
syn region logtalkDir matchgroup=logtalkDirTag start=":- discontiguous(" matchgroup=logtalkDirTag end=")\." contains=ALL
2005-03-16 09:57:51 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- multifile(" matchgroup=logtalkDirTag end=")\." contains=ALL
2004-06-13 20:20:40 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- public(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- protected(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- private(" matchgroup=logtalkDirTag end=")\." contains=ALL
2008-07-13 17:41:49 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- meta_predicate(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- meta_non_terminal(" matchgroup=logtalkDirTag end=")\." contains=ALL
2004-06-13 20:20:40 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- op(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- set_logtalk_flag(" matchgroup=logtalkDirTag end=")\." contains=ALL
2008-07-13 17:41:49 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- synchronized(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn match logtalkDirTag ":- synchronized\."
2004-06-13 20:20:40 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- uses(" matchgroup=logtalkDirTag end=")\." contains=ALL
2008-07-13 17:41:49 +00:00
syn match logtalkDirTag ":- threaded\."
2004-06-13 20:20:40 +00:00
" Prolog directives
syn region logtalkDir matchgroup=logtalkDirTag start=":- ensure_loaded(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- include(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- set_prolog_flag(" matchgroup=logtalkDirTag end=")\." contains=ALL
2006-03-06 23:29:24 +00:00
" Module directives
syn region logtalkDir matchgroup=logtalkDirTag start=":- module(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- export(" matchgroup=logtalkDirTag end=")\." contains=ALL
syn region logtalkDir matchgroup=logtalkDirTag start=":- reexport(" matchgroup=logtalkDirTag end=")\." contains=ALL
2006-03-06 23:29:24 +00:00
syn region logtalkDir matchgroup=logtalkDirTag start=":- use_module(" matchgroup=logtalkDirTag end=")\." contains=ALL
2004-06-13 20:20:40 +00:00
" Logtalk built-in predicates
2005-05-31 22:22:17 +00:00
syn match logtalkBuiltIn "\<\(abolish\|c\(reate\|urrent\)\)_\(object\|protocol\|category\)\ze("
2004-06-13 20:20:40 +00:00
2004-06-24 15:53:16 +00:00
syn match logtalkBuiltIn "\<\(object\|protocol\|category\)_property\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkBuiltIn "\<co\(mplements_object\|nforms_to_protocol\)\ze("
2008-07-13 17:41:49 +00:00
syn match logtalkBuiltIn "\<extends_\(object\|protocol\|category\)\ze("
2004-06-24 15:53:16 +00:00
syn match logtalkBuiltIn "\<imp\(orts_category\|lements_protocol\)\ze("
2008-07-13 17:41:49 +00:00
syn match logtalkBuiltIn "\<\(instantiat\|specializ\)es_class\ze("
2004-06-13 20:20:40 +00:00
2004-06-24 15:53:16 +00:00
syn match logtalkBuiltIn "\<\(abolish\|define\)_events\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkBuiltIn "\<current_event\ze("
2018-08-11 18:00:22 +02:00
syn match logtalkBuiltIn "\<\(create\|current\|set\)_logtalk_flag\ze("
2004-06-13 20:20:40 +00:00
2018-08-11 18:00:22 +02:00
syn match logtalkBuiltIn "\<logtalk_\(compile\|l\(ibrary_path\|oad\|oad_context\)\|make\(_target_action\)\?\)\ze("
syn match logtalkBuiltIn "\<logtalk_make\>"
2004-06-13 20:20:40 +00:00
2005-03-16 09:57:51 +00:00
syn match logtalkBuiltIn "\<\(for\|retract\)all\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkBuiltIn "\<threaded\(_\(ca\(ll\|ncel\)\|once\|ignore\|exit\|peek\|wait\|notify\)\)\?\ze("
2018-08-11 18:00:22 +02:00
syn match logtalkBuiltIn "\<threaded_engine\(_\(create\|destroy\|self\|next\|next_reified\|yield\|post\|fetch\)\)\?\ze("
2008-07-13 17:41:49 +00:00
2004-06-13 20:20:40 +00:00
" Logtalk built-in methods
2018-08-11 18:00:22 +02:00
syn match logtalkBuiltInMethod "\<context\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkBuiltInMethod "\<parameter\ze("
2004-06-24 15:53:16 +00:00
syn match logtalkBuiltInMethod "\<se\(lf\|nder\)\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkBuiltInMethod "\<this\ze("
syn match logtalkBuiltInMethod "\<current_predicate\ze("
syn match logtalkBuiltInMethod "\<predicate_property\ze("
2005-05-31 22:22:17 +00:00
syn match logtalkBuiltInMethod "\<a\(bolish\|ssert\(a\|z\)\)\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkBuiltInMethod "\<clause\ze("
2005-05-31 22:22:17 +00:00
syn match logtalkBuiltInMethod "\<retract\(all\)\?\ze("
2004-06-13 20:20:40 +00:00
2004-06-24 15:53:16 +00:00
syn match logtalkBuiltInMethod "\<\(bag\|set\)of\ze("
syn match logtalkBuiltInMethod "\<f\(ind\|or\)all\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkBuiltInMethod "\<before\ze("
syn match logtalkBuiltInMethod "\<after\ze("
2018-08-11 18:00:22 +02:00
syn match logtalkBuiltInMethod "\<forward\ze("
syn match logtalkBuiltInMethod "\<expand_\(goal\|term\)\ze("
2008-07-13 17:41:49 +00:00
syn match logtalkBuiltInMethod "\<\(goal\|term\)_expansion\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkBuiltInMethod "\<phrase\ze("
" Mode operators
syn match logtalkOperator "\(0'\)\@<!?"
syn match logtalkOperator "\(0'\)\@<!@"
2004-06-13 20:20:40 +00:00
" Control constructs
syn match logtalkKeyword "\<true\>"
syn match logtalkKeyword "\<fail\>"
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<false\>"
2004-06-24 15:53:16 +00:00
syn match logtalkKeyword "\<ca\(ll\|tch\)\ze("
syn match logtalkOperator "\(0'\)\@<!!"
" syn match logtalkOperator "\(0'\)\@<!,"
syn match logtalkOperator "\(0'\)\@<!;"
2004-06-13 20:20:40 +00:00
syn match logtalkOperator "-->"
syn match logtalkOperator "->"
syn match logtalkKeyword "\<throw\ze("
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<\(instantiation\|system\)_error\>"
syn match logtalkKeyword "\<\(uninstantiation\|type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze("
2004-06-13 20:20:40 +00:00
" Term unification
syn match logtalkOperator "\(0'\)\@<!="
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<subsumes_term\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<unify_with_occurs_check\ze("
syn match logtalkOperator "\\="
" Term testing
syn match logtalkKeyword "\<var\ze("
2005-05-31 22:22:17 +00:00
syn match logtalkKeyword "\<atom\(ic\)\?\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<integer\ze("
syn match logtalkKeyword "\<float\ze("
syn match logtalkKeyword "\<c\(allable\|ompound\)\ze("
2004-06-24 15:53:16 +00:00
syn match logtalkKeyword "\<n\(onvar\|umber\)\ze("
syn match logtalkKeyword "\<ground\ze("
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<acyclic_term\ze("
2004-06-13 20:20:40 +00:00
" Term comparison
syn match logtalkKeyword "\<compare\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkOperator "@=<"
syn match logtalkOperator "=="
syn match logtalkOperator "\\=="
syn match logtalkOperator "@<"
syn match logtalkOperator "@>"
syn match logtalkOperator "@>="
" Term creation and decomposition
syn match logtalkKeyword "\<functor\ze("
syn match logtalkKeyword "\<arg\ze("
syn match logtalkOperator "=\.\."
syn match logtalkKeyword "\<copy_term\ze("
syn match logtalkKeyword "\<numbervars\ze("
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<term_variables\ze("
" Predicate aliases
syn match logtalkOperator "\<as\>"
2004-06-13 20:20:40 +00:00
2018-08-11 18:00:22 +02:00
" Arithmetic evaluation
2004-06-13 20:20:40 +00:00
2005-03-16 09:57:51 +00:00
syn match logtalkOperator "\<is\>"
2004-06-13 20:20:40 +00:00
2018-08-11 18:00:22 +02:00
" Arithmetic comparison
2004-06-13 20:20:40 +00:00
syn match logtalkOperator "=:="
syn match logtalkOperator "=\\="
syn match logtalkOperator "\(0'\)\@<!<"
2004-06-13 20:20:40 +00:00
syn match logtalkOperator "=<"
syn match logtalkOperator "\(0'\)\@<!>"
2004-06-13 20:20:40 +00:00
syn match logtalkOperator ">="
" Stream selection and control
2008-07-13 17:41:49 +00:00
syn match logtalkKeyword "\<\(curren\|se\)t_\(in\|out\)put\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<open\ze("
syn match logtalkKeyword "\<close\ze("
syn match logtalkKeyword "\<flush_output\ze("
syn match logtalkKeyword "\<flush_output\>"
syn match logtalkKeyword "\<stream_property\ze("
syn match logtalkKeyword "\<at_end_of_stream\ze("
syn match logtalkKeyword "\<at_end_of_stream\>"
syn match logtalkKeyword "\<set_stream_position\ze("
2004-06-24 15:53:16 +00:00
" Character and byte input/output
2004-06-13 20:20:40 +00:00
2005-05-31 22:22:17 +00:00
syn match logtalkKeyword "\<\(get\|p\(eek\|ut\)\)_\(c\(har\|ode\)\|byte\)\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<nl\ze("
syn match logtalkKeyword "\<nl\>"
" Term input/output
2005-05-31 22:22:17 +00:00
syn match logtalkKeyword "\<read\(_term\)\?\ze("
syn match logtalkKeyword "\<write\(q\|_\(canonical\|term\)\)\?\ze("
syn match logtalkKeyword "\<\(current_\)\?op\ze("
2008-07-13 17:41:49 +00:00
syn match logtalkKeyword "\<\(current_\)\?char_conversion\ze("
2004-06-13 20:20:40 +00:00
" Logic and control
syn match logtalkOperator "\\+"
syn match logtalkKeyword "\<ignore\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<once\ze("
syn match logtalkKeyword "\<repeat\>"
" Atomic term processing
2005-05-31 22:22:17 +00:00
syn match logtalkKeyword "\<atom_\(length\|c\(hars\|o\(ncat\|des\)\)\)\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<sub_atom\ze("
syn match logtalkKeyword "\<char_code\ze("
2008-07-13 17:41:49 +00:00
syn match logtalkKeyword "\<number_c\(har\|ode\)s\ze("
2004-06-13 20:20:40 +00:00
" Implementation defined hooks functions
2008-07-13 17:41:49 +00:00
syn match logtalkKeyword "\<\(curren\|se\)t_prolog_flag\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<halt\ze("
syn match logtalkKeyword "\<halt\>"
" Sorting
syn match logtalkKeyword "\<\(key\)\?sort\ze("
2004-06-13 20:20:40 +00:00
" Evaluable functors
syn match logtalkOperator "\(0'\)\@<![+]"
syn match logtalkOperator "\(0'\)\@<![-]"
syn match logtalkOperator "\(0'\)\@<!\*"
2004-06-13 20:20:40 +00:00
syn match logtalkOperator "//"
syn match logtalkOperator "\(0'\)\@<!/"
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<div\ze("
2005-05-31 22:22:17 +00:00
syn match logtalkKeyword "\<r\(ound\|em\)\ze("
syn match logtalkKeyword "\<e\>"
syn match logtalkKeyword "\<pi\>"
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<div\>"
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<rem\>"
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<m\(ax\|in\|od\)\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<mod\>"
syn match logtalkKeyword "\<abs\ze("
syn match logtalkKeyword "\<sign\ze("
2005-05-31 22:22:17 +00:00
syn match logtalkKeyword "\<flo\(or\|at\(_\(integer\|fractional\)_part\)\?\)\ze("
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<t\(an\|runcate\)\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<ceiling\ze("
" Other arithemtic functors
2004-06-13 20:20:40 +00:00
syn match logtalkOperator "\*\*"
2004-06-24 15:53:16 +00:00
syn match logtalkKeyword "\<s\(in\|qrt\)\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<cos\ze("
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<a\(cos\|sin\|tan\|tan2\)\ze("
2004-06-13 20:20:40 +00:00
syn match logtalkKeyword "\<exp\ze("
syn match logtalkKeyword "\<log\ze("
" Bitwise functors
syn match logtalkOperator ">>"
syn match logtalkOperator "<<"
syn match logtalkOperator "/\\"
syn match logtalkOperator "\\/"
syn match logtalkOperator "0'\@<!\\"
2018-08-11 18:00:22 +02:00
syn match logtalkKeyword "\<xor\ze("
2004-06-13 20:20:40 +00:00
2005-05-31 22:22:17 +00:00
" Logtalk list operator
2004-06-13 20:20:40 +00:00
syn match logtalkOperator "\(0'\)\@<!|"
2004-06-13 20:20:40 +00:00
" Logtalk existential quantifier operator
syn match logtalkOperator "\(0'\)\@<!^"
" Logtalk numbers
2004-06-13 20:20:40 +00:00
2005-05-31 22:22:17 +00:00
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'[\\]\?."
2005-05-31 22:22:17 +00:00
syn match logtalkNumber "\<0b[0-1]\+\>"
2005-06-06 21:59:07 +00:00
syn match logtalkNumber "\<0o\o\+\>"
2005-05-31 22:22:17 +00:00
syn match logtalkNumber "\<0x\x\+\>"
2004-06-13 20:20:40 +00:00
2005-05-31 22:22:17 +00:00
" Logtalk end-of-clause
2004-06-13 20:20:40 +00:00
syn match logtalkOperator "\(0'\)\@<!\."
2004-06-13 20:20:40 +00:00
2005-05-31 22:22:17 +00:00
" Logtalk comments
2004-06-13 20:20:40 +00:00
2005-06-06 21:59:07 +00:00
syn region logtalkBlockComment start="/\*" end="\*/" fold
syn match logtalkLineComment "%.*$"
2004-06-13 20:20:40 +00:00
syn cluster logtalkComment contains=logtalkBlockComment,logtalkLineComment
" Logtalk conditional compilation folding
syn region logtalkIfContainer transparent keepend extend start=":- if(" end=":- endif\." containedin=ALLBUT,@logtalkComment contains=NONE
syn region logtalkIf transparent fold keepend start=":- if(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
syn region logtalkElseIf transparent fold keepend start=":- elif(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
syn region logtalkElse transparent fold keepend start=":- else\." end=":- endif\." contained containedin=logtalkIfContainer contains=TOP
2004-06-13 20:20:40 +00:00
2005-06-06 21:59:07 +00:00
" Logtalk entity folding
syn region logtalkEntity transparent fold keepend start=":- object(" end=":- end_object\." contains=ALL
syn region logtalkEntity transparent fold keepend start=":- protocol(" end=":- end_protocol\." contains=ALL
syn region logtalkEntity transparent fold keepend start=":- category(" end=":- end_category\." contains=ALL
2005-03-16 09:57:51 +00:00
syn sync ccomment logtalkBlockComment maxlines=50
2004-06-13 20:20:40 +00:00
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
2008-07-13 17:41:49 +00:00
hi def link logtalkBlockComment Comment
hi def link logtalkLineComment Comment
2004-06-13 20:20:40 +00:00
hi def link logtalkOpenEntityDir Normal
hi def link logtalkOpenEntityDirTag PreProc
2004-06-13 20:20:40 +00:00
hi def link logtalkIfContainer PreProc
hi def link logtalkIf PreProc
hi def link logtalkElseIf PreProc
hi def link logtalkElse PreProc
hi def link logtalkEntity Normal
2004-06-13 20:20:40 +00:00
hi def link logtalkEntityRel Normal
hi def link logtalkEntityRelTag PreProc
2004-06-13 20:20:40 +00:00
hi def link logtalkCloseEntityDir PreProc
2004-06-13 20:20:40 +00:00
hi def link logtalkDir Normal
hi def link logtalkDirTag PreProc
2004-06-13 20:20:40 +00:00
hi def link logtalkAtom String
hi def link logtalkString String
hi def link logtalkEscapeSequence SpecialChar
2004-06-13 20:20:40 +00:00
hi def link logtalkNumber Number
2004-06-13 20:20:40 +00:00
hi def link logtalkKeyword Keyword
2004-06-13 20:20:40 +00:00
hi def link logtalkBuiltIn Keyword
hi def link logtalkBuiltInMethod Keyword
2004-06-13 20:20:40 +00:00
hi def link logtalkOperator Operator
2004-06-13 20:20:40 +00:00
hi def link logtalkExtCall Normal
hi def link logtalkExtCallTag Operator
2004-06-13 20:20:40 +00:00
hi def link logtalkVariable Identifier
2004-06-13 20:20:40 +00:00
let b:current_syntax = "logtalk"
let &cpo = s:cpo_save
unlet s:cpo_save