" Vim syntax file " Language: Cmod " Current Maintainer: Stephen R. van den Berg " Last Change: 2018 Jan 18 " Version: 2.3 " Remark: Is used to edit Cmod files for Pike development. " Remark: Includes a highlighter for any embedded Autodoc format. " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim " Read the C syntax to start with runtime! syntax/c.vim unlet b:current_syntax " For embedded Autodoc documentation syn include @cmodAutodoc :p:h/autodoc.vim unlet b:current_syntax " Supports rotating amongst several same-level preprocessor conditionals packadd! matchit let b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>" " Cmod extensions syn keyword cmodStatement __INIT INIT EXIT GC_RECURSE GC_CHECK syn keyword cmodStatement EXTRA OPTIMIZE RETURN syn keyword cmodStatement ADD_EFUN ADD_EFUN2 ADD_FUNCTION syn keyword cmodStatement MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN syn keyword cmodStatement SET_SVAL pop_n_elems pop_stack syn keyword cmodStatement SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP syn keyword cmodStatement SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP syn keyword cmodStatement PTR_FROM_INT INHERIT_FROM_PTR syn keyword cmodStatement DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC syn keyword cmodStatement UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO syn keyword cmodStatement MKPCHARP_STR APPLY_MASTER current_storage syn keyword cmodStatement PIKE_MAP_VARIABLE size_shift syn keyword cmodStatement THREADS_ALLOW THREADS_DISALLOW syn keyword cmodStatement add_integer_constant ref_push_object syn keyword cmodStatement push_string apply_svalue free_svalue syn keyword cmodStatement get_inherit_storage get_storage syn keyword cmodStatement make_shared_binary_string push_int64 syn keyword cmodStatement begin_shared_string end_shared_string syn keyword cmodStatement add_ref fast_clone_object clone_object syn keyword cmodStatement push_undefined push_int ref_push_string syn keyword cmodStatement free_string push_ulongest free_object syn keyword cmodStatement convert_stack_top_to_bignum push_array syn keyword cmodStatement push_object reduce_stack_top_bignum syn keyword cmodStatement push_static_text apply_current syn keyword cmodStatement assign_svalue free_program destruct_object syn keyword cmodStatement start_new_program low_inherit stack_swap syn keyword cmodStatement generic_error_program end_program syn keyword cmodStatement free_array apply_external copy_mapping syn keyword cmodStatement push_constant_text ref_push_mapping syn keyword cmodStatement mapping_insert mapping_string_insert_string syn keyword cmodStatement f_aggregate_mapping f_aggregate apply syn keyword cmodStatement push_mapping push_svalue low_mapping_lookup syn keyword cmodStatement assign_svalues_no_free f_add syn keyword cmodStatement push_empty_string stack_dup assign_lvalue syn keyword cmodStatement low_mapping_string_lookup allocate_mapping syn keyword cmodStatement copy_shared_string make_shared_binary_string0 syn keyword cmodStatement f_call_function f_index f_utf8_to_string syn keyword cmodStatement finish_string_builder init_string_builder syn keyword cmodStatement reset_string_builder free_string_builder syn keyword cmodStatement string_builder_putchar get_all_args syn keyword cmodStatement add_shared_strings check_all_args syn keyword cmodStatement do_inherit add_string_constant syn keyword cmodStatement add_program_constant set_init_callback syn keyword cmodStatement simple_mapping_string_lookup syn keyword cmodStatement f_sprintf push_text string_has_null syn keyword cmodStatement end_and_resize_shared_string syn keyword cmodStatement args sp syn keyword cmodStatement free syn keyword cmodConstant ID_PROTECTED ID_FINAL PIKE_DEBUG syn keyword cmodConstant NUMBER_NUMBER syn keyword cmodConstant PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY syn keyword cmodConstant PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING syn keyword cmodConstant NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION syn keyword cmodConstant T_OBJECT T_STRING T_ARRAY T_MAPPING syn keyword cmodException SET_ONERROR UNSET_ONERROR ONERROR syn keyword cmodException CALL_AND_UNSET_ONERROR syn keyword cmodDebug Pike_fatal Pike_error check_stack syn keyword cmodAccess public protected private INHERIT syn keyword cmodAccess CTYPE CVAR PIKEVAR PIKEFUN syn keyword cmodModifier efun export flags optflags optfunc syn keyword cmodModifier type rawtype errname name c_name prototype syn keyword cmodModifier program_flags gc_trivial PMOD_EXPORT syn keyword cmodModifier ATTRIBUTE noclone noinline syn keyword cmodModifier tOr tFuncV tInt tMix tVoid tStr tMap tPrg syn keyword cmodModifier tArray tSetvar tArr tVar tMult tMultiset syn keyword cmodModifier tArray tMapping tString tSetvar tArr tVar syn keyword cmodType bool mapping string multiset array mixed syn keyword cmodType object function program auto svalue syn keyword cmodType bignum longest zero pike_string syn keyword cmodType this this_program THIS INT_TYPE INT64 INT32 syn keyword cmodType p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT syn keyword cmodOperator _destruct create __hash _sizeof _indices _values syn keyword cmodOperator _is_type _sprintf _equal _m_delete _get_iterator syn keyword cmodOperator _search _types _serialize _deserialize syn keyword cmodOperator _size_object _random _sqrt TYPEOF SUBTYPEOF syn keyword cmodOperator LIKELY UNLIKELY syn keyword cmodStructure DECLARATIONS PIKECLASS DECLARE_STORAGE syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL syn cluster cCommentGroup add=cmodAutodocReal syn cluster cPreProcGroup add=cmodAutodocReal " Default highlighting hi def link cmodAccess Statement hi def link cmodOperator Operator hi def link cmodStatement Statement hi def link cmodConstant Constant hi def link cmodModifier Type hi def link cmodType Type hi def link cmodStorageClass StorageClass hi def link cmodStructure Structure hi def link cmodException Exception hi def link cmodDebug Debug let b:current_syntax = "cmod" let &cpo = s:cpo_save unlet s:cpo_save " vim: ts=8