annotate runtime/ftplugin/ada.vim @ 1522:710b52d02c4a v7.1.237

updated for version 7.1-237
author vimboss
date Tue, 22 Jan 2008 10:06:48 +0000
parents e63691e7c504
children 0b796e045c42
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
1 "------------------------------------------------------------------------------
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
2 " Description: Perform Ada specific completion & tagging.
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
3 " Language: Ada (2005)
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
4 " $Id$
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
5 " Maintainer: Martin Krischik
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
6 " Neil Bird <neil@fnxweb.com>
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
7 " $Author$
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
8 " $Date$
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
9 " Version: 4.2
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
10 " $Revision$
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
11 " $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/ftplugin/ada.vim $
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
12 " History: 24.05.2006 MK Unified Headers
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
13 " 26.05.2006 MK ' should not be in iskeyword.
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
14 " 16.07.2006 MK Ada-Mode as vim-ball
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
15 " 02.10.2006 MK Better folding.
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
16 " 15.10.2006 MK Bram's suggestion for runtime integration
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
17 " 05.11.2006 MK Bram suggested not to use include protection for
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
18 " autoload
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
19 " 05.11.2006 MK Bram suggested to save on spaces
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
20 " Help Page: ft-ada-plugin
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
21 "------------------------------------------------------------------------------
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 " Provides mapping overrides for tag jumping that figure out the current
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 " Ada object and tag jump to that, not the 'simple' vim word.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 " Similarly allows <Ctrl-N> matching of full-length ada entities from tags.
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
25 "------------------------------------------------------------------------------
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 " Only do this when not done yet for this buffer
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
28 if exists ("b:did_ftplugin") || version < 700
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
29 finish
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 " Don't load another plugin for this buffer
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
33 let b:did_ftplugin = 38
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
35 "
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 " Temporarily set cpoptions to ensure the script loads OK
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
37 "
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 let s:cpoptions = &cpoptions
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
39 set cpoptions-=C
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
40
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
41 " Section: Comments {{{1
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
42 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
43 setlocal comments=O:--,:--\ \
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
44 setlocal commentstring=--\ \ %s
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
45 setlocal complete=.,w,b,u,t,i
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
47 " Section: Tagging {{{1
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
48 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
49 if exists ("g:ada_extended_tagging")
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
50 " Make local tag mappings for this buffer (if not already set)
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
51 if g:ada_extended_tagging == 'jump'
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
52 if mapcheck('<C-]>','n') == ''
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
53 nnoremap <unique> <buffer> <C-]> :call ada#Jump_Tag ('', 'tjump')<cr>
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
54 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
55 if mapcheck('g<C-]>','n') == ''
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
56 nnoremap <unique> <buffer> g<C-]> :call ada#Jump_Tag ('','stjump')<cr>
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
57 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
58 elseif g:ada_extended_tagging == 'list'
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
59 if mapcheck('<C-]>','n') == ''
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
60 nnoremap <unique> <buffer> <C-]> :call ada#List_Tag ()<cr>
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
61 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
62 if mapcheck('g<C-]>','n') == ''
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
63 nnoremap <unique> <buffer> g<C-]> :call ada#List_Tag ()<cr>
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
64 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
65 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
68 " Section: Completion {{{1
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
69 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
70 setlocal completefunc=ada#User_Complete
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
71 setlocal omnifunc=adacomplete#Complete
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
73 if exists ("g:ada_extended_completion")
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
74 if mapcheck ('<C-N>','i') == ''
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
75 inoremap <unique> <buffer> <C-N> <C-R>=ada#Completion("\<lt>C-N>")<cr>
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
76 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
77 if mapcheck ('<C-P>','i') == ''
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
78 inoremap <unique> <buffer> <C-P> <C-R>=ada#Completion("\<lt>C-P>")<cr>
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
79 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
80 if mapcheck ('<C-X><C-]>','i') == ''
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
81 inoremap <unique> <buffer> <C-X><C-]> <C-R>=<SID>ada#Completion("\<lt>C-X>\<lt>C-]>")<cr>
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
82 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
83 if mapcheck ('<bs>','i') == ''
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
84 inoremap <silent> <unique> <buffer> <bs> <C-R>=ada#Insert_Backspace ()<cr>
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
85 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
88 " Section: Matchit {{{1
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
89 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
90 " Only do this when not done yet for this buffer & matchit is used
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
91 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
92 if !exists ("b:match_words") &&
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
93 \ exists ("loaded_matchit")
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
94 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
95 " The following lines enable the macros/matchit.vim plugin for
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
96 " Ada-specific extended matching with the % key.
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
97 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
98 let s:notend = '\%(\<end\s\+\)\@<!'
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
99 let b:match_words =
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
100 \ s:notend . '\<if\>:\<elsif\>:\<else\>:\<end\>\s\+\<if\>,' .
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
101 \ s:notend . '\<case\>:\<when\>:\<end\>\s\+\<case\>,' .
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
102 \ '\%(\<while\>.*\|\<for\>.*\|'.s:notend.'\)\<loop\>:\<end\>\s\+\<loop\>,' .
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
103 \ '\%(\<do\>\|\<begin\>\):\<exception\>:\<end\>\s*\%($\|[;A-Z]\),' .
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
104 \ s:notend . '\<record\>:\<end\>\s\+\<record\>'
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
105 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
107 " Section: Compiler {{{1
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
108 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
109 if ! exists("current_compiler") ||
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
110 \ current_compiler != g:ada_default_compiler
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
111 execute "compiler " . g:ada_default_compiler
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
112 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
114 " Section: Folding {{{1
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
115 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
116 if exists("g:ada_folding")
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
117 if g:ada_folding[0] == 'i'
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
118 setlocal foldmethod=indent
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
119 setlocal foldignore=--
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
120 setlocal foldnestmax=5
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
121 elseif g:ada_folding[0] == 'g'
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
122 setlocal foldmethod=expr
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
123 setlocal foldexpr=ada#Pretty_Print_Folding(v:lnum)
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
124 elseif g:ada_folding[0] == 's'
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
125 setlocal foldmethod=syntax
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
126 endif
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
127 setlocal tabstop=8
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
128 setlocal softtabstop=3
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
129 setlocal shiftwidth=3
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
130 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
132 " Section: Abbrev {{{1
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
133 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
134 if exists("g:ada_abbrev")
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
135 iabbrev ret return
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
136 iabbrev proc procedure
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
137 iabbrev pack package
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
138 iabbrev func function
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
139 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
141 " Section: Commands, Mapping, Menus {{{1
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
142 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
143 call ada#Map_Popup (
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
144 \ 'Tag.List',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
145 \ 'l',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
146 \ 'call ada#List_Tag ()')
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
147 call ada#Map_Popup (
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
148 \'Tag.Jump',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
149 \'j',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
150 \'call ada#Jump_Tag ()')
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
151 call ada#Map_Menu (
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
152 \'Tag.Create File',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
153 \':AdaTagFile',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
154 \'call ada#Create_Tags (''file'')')
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
155 call ada#Map_Menu (
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
156 \'Tag.Create Dir',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
157 \':AdaTagDir',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
158 \'call ada#Create_Tags (''dir'')')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
160 call ada#Map_Menu (
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
161 \'Highlight.Toggle Space Errors',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
162 \ ':AdaSpaces',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
163 \'call ada#Switch_Syntax_Option (''space_errors'')')
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
164 call ada#Map_Menu (
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
165 \'Highlight.Toggle Lines Errors',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
166 \ ':AdaLines',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
167 \'call ada#Switch_Syntax_Option (''line_errors'')')
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
168 call ada#Map_Menu (
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
169 \'Highlight.Toggle Rainbow Color',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
170 \ ':AdaRainbow',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
171 \'call ada#Switch_Syntax_Option (''rainbow_color'')')
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
172 call ada#Map_Menu (
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
173 \'Highlight.Toggle Standard Types',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
174 \ ':AdaTypes',
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
175 \'call ada#Switch_Syntax_Option (''standard_types'')')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
177 " 1}}}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 " Reset cpoptions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 let &cpoptions = s:cpoptions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 unlet s:cpoptions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
182 finish " 1}}}
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
183
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
184 "------------------------------------------------------------------------------
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
185 " Copyright (C) 2006 Martin Krischik
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
186 "
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
187 " Vim is Charityware - see ":help license" or uganda.txt for licence details.
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
188 "------------------------------------------------------------------------------
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
189 " vim: textwidth=78 nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
e63691e7c504 updated for version 7.1a
vimboss
parents: 839
diff changeset
190 " vim: foldmethod=marker