xref: /vim-8.2.3635/runtime/syntax/ave.vim (revision 3e496b0e)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Copyright by Jan-Oliver Wagner
3071d4279SBram Moolenaar" Language:	avenue
4071d4279SBram Moolenaar" Maintainer:	Jan-Oliver Wagner <[email protected]>
5071d4279SBram Moolenaar" Last change:	2001 May 10
6071d4279SBram Moolenaar
7071d4279SBram Moolenaar" Avenue is the ArcView built-in language. ArcView is
8071d4279SBram Moolenaar" a desktop GIS by ESRI. Though it is a built-in language
9071d4279SBram Moolenaar" and a built-in editor is provided, the use of VIM increases
10071d4279SBram Moolenaar" development speed.
11071d4279SBram Moolenaar" I use some technologies to automatically load avenue scripts
12071d4279SBram Moolenaar" into ArcView.
13071d4279SBram Moolenaar
1489bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1589bcfda6SBram Moolenaarif exists("b:current_syntax")
16071d4279SBram Moolenaar  finish
17071d4279SBram Moolenaarendif
18071d4279SBram Moolenaar
19071d4279SBram Moolenaar" Avenue is entirely case-insensitive.
20071d4279SBram Moolenaarsyn case ignore
21071d4279SBram Moolenaar
22071d4279SBram Moolenaar" The keywords
23071d4279SBram Moolenaar
24071d4279SBram Moolenaarsyn keyword aveStatement	if then elseif else end break exit return
25071d4279SBram Moolenaarsyn keyword aveStatement	for each in continue while
26071d4279SBram Moolenaar
27071d4279SBram Moolenaar" String
28071d4279SBram Moolenaar
29071d4279SBram Moolenaarsyn region aveString		start=+"+ end=+"+
30071d4279SBram Moolenaar
31071d4279SBram Moolenaar" Integer number
32071d4279SBram Moolenaarsyn match  aveNumber		"[+-]\=\<[0-9]\+\>"
33071d4279SBram Moolenaar
34071d4279SBram Moolenaar" Operator
35071d4279SBram Moolenaar
36071d4279SBram Moolenaarsyn keyword aveOperator		or and max min xor mod by
37*3e496b0eSBram Moolenaar" 'not' is a kind of a problem: It's an Operator as well as a method
38071d4279SBram Moolenaar" 'not' is only marked as an Operator if not applied as method
39071d4279SBram Moolenaarsyn match aveOperator		"[^\.]not[^a-zA-Z]"
40071d4279SBram Moolenaar
41071d4279SBram Moolenaar" Variables
42071d4279SBram Moolenaar
43071d4279SBram Moolenaarsyn keyword aveFixVariables	av nil self false true nl tab cr tab
44071d4279SBram Moolenaarsyn match globalVariables	"_[a-zA-Z][a-zA-Z0-9]*"
45071d4279SBram Moolenaarsyn match aveVariables		"[a-zA-Z][a-zA-Z0-9_]*"
46071d4279SBram Moolenaarsyn match aveConst		"#[A-Z][A-Z_]+"
47071d4279SBram Moolenaar
48071d4279SBram Moolenaar" Comments
49071d4279SBram Moolenaar
50071d4279SBram Moolenaarsyn match aveComment	"'.*"
51071d4279SBram Moolenaar
52071d4279SBram Moolenaar" Typical Typos
53071d4279SBram Moolenaar
54071d4279SBram Moolenaar" for C programmers:
55071d4279SBram Moolenaarsyn match aveTypos	"=="
56071d4279SBram Moolenaarsyn match aveTypos	"!="
57071d4279SBram Moolenaar
58071d4279SBram Moolenaar" Define the default highlighting.
5989bcfda6SBram Moolenaar" Only when an item doesn't have highlighting+yet
60071d4279SBram Moolenaar
61f37506f6SBram Moolenaarhi def link aveStatement		Statement
62071d4279SBram Moolenaar
63f37506f6SBram Moolenaarhi def link aveString		String
64f37506f6SBram Moolenaarhi def link aveNumber		Number
65071d4279SBram Moolenaar
66f37506f6SBram Moolenaarhi def link aveFixVariables	Special
67f37506f6SBram Moolenaarhi def link aveVariables		Identifier
68f37506f6SBram Moolenaarhi def link globalVariables	Special
69f37506f6SBram Moolenaarhi def link aveConst		Special
70071d4279SBram Moolenaar
71f37506f6SBram Moolenaarhi def link aveClassMethods	Function
72071d4279SBram Moolenaar
73f37506f6SBram Moolenaarhi def link aveOperator		Operator
74f37506f6SBram Moolenaarhi def link aveComment		Comment
75071d4279SBram Moolenaar
76f37506f6SBram Moolenaarhi def link aveTypos		Error
77071d4279SBram Moolenaar
78071d4279SBram Moolenaar
79071d4279SBram Moolenaarlet b:current_syntax = "ave"
80