xref: /vim-8.2.3635/runtime/syntax/ada.vim (revision 6c391a74)
1c81e5e79SBram Moolenaar"----------------------------------------------------------------------------
2c81e5e79SBram Moolenaar"  Description: Vim Ada syntax file
3c81e5e79SBram Moolenaar"     Language: Ada (2005)
45c73622aSBram Moolenaar"	   $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
5c81e5e79SBram Moolenaar"    Copyright: Copyright (C) 2006 Martin Krischik
6c81e5e79SBram Moolenaar"   Maintainer: Martin Krischik
7c81e5e79SBram Moolenaar"		David A. Wheeler <[email protected]>
8c81e5e79SBram Moolenaar"		Simon Bradley <[email protected]>
9c81e5e79SBram Moolenaar" Contributors: Preben Randhol.
105c73622aSBram Moolenaar"      $Author: krischik $
115c73622aSBram Moolenaar"	 $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
12c236c16dSBram Moolenaar"      Version: 4.6
135c73622aSBram Moolenaar"    $Revision: 887 $
14c236c16dSBram Moolenaar"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/syntax/ada.vim $
15c81e5e79SBram Moolenaar"		http://www.dwheeler.com/vim
16c81e5e79SBram Moolenaar"      History: 24.05.2006 MK Unified Headers
17c81e5e79SBram Moolenaar"		26.05.2006 MK ' should not be in iskeyword.
18c81e5e79SBram Moolenaar"		16.07.2006 MK Ada-Mode as vim-ball
19c81e5e79SBram Moolenaar"		02.10.2006 MK Better folding.
20c81e5e79SBram Moolenaar"		15.10.2006 MK Bram's suggestion for runtime integration
21c81e5e79SBram Moolenaar"		05.11.2006 MK Spell check for comments and strings only
22c81e5e79SBram Moolenaar"		05.11.2006 MK Bram suggested to save on spaces
23c81e5e79SBram Moolenaar"    Help Page: help ft-ada-syntax
24c81e5e79SBram Moolenaar"------------------------------------------------------------------------------
25c81e5e79SBram Moolenaar" The formal spec of Ada 2005 (ARM) is the "Ada 2005 Reference Manual".
26c81e5e79SBram Moolenaar" For more Ada 2005 info, see http://www.gnuada.org and http://www.adapower.com.
27c81e5e79SBram Moolenaar"
28c81e5e79SBram Moolenaar" This vim syntax file works on vim 7.0 only and makes use of most of Voim 7.0
29c81e5e79SBram Moolenaar" advanced features.
30c81e5e79SBram Moolenaar"------------------------------------------------------------------------------
31071d4279SBram Moolenaar
32c81e5e79SBram Moolenaarif exists("b:current_syntax") || version < 700
33071d4279SBram Moolenaar    finish
34071d4279SBram Moolenaarendif
359a7224b5SBram Moolenaarlet s:keepcpo= &cpo
369a7224b5SBram Moolenaarset cpo&vim
37071d4279SBram Moolenaar
38c81e5e79SBram Moolenaarlet b:current_syntax = "ada"
39071d4279SBram Moolenaar
40c81e5e79SBram Moolenaar" Section: Ada is entirely case-insensitive. {{{1
41c81e5e79SBram Moolenaar"
42c81e5e79SBram Moolenaarsyntax   case ignore
43071d4279SBram Moolenaar
44c81e5e79SBram Moolenaar" Section: Highlighting commands {{{1
45c81e5e79SBram Moolenaar"
46c81e5e79SBram Moolenaar" There are 72 reserved words in total in Ada2005. Some keywords are
47c81e5e79SBram Moolenaar" used in more than one way. For example:
48071d4279SBram Moolenaar" 1. "end" is a general keyword, but "end if" ends a Conditional.
49071d4279SBram Moolenaar" 2. "then" is a conditional, but "and then" is an operator.
50c81e5e79SBram Moolenaar"
51c81e5e79SBram Moolenaarfor b:Item in g:ada#Keywords
52071d4279SBram Moolenaar   " Standard Exceptions (including I/O).
53071d4279SBram Moolenaar   " We'll highlight the standard exceptions, similar to vim's Python mode.
54071d4279SBram Moolenaar   " It's possible to redefine the standard exceptions as something else,
55071d4279SBram Moolenaar   " but doing so is very bad practice, so simply highlighting them makes sense.
56c81e5e79SBram Moolenaar   if b:Item['kind'] == "x"
57c81e5e79SBram Moolenaar      execute "syntax keyword adaException " . b:Item['word']
58c81e5e79SBram Moolenaar   endif
59c81e5e79SBram Moolenaar   if b:Item['kind'] == "a"
60c81e5e79SBram Moolenaar      execute 'syntax match adaAttribute "\V' . b:Item['word'] . '"'
61c81e5e79SBram Moolenaar   endif
62071d4279SBram Moolenaar   " We don't normally highlight types in package Standard
63071d4279SBram Moolenaar   " (Integer, Character, Float, etc.).  I don't think it looks good
64071d4279SBram Moolenaar   " with the other type keywords, and many Ada programs define
65071d4279SBram Moolenaar   " so many of their own types that it looks inconsistent.
66071d4279SBram Moolenaar   " However, if you want this highlighting, turn on "ada_standard_types".
67071d4279SBram Moolenaar   " For package Standard's definition, see ARM section A.1.
68c81e5e79SBram Moolenaar   if b:Item['kind'] == "t" && exists ("g:ada_standard_types")
69c81e5e79SBram Moolenaar      execute "syntax keyword adaBuiltinType " . b:Item['word']
70c81e5e79SBram Moolenaar   endif
71c81e5e79SBram Moolenaarendfor
72071d4279SBram Moolenaar
73c81e5e79SBram Moolenaar" Section: others {{{1
74c81e5e79SBram Moolenaar"
75c81e5e79SBram Moolenaarsyntax keyword  adaLabel	others
76c81e5e79SBram Moolenaar
77c81e5e79SBram Moolenaar" Section: Operatoren {{{1
78c81e5e79SBram Moolenaar"
79c81e5e79SBram Moolenaarsyntax keyword  adaOperator abs mod not rem xor
80c81e5e79SBram Moolenaarsyntax match    adaOperator "\<and\>"
81c81e5e79SBram Moolenaarsyntax match    adaOperator "\<and\s\+then\>"
82c81e5e79SBram Moolenaarsyntax match    adaOperator "\<or\>"
83c81e5e79SBram Moolenaarsyntax match    adaOperator "\<or\s\+else\>"
84c81e5e79SBram Moolenaarsyntax match    adaOperator "[-+*/<>&]"
85c81e5e79SBram Moolenaarsyntax keyword  adaOperator **
86c81e5e79SBram Moolenaarsyntax match    adaOperator "[/<>]="
87c81e5e79SBram Moolenaarsyntax keyword  adaOperator =>
88c81e5e79SBram Moolenaarsyntax match    adaOperator "\.\."
89c81e5e79SBram Moolenaarsyntax match    adaOperator "="
90c81e5e79SBram Moolenaar
91c81e5e79SBram Moolenaar" Section: <> {{{1
92c81e5e79SBram Moolenaar"
93c81e5e79SBram Moolenaar" Handle the box, <>, specially:
94c81e5e79SBram Moolenaar"
95c81e5e79SBram Moolenaarsyntax keyword  adaSpecial	    <>
96c81e5e79SBram Moolenaar
97c81e5e79SBram Moolenaar" Section: rainbow color {{{1
98c81e5e79SBram Moolenaar"
99c81e5e79SBram Moolenaarif exists("g:ada_rainbow_color")
100c81e5e79SBram Moolenaar    syntax match	adaSpecial	 "[:;.,]"
101c236c16dSBram Moolenaar    call rainbow_parenthsis#LoadRound ()
102c236c16dSBram Moolenaar    call rainbow_parenthsis#Activate ()
103c81e5e79SBram Moolenaarelse
104c81e5e79SBram Moolenaar    syntax match	adaSpecial	 "[:;().,]"
105071d4279SBram Moolenaarendif
106071d4279SBram Moolenaar
107c81e5e79SBram Moolenaar" Section: := {{{1
108c81e5e79SBram Moolenaar"
109071d4279SBram Moolenaar" We won't map "adaAssignment" by default, but we need to map ":=" to
110071d4279SBram Moolenaar" something or the "=" inside it will be mislabelled as an operator.
111071d4279SBram Moolenaar" Note that in Ada, assignment (:=) is not considered an operator.
112c81e5e79SBram Moolenaar"
113c81e5e79SBram Moolenaarsyntax match adaAssignment		":="
114071d4279SBram Moolenaar
115c81e5e79SBram Moolenaar" Section: Numbers, including floating point, exponents, and alternate bases. {{{1
116c81e5e79SBram Moolenaar"
117c81e5e79SBram Moolenaarsyntax match   adaNumber		"\<\d[0-9_]*\(\.\d[0-9_]*\)\=\([Ee][+-]\=\d[0-9_]*\)\=\>"
118c81e5e79SBram Moolenaarsyntax match   adaNumber		"\<\d\d\=#\x[0-9A-Fa-f_]*\(\.\x[0-9A-Fa-f_]*\)\=#\([Ee][+-]\=\d[0-9_]*\)\="
119071d4279SBram Moolenaar
120c81e5e79SBram Moolenaar" Section: Identify leading numeric signs {{{1
121c81e5e79SBram Moolenaar"
122c81e5e79SBram Moolenaar" In "A-5" the "-" is an operator, " but in "A:=-5" the "-" is a sign. This
123c81e5e79SBram Moolenaar" handles "A3+-5" (etc.) correctly.  " This assumes that if you put a
124c81e5e79SBram Moolenaar" don't put a space after +/- when it's used " as an operator, you won't
125c81e5e79SBram Moolenaar" put a space before it either -- which is true " in code I've seen.
126c81e5e79SBram Moolenaar"
127c81e5e79SBram Moolenaarsyntax match adaSign "[[:space:]<>=(,|:;&*/+-][+-]\d"lc=1,hs=s+1,he=e-1,me=e-1
128071d4279SBram Moolenaar
129c81e5e79SBram Moolenaar" Section: Labels for the goto statement. {{{1
130c81e5e79SBram Moolenaar"
131c81e5e79SBram Moolenaarsyntax region  adaLabel		start="<<"  end=">>"
132071d4279SBram Moolenaar
133c81e5e79SBram Moolenaar" Section: Boolean Constants {{{1
134071d4279SBram Moolenaar" Boolean Constants.
135c81e5e79SBram Moolenaarsyntax keyword adaBoolean	true false
136071d4279SBram Moolenaar
137c81e5e79SBram Moolenaar" Section: Warn C/C++ {{{1
138c81e5e79SBram Moolenaar"
139071d4279SBram Moolenaar" Warn people who try to use C/C++ notation erroneously:
140c81e5e79SBram Moolenaar"
141c81e5e79SBram Moolenaarsyntax match adaError "//"
142c81e5e79SBram Moolenaarsyntax match adaError "/\*"
143c81e5e79SBram Moolenaarsyntax match adaError "=="
144071d4279SBram Moolenaar
145071d4279SBram Moolenaar
146c81e5e79SBram Moolenaar" Section: Space Errors {{{1
147c81e5e79SBram Moolenaar"
148c81e5e79SBram Moolenaarif exists("g:ada_space_errors")
149c81e5e79SBram Moolenaar   if !exists("g:ada_no_trail_space_error")
150c81e5e79SBram Moolenaar       syntax match   adaSpaceError	 excludenl "\s\+$"
151071d4279SBram Moolenaar   endif
152c81e5e79SBram Moolenaar   if !exists("g:ada_no_tab_space_error")
153c81e5e79SBram Moolenaar      syntax match   adaSpaceError	 " \+\t"me=e-1
154c81e5e79SBram Moolenaar   endif
155c81e5e79SBram Moolenaar   if !exists("g:ada_all_tab_usage")
156c81e5e79SBram Moolenaar      syntax match   adaSpecial	 "\t"
157071d4279SBram Moolenaar   endif
158071d4279SBram Moolenaarendif
159071d4279SBram Moolenaar
160c81e5e79SBram Moolenaar" Section: end {{{1
161071d4279SBram Moolenaar" Unless special ("end loop", "end if", etc.), "end" marks the end of a
162*6c391a74SBram Moolenaar" begin, package, task etc. Assigning it to adaEnd.
163c236c16dSBram Moolenaarsyntax match    adaEnd	/\<end\>/
164071d4279SBram Moolenaar
165c81e5e79SBram Moolenaarsyntax keyword  adaPreproc		 pragma
166071d4279SBram Moolenaar
167c81e5e79SBram Moolenaarsyntax keyword  adaRepeat	 exit for loop reverse while
168c81e5e79SBram Moolenaarsyntax match    adaRepeat		   "\<end\s\+loop\>"
169071d4279SBram Moolenaar
170c81e5e79SBram Moolenaarsyntax keyword  adaStatement accept delay goto raise requeue return
171c81e5e79SBram Moolenaarsyntax keyword  adaStatement terminate
172c81e5e79SBram Moolenaarsyntax match    adaStatement  "\<abort\>"
173071d4279SBram Moolenaar
174c81e5e79SBram Moolenaar" Section: Handle Ada's record keywords. {{{1
175c81e5e79SBram Moolenaar"
176071d4279SBram Moolenaar" 'record' usually starts a structure, but "with null record;" does not,
177071d4279SBram Moolenaar" and 'end record;' ends a structure.  The ordering here is critical -
178071d4279SBram Moolenaar" 'record;' matches a "with null record", so make it a keyword (this can
179071d4279SBram Moolenaar" match when the 'with' or 'null' is on a previous line).
180071d4279SBram Moolenaar" We see the "end" in "end record" before the word record, so we match that
181071d4279SBram Moolenaar" pattern as adaStructure (and it won't match the "record;" pattern).
182c81e5e79SBram Moolenaar"
183c81e5e79SBram Moolenaarsyntax match adaStructure   "\<record\>"	contains=adaRecord
184c81e5e79SBram Moolenaarsyntax match adaStructure   "\<end\s\+record\>"	contains=adaRecord
185c81e5e79SBram Moolenaarsyntax match adaKeyword	    "\<record;"me=e-1
186071d4279SBram Moolenaar
187c81e5e79SBram Moolenaar" Section: type classes {{{1
188c81e5e79SBram Moolenaar"
189c81e5e79SBram Moolenaarsyntax keyword adaStorageClass	abstract access aliased array at constant delta
190c81e5e79SBram Moolenaarsyntax keyword adaStorageClass	digits limited of private range tagged
191c81e5e79SBram Moolenaarsyntax keyword adaStorageClass	interface synchronized
192c81e5e79SBram Moolenaarsyntax keyword adaTypedef	subtype type
193071d4279SBram Moolenaar
194c81e5e79SBram Moolenaar" Section: Conditionals {{{1
195c81e5e79SBram Moolenaar"
196c81e5e79SBram Moolenaar" "abort" after "then" is a conditional of its own.
197c81e5e79SBram Moolenaar"
198c81e5e79SBram Moolenaarsyntax match    adaConditional  "\<then\>"
199c81e5e79SBram Moolenaarsyntax match    adaConditional	"\<then\s\+abort\>"
200c81e5e79SBram Moolenaarsyntax match    adaConditional	"\<else\>"
201c81e5e79SBram Moolenaarsyntax match    adaConditional	"\<end\s\+if\>"
202c81e5e79SBram Moolenaarsyntax match    adaConditional	"\<end\s\+case\>"
203c81e5e79SBram Moolenaarsyntax match    adaConditional	"\<end\s\+select\>"
204c81e5e79SBram Moolenaarsyntax keyword  adaConditional	if case select
205c81e5e79SBram Moolenaarsyntax keyword  adaConditional	elsif when
206071d4279SBram Moolenaar
207c81e5e79SBram Moolenaar" Section: other keywords {{{1
208c81e5e79SBram Moolenaarsyntax match    adaKeyword	    "\<is\>" contains=adaRecord
209c81e5e79SBram Moolenaarsyntax keyword  adaKeyword	    all do exception in new null out
210c81e5e79SBram Moolenaarsyntax keyword  adaKeyword	    separate until overriding
211071d4279SBram Moolenaar
212c81e5e79SBram Moolenaar" Section: begin keywords {{{1
213c81e5e79SBram Moolenaar"
214071d4279SBram Moolenaar" These keywords begin various constructs, and you _might_ want to
215071d4279SBram Moolenaar" highlight them differently.
216c81e5e79SBram Moolenaar"
217c81e5e79SBram Moolenaarsyntax keyword  adaBegin	begin body declare entry generic
218c81e5e79SBram Moolenaarsyntax keyword  adaBegin	protected renames task
219071d4279SBram Moolenaar
220c81e5e79SBram Moolenaarsyntax match    adaBegin	"\<function\>" contains=adaFunction
221c81e5e79SBram Moolenaarsyntax match    adaBegin	"\<procedure\>" contains=adaProcedure
222c81e5e79SBram Moolenaarsyntax match    adaBegin	"\<package\>" contains=adaPackage
223071d4279SBram Moolenaar
224c81e5e79SBram Moolenaarif exists("ada_with_gnat_project_files")
225c81e5e79SBram Moolenaar   syntax keyword adaBegin	project
226c81e5e79SBram Moolenaarendif
227c81e5e79SBram Moolenaar
228c81e5e79SBram Moolenaar" Section: with, use {{{1
229c81e5e79SBram Moolenaar"
230071d4279SBram Moolenaarif exists("ada_withuse_ordinary")
231071d4279SBram Moolenaar   " Don't be fancy. Display "with" and "use" as ordinary keywords in all cases.
232c81e5e79SBram Moolenaar   syntax keyword adaKeyword		with use
233071d4279SBram Moolenaarelse
234071d4279SBram Moolenaar   " Highlight "with" and "use" clauses like C's "#include" when they're used
235071d4279SBram Moolenaar   " to reference other compilation units; otherwise they're ordinary keywords.
236071d4279SBram Moolenaar   " If we have vim 6.0 or later, we'll use its advanced pattern-matching
237071d4279SBram Moolenaar   " capabilities so that we won't match leading spaces.
238c81e5e79SBram Moolenaar   syntax match adaKeyword	"\<with\>"
239c81e5e79SBram Moolenaar   syntax match adaKeyword	"\<use\>"
240c81e5e79SBram Moolenaar   syntax match adaBeginWith	"^\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc
241c81e5e79SBram Moolenaar   syntax match adaSemiWith	";\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc
242c81e5e79SBram Moolenaar   syntax match adaInc		"\<with\>" contained contains=NONE
243c81e5e79SBram Moolenaar   syntax match adaInc		"\<with\s\+type\>" contained contains=NONE
244c81e5e79SBram Moolenaar   syntax match adaInc		"\<use\>" contained contains=NONE
245071d4279SBram Moolenaar   " Recognize "with null record" as a keyword (even the "record").
246c81e5e79SBram Moolenaar   syntax match adaKeyword	"\<with\s\+null\s\+record\>"
247071d4279SBram Moolenaar   " Consider generic formal parameters of subprograms and packages as keywords.
248c81e5e79SBram Moolenaar   syntax match adaKeyword	";\s*\zswith\s\+\(function\|procedure\|package\)\>"
249c81e5e79SBram Moolenaar   syntax match adaKeyword	"^\s*\zswith\s\+\(function\|procedure\|package\)\>"
250c81e5e79SBram Moolenaarendif
251c81e5e79SBram Moolenaar
252c81e5e79SBram Moolenaar" Section: String and character constants. {{{1
253c81e5e79SBram Moolenaar"
254c81e5e79SBram Moolenaarsyntax region  adaString	contains=@Spell start=+"+ skip=+""+ end=+"+
255c81e5e79SBram Moolenaarsyntax match   adaCharacter "'.'"
256c81e5e79SBram Moolenaar
257c81e5e79SBram Moolenaar" Section: Todo (only highlighted in comments) {{{1
258c81e5e79SBram Moolenaar"
259c81e5e79SBram Moolenaarsyntax keyword adaTodo contained TODO FIXME XXX NOTE
260c81e5e79SBram Moolenaar
261c81e5e79SBram Moolenaar" Section: Comments. {{{1
262c81e5e79SBram Moolenaar"
263c81e5e79SBram Moolenaarsyntax region  adaComment
264c81e5e79SBram Moolenaar    \ oneline
265c81e5e79SBram Moolenaar    \ contains=adaTodo,adaLineError,@Spell
266c81e5e79SBram Moolenaar    \ start="--"
267c81e5e79SBram Moolenaar    \ end="$"
268c81e5e79SBram Moolenaar
269c81e5e79SBram Moolenaar" Section: line errors {{{1
270c81e5e79SBram Moolenaar"
271c81e5e79SBram Moolenaar" Note: Line errors have become quite slow with Vim 7.0
272c81e5e79SBram Moolenaar"
273c81e5e79SBram Moolenaarif exists("g:ada_line_errors")
274c81e5e79SBram Moolenaar    syntax match adaLineError "\(^.\{79}\)\@<=."  contains=ALL containedin=ALL
275c81e5e79SBram Moolenaarendif
276c81e5e79SBram Moolenaar
277c81e5e79SBram Moolenaar" Section: syntax folding {{{1
278c81e5e79SBram Moolenaar"
279c81e5e79SBram Moolenaar"	Syntax folding is very tricky - for now I still suggest to use
280c81e5e79SBram Moolenaar"	indent folding
281c81e5e79SBram Moolenaar"
282c81e5e79SBram Moolenaarif exists("g:ada_folding") && g:ada_folding[0] == 's'
283c81e5e79SBram Moolenaar   if stridx (g:ada_folding, 'p') >= 0
284c81e5e79SBram Moolenaar      syntax region adaPackage
285c81e5e79SBram Moolenaar         \ start="\(\<package\s\+body\>\|\<package\>\)\s*\z(\k*\)"
286c81e5e79SBram Moolenaar         \ end="end\s\+\z1\s*;"
287c81e5e79SBram Moolenaar         \ keepend extend transparent fold contains=ALL
288c81e5e79SBram Moolenaar   endif
289c81e5e79SBram Moolenaar   if stridx (g:ada_folding, 'f') >= 0
290c81e5e79SBram Moolenaar      syntax region adaProcedure
291c81e5e79SBram Moolenaar         \ start="\<procedure\>\s*\z(\k*\)"
292c81e5e79SBram Moolenaar         \ end="\<end\>\s\+\z1\s*;"
293c81e5e79SBram Moolenaar         \ keepend extend transparent fold contains=ALL
294c81e5e79SBram Moolenaar      syntax region adaFunction
295c81e5e79SBram Moolenaar         \ start="\<procedure\>\s*\z(\k*\)"
296c81e5e79SBram Moolenaar         \ end="end\s\+\z1\s*;"
297c81e5e79SBram Moolenaar         \ keepend extend transparent fold contains=ALL
298c81e5e79SBram Moolenaar   endif
299c81e5e79SBram Moolenaar   if stridx (g:ada_folding, 'f') >= 0
300c81e5e79SBram Moolenaar      syntax region adaRecord
301c81e5e79SBram Moolenaar         \ start="\<is\s\+record\>"
302c81e5e79SBram Moolenaar         \ end="\<end\s\+record\>"
303c81e5e79SBram Moolenaar         \ keepend extend transparent fold contains=ALL
304071d4279SBram Moolenaar   endif
305071d4279SBram Moolenaarendif
306071d4279SBram Moolenaar
307c81e5e79SBram Moolenaar" Section: The default methods for highlighting. Can be overridden later. {{{1
308c81e5e79SBram Moolenaar"
309c81e5e79SBram Moolenaarhighlight def link adaCharacter	    Character
310c81e5e79SBram Moolenaarhighlight def link adaComment	    Comment
311c81e5e79SBram Moolenaarhighlight def link adaConditional   Conditional
312c81e5e79SBram Moolenaarhighlight def link adaKeyword	    Keyword
313c81e5e79SBram Moolenaarhighlight def link adaLabel	    Label
314c81e5e79SBram Moolenaarhighlight def link adaNumber	    Number
315c81e5e79SBram Moolenaarhighlight def link adaSign	    Number
316c81e5e79SBram Moolenaarhighlight def link adaOperator	    Operator
317c81e5e79SBram Moolenaarhighlight def link adaPreproc	    PreProc
318c81e5e79SBram Moolenaarhighlight def link adaRepeat	    Repeat
319c81e5e79SBram Moolenaarhighlight def link adaSpecial	    Special
320c81e5e79SBram Moolenaarhighlight def link adaStatement	    Statement
321c81e5e79SBram Moolenaarhighlight def link adaString	    String
322c81e5e79SBram Moolenaarhighlight def link adaStructure	    Structure
323c81e5e79SBram Moolenaarhighlight def link adaTodo	    Todo
324c81e5e79SBram Moolenaarhighlight def link adaType	    Type
325c81e5e79SBram Moolenaarhighlight def link adaTypedef	    Typedef
326c81e5e79SBram Moolenaarhighlight def link adaStorageClass  StorageClass
327c81e5e79SBram Moolenaarhighlight def link adaBoolean	    Boolean
328c81e5e79SBram Moolenaarhighlight def link adaException	    Exception
329c81e5e79SBram Moolenaarhighlight def link adaAttribute	    Tag
330c81e5e79SBram Moolenaarhighlight def link adaInc	    Include
331c81e5e79SBram Moolenaarhighlight def link adaError	    Error
332c81e5e79SBram Moolenaarhighlight def link adaSpaceError    Error
333c81e5e79SBram Moolenaarhighlight def link adaLineError	    Error
334c81e5e79SBram Moolenaarhighlight def link adaBuiltinType   Type
335c81e5e79SBram Moolenaarhighlight def link adaAssignment    Special
336071d4279SBram Moolenaar
337c81e5e79SBram Moolenaar" Subsection: Begin, End {{{2
338c81e5e79SBram Moolenaar"
339071d4279SBram Moolenaarif exists ("ada_begin_preproc")
340071d4279SBram Moolenaar   " This is the old default display:
341c81e5e79SBram Moolenaar   highlight def link adaBegin   PreProc
342c81e5e79SBram Moolenaar   highlight def link adaEnd     PreProc
343071d4279SBram Moolenaarelse
344071d4279SBram Moolenaar   " This is the new default display:
345c81e5e79SBram Moolenaar   highlight def link adaBegin   Keyword
346c81e5e79SBram Moolenaar   highlight def link adaEnd     Keyword
347071d4279SBram Moolenaarendif
348071d4279SBram Moolenaar
349071d4279SBram Moolenaar
350071d4279SBram Moolenaar
351c81e5e79SBram Moolenaar" Section: sync {{{1
352c81e5e79SBram Moolenaar"
353c81e5e79SBram Moolenaar" We don't need to look backwards to highlight correctly;
354c81e5e79SBram Moolenaar" this speeds things up greatly.
355c81e5e79SBram Moolenaarsyntax sync minlines=1 maxlines=1
356c81e5e79SBram Moolenaar
3579a7224b5SBram Moolenaarlet &cpo = s:keepcpo
3589a7224b5SBram Moolenaarunlet s:keepcpo
3599a7224b5SBram Moolenaar
360c81e5e79SBram Moolenaarfinish " 1}}}
361c81e5e79SBram Moolenaar
362c81e5e79SBram Moolenaar"------------------------------------------------------------------------------
363c81e5e79SBram Moolenaar"   Copyright (C) 2006	Martin Krischik
364c81e5e79SBram Moolenaar"
365c81e5e79SBram Moolenaar"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
366c81e5e79SBram Moolenaar"------------------------------------------------------------------------------
367c81e5e79SBram Moolenaar"vim: textwidth=78 nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
368c81e5e79SBram Moolenaar"vim: foldmethod=marker
369