cmod.vim (6271B)
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