blob: 2a0a9d85af0eb2b32c8a07508f0edd929142743a [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Copyright by Jan-Oliver Wagner
3" Language: avenue
4" Maintainer: Jan-Oliver Wagner <Jan-Oliver.Wagner@intevation.de>
5" Last change: 2001 May 10
6
7" Avenue is the ArcView built-in language. ArcView is
8" a desktop GIS by ESRI. Though it is a built-in language
9" and a built-in editor is provided, the use of VIM increases
10" development speed.
11" I use some technologies to automatically load avenue scripts
12" into ArcView.
13
14" For version 5.x: Clear all syntax items
15" For version 6.x: Quit when a syntax file was already loaded
16if version < 600
17 syntax clear
18elseif exists("b:current_syntax")
19 finish
20endif
21
22" Avenue is entirely case-insensitive.
23syn case ignore
24
25" The keywords
26
27syn keyword aveStatement if then elseif else end break exit return
28syn keyword aveStatement for each in continue while
29
30" String
31
32syn region aveString start=+"+ end=+"+
33
34" Integer number
35syn match aveNumber "[+-]\=\<[0-9]\+\>"
36
37" Operator
38
39syn keyword aveOperator or and max min xor mod by
40" 'not' is a kind of a problem: Its an Operator as well as a method
41" 'not' is only marked as an Operator if not applied as method
42syn match aveOperator "[^\.]not[^a-zA-Z]"
43
44" Variables
45
46syn keyword aveFixVariables av nil self false true nl tab cr tab
47syn match globalVariables "_[a-zA-Z][a-zA-Z0-9]*"
48syn match aveVariables "[a-zA-Z][a-zA-Z0-9_]*"
49syn match aveConst "#[A-Z][A-Z_]+"
50
51" Comments
52
53syn match aveComment "'.*"
54
55" Typical Typos
56
57" for C programmers:
58syn match aveTypos "=="
59syn match aveTypos "!="
60
61" Define the default highlighting.
62" For version 5.7 and earlier: only when not done already
63" For version 5.8 and later: only when an item doesn't have highlighting+yet
64if version >= 508 || !exists("did_ave_syn_inits")
65 if version < 508
66 let did_ave_syn_inits = 1
67 command -nargs=+ HiLink hi link <args>
68 else
69 command -nargs=+ HiLink hi def link <args>
70 endif
71
72 HiLink aveStatement Statement
73
74 HiLink aveString String
75 HiLink aveNumber Number
76
77 HiLink aveFixVariables Special
78 HiLink aveVariables Identifier
79 HiLink globalVariables Special
80 HiLink aveConst Special
81
82 HiLink aveClassMethods Function
83
84 HiLink aveOperator Operator
85 HiLink aveComment Comment
86
87 HiLink aveTypos Error
88
89 delcommand HiLink
90endif
91
92let b:current_syntax = "ave"