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