annotate runtime/syntax/pike.vim @ 20135:571f632f0aa2

Added tag v8.2.0622 for changeset 352701a626ed31b361ee0c706c8b107411e79dca
author Bram Moolenaar <Bram@vim.org>
date Thu, 23 Apr 2020 16:15:05 +0200
parents 371ceeebbdaa
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim syntax file
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
2 " Language: Pike
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
3 " Maintainer: Stephen R. van den Berg <srb@cuci.nl>
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
4 " Maintainer of previous implementation: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
5 " Last Change: 2018 Jan 28
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
6 " Version: 2.9
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
7 " Remark: Derived from the C-syntax; fixed several bugs in the C-syntax
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
8 " Remark: and extended it with the Pike syntax.
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
9 " Remark: Includes a highlighter for all Pike types of parenthesis errors.
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
10 " Remark: Includes a highlighter for SQL on multiline strings.
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
11 " Remark: Includes a highlighter for any embedded Autodoc format.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
13 " Quit when a (custom) syntax file was already loaded
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 7
diff changeset
14 if exists("b:current_syntax")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
18 let s:cpo_save = &cpo
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
19 set cpo&vim
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
20
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
21 " For multiline strings, try formatting them as SQL
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
22 syn include @pikeSQL <sfile>:p:h/sqloracle.vim
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
23 unlet b:current_syntax
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
24
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
25 " For embedded Autodoc documentation (WIP)
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
26 syn include @pikeAutodoc <sfile>:p:h/autodoc.vim
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
27 unlet b:current_syntax
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
28
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
29 syn case match
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
30
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
31 " Supports array, multiset, mapping multi-character delimiter matching
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
32 " Supports rotating amongst several same-level preprocessor conditionals
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
33 packadd! matchit
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
34 let b:match_words = "({:}\\@1<=),(\\[:]\\@1<=),(<:>\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
35
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
36 " A bunch of useful Pike keywords
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
37 syn keyword pikeDebug gauge backtrace describe_backtrace werror _Static_assert static_assert
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
38 syn keyword pikeException error catch throw
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
39 syn keyword pikeLabel case default break return continue
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
40 syn keyword pikeConditional if else switch
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
41 syn keyword pikeRepeat while for foreach do
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
43 syn keyword pikePredef RegGetKeyNames RegGetValue RegGetValues
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
44 syn keyword pikePredef __automap__ __empty_program
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
45 syn keyword pikePredef __handle_sprintf_format __parse_pike_type _disable_threads
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
46 syn keyword pikePredef _do_call_outs _exit _gdb_breakpoint
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
47 syn keyword pikePredef abs access acos acosh add_constant alarm all_constants
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
48 syn keyword pikePredef array_sscanf asin asinh atan atan2 atanh atexit
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
49 syn keyword pikePredef basetype call_function call_out call_out_info cd ceil
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
50 syn keyword pikePredef combine_path combine_path_nt
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
51 syn keyword pikePredef combine_path_unix compile copy_value cos cosh cpp crypt
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
52 syn keyword pikePredef ctime decode_value delay encode_value encode_value_canonic
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
53 syn keyword pikePredef enumerate errno exece exit exp file_stat file_truncate
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
54 syn keyword pikePredef filesystem_stat find_call_out floor fork function_name
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
55 syn keyword pikePredef function_object function_program gc
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
56 syn keyword pikePredef get_active_compilation_handler get_active_error_handler
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
57 syn keyword pikePredef get_all_groups get_all_users get_dir get_groups_for_user
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
58 syn keyword pikePredef get_iterator get_profiling_info get_weak_flag getcwd
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
59 syn keyword pikePredef getgrgid getgrnam gethrdtime gethrtime gethrvtime getpid
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
60 syn keyword pikePredef getpwnam getpwuid getxattr glob gmtime has_index has_prefix
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
61 syn keyword pikePredef has_suffix has_value hash hash_7_0 hash_7_4 hash_8_0
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
62 syn keyword pikePredef hash_value kill limit listxattr load_module localtime
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
63 syn keyword pikePredef log lower_case master max min mkdir mktime mv
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
64 syn keyword pikePredef object_program pow query_num_arg random_seed
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
65 syn keyword pikePredef remove_call_out removexattr replace_master rm round
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
66 syn keyword pikePredef set_priority set_weak_flag setxattr sgn signal signame
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
67 syn keyword pikePredef signum sin sinh sleep sort sprintf sqrt sscanf strerror
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
68 syn keyword pikePredef string_filter_non_unicode string_to_unicode string_to_utf8
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
69 syn keyword pikePredef tan tanh time trace types ualarm unicode_to_string
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
70 syn keyword pikePredef upper_case utf8_to_string version
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
72 syn keyword pikePredef write lock try_lock
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
73 syn keyword pikePredef MutexKey Timestamp Date Time TimeTZ Interval Inet Range
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
74 syn keyword pikePredef Null null inf nan
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
75
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
76 syn keyword pikeTodo contained TODO FIXME XXX
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
77
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
78 " Match parengroups: allows for highlighting indices of mappings and
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
79 " highlighting semicolons that are out of place due to a paren imbalance
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
80 syn cluster pikePreShort contains=pikeDefine,pikePreProc,pikeCppOutWrapper,pikeCppInWrapper,pikePreCondit,pikePreConditMatch
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
81 syn cluster pikeExprGroup contains=pikeMappIndex,@pikeStmt,pikeNest,@pikeBadGroup,pikeSoftCast
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
82 syn match pikeWord transparent contained /[^()'"[\]{},;:]\+/ contains=ALLBUT,@pikePreProcGroup,@pikeExprGroup
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
83 syn match pikeFirstWord transparent display contained /^\s*#[^()'"[\]{},;:]\+/ contains=@pikePreShort
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
84 syn cluster pikeMappElm contains=pikeMappIndex,@pikeStmt
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
85 syn cluster pikeStmt contains=pikeFirstWord,pikeCharacter,pikeString,pikeMlString,pikeWord,pikeNest
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
86 syn cluster pikeBadGroup contains=pikeBadPClose,pikeBadAClose,pikeBadBClose,pikeBadSPClose,pikeBadSAClose,pikeBadSBClose,pikeBadSClose,pikeBadSPAClose,pikeBadSBAClose
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
87 syn match pikeBadPClose display contained "[}\]]"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
88 syn match pikeBadAClose display contained "[)\]]"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
89 syn match pikeBadBClose display contained "[)}]"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
90 syn match pikeBadSPClose display contained "[;}\]]"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
91 syn match pikeBadSAClose display contained "[;)\]]"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
92 syn match pikeBadSPAClose display contained "[;\]]"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
93 syn match pikeBadSBAClose display contained "[;}]"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
94 syn match pikeBadSClose display contained "[;)}\]]"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
95 syn region pikeNest transparent start="(\@1<!{" end="}" contains=@pikeStmt,pikeUserLabel,pikeBadAClose
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
96 syn region pikeNest transparent start="\%(\<for\%(each\)\?\s\?\)\@8<!([[{<]\@!" end=")" contains=@pikeStmt,pikeBadSPClose
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
97 syn region pikeNest transparent start="\%(\<for\%(each\)\?\s\?\)\@8<=(" end=")" contains=@pikeStmt,pikeBadPClose
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
98 syn region pikeNest transparent start="(\@1<!\[" end="]" contains=@pikeStmt,pikeBadSBClose
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
99 syn region pikeNest transparent start="(\zs\[" end="])" contains=@pikeMappElm,pikeBadSBAClose
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
100 " For some reason specifying a matchgroup on the pikeNest below makes it
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
101 " override the shorter variant; consider it a kludge, no idea why it works
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
102 syn region pikeNest transparent matchgroup=pikeSoftCast start=%(\zs\[[ \t\v\r\n.a-zA-Z0-9_():,|]\+])\@!% end=")" contains=@pikeStmt
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
103 syn region pikeNest transparent start="(\zs{" end="})" contains=@pikeStmt,pikeBadSPAClose
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
104 syn region pikeNest transparent start="(\zs<" end=">)" contains=@pikeStmt,pikeBadSPClose keepend
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
105
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
106 " It's easy to accidentally add a space after a backslash that was intended
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
107 " for line continuation. Some compilers allow it, which makes it
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
108 " unpredictable and should be avoided.
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
109 syn match pikeBadContinuation contained "\\\s\+$"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
110
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
111 " pikeCommentGroup allows adding matches for special things in comments
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
112 syn cluster pikeCommentGroup contains=pikeTodo,pikeBadContinuation
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 " String and Character constants
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 " Highlight special characters (those which have a backslash) differently
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
116 syn match pikeSpecial display contained "\\\%(x\x*\|d\d*\|\o\+\|u\x\{4}\|U\x\{8}\|[abefnrtv]\|$\)"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
117
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
118 " ISO C11 or ISO C++ 11
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
119 if !exists("c_no_cformat")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
120 " Highlight % items in strings.
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
121 syn match pikeFormat display "%\%(\d\+\$\)\=[-+' #0*]*\%(\d*\|\*\|\*\d\+\$\)\%(\.\%(\d*\|\*\|\*\d\+\$\)\)\=\%([hlLjzt]\|ll\|hh\)\=\%([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
122 syn match pikeFormat display "%%" contained
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
123 syn region pikeString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,pikeFormat,@Spell keepend
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
124 syn region pikeMlString start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeFormat,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
125 else
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
126 syn region pikeString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,@Spell
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
127 syn region pikeMlString transparent start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
128 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
130 " Use SQL-syntax highlighting in multiline string if it starts with
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
131 " a standard SQL keyword
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
132 syn case ignore
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
133 " FIXME Use explicit newline match to cover up a bug in the regexp engine
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
134 " If the kludge is not used, the match will only start unless at least a space
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
135 " follows the initial doublequote on the first line (or the keyword is on
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
136 " the first line).
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
137 syn region pikeEmbeddedString contained start=+\%(#"\n\?\)\@2<=\_s*\%(SELECT\|INSERT\|UPDATE\|DELETE\|WITH\|CREATE\|DROP\|ALTER\)\>+ skip=+\\\\\|\\"+ end=+[\\#]\@1<!"+ contains=@pikeSQL,pikeBindings keepend
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
138 syn case match
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
139
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
140 syn match pikeBindings display contained ":\@1<!:\I\i*"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
142 syn match pikeCharacter "'[^\\']'" contains=pikeDelimiterSQ
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
143 syn match pikeCharacter "'[^']*'" contains=pikeSpecial,pikeDelimiterSQ
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
144 syn match pikeSpecialError "'\\[^'\"?\\abefnrtv]'"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
145 syn match pikeDelimiterDQ display +"+ contained
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
146 syn match pikeDelimiterSQ display +'+ contained
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
147
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
148 "when wanted, highlight trailing white space
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
149 if exists("c_space_errors")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
150 if !exists("c_no_trail_space_error")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
151 syn match pikeSpaceError display excludenl "\s\+$"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
152 endif
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
153 if !exists("c_no_tab_space_error")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
154 syn match pikeSpaceError display " \+\ze\t"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
155 endif
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
156 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 "integer number, or floating point number without a dot and with "f".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 syn case ignore
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
160 syn match pikeNumbers display transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctalError,pikeOctal
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
161 " Same, but without octal error (for comments)
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
162 syn match pikeNumbersCom display contained transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctal
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
163 syn match pikeNumber display contained "\<\d\+\%(u\=l\{0,2}\|ll\=u\)\>"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
164 "hex number
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
165 syn match pikeNumber display contained "\<0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
166 " Flag the first zero of an octal number as something special
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
167 syn match pikeOctal display contained "\<0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=pikeOctalZero
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
168 syn match pikeOctalZero display contained "\<0"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 "floating point number, with dot, optional exponent
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
170 syn match pikeFloat display contained "\<\d\+\%(f\|\.[0-9.]\@!\d*\%(e[-+]\=\d\+\)\=[fl]\=\)"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 "floating point number, starting with a dot, optional exponent
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
172 syn match pikeFloat display contained "[0-9.]\@1<!\.\d\+\%(e[-+]\=\d\+\)\=[fl]\=\>"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 "floating point number, without dot, with exponent
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
174 syn match pikeFloat display contained "\<\d\+e[-+]\=\d\+[fl]\=\>"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
175
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
176 "hexadecimal floating point number, two variants, with exponent
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
177 syn match pikeFloat display contained "\<0x\%(\x\+\.\?\|\x*\.\x\+\)p[-+]\=\d\+[fl]\=\>"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
178
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
179 " flag an octal number with wrong digits
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
180 syn match pikeOctalError display contained "\<0\o*[89]\d*"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 syn case match
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 if exists("c_comment_strings")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 " A comment can contain pikeString, pikeCharacter and pikeNumber.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 " But a "*/" inside a pikeString in a pikeComment DOES end the comment! So we
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 " need to use a special type of pikeString: pikeCommentString, which also ends on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 " "*/", and sees a "*" at the start of the line as comment again.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 " Unfortunately this doesn't very well work for // type of comments :-(
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
189 syn match pikeCommentSkip contained "^\s*\*\%($\|\s\+\)"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
190 syn region pikeCommentString contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\ze\*/+ contains=pikeSpecial,pikeCommentSkip
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
191 syn region pikeComment2String contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=pikeSpecial
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
192 syn region pikeCommentL start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeComment2String,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
193 if exists("c_no_comment_fold")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
194 " Use "extend" here to have preprocessor lines not terminate halfway a
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
195 " comment.
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
196 syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
197 else
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
198 syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
199 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 else
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
201 syn region pikeCommentL start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
202 if exists("c_no_comment_fold")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
203 syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
204 else
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
205 syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
206 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 endif
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
208 " keep a // comment separately, it terminates a preproc. conditional
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
209 syn match pikeCommentError display "\*/"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
210 syn match pikeCommentStartError display "/\ze\*" contained
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
211
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
212 syn keyword pikeOperator sizeof
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
213 syn keyword pikeOperator typeof _typeof _refs
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
214 syn keyword pikeOperator zero_type intp stringp arrayp mappingp multisetp
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
215 syn keyword pikeOperator objectp functionp programp callablep destructedp
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
216 syn keyword pikeOperator object_variablep undefinedp
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
217 syn keyword pikeOperator allocate equal
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
218 syn keyword pikeOperator aggregate aggregate_mapping aggregate_multiset
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
219 syn keyword pikeOperator map filter search replace reverse column rows
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
220 syn keyword pikeOperator indices values mkmapping mkmultiset m_delete sort
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
221 syn keyword pikeOperator m_delete destruct
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
222 syn keyword pikeOperator create _destruct _sprintf cast _encode _decode
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
223 syn keyword pikeOperator __hash _sizeof _values _indices __INIT _equal
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
224 syn keyword pikeOperator _is_type _m_delete _get_iterator _search
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
225 syn keyword pikeOperator _serialize _deserialize _sqrt _types _random
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
226 syn keyword pikeOperator _size_object
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
228 syn keyword pikeType int void
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
229 syn keyword pikeType float
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
230 syn keyword pikeType bool string array mapping multiset mixed
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
231 syn keyword pikeType object function program auto
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
232
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
233 syn keyword pikeType this this_object this_program
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
234 syn keyword pikeType sprintf_args sprintf_format sprintf_result
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
235 syn keyword pikeType strict_sprintf_format
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
236
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
237 syn keyword pikeStructure class enum typedef inherit import
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
238 syn keyword pikeTypedef typedef
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
239 syn keyword pikeStorageClass private protected public constant final variant
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
240 syn keyword pikeStorageClass optional inline extern static __deprecated__ lambda
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
241
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
242 syn keyword pikeConstant __LINE__ __FILE__ __DIR__ __DATE__ __TIME__
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
243 syn keyword pikeConstant __AUTO_BIGNUM__ __NT__
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
244 syn keyword pikeConstant __BUILD__ __COUNTER__ _MAJOR__ __MINOR__ __VERSION__
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
245 syn keyword pikeConstant __REAL_BUILD__ _REAL_MAJOR__ __REAL_MINOR__
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
246 syn keyword pikeConstant __REAL_VERSION__ __PIKE__ UNDEFINED
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
248 " These should actually only be parsed in preprocessor conditionals
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
249 syn keyword pikeCppOperator contained defined constant efun _Pragma
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
250
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
251 syn keyword pikeBoolean true false
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
252
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
253 syn match pikeCppPrefix display "^\s*\zs#\s*[a-z]\+" contained
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
254 syn region pikePreCondit start="^\s*#\s*\%(if\%(n\?def\)\?\|el\%(se\)\?if\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
255 syn match pikePreConditMatch display "^\s*\zs#\s*\%(else\|endif\)\>"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
256 if !exists("c_no_if0")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
257 syn cluster pikeCppOutInGroup contains=pikeCppInIf,pikeCppInElse,pikeCppInElse2,pikeCppOutIf,pikeCppOutIf2,pikeCppOutElse,pikeCppInSkip,pikeCppOutSkip
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
258 syn region pikeCppOutWrapper start="^\s*\zs#\s*if\s\+0\+\s*\%($\|//\|/\*\|&\)" end=".\@=\|$" contains=pikeCppOutIf,pikeCppOutElse,@NoSpell fold
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
259 syn region pikeCppOutIf contained start="0\+" matchgroup=pikeCppOutWrapper end="^\s*#\s*endif\>" contains=pikeCppOutIf2,pikeCppOutElse
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
260 if !exists("c_no_if0_fold")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
261 syn region pikeCppOutIf2 contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell fold
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
262 else
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
263 syn region pikeCppOutIf2 contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
264 endif
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
265 syn region pikeCppOutElse contained matchgroup=pikeCppOutWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
266 syn region pikeCppInWrapper start="^\s*\zs#\s*if\s\+0*[1-9]\d*\s*\%($\|//\|/\*\||\)" end=".\@=\|$" contains=pikeCppInIf,pikeCppInElse fold
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
267 syn region pikeCppInIf contained matchgroup=pikeCppInWrapper start="\d\+" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
268 if !exists("c_no_if0_fold")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
269 syn region pikeCppInElse contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2 fold
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
270 else
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
271 syn region pikeCppInElse contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
272 endif
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
273 syn region pikeCppInElse2 contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)\%([^/]\|/[^/*]\)*" end="^\ze\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip,@Spell
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
274 syn region pikeCppOutSkip contained start="^\s*#\s*if\%(n\?def\)\?\>" skip="\\$" end="^\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
275 syn region pikeCppInSkip contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(if\s\+\%(\d\+\s*\%($\|//\|/\*\||\|&\)\)\@!\|ifn\?def\>\)" skip="\\$" end="^\s*#\s*endif\>" containedin=pikeCppOutElse,pikeCppInIf,pikeCppInSkip contains=TOP,pikePreProc
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
276 endif
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
277 syn region pikeIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeDelimiterDQ keepend
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
278 syn match pikeIncluded display contained "<[^>]*>"
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
279 syn match pikeInclude display "^\s*\zs#\s*include\>\s*["<]" contains=pikeIncluded
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
280 syn cluster pikePreProcGroup contains=pikeIncluded,pikeInclude,pikeEmbeddedString,pikeCppOutWrapper,pikeCppInWrapper,@pikeCppOutInGroup,pikeFormat,pikeMlString,pikeCommentStartError,@pikeBadGroup,pikeWord
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
281 syn region pikeDefine start="^\s*\zs#\s*\%(define\|undef\)\>" skip="\\$" end="$" keepend contains=@pikeStmt,@pikeBadGroup
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
282 syn region pikePreProc start="^\s*\zs#\s*\%(pragma\|charset\|pike\|require\|string\|line\|warning\|error\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix,@Spell,pikeConstant
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
283
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
284 syn match pikeAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@pikeAutodoc containedin=pikeComment,pikeCommentL
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
285 syn cluster pikeCommentGroup add=pikeAutodocReal
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
286 syn cluster pikePreProcGroup add=pikeAutodocReal
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288 " Highlight User Labels
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 " Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
290 syn match pikeUserLabel display "\%(^\|[{};]\)\zs\I\i*\s*\ze:\%([^:]\|$\)" contained contains=NONE
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
291 syn match pikeUserLabel display "\%(\<\%(break\|continue\)\_s\+\)\@10<=\I\i*" contained contains=NONE
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
292 syn match pikeUserLabel display "\%(\<case\)\@5<=\s\+[^<()[\]{},;:]\+\ze::\@!" contained contains=pikeDelimiterDQ,pikeDelimiterSQ
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
293
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
294 syn match pikeMappIndex display contained "[^<()[\]{},;:]\+\ze::\@!" contains=pikeDelimiterDQ,pikeDelimiterSQ
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
295 syn match pikeSoftCast display contained "\[[ \t\v\r\n.a-zA-Z0-9_():,|\+]" contains=NONE
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
297 if exists("c_minlines")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
298 let b:c_minlines = c_minlines
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
299 else
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
300 if !exists("c_no_if0")
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
301 let b:c_minlines = 400 " #if 0 constructs can be long
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
302 else
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
303 let b:c_minlines = 200 " mostly for multiline strings
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
304 endif
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
305 endif
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
306 exec "syn sync ccomment pikeComment minlines=" . b:c_minlines
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
307 syn sync match pikeMlStringSync grouphere pikeMlString +^[^"#]\+#\"+
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
308 syn sync match pikeAutodocSync grouphere pikeCommentL "^\s*//!"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310 " Define the default highlighting.
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
311 " Only used when an item doesn't have highlighting yet
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
312 hi def link pikeFormat SpecialChar
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
313 hi def link pikeMlString String
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
314 hi def link pikeCommentL Comment
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
315 hi def link pikeCommentStart Comment
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
316 hi def link pikeLabel Label
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
317 hi def link pikeUserLabel Identifier
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
318 hi def link pikeConditional Conditional
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
319 hi def link pikeRepeat Repeat
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
320 hi def link pikeCharacter Character
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
321 hi def link pikeDelimiterDQ Delimiter
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
322 hi def link pikeDelimiterSQ Delimiter
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
323 hi def link pikeNumber Number
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
324 hi def link pikeOctal Number
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
325 hi def link pikeOctalZero PreProc " link this to Error if you want
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
326 hi def link pikeFloat Float
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
327 hi def link pikeOctalError Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
328 hi def link pikeCommentError Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
329 hi def link pikeCommentStartError Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
330 hi def link pikeSpaceError Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
331 hi def link pikeSpecialError Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
332 hi def link pikeOperator Operator
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
333 hi def link pikeCppOperator Operator
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
334 hi def link pikeStructure Structure
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
335 hi def link pikeTypedef Typedef
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
336 hi def link pikeStorageClass StorageClass
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
337 hi def link pikeInclude Include
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
338 hi def link pikeCppPrefix PreCondit
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
339 hi def link pikePreProc PreProc
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
340 hi def link pikeDefine Macro
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
341 hi def link pikeIncluded String
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
342 hi def link pikeError Error
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
343 hi def link pikeDebug Debug
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
344 hi def link pikeException Exception
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
345 hi def link pikeStatement Statement
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
346 hi def link pikeType Type
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
347 hi def link pikeConstant Constant
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
348 hi def link pikeBoolean Boolean
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
349 hi def link pikeCommentString String
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
350 hi def link pikeComment2String String
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
351 hi def link pikeCommentSkip Comment
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
352 hi def link pikeString String
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
353 hi def link pikeComment Comment
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
354 hi def link pikeSpecial SpecialChar
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
355 hi def link pikeTodo Todo
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
356 hi def link pikeBadContinuation Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
357
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
358 hi def link pikeCppInWrapper PreCondit
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
359 hi def link pikeCppOutWrapper PreCondit
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
360 hi def link pikePreConditMatch PreCondit
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
361
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
362 hi def link pikeCppOutSkip Comment
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
363 hi def link pikeCppInElse2 Comment
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
364 hi def link pikeCppOutIf2 Comment
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
365 hi def link pikeCppOut Comment
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
367 hi def link pikePredef Statement
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
368 hi def link pikeBindings Identifier
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
369 hi def link pikeMappIndex Identifier
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
370 hi def link pikeSoftCast Type
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
371 hi def link pikeBadGroup Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
372 hi def link pikeBadPClose Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
373 hi def link pikeBadAClose Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
374 hi def link pikeBadBClose Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
375 hi def link pikeBadSPClose Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
376 hi def link pikeBadSAClose Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
377 hi def link pikeBadSBClose Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
378 hi def link pikeBadSPAClose Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
379 hi def link pikeBadSBAClose Error
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
380 hi def link pikeBadSClose Error
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 let b:current_syntax = "pike"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383
13125
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
384 let &cpo = s:cpo_save
371ceeebbdaa Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
385 unlet s:cpo_save
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
386 " vim: ts=8