" special keywords syntax keyword cType uint8 sint8 uint16 sint16 uint32 sint32 uint64 sint64 syntax keyword cType tuint8 tsint8 tuint16 tsint16 tuint32 tsint32 tuint64 tsint64 syntax keyword cType bool_t real_t int_t syntax keyword cType float32 syntax keyword cType DfpType SfpType SfpErrorType LWrd LInt syntax keyword cType TickType syntax keyword Special ATOMIC BEGIN_ATOMIC END_ATOMIC " debug "syntax match cTodo "\(debug\)" " Lint-Komments and #ifdef's " Flexelint-Comment syntax match cLint "\(\/\/\)\(lint.*\)" syntax match cLint "\(\/\*\)\(lint\_.\{-}\)\(\*\/\)" " Splint-Comment syntax match cLint "\/\*@\_.\{-}@\*\/" " #ifdef _lint or #ifndef _lint syntax match cLint "\(#\s*ifn\?def\s\+_lint\)" hi def link cLint Todo syntax keyword cConstant TRUE FALSE syntax region myFold start="{" end="}" transparent fold syntax region if0Fold start="^\s*#\s*if\s\+0\+\>" end="^\s*#\s*endif" fold containedin=cPreCondit let c_no_if0 = 1 syntax sync fromstart "setlocal foldmethod=syntax "setlocal nofoldenable " Folds for #ifdef command! -nargs=0 FoldDefine call FoldDefine() function! FoldDefine () execute 'normal mx' let startline = line('.') " execute 'normal %k' execute 'normal 0%' if match(GetLine(), 'endif') < 0 execute 'normal k' endif let endline = line('.') " echo 'start: ' . startline . ' end: ' . endline let foldname = 'FoldDefine' . startline let start='"\%' . startline . 'l.*"' let end='"\%' . endline . 'l.*"' let command = 'syntax region ' . foldname . ' start=' . start . ' end=' . end . ' fold containedin=cPreCondit' " echo command execute command execute 'highlight def link ' . foldname . ' Comment' syntax sync fromstart setlocal foldmethod=syntax execute 'normal `x' endfunction command! -nargs=0 UnFoldDefine call UnFoldDefine() function! UnFoldDefine () let foldname = 'FoldDefine' . line('.') execute "syntax clear " . foldname endfunction