neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

logtalk.vim (17233B)


      1 " Vim syntax file
      2 "
      3 " Language:	Logtalk
      4 " Maintainer:   Paulo Moura <pmoura@logtalk.org>
      5 " Last Change:  October 6, 2025
      6 
      7 
      8 
      9 " quit when a syntax file was already loaded
     10 if exists("b:current_syntax")
     11 finish
     12 endif
     13 
     14 let s:cpo_save = &cpo
     15 set cpo&vim
     16 
     17 " Logtalk is case sensitive:
     18 
     19 syn case match
     20 
     21 
     22 " Logtalk variables
     23 
     24 syn match   logtalkVariable		"\<\(\u\|_\)\(\w\)*\>"
     25 
     26 
     27 " Logtalk clause functor
     28 
     29 syn match	logtalkOperator		":-"
     30 
     31 
     32 " Logtalk quoted atoms and strings
     33 
     34 syn region	logtalkString		start=+"+	skip=+\\"+	end=+"+		contains=logtalkEscapeSequence
     35 syn region	logtalkAtom		start=+'+	skip=+\\'+	end=+'+		contains=logtalkEscapeSequence
     36 
     37 syn match	logtalkEscapeSequence	contained	"\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+\|[0-7]\+\)\\\)"
     38 
     39 
     40 " Logtalk message-sending operators
     41 
     42 syn match	logtalkOperator		"::"
     43 syn match	logtalkOperator		"\(0'\)\@<!:"
     44 syn match	logtalkOperator		"\^\^"
     45 
     46 
     47 " Logtalk external call
     48 
     49 syn region	logtalkExtCall		matchgroup=logtalkExtCallTag		start="{"		matchgroup=logtalkExtCallTag		end="}"		contains=ALL
     50 
     51 
     52 " Logtalk opening entity directives
     53 
     54 syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- object("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel,logtalkLineComment
     55 syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- protocol("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
     56 syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- category("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
     57 
     58 
     59 " Logtalk closing entity directives
     60 
     61 syn match	logtalkCloseEntityDir	":- end_object\."
     62 syn match	logtalkCloseEntityDir	":- end_protocol\."
     63 syn match	logtalkCloseEntityDir	":- end_category\."
     64 
     65 
     66 " Logtalk entity relations
     67 
     68 syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="instantiates("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
     69 syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="specializes("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
     70 syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="extends("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
     71 syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="imports("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
     72 syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="implements("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
     73 syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="complements("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom	contained
     74 
     75 
     76 " Logtalk directives
     77 
     78 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- if("			matchgroup=logtalkDirTag	end=")\."	contains=ALL
     79 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- elif("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     80 syn match	logtalkDirTag		":- else\."
     81 syn match	logtalkDirTag		":- endif\."
     82 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- alias("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     83 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- coinductive("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     84 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- encoding("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     85 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- initialization("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
     86 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- info("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     87 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- mode("		matchgroup=logtalkDirTag	end=")\."	contains=logtalkOperator, logtalkAtom
     88 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- mode_non_terminal("		matchgroup=logtalkDirTag	end=")\."	contains=logtalkOperator, logtalkAtom
     89 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- dynamic("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     90 syn match	logtalkDirTag		":- built_in\."
     91 syn match	logtalkDirTag		":- dynamic\."
     92 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- discontiguous("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
     93 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- multifile("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     94 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- public("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     95 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- protected("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     96 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- private("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
     97 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- meta_predicate("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
     98 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- meta_non_terminal("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
     99 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- op("			matchgroup=logtalkDirTag	end=")\."	contains=ALL
    100 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- set_logtalk_flag("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
    101 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- synchronized("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
    102 syn match	logtalkDirTag		":- synchronized\."
    103 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- uses("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
    104 syn match	logtalkDirTag		":- threaded\."
    105 
    106 
    107 " Prolog directives
    108 
    109 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- ensure_loaded("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
    110 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- include("     	matchgroup=logtalkDirTag	end=")\."	contains=ALL
    111 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- set_prolog_flag("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
    112 
    113 
    114 " Module directives
    115 
    116 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
    117 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- export("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
    118 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- reexport("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
    119 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- use_module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
    120 
    121 
    122 " Logtalk built-in predicates
    123 
    124 syn match	logtalkBuiltIn		"\<\(abolish\|c\(reate\|urrent\)\)_\(object\|protocol\|category\)\ze("
    125 
    126 syn match	logtalkBuiltIn		"\<\(object\|protocol\|category\)_property\ze("
    127 
    128 syn match	logtalkBuiltIn		"\<co\(mplements_object\|nforms_to_protocol\)\ze("
    129 syn match	logtalkBuiltIn		"\<extends_\(object\|protocol\|category\)\ze("
    130 syn match	logtalkBuiltIn		"\<imp\(orts_category\|lements_protocol\)\ze("
    131 syn match	logtalkBuiltIn		"\<\(instantiat\|specializ\)es_class\ze("
    132 
    133 syn match	logtalkBuiltIn		"\<\(abolish\|define\)_events\ze("
    134 syn match	logtalkBuiltIn		"\<current_event\ze("
    135 
    136 syn match	logtalkBuiltIn		"\<\(create\|current\|set\)_logtalk_flag\ze("
    137 
    138 syn match	logtalkBuiltIn		"\<logtalk_\(compile\|l\(ibrary_path\|oad\|oad_context\)\|make\(_target_action\)\?\)\ze("
    139 syn match	logtalkBuiltIn		"\<logtalk_make\>"
    140 
    141 syn match	logtalkBuiltIn		"\<\(for\|retract\)all\ze("
    142 
    143 syn match	logtalkBuiltIn		"\<threaded\(_\(ca\(ll\|ncel\)\|once\|ignore\|exit\|peek\|wait\|notify\)\)\?\ze("
    144 syn match	logtalkBuiltIn		"\<threaded_engine\(_\(create\|destroy\|self\|next\|next_reified\|yield\|post\|fetch\)\)\?\ze("
    145 
    146 
    147 " Logtalk built-in methods
    148 
    149 syn match	logtalkBuiltInMethod	"\<context\ze("
    150 syn match	logtalkBuiltInMethod	"\<parameter\ze("
    151 syn match	logtalkBuiltInMethod	"\<se\(lf\|nder\)\ze("
    152 syn match	logtalkBuiltInMethod	"\<this\ze("
    153 
    154 syn match	logtalkBuiltInMethod	"\<current_predicate\ze("
    155 syn match	logtalkBuiltInMethod	"\<predicate_property\ze("
    156 
    157 syn match	logtalkBuiltInMethod	"\<a\(bolish\|ssert\(a\|z\)\)\ze("
    158 syn match	logtalkBuiltInMethod	"\<clause\ze("
    159 syn match	logtalkBuiltInMethod	"\<retract\(all\)\?\ze("
    160 
    161 syn match	logtalkBuiltInMethod	"\<\(bag\|set\)of\ze("
    162 syn match	logtalkBuiltInMethod	"\<f\(ind\|or\)all\ze("
    163 
    164 syn match	logtalkBuiltInMethod	"\<before\ze("
    165 syn match	logtalkBuiltInMethod	"\<after\ze("
    166 
    167 syn match	logtalkBuiltInMethod	"\<forward\ze("
    168 
    169 syn match	logtalkBuiltInMethod	"\<expand_\(goal\|term\)\ze("
    170 syn match	logtalkBuiltInMethod	"\<\(goal\|term\)_expansion\ze("
    171 syn match	logtalkBuiltInMethod	"\<phrase\ze("
    172 
    173 
    174 " Mode operators
    175 
    176 syn match	logtalkOperator		"\(0'\)\@<!?"
    177 syn match	logtalkOperator		"\(0'\)\@<!@"
    178 
    179 
    180 " Control constructs
    181 
    182 syn match	logtalkKeyword		"\<true\>"
    183 syn match	logtalkKeyword		"\<fail\>"
    184 syn match	logtalkKeyword		"\<false\>"
    185 syn match	logtalkKeyword		"\<ca\(ll\|tch\)\ze("
    186 syn match	logtalkOperator		"\(0'\)\@<!!"
    187 " syn match	logtalkOperator		"\(0'\)\@<!,"
    188 syn match	logtalkOperator		"\(0'\)\@<!;"
    189 syn match	logtalkOperator		"-->"
    190 syn match	logtalkOperator		"->"
    191 syn match	logtalkKeyword		"\<throw\ze("
    192 syn match	logtalkKeyword		"\<\(instantiation\|system\)_error\>"
    193 syn match	logtalkKeyword		"\<\(uninstantiation\|type\|domain\|consistency\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze("
    194 
    195 
    196 " Term unification
    197 
    198 syn match	logtalkOperator		"\(0'\)\@<!="
    199 syn match	logtalkKeyword		"\<subsumes_term\ze("
    200 syn match	logtalkKeyword		"\<unify_with_occurs_check\ze("
    201 syn match	logtalkOperator		"\\="
    202 
    203 
    204 " Term testing
    205 
    206 syn match	logtalkKeyword		"\<var\ze("
    207 syn match	logtalkKeyword		"\<atom\(ic\)\?\ze("
    208 syn match	logtalkKeyword		"\<integer\ze("
    209 syn match	logtalkKeyword		"\<float\ze("
    210 syn match	logtalkKeyword		"\<c\(allable\|ompound\)\ze("
    211 syn match	logtalkKeyword		"\<n\(onvar\|umber\)\ze("
    212 syn match	logtalkKeyword		"\<ground\ze("
    213 syn match	logtalkKeyword		"\<acyclic_term\ze("
    214 
    215 
    216 " Term comparison
    217 
    218 syn match	logtalkKeyword		"\<compare\ze("
    219 syn match	logtalkOperator		"@=<"
    220 syn match	logtalkOperator		"=="
    221 syn match	logtalkOperator		"\\=="
    222 syn match	logtalkOperator		"@<"
    223 syn match	logtalkOperator		"@>"
    224 syn match	logtalkOperator		"@>="
    225 
    226 
    227 " Term creation and decomposition
    228 
    229 syn match	logtalkKeyword		"\<functor\ze("
    230 syn match	logtalkKeyword		"\<arg\ze("
    231 syn match	logtalkOperator		"=\.\."
    232 syn match	logtalkKeyword		"\<copy_term\ze("
    233 syn match	logtalkKeyword		"\<numbervars\ze("
    234 syn match	logtalkKeyword		"\<term_variables\ze("
    235 
    236 
    237 " Predicate aliases
    238 
    239 syn match	logtalkOperator		"\<as\>"
    240 
    241 
    242 " Arithmetic evaluation
    243 
    244 syn match	logtalkOperator		"\<is\>"
    245 
    246 
    247 " Arithmetic comparison
    248 
    249 syn match	logtalkOperator		"=:="
    250 syn match	logtalkOperator		"=\\="
    251 syn match	logtalkOperator		"\(0'\)\@<!<"
    252 syn match	logtalkOperator		"=<"
    253 syn match	logtalkOperator		"\(0'\)\@<!>"
    254 syn match	logtalkOperator		">="
    255 
    256 
    257 " Stream selection and control
    258 
    259 syn match	logtalkKeyword		"\<\(curren\|se\)t_\(in\|out\)put\ze("
    260 syn match	logtalkKeyword		"\<open\ze("
    261 syn match	logtalkKeyword		"\<close\ze("
    262 syn match	logtalkKeyword		"\<flush_output\ze("
    263 syn match	logtalkKeyword		"\<flush_output\>"
    264 syn match	logtalkKeyword		"\<stream_property\ze("
    265 syn match	logtalkKeyword		"\<at_end_of_stream\ze("
    266 syn match	logtalkKeyword		"\<at_end_of_stream\>"
    267 syn match	logtalkKeyword		"\<set_stream_position\ze("
    268 
    269 
    270 " Character and byte input/output
    271 
    272 syn match	logtalkKeyword		"\<\(get\|p\(eek\|ut\)\)_\(c\(har\|ode\)\|byte\)\ze("
    273 syn match	logtalkKeyword		"\<nl\ze("
    274 syn match	logtalkKeyword		"\<nl\>"
    275 
    276 
    277 " Term input/output
    278 
    279 syn match	logtalkKeyword		"\<read\(_term\)\?\ze("
    280 syn match	logtalkKeyword		"\<write\(q\|_\(canonical\|term\)\)\?\ze("
    281 syn match	logtalkKeyword		"\<\(current_\)\?op\ze("
    282 syn match	logtalkKeyword		"\<\(current_\)\?char_conversion\ze("
    283 
    284 
    285 " Logic and control
    286 
    287 syn match	logtalkOperator		"\\+"
    288 syn match	logtalkKeyword		"\<ignore\ze("
    289 syn match	logtalkKeyword		"\<once\ze("
    290 syn match	logtalkKeyword		"\<repeat\>"
    291 
    292 
    293 " Atomic term processing
    294 
    295 syn match	logtalkKeyword		"\<atom_\(length\|c\(hars\|o\(ncat\|des\)\)\)\ze("
    296 syn match	logtalkKeyword		"\<sub_atom\ze("
    297 syn match	logtalkKeyword		"\<char_code\ze("
    298 syn match	logtalkKeyword		"\<number_c\(har\|ode\)s\ze("
    299 
    300 
    301 " Implementation defined hooks functions
    302 
    303 syn match	logtalkKeyword		"\<\(curren\|se\)t_prolog_flag\ze("
    304 syn match	logtalkKeyword		"\<halt\ze("
    305 syn match	logtalkKeyword		"\<halt\>"
    306 
    307 
    308 " Sorting
    309 
    310 syn match	logtalkKeyword		"\<\(key\)\?sort\ze("
    311 
    312 
    313 " Evaluable functors
    314 
    315 syn match	logtalkOperator		"\(0'\)\@<![+]"
    316 syn match	logtalkOperator		"\(0'\)\@<![-]"
    317 syn match	logtalkOperator		"\(0'\)\@<!\*"
    318 syn match	logtalkOperator		"//"
    319 syn match	logtalkOperator		"\(0'\)\@<!/"
    320 syn match	logtalkKeyword		"\<div\ze("
    321 syn match	logtalkKeyword		"\<r\(ound\|em\)\ze("
    322 syn match	logtalkKeyword		"\<e\>"
    323 syn match	logtalkKeyword		"\<pi\>"
    324 syn match	logtalkKeyword		"\<div\>"
    325 syn match	logtalkKeyword		"\<rem\>"
    326 syn match	logtalkKeyword		"\<m\(ax\|in\|od\)\ze("
    327 syn match	logtalkKeyword		"\<mod\>"
    328 syn match	logtalkKeyword		"\<abs\ze("
    329 syn match	logtalkKeyword		"\<sign\ze("
    330 syn match	logtalkKeyword		"\<flo\(or\|at\(_\(integer\|fractional\)_part\)\?\)\ze("
    331 syn match	logtalkKeyword		"\<t\(an\|runcate\)\ze("
    332 syn match	logtalkKeyword		"\<ceiling\ze("
    333 
    334 
    335 " Other arithemtic functors
    336 
    337 syn match	logtalkOperator		"\*\*"
    338 syn match	logtalkKeyword		"\<s\(in\|qrt\)\ze("
    339 syn match	logtalkKeyword		"\<cos\ze("
    340 syn match	logtalkKeyword		"\<a\(cos\|sin\|tan\|tan2\)\ze("
    341 syn match	logtalkKeyword		"\<exp\ze("
    342 syn match	logtalkKeyword		"\<log\ze("
    343 
    344 
    345 " Bitwise functors
    346 
    347 syn match	logtalkOperator		">>"
    348 syn match	logtalkOperator		"<<"
    349 syn match	logtalkOperator		"/\\"
    350 syn match	logtalkOperator		"\\/"
    351 syn match	logtalkOperator		"0'\@<!\\"
    352 syn match	logtalkKeyword		"\<xor\ze("
    353 
    354 
    355 " Logtalk list operator
    356 
    357 syn match	logtalkOperator		"\(0'\)\@<!|"
    358 
    359 
    360 " Logtalk existential quantifier operator
    361 
    362 syn match	logtalkOperator		"\(0'\)\@<!^"
    363 
    364 
    365 " Logtalk numbers 
    366 
    367 syn match	logtalkNumber		"\<\d\+\>"
    368 syn match	logtalkNumber		"\<\d\+\.\d\+\>"
    369 syn match	logtalkNumber		"\<\d\+[eE][-+]\=\d\+\>"
    370 syn match	logtalkNumber		"\<\d\+\.\d\+[eE][-+]\=\d\+\>"
    371 syn match	logtalkNumber		"0'[\\]\?."
    372 syn match	logtalkNumber		"\<0b[0-1]\+\>"
    373 syn match	logtalkNumber		"\<0o\o\+\>"
    374 syn match	logtalkNumber		"\<0x\x\+\>"
    375 
    376 
    377 " Logtalk end-of-clause
    378 
    379 syn match	logtalkOperator		"\(0'\)\@<!\."
    380 
    381 
    382 " Logtalk comments
    383 
    384 syn region	logtalkBlockComment	start="/\*"	end="\*/"	fold
    385 syn match	logtalkLineComment	"%.*$"
    386 
    387 syn cluster	logtalkComment		contains=logtalkBlockComment,logtalkLineComment
    388 
    389 
    390 " Logtalk conditional compilation folding
    391 
    392 syn region logtalkIfContainer transparent keepend extend start=":- if(" end=":- endif\." containedin=ALLBUT,@logtalkComment contains=NONE
    393 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
    394 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
    395 syn region logtalkElse transparent fold keepend start=":- else\." end=":- endif\." contained containedin=logtalkIfContainer contains=TOP
    396 
    397 
    398 
    399 " Logtalk entity folding
    400 
    401 syn region logtalkEntity transparent fold keepend start=":- object(" end=":- end_object\." contains=ALL
    402 syn region logtalkEntity transparent fold keepend start=":- protocol(" end=":- end_protocol\." contains=ALL
    403 syn region logtalkEntity transparent fold keepend start=":- category(" end=":- end_category\." contains=ALL
    404 
    405 
    406 syn sync ccomment logtalkBlockComment maxlines=50
    407 
    408 
    409 " Define the default highlighting.
    410 " Only when an item doesn't have highlighting yet
    411 
    412 hi def link logtalkBlockComment	Comment
    413 hi def link logtalkLineComment	Comment
    414 
    415 hi def link logtalkOpenEntityDir	Normal
    416 hi def link logtalkOpenEntityDirTag	PreProc
    417 
    418 hi def link logtalkIfContainer	PreProc
    419 hi def link logtalkIf		PreProc
    420 hi def link logtalkElseIf		PreProc
    421 hi def link logtalkElse		PreProc
    422 
    423 hi def link logtalkEntity		Normal
    424 
    425 hi def link logtalkEntityRel	Normal
    426 hi def link logtalkEntityRelTag	PreProc
    427 
    428 hi def link logtalkCloseEntityDir	PreProc
    429 
    430 hi def link logtalkDir		Normal
    431 hi def link logtalkDirTag		PreProc
    432 
    433 hi def link logtalkAtom		String
    434 hi def link logtalkString		String
    435 hi def link logtalkEscapeSequence	SpecialChar
    436 
    437 hi def link logtalkNumber		Number
    438 
    439 hi def link logtalkKeyword		Keyword
    440 
    441 hi def link logtalkBuiltIn		Keyword
    442 hi def link logtalkBuiltInMethod	Keyword
    443 
    444 hi def link logtalkOperator		Operator
    445 
    446 hi def link logtalkExtCall		Normal
    447 hi def link logtalkExtCallTag	Operator
    448 
    449 hi def link logtalkVariable		Identifier
    450 
    451 
    452 
    453 let b:current_syntax = "logtalk"
    454 
    455 let &cpo = s:cpo_save
    456 unlet s:cpo_save