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