1" Vim filetype plugin file 2" Language: C 3" Maintainer: Bram Moolenaar <Bram@vim.org> 4" Last Change: 2007 Sep 25 5 6" Only do this when not done yet for this buffer 7if exists("b:did_ftplugin") 8 finish 9endif 10 11" Don't load another plugin for this buffer 12let b:did_ftplugin = 1 13 14" Using line continuation here. 15let s:cpo_save = &cpo 16set cpo-=C 17 18let b:undo_ftplugin = "setl fo< com< ofu< | if has('vms') | setl isk< | endif" 19 20" Set 'formatoptions' to break comment lines but not other lines, 21" and insert the comment leader when hitting <CR> or using "o". 22setlocal fo-=t fo+=croql 23 24" Set completion with CTRL-X CTRL-O to autoloaded function. 25if exists('&ofu') 26 setlocal ofu=ccomplete#Complete 27endif 28 29" Set 'comments' to format dashed lists in comments. 30setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// 31 32" In VMS C keywords contain '$' characters. 33if has("vms") 34 setlocal iskeyword+=$ 35endif 36 37" When the matchit plugin is loaded, this makes the % command skip parens and 38" braces in comments. 39let b:match_words = &matchpairs 40let b:match_skip = 's:comment\|string\|character' 41 42" Win32 can filter files in the browse dialog 43if has("gui_win32") && !exists("b:browsefilter") 44 if &ft == "cpp" 45 let b:browsefilter = "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . 46 \ "C Header Files (*.h)\t*.h\n" . 47 \ "C Source Files (*.c)\t*.c\n" . 48 \ "All Files (*.*)\t*.*\n" 49 elseif &ft == "ch" 50 let b:browsefilter = "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" . 51 \ "C Header Files (*.h)\t*.h\n" . 52 \ "C Source Files (*.c)\t*.c\n" . 53 \ "All Files (*.*)\t*.*\n" 54 else 55 let b:browsefilter = "C Source Files (*.c)\t*.c\n" . 56 \ "C Header Files (*.h)\t*.h\n" . 57 \ "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" . 58 \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . 59 \ "All Files (*.*)\t*.*\n" 60 endif 61endif 62 63let &cpo = s:cpo_save 64unlet s:cpo_save 65