mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 13:45:15 -07:00
145 lines
6.1 KiB
VimL
145 lines
6.1 KiB
VimL
|
" 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
|