annotate runtime/syntax/lpc.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children 67300faee616
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
1 " Vim syntax file
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
2 " Language: LPC
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
3 " Maintainer: Shizhu Pan <poet@mudbuilder.net>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
4 " URL: http://poet.tomud.com/pub/lpc.vim.bz2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
5 " Last Change: 2003 May 11
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
6 " Comments: If you are using Vim 6.2 or later, see :h lpc.vim for
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
7 " file type recognizing, if not, you had to use modeline.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
8
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
9
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
10 " Nodule: This is the start nodule. {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
11
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
12 " For version 5.x: Clear all syntax items
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
13 " For version 6.x: Quit when a syntax file was already loaded
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
14 if version < 600
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
15 syntax clear
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
16 elseif exists("b:current_syntax")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
17 finish
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
18 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
19
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
20 " Nodule: Keywords {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
21
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
22 " LPC keywords
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
23 " keywords should always be highlighted so "contained" is not used.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
24 syn cluster lpcKeywdGrp contains=lpcConditional,lpcLabel,lpcOperator,lpcRepeat,lpcStatement,lpcModifier,lpcReserved
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
25
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
26 syn keyword lpcConditional if else switch
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
27 syn keyword lpcLabel case default
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
28 syn keyword lpcOperator catch efun in inherit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
29 syn keyword lpcRepeat do for foreach while
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
30 syn keyword lpcStatement break continue return
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
31
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
32 syn match lpcEfunError /efun[^:]/ display
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
33
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
34 " Illegal to use keyword as function
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
35 " It's not working, maybe in the next version.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
36 syn keyword lpcKeywdError contained if for foreach return switch while
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
37
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
38 " These are keywords only because they take lvalue or type as parameter,
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
39 " so these keywords should only be used as function but cannot be names of
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
40 " user-defined functions.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
41 syn keyword lpcKeywdFunc new parse_command sscanf time_expression
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
42
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
43 " Nodule: Type and modifiers {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
44
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
45 " Type names list.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
46
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
47 " Special types
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
48 syn keyword lpcType void mixed unknown
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
49 " Scalar/Value types.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
50 syn keyword lpcType int float string
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
51 " Pointer types.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
52 syn keyword lpcType array buffer class function mapping object
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
53 " Other types.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
54 if exists("lpc_compat_32")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
55 syn keyword lpcType closure status funcall
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
56 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
57 syn keyword lpcError closure status
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
58 syn keyword lpcType multiset
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
59 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
60
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
61 " Type modifier.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
62 syn keyword lpcModifier nomask private public
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
63 syn keyword lpcModifier varargs virtual
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
64
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
65 " sensible modifiers
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
66 if exists("lpc_pre_v22")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
67 syn keyword lpcReserved nosave protected ref
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
68 syn keyword lpcModifier static
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
69 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
70 syn keyword lpcError static
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
71 syn keyword lpcModifier nosave protected ref
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
72 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
73
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
74 " Nodule: Applies {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
75
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
76 " Match a function declaration or function pointer
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
77 syn match lpcApplyDecl excludenl /->\h\w*(/me=e-1 contains=lpcApplies transparent display
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
78
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
79 " We should note that in func_spec.c the efun definition syntax is so
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
80 " complicated that I use such a long regular expression to describe.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
81 syn match lpcLongDecl excludenl /\(\s\|\*\)\h\+\s\h\+(/me=e-1 contains=@lpcEfunGroup,lpcType,@lpcKeywdGrp transparent display
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
82
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
83 " this is form for all functions
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
84 " ->foo() form had been excluded
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
85 syn match lpcFuncDecl excludenl /\h\w*(/me=e-1 contains=lpcApplies,@lpcEfunGroup,lpcKeywdError transparent display
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
86
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
87 " The (: :) parenthesis or $() forms a function pointer
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
88 syn match lpcFuncName /(:\s*\h\+\s*:)/me=e-1 contains=lpcApplies,@lpcEfunGroup transparent display contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
89 syn match lpcFuncName /(:\s*\h\+,/ contains=lpcApplies,@lpcEfunGroup transparent display contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
90 syn match lpcFuncName /\$(\h\+)/ contains=lpcApplies,@lpcEfunGroup transparent display contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
91
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
92 " Applies list.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
93 " system applies
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
94 syn keyword lpcApplies contained __INIT clean_up create destructor heart_beat id init move_or_destruct reset
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
95 " interactive
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
96 syn keyword lpcApplies contained catch_tell logon net_dead process_input receive_message receive_snoop telnet_suboption terminal_type window_size write_prompt
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
97 " master applies
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
98 syn keyword lpcApplies contained author_file compile_object connect crash creator_file domain_file epilog error_handler flag get_bb_uid get_root_uid get_save_file_name log_error make_path_absolute object_name preload privs_file retrieve_ed_setup save_ed_setup slow_shutdown
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
99 syn keyword lpcApplies contained valid_asm valid_bind valid_compile_to_c valid_database valid_hide valid_link valid_object valid_override valid_read valid_save_binary valid_seteuid valid_shadow valid_socket valid_write
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
100 " parsing
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
101 syn keyword lpcApplies contained inventory_accessible inventory_visible is_living parse_command_adjectiv_id_list parse_command_adjective_id_list parse_command_all_word parse_command_id_list parse_command_plural_id_list parse_command_prepos_list parse_command_users parse_get_environment parse_get_first_inventory parse_get_next_inventory parser_error_message
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
102
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
103
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
104 " Nodule: Efuns {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
105
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
106 syn cluster lpcEfunGroup contains=lpc_efuns,lpcOldEfuns,lpcNewEfuns,lpcKeywdFunc
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
107
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
108 " Compat32 efuns
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
109 if exists("lpc_compat_32")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
110 syn keyword lpc_efuns contained closurep heart_beat_info m_delete m_values m_indices query_once_interactive strstr
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
111 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
112 syn match lpcErrFunc /#`\h\w*/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
113 " Shell compatible first line comment.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
114 syn region lpcCommentFunc start=/^#!/ end=/$/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
115 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
116
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
117 " pre-v22 efuns which are removed in newer versions.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
118 syn keyword lpcOldEfuns contained tail dump_socket_status
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
119
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
120 " new efuns after v22 should be added here!
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
121 syn keyword lpcNewEfuns contained socket_status
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
122
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
123 " LPC efuns list.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
124 " DEBUG efuns Not included.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
125 " New efuns should NOT be added to this list, see v22 efuns above.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
126 " Efuns list {{{2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
127 syn keyword lpc_efuns contained acos add_action all_inventory all_previous_objects allocate allocate_buffer allocate_mapping apply arrayp asin atan author_stats
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
128 syn keyword lpc_efuns contained bind break_string bufferp
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
129 syn keyword lpc_efuns contained cache_stats call_other call_out call_out_info call_stack capitalize catch ceil check_memory children classp clear_bit clone_object clonep command commands copy cos cp crc32 crypt ctime
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
130 syn keyword lpc_efuns contained db_close db_commit db_connect db_exec db_fetch db_rollback db_status debug_info debugmalloc debug_message deep_inherit_list deep_inventory destruct disable_commands disable_wizard domain_stats dumpallobj dump_file_descriptors dump_prog
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
131 syn keyword lpc_efuns contained each ed ed_cmd ed_start enable_commands enable_wizard environment error errorp eval_cost evaluate exec exp explode export_uid external_start
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
132 syn keyword lpc_efuns contained fetch_variable file_length file_name file_size filter filter_array filter_mapping find_call_out find_living find_object find_player first_inventory floatp floor flush_messages function_exists function_owner function_profile functionp functions
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
133 syn keyword lpc_efuns contained generate_source get_char get_config get_dir geteuid getuid
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
134 syn keyword lpc_efuns contained heart_beats
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
135 syn keyword lpc_efuns contained id_matrix implode in_edit in_input inherit_list inherits input_to interactive intp
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
136 syn keyword lpc_efuns contained keys
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
137 syn keyword lpc_efuns contained link living livings load_object localtime log log10 lookat_rotate lower_case lpc_info
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
138 syn keyword lpc_efuns contained malloc_check malloc_debug malloc_status map map_array map_delete map_mapping mapp master match_path max_eval_cost member_array memory_info memory_summary message mkdir moncontrol move_object mud_status
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
139 syn keyword lpc_efuns contained named_livings network_stats next_bit next_inventory notify_fail nullp
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
140 syn keyword lpc_efuns contained objectp objects oldcrypt opcprof origin
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
141 syn keyword lpc_efuns contained parse_add_rule parse_add_synonym parse_command parse_dump parse_init parse_my_rules parse_refresh parse_remove parse_sentence pluralize pointerp pow present previous_object printf process_string process_value program_info
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
142 syn keyword lpc_efuns contained query_ed_mode query_heart_beat query_host_name query_idle query_ip_name query_ip_number query_ip_port query_load_average query_notify_fail query_privs query_replaced_program query_shadowing query_snoop query_snooping query_verb
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
143 syn keyword lpc_efuns contained random read_buffer read_bytes read_file receive reclaim_objects refs regexp reg_assoc reload_object remove_action remove_call_out remove_interactive remove_shadow rename repeat_string replace_program replace_string replaceable reset_eval_cost resolve restore_object restore_variable rm rmdir rotate_x rotate_y rotate_z rusage
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
144 syn keyword lpc_efuns contained save_object save_variable say scale set_author set_bit set_eval_limit set_heart_beat set_hide set_light set_living_name set_malloc_mask set_privs set_reset set_this_player set_this_user seteuid shadow shallow_inherit_list shout shutdown sin sizeof snoop socket_accept socket_acquire socket_address socket_bind socket_close socket_connect socket_create socket_error socket_listen socket_release socket_write sort_array sprintf sqrt stat store_variable strcmp stringp strlen strsrch
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
145 syn keyword lpc_efuns contained tan tell_object tell_room terminal_colour test_bit this_interactive this_object this_player this_user throw time to_float to_int trace traceprefix translate typeof
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
146 syn keyword lpc_efuns contained undefinedp unique_array unique_mapping upper_case uptime userp users
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
147 syn keyword lpc_efuns contained values variables virtualp
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
148 syn keyword lpc_efuns contained wizardp write write_buffer write_bytes write_file
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
149
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
150 " Nodule: Constants {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
151
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
152 " LPC Constants.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
153 " like keywords, constants are always highlighted, be careful to choose only
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
154 " the constants we used to add to this list.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
155 syn keyword lpcConstant __ARCH__ __COMPILER__ __DIR__ __FILE__ __OPTIMIZATION__ __PORT__ __VERSION__
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
156 " Defines in options.h are all predefined in LPC sources surrounding by
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
157 " two underscores. Do we need to include all of that?
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
158 syn keyword lpcConstant __SAVE_EXTENSION__ __HEARTBEAT_INTERVAL__
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
159 " from the documentation we know that these constants remains only for
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
160 " backward compatibility and should not be used any more.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
161 syn keyword lpcConstant HAS_ED HAS_PRINTF HAS_RUSAGE HAS_DEBUG_LEVEL
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
162 syn keyword lpcConstant MUD_NAME F__THIS_OBJECT
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
163
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
164 " Nodule: Todo for this file. {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
165
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
166 " TODO : need to check for LPC4 syntax and other series of LPC besides
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
167 " v22, b21 and l32, if you had a good idea, contact me at poet@mudbuilder.net
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
168 " and I will be appreciated about that.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
169
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
170 " Notes about some FAQ:
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
171 "
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
172 " About variables : We adopts the same behavior for C because almost all the
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
173 " LPC programmers are also C programmers, so we don't need separate settings
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
174 " for C and LPC. That is the reason why I don't change variables like
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
175 " "c_no_utf"s to "lpc_no_utf"s.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
176 "
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
177 " Copy : Some of the following seems to be copied from c.vim but not quite
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
178 " the same in details because the syntax for C and LPC is different.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
179 "
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
180 " Color scheme : this syntax file had been thouroughly tested to work well
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
181 " for all of the dark-backgrounded color schemes Vim has provided officially,
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
182 " and it should be quite Ok for all of the bright-backgrounded color schemes,
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
183 " of course it works best for the color scheme that I am using, download it
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
184 " from http://poet.tomud.com/pub/ps_color.vim.bz2 if you want to try it.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
185 "
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
186
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
187 " Nodule: String and Character {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
188
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
189
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
190 " String and Character constants
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
191 " Highlight special characters (those which have a backslash) differently
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
192 syn match lpcSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
193 if !exists("c_no_utf")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
194 syn match lpcSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
195 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
196
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
197 " LPC version of sprintf() format,
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
198 syn match lpcFormat display "%\(\d\+\)\=[-+ |=#@:.]*\(\d\+\)\=\('\I\+'\|'\I*\\'\I*'\)\=[OsdicoxXf]" contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
199 syn match lpcFormat display "%%" contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
200 syn region lpcString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=lpcSpecial,lpcFormat
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
201 " lpcCppString: same as lpcString, but ends at end of line
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
202 syn region lpcCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=lpcSpecial,lpcFormat
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
203
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
204 " LPC preprocessor for the text formatting short cuts
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
205 " Thanks to Dr. Charles E. Campbell <cec@gryphon.gsfc.nasa.gov>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
206 " he suggests the best way to do this.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
207 syn region lpcTextString start=/@\z(\h\w*\)$/ end=/^\z1/ contains=lpcSpecial
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
208 syn region lpcArrayString start=/@@\z(\h\w*\)$/ end=/^\z1/ contains=lpcSpecial
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
209
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
210 " Character
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
211 syn match lpcCharacter "L\='[^\\]'"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
212 syn match lpcCharacter "L'[^']*'" contains=lpcSpecial
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
213 syn match lpcSpecialError "L\='\\[^'\"?\\abefnrtv]'"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
214 syn match lpcSpecialCharacter "L\='\\['\"?\\abefnrtv]'"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
215 syn match lpcSpecialCharacter display "L\='\\\o\{1,3}'"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
216 syn match lpcSpecialCharacter display "'\\x\x\{1,2}'"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
217 syn match lpcSpecialCharacter display "L'\\x\x\+'"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
218
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
219 " Nodule: White space {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
220
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
221 " when wanted, highlight trailing white space
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
222 if exists("c_space_errors")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
223 if !exists("c_no_trail_space_error")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
224 syn match lpcSpaceError display excludenl "\s\+$"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
225 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
226 if !exists("c_no_tab_space_error")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
227 syn match lpcSpaceError display " \+\t"me=e-1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
228 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
229 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
230
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
231 " Nodule: Parenthesis and brackets {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
232
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
233 " catch errors caused by wrong parenthesis and brackets
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
234 syn cluster lpcParenGroup contains=lpcParenError,lpcIncluded,lpcSpecial,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcUserCont,lpcUserLabel,lpcBitField,lpcCommentSkip,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
235 syn region lpcParen transparent start='(' end=')' contains=ALLBUT,@lpcParenGroup,lpcCppParen,lpcErrInBracket,lpcCppBracket,lpcCppString,@lpcEfunGroup,lpcApplies,lpcKeywdError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
236 " lpcCppParen: same as lpcParen but ends at end-of-line; used in lpcDefine
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
237 syn region lpcCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@lpcParenGroup,lpcErrInBracket,lpcParen,lpcBracket,lpcString,@lpcEfunGroup,lpcApplies,lpcKeywdError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
238 syn match lpcParenError display ")"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
239 syn match lpcParenError display "\]"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
240 " for LPC:
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
241 " Here we should consider the array ({ }) parenthesis and mapping ([ ])
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
242 " parenthesis and multiset (< >) parenthesis.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
243 syn match lpcErrInParen display contained "[^^]{"ms=s+1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
244 syn match lpcErrInParen display contained "\(}\|\]\)[^)]"me=e-1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
245 syn region lpcBracket transparent start='\[' end=']' contains=ALLBUT,@lpcParenGroup,lpcErrInParen,lpcCppParen,lpcCppBracket,lpcCppString,@lpcEfunGroup,lpcApplies,lpcFuncName,lpcKeywdError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
246 " lpcCppBracket: same as lpcParen but ends at end-of-line; used in lpcDefine
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
247 syn region lpcCppBracket transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@lpcParenGroup,lpcErrInParen,lpcParen,lpcBracket,lpcString,@lpcEfunGroup,lpcApplies,lpcFuncName,lpcKeywdError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
248 syn match lpcErrInBracket display contained "[);{}]"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
249
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
250 " Nodule: Numbers {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
251
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
252 " integer number, or floating point number without a dot and with "f".
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
253 syn case ignore
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
254 syn match lpcNumbers display transparent "\<\d\|\.\d" contains=lpcNumber,lpcFloat,lpcOctalError,lpcOctal
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
255 " Same, but without octal error (for comments)
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
256 syn match lpcNumbersCom display contained transparent "\<\d\|\.\d" contains=lpcNumber,lpcFloat,lpcOctal
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
257 syn match lpcNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
258 " hex number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
259 syn match lpcNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
260 " Flag the first zero of an octal number as something special
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
261 syn match lpcOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=lpcOctalZero
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
262 syn match lpcOctalZero display contained "\<0"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
263 syn match lpcFloat display contained "\d\+f"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
264 " floating point number, with dot, optional exponent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
265 syn match lpcFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
266 " floating point number, starting with a dot, optional exponent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
267 syn match lpcFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
268 " floating point number, without dot, with exponent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
269 syn match lpcFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
270 " flag an octal number with wrong digits
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
271 syn match lpcOctalError display contained "0\o*[89]\d*"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
272 syn case match
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
273
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
274 " Nodule: Comment string {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
275
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
276 " lpcCommentGroup allows adding matches for special things in comments
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
277 syn keyword lpcTodo contained TODO FIXME XXX
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
278 syn cluster lpcCommentGroup contains=lpcTodo
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
279
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
280 if exists("c_comment_strings")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
281 " A comment can contain lpcString, lpcCharacter and lpcNumber.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
282 syntax match lpcCommentSkip contained "^\s*\*\($\|\s\+\)"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
283 syntax region lpcCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=lpcSpecial,lpcCommentSkip
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
284 syntax region lpcComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=lpcSpecial
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
285 syntax region lpcCommentL start="//" skip="\\$" end="$" keepend contains=@lpcCommentGroup,lpcComment2String,lpcCharacter,lpcNumbersCom,lpcSpaceError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
286 syntax region lpcComment matchgroup=lpcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@lpcCommentGroup,lpcCommentStartError,lpcCommentString,lpcCharacter,lpcNumbersCom,lpcSpaceError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
287 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
288 syn region lpcCommentL start="//" skip="\\$" end="$" keepend contains=@lpcCommentGroup,lpcSpaceError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
289 syn region lpcComment matchgroup=lpcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@lpcCommentGroup,lpcCommentStartError,lpcSpaceError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
290 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
291 " keep a // comment separately, it terminates a preproc. conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
292 syntax match lpcCommentError display "\*/"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
293 syntax match lpcCommentStartError display "/\*"me=e-1 contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
294
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
295 " Nodule: Pre-processor {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
296
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
297 syn region lpcPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=lpcComment,lpcCppString,lpcCharacter,lpcCppParen,lpcParenError,lpcNumbers,lpcCommentError,lpcSpaceError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
298 syn match lpcPreCondit display "^\s*#\s*\(else\|endif\)\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
299 if !exists("c_no_if0")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
300 syn region lpcCppOut start="^\s*#\s*if\s\+0\+\>" end=".\|$" contains=lpcCppOut2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
301 syn region lpcCppOut2 contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=lpcSpaceError,lpcCppSkip
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
302 syn region lpcCppSkip contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=lpcSpaceError,lpcCppSkip
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
303 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
304 syn region lpcIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
305 syn match lpcIncluded display contained "<[^>]*>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
306 syn match lpcInclude display "^\s*#\s*include\>\s*["<]" contains=lpcIncluded
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
307 syn match lpcLineSkip "\\$"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
308 syn cluster lpcPreProcGroup contains=lpcPreCondit,lpcIncluded,lpcInclude,lpcDefine,lpcErrInParen,lpcErrInBracket,lpcUserLabel,lpcSpecial,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom,lpcString,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcParen,lpcBracket,lpcMulti,lpcKeywdError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
309 syn region lpcDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@lpcPreProcGroup
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
310
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
311 if exists("lpc_pre_v22")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
312 syn region lpcPreProc start="^\s*#\s*\(pragma\>\|echo\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@lpcPreProcGroup
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
313 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
314 syn region lpcPreProc start="^\s*#\s*\(pragma\>\|echo\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@lpcPreProcGroup
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
315 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
316
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
317 " Nodule: User labels {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
318
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
319 " Highlight Labels
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
320 " User labels in LPC is not allowed, only "case x" and "default" is supported
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
321 syn cluster lpcMultiGroup contains=lpcIncluded,lpcSpecial,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcUserCont,lpcUserLabel,lpcBitField,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom,lpcCppParen,lpcCppBracket,lpcCppString,lpcKeywdError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
322 syn region lpcMulti transparent start='\(case\|default\|public\|protected\|private\)' skip='::' end=':' contains=ALLBUT,@lpcMultiGroup
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
323
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
324 syn cluster lpcLabelGroup contains=lpcUserLabel
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
325 syn match lpcUserCont display "^\s*lpc:$" contains=@lpcLabelGroup
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
326
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
327 " Don't want to match anything
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
328 syn match lpcUserLabel display "lpc" contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
329
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
330 " Nodule: Initializations {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
331
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
332 if exists("c_minlines")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
333 let b:c_minlines = c_minlines
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
334 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
335 if !exists("c_no_if0")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
336 let b:c_minlines = 50 " #if 0 constructs can be long
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
337 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
338 let b:c_minlines = 15 " mostly for () constructs
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
339 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
340 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
341 exec "syn sync ccomment lpcComment minlines=" . b:c_minlines
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
342
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
343 " Make sure these options take place since we no longer depend on file type
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
344 " plugin for C
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
345 setlocal cindent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
346 setlocal fo-=t fo+=croql
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
347 setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
348 set cpo-=C
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
349
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
350 " Win32 can filter files in the browse dialog
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
351 if has("gui_win32") && !exists("b:browsefilter")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
352 let b:browsefilter = "LPC Source Files (*.c *.d *.h)\t*.c;*.d;*.h\n" .
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
353 \ "LPC Data Files (*.scr *.o *.dat)\t*.scr;*.o;*.dat\n" .
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
354 \ "Text Documentation (*.txt)\t*.txt\n" .
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
355 \ "All Files (*.*)\t*.*\n"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
356 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
357
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
358 " Nodule: Highlight links {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
359
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
360 " Define the default highlighting.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
361 " For version 5.7 and earlier: only when not done already
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
362 " For version 5.8 and later: only when an item doesn't have highlighting yet
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
363 if version >= 508 || !exists("did_lpc_syn_inits")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
364 if version < 508
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
365 let did_lpc_syn_inits = 1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
366 command -nargs=+ HiLink hi link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
367 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
368 command -nargs=+ HiLink hi def link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
369 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
370
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
371 HiLink lpcModifier lpcStorageClass
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
372
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
373 HiLink lpcQuotedFmt lpcFormat
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
374 HiLink lpcFormat lpcSpecial
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
375 HiLink lpcCppString lpcString " Cpp means
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
376 " C Pre-Processor
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
377 HiLink lpcCommentL lpcComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
378 HiLink lpcCommentStart lpcComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
379 HiLink lpcUserLabel lpcLabel
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
380 HiLink lpcSpecialCharacter lpcSpecial
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
381 HiLink lpcOctal lpcPreProc
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
382 HiLink lpcOctalZero lpcSpecial " LPC will treat octal numbers
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
383 " as decimals, programmers should
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
384 " be aware of that.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
385 HiLink lpcEfunError lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
386 HiLink lpcKeywdError lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
387 HiLink lpcOctalError lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
388 HiLink lpcParenError lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
389 HiLink lpcErrInParen lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
390 HiLink lpcErrInBracket lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
391 HiLink lpcCommentError lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
392 HiLink lpcCommentStartError lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
393 HiLink lpcSpaceError lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
394 HiLink lpcSpecialError lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
395 HiLink lpcErrFunc lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
396
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
397 if exists("lpc_pre_v22")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
398 HiLink lpcOldEfuns lpc_efuns
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
399 HiLink lpcNewEfuns lpcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
400 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
401 HiLink lpcOldEfuns lpcReserved
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
402 HiLink lpcNewEfuns lpc_efuns
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
403 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
404 HiLink lpc_efuns lpcFunction
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
405
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
406 HiLink lpcReserved lpcPreProc
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
407 HiLink lpcTextString lpcString " This should be preprocessors, but
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
408 HiLink lpcArrayString lpcPreProc " let's make some difference
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
409 " between text and array
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
410
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
411 HiLink lpcIncluded lpcString
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
412 HiLink lpcCommentString lpcString
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
413 HiLink lpcComment2String lpcString
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
414 HiLink lpcCommentSkip lpcComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
415 HiLink lpcCommentFunc lpcComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
416
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
417 HiLink lpcCppSkip lpcCppOut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
418 HiLink lpcCppOut2 lpcCppOut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
419 HiLink lpcCppOut lpcComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
420
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
421 " Standard type below
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
422 HiLink lpcApplies Special
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
423 HiLink lpcCharacter Character
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
424 HiLink lpcComment Comment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
425 HiLink lpcConditional Conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
426 HiLink lpcConstant Constant
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
427 HiLink lpcDefine Macro
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
428 HiLink lpcError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
429 HiLink lpcFloat Float
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
430 HiLink lpcFunction Function
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
431 HiLink lpcIdentifier Identifier
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
432 HiLink lpcInclude Include
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
433 HiLink lpcLabel Label
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
434 HiLink lpcNumber Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
435 HiLink lpcOperator Operator
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
436 HiLink lpcPreCondit PreCondit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
437 HiLink lpcPreProc PreProc
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
438 HiLink lpcRepeat Repeat
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
439 HiLink lpcStatement Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
440 HiLink lpcStorageClass StorageClass
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
441 HiLink lpcString String
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
442 HiLink lpcStructure Structure
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
443 HiLink lpcSpecial LineNr
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
444 HiLink lpcTodo Todo
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
445 HiLink lpcType Type
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
446
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
447 delcommand HiLink
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
448 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
449
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
450 " Nodule: This is the end nodule. {{{1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
451
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
452 let b:current_syntax = "lpc"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
453
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
454 " vim:ts=8:nosta:sw=2:ai:si:
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
455 " vim600:set fdm=marker: }}}1