summaryrefslogtreecommitdiff
path: root/runtime/syntax/prolog.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/prolog.vim')
-rw-r--r--runtime/syntax/prolog.vim71
1 files changed, 38 insertions, 33 deletions
diff --git a/runtime/syntax/prolog.vim b/runtime/syntax/prolog.vim
index 3b09bb354..58b279b02 100644
--- a/runtime/syntax/prolog.vim
+++ b/runtime/syntax/prolog.vim
@@ -1,14 +1,14 @@
" Vim syntax file
" Language: PROLOG
-" Maintainer: Thomas Koehler <jean-luc@picard.franken.de>
-" Please be aware: I'm often slow to answer email due to a high
-" non-computer related workload (sometimes 4-8 weeks)
-" Last Change: 2016 September 6
-" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
+" Maintainer: Anton Kochkov <anton.kochkov@gmail.com>
+" Last Change: 2019 Aug 29
" There are two sets of highlighting in here:
" If the "prolog_highlighting_clean" variable exists, it is rather sparse.
" Otherwise you get more highlighting.
+"
+" You can also set the "prolog_highlighting_no_keyword" variable. If set,
+" keywords will not be highlighted.
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -24,7 +24,9 @@ syn case match
syn region prologCComment start=+/\*+ end=+\*/+
syn match prologComment +%.*+
-syn keyword prologKeyword module meta_predicate multifile dynamic
+if !exists("prolog_highlighting_no_keyword")
+ syn keyword prologKeyword module meta_predicate multifile dynamic
+endif
syn match prologCharCode +0'\\\=.+
syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region prologAtom start=+'+ skip=+\\\\\|\\'+ end=+'+
@@ -35,35 +37,38 @@ if !exists("prolog_highlighting_clean")
" some keywords
" some common predicates are also highlighted as keywords
" is there a better solution?
- syn keyword prologKeyword abolish current_output peek_code
- syn keyword prologKeyword append current_predicate put_byte
- syn keyword prologKeyword arg current_prolog_flag put_char
- syn keyword prologKeyword asserta fail put_code
- syn keyword prologKeyword assertz findall read
- syn keyword prologKeyword at_end_of_stream float read_term
- syn keyword prologKeyword atom flush_output repeat
- syn keyword prologKeyword atom_chars functor retract
- syn keyword prologKeyword atom_codes get_byte set_input
- syn keyword prologKeyword atom_concat get_char set_output
- syn keyword prologKeyword atom_length get_code set_prolog_flag
- syn keyword prologKeyword atomic halt set_stream_position
- syn keyword prologKeyword bagof integer setof
- syn keyword prologKeyword call is stream_property
- syn keyword prologKeyword catch nl sub_atom
- syn keyword prologKeyword char_code nonvar throw
- syn keyword prologKeyword char_conversion number true
- syn keyword prologKeyword clause number_chars unify_with_occurs_check
- syn keyword prologKeyword close number_codes var
- syn keyword prologKeyword compound once write
- syn keyword prologKeyword copy_term op write_canonical
- syn keyword prologKeyword current_char_conversion open write_term
- syn keyword prologKeyword current_input peek_byte writeq
- syn keyword prologKeyword current_op peek_char
-
- syn match prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|<\|>\|="
+ if !exists("prolog_highlighting_no_keyword")
+ syn keyword prologKeyword abolish current_output peek_code
+ syn keyword prologKeyword append current_predicate put_byte
+ syn keyword prologKeyword arg current_prolog_flag put_char
+ syn keyword prologKeyword asserta fail put_code
+ syn keyword prologKeyword assertz findall read
+ syn keyword prologKeyword at_end_of_stream float read_term
+ syn keyword prologKeyword atom flush_output repeat
+ syn keyword prologKeyword atom_chars functor retract
+ syn keyword prologKeyword atom_codes get_byte set_input
+ syn keyword prologKeyword atom_concat get_char set_output
+ syn keyword prologKeyword atom_length get_code set_prolog_flag
+ syn keyword prologKeyword atomic halt set_stream_position
+ syn keyword prologKeyword bagof integer setof
+ syn keyword prologKeyword call is stream_property
+ syn keyword prologKeyword catch nl sub_atom
+ syn keyword prologKeyword char_code nonvar throw
+ syn keyword prologKeyword char_conversion number true
+ syn keyword prologKeyword clause number_chars unify_with_occurs_check
+ syn keyword prologKeyword close number_codes var
+ syn keyword prologKeyword compound once write
+ syn keyword prologKeyword copy_term op write_canonical
+ syn keyword prologKeyword current_char_conversion open write_term
+ syn keyword prologKeyword current_input peek_byte writeq
+ syn keyword prologKeyword current_op peek_char
+ endif
+
+ syn match prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|=\.\.\|<\|>\|="
syn match prologAsIs "===\|\\===\|<=\|=>"
- syn match prologNumber "\<[0123456789]*\>'\@!"
+ syn match prologNumber "\<\d*\>'\@!"
+ syn match prologNumber "\<0[xX]\x*\>'\@!"
syn match prologCommentError "\*/"
syn match prologSpecialCharacter ";"
syn match prologSpecialCharacter "!"