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