| " Vim syntax file |
| " Language: Cmod |
| " Current Maintainer: Stephen R. van den Berg <srb@cuci.nl> |
| " Last Change: 2018 Jan 23 |
| " Version: 2.9 |
| " 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 |
| |
| if !exists("c_autodoc") |
| " For embedded Autodoc documentation |
| syn include @cmodAutodoc <sfile>:p:h/autodoc.vim |
| unlet b:current_syntax |
| endif |
| |
| " 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 tSetvar tArr tMult tMultiset |
| syn keyword cmodModifier tArray tMapping tString tSetvar 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 |
| |
| if !exists("c_autodoc") |
| syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL |
| syn cluster cCommentGroup add=cmodAutodocReal |
| syn cluster cPreProcGroup add=cmodAutodocReal |
| endif |
| |
| " 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 |