13125
|
1 " Vim syntax file
|
|
2 " Language: Cmod
|
|
3 " Current Maintainer: Stephen R. van den Berg <srb@cuci.nl>
|
|
4 " Last Change: 2018 Jan 23
|
|
5 " Version: 2.9
|
|
6 " Remark: Is used to edit Cmod files for Pike development.
|
|
7 " Remark: Includes a highlighter for any embedded Autodoc format.
|
|
8
|
|
9 " quit when a syntax file was already loaded
|
|
10 if exists("b:current_syntax")
|
|
11 finish
|
|
12 endif
|
|
13
|
|
14 let s:cpo_save = &cpo
|
|
15 set cpo&vim
|
|
16
|
|
17 " Read the C syntax to start with
|
|
18 runtime! syntax/c.vim
|
|
19 unlet b:current_syntax
|
|
20
|
|
21 if !exists("c_autodoc")
|
|
22 " For embedded Autodoc documentation
|
|
23 syn include @cmodAutodoc <sfile>:p:h/autodoc.vim
|
|
24 unlet b:current_syntax
|
|
25 endif
|
|
26
|
|
27 " Supports rotating amongst several same-level preprocessor conditionals
|
|
28 packadd! matchit
|
|
29 let b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"
|
|
30
|
|
31 " Cmod extensions
|
|
32 syn keyword cmodStatement __INIT INIT EXIT GC_RECURSE GC_CHECK
|
|
33 syn keyword cmodStatement EXTRA OPTIMIZE RETURN
|
|
34 syn keyword cmodStatement ADD_EFUN ADD_EFUN2 ADD_FUNCTION
|
|
35 syn keyword cmodStatement MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN
|
|
36
|
|
37 syn keyword cmodStatement SET_SVAL pop_n_elems pop_stack
|
|
38 syn keyword cmodStatement SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP
|
|
39 syn keyword cmodStatement SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP
|
|
40 syn keyword cmodStatement PTR_FROM_INT INHERIT_FROM_PTR
|
|
41 syn keyword cmodStatement DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC
|
|
42 syn keyword cmodStatement UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO
|
|
43 syn keyword cmodStatement MKPCHARP_STR APPLY_MASTER current_storage
|
|
44 syn keyword cmodStatement PIKE_MAP_VARIABLE size_shift
|
|
45 syn keyword cmodStatement THREADS_ALLOW THREADS_DISALLOW
|
|
46
|
|
47 syn keyword cmodStatement add_integer_constant ref_push_object
|
|
48 syn keyword cmodStatement push_string apply_svalue free_svalue
|
|
49 syn keyword cmodStatement get_inherit_storage get_storage
|
|
50 syn keyword cmodStatement make_shared_binary_string push_int64
|
|
51 syn keyword cmodStatement begin_shared_string end_shared_string
|
|
52 syn keyword cmodStatement add_ref fast_clone_object clone_object
|
|
53 syn keyword cmodStatement push_undefined push_int ref_push_string
|
|
54 syn keyword cmodStatement free_string push_ulongest free_object
|
|
55 syn keyword cmodStatement convert_stack_top_to_bignum push_array
|
|
56 syn keyword cmodStatement push_object reduce_stack_top_bignum
|
|
57 syn keyword cmodStatement push_static_text apply_current
|
|
58 syn keyword cmodStatement assign_svalue free_program destruct_object
|
|
59 syn keyword cmodStatement start_new_program low_inherit stack_swap
|
|
60 syn keyword cmodStatement generic_error_program end_program
|
|
61 syn keyword cmodStatement free_array apply_external copy_mapping
|
|
62 syn keyword cmodStatement push_constant_text ref_push_mapping
|
|
63 syn keyword cmodStatement mapping_insert mapping_string_insert_string
|
|
64 syn keyword cmodStatement f_aggregate_mapping f_aggregate apply
|
|
65 syn keyword cmodStatement push_mapping push_svalue low_mapping_lookup
|
|
66 syn keyword cmodStatement assign_svalues_no_free f_add
|
|
67 syn keyword cmodStatement push_empty_string stack_dup assign_lvalue
|
|
68 syn keyword cmodStatement low_mapping_string_lookup allocate_mapping
|
|
69 syn keyword cmodStatement copy_shared_string make_shared_binary_string0
|
|
70 syn keyword cmodStatement f_call_function f_index f_utf8_to_string
|
|
71 syn keyword cmodStatement finish_string_builder init_string_builder
|
|
72 syn keyword cmodStatement reset_string_builder free_string_builder
|
|
73 syn keyword cmodStatement string_builder_putchar get_all_args
|
|
74 syn keyword cmodStatement add_shared_strings check_all_args
|
|
75 syn keyword cmodStatement do_inherit add_string_constant
|
|
76 syn keyword cmodStatement add_program_constant set_init_callback
|
|
77 syn keyword cmodStatement simple_mapping_string_lookup
|
|
78 syn keyword cmodStatement f_sprintf push_text string_has_null
|
|
79 syn keyword cmodStatement end_and_resize_shared_string
|
|
80
|
|
81 syn keyword cmodStatement args sp
|
|
82
|
|
83 syn keyword cmodStatement free
|
|
84
|
|
85 syn keyword cmodConstant ID_PROTECTED ID_FINAL PIKE_DEBUG
|
|
86 syn keyword cmodConstant NUMBER_NUMBER
|
|
87 syn keyword cmodConstant PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY
|
|
88 syn keyword cmodConstant PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING
|
|
89 syn keyword cmodConstant NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION
|
|
90 syn keyword cmodConstant T_OBJECT T_STRING T_ARRAY T_MAPPING
|
|
91
|
|
92 syn keyword cmodException SET_ONERROR UNSET_ONERROR ONERROR
|
|
93 syn keyword cmodException CALL_AND_UNSET_ONERROR
|
|
94
|
|
95 syn keyword cmodDebug Pike_fatal Pike_error check_stack
|
|
96
|
|
97 syn keyword cmodAccess public protected private INHERIT
|
|
98 syn keyword cmodAccess CTYPE CVAR PIKEVAR PIKEFUN
|
|
99
|
|
100 syn keyword cmodModifier efun export flags optflags optfunc
|
|
101 syn keyword cmodModifier type rawtype errname name c_name prototype
|
|
102 syn keyword cmodModifier program_flags gc_trivial PMOD_EXPORT
|
|
103 syn keyword cmodModifier ATTRIBUTE noclone noinline
|
|
104 syn keyword cmodModifier tOr tFuncV tInt tMix tVoid tStr tMap tPrg
|
|
105 syn keyword cmodModifier tSetvar tArr tMult tMultiset
|
|
106 syn keyword cmodModifier tArray tMapping tString tSetvar tVar
|
|
107
|
|
108 syn keyword cmodType bool mapping string multiset array mixed
|
|
109 syn keyword cmodType object function program auto svalue
|
|
110 syn keyword cmodType bignum longest zero pike_string
|
|
111 syn keyword cmodType this this_program THIS INT_TYPE INT64 INT32
|
|
112 syn keyword cmodType p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT
|
|
113
|
|
114 syn keyword cmodOperator _destruct create __hash _sizeof _indices _values
|
|
115 syn keyword cmodOperator _is_type _sprintf _equal _m_delete _get_iterator
|
|
116 syn keyword cmodOperator _search _types _serialize _deserialize
|
|
117 syn keyword cmodOperator _size_object _random _sqrt TYPEOF SUBTYPEOF
|
|
118 syn keyword cmodOperator LIKELY UNLIKELY
|
|
119
|
|
120 syn keyword cmodStructure DECLARATIONS PIKECLASS DECLARE_STORAGE
|
|
121
|
|
122 if !exists("c_autodoc")
|
|
123 syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL
|
|
124 syn cluster cCommentGroup add=cmodAutodocReal
|
|
125 syn cluster cPreProcGroup add=cmodAutodocReal
|
|
126 endif
|
|
127
|
|
128 " Default highlighting
|
|
129 hi def link cmodAccess Statement
|
|
130 hi def link cmodOperator Operator
|
|
131 hi def link cmodStatement Statement
|
|
132 hi def link cmodConstant Constant
|
|
133 hi def link cmodModifier Type
|
|
134 hi def link cmodType Type
|
|
135 hi def link cmodStorageClass StorageClass
|
|
136 hi def link cmodStructure Structure
|
|
137 hi def link cmodException Exception
|
|
138 hi def link cmodDebug Debug
|
|
139
|
|
140 let b:current_syntax = "cmod"
|
|
141
|
|
142 let &cpo = s:cpo_save
|
|
143 unlet s:cpo_save
|
|
144 " vim: ts=8
|