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