Bram Moolenaar | 40962ec | 2018-01-28 22:47:25 +0100 | [diff] [blame] | 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 |