Mercurial > vim
annotate runtime/ftplugin/c.vim @ 27526:891948e114b4
Added tag v8.2.4290 for changeset 27694b525305edd67dd850ebc7a038391289ac94
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 03 Feb 2022 15:45:05 +0100 |
parents | 65de67669df3 |
children | 6dd88e45d47d |
rev | line source |
---|---|
7 | 1 " Vim filetype plugin file |
2 " Language: C | |
3 " Maintainer: Bram Moolenaar <Bram@vim.org> | |
25836 | 4 " Last Change: 2021 Sep 21 |
7 | 5 |
6 " Only do this when not done yet for this buffer | |
7 if exists("b:did_ftplugin") | |
8 finish | |
9 endif | |
10 | |
11 " Don't load another plugin for this buffer | |
12 let b:did_ftplugin = 1 | |
13 | |
233 | 14 " Using line continuation here. |
348 | 15 let s:cpo_save = &cpo |
7 | 16 set cpo-=C |
17 | |
19303 | 18 let b:undo_ftplugin = "setl fo< com< ofu< cms< def< inc< | if has('vms') | setl isk< | endif" |
7 | 19 |
20 " Set 'formatoptions' to break comment lines but not other lines, | |
21 " and insert the comment leader when hitting <CR> or using "o". | |
22 setlocal fo-=t fo+=croql | |
23 | |
19303 | 24 " These options have the right value as default, but the user may have |
25 " overruled that. | |
26 setlocal commentstring& define& include& | |
27 | |
502 | 28 " Set completion with CTRL-X CTRL-O to autoloaded function. |
29 if exists('&ofu') | |
30 setlocal ofu=ccomplete#Complete | |
31 endif | |
32 | |
7 | 33 " Set 'comments' to format dashed lists in comments. |
34 setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// | |
35 | |
36 " In VMS C keywords contain '$' characters. | |
37 if has("vms") | |
38 setlocal iskeyword+=$ | |
39 endif | |
40 | |
1621 | 41 " When the matchit plugin is loaded, this makes the % command skip parens and |
12756
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
9286
diff
changeset
|
42 " braces in comments properly. |
25836 | 43 if !exists("b:match_words") |
44 let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>' | |
45 let b:match_skip = 's:comment\|string\|character\|special' | |
46 let b:undo_ftplugin ..= " | unlet! b:match_skip b:match_words" | |
47 endif | |
1621 | 48 |
7 | 49 " Win32 can filter files in the browse dialog |
3682 | 50 if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") |
7 | 51 if &ft == "cpp" |
52 let b:browsefilter = "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . | |
53 \ "C Header Files (*.h)\t*.h\n" . | |
54 \ "C Source Files (*.c)\t*.c\n" . | |
55 \ "All Files (*.*)\t*.*\n" | |
22 | 56 elseif &ft == "ch" |
7 | 57 let b:browsefilter = "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" . |
58 \ "C Header Files (*.h)\t*.h\n" . | |
59 \ "C Source Files (*.c)\t*.c\n" . | |
60 \ "All Files (*.*)\t*.*\n" | |
61 else | |
62 let b:browsefilter = "C Source Files (*.c)\t*.c\n" . | |
63 \ "C Header Files (*.h)\t*.h\n" . | |
64 \ "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" . | |
65 \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . | |
66 \ "All Files (*.*)\t*.*\n" | |
67 endif | |
25836 | 68 let b:undo_ftplugin ..= " | unlet! b:browsefilter" |
7 | 69 endif |
348 | 70 |
71 let &cpo = s:cpo_save | |
72 unlet s:cpo_save |