1" Vim syntax file 2" Language: Cmod 3" Current Maintainer: Stephen R. van den Berg <[email protected]> 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 145