Merged from the latest developing branch.
[MacVim.git] / runtime / syntax / lscript.vim
blob648a0ebeab671375a1cacec180321c7ad6bb5d79
1 " Vim syntax file
2 " Language:     LotusScript
3 " Maintainer:   Taryn East (taryneast@hotmail.com)
4 " Last Change:  2003 May 11
6 " This is a rough  amalgamation of the visual basic syntax file, and the UltraEdit
7 " and Textpad syntax highlighters.
8 " It's not too brilliant given that a) I've never written a syntax.vim file before
9 " and b) I'm not so crash hot at LotusScript either. If you see any problems
10 " feel free to email me with them.
12 " For version 5.x: Clear all syntax items
13 " For version 6.x: Quit when a syntax file was already loaded
14 if version < 600
15   syntax clear
16 elseif exists("b:current_syntax")
17   finish
18 endif
20 " LotusScript is case insensitive
21 syn case ignore
23 " These are Notes thingies that had an equivalent in the vb highlighter
24 " or I was already familiar with them
25 syn keyword lscriptStatement ActivateApp As And Base Beep Call Case ChDir ChDrive Class
26 syn keyword lscriptStatement Const Dim Declare DefCur DefDbl DefInt DefLng DefSng DefStr
27 syn keyword lscriptStatement DefVar Do Else %Else ElseIf %ElseIf End %End Erase Event Exit
28 syn keyword lscriptStatement Explicit FileCopy FALSE For ForAll Function Get GoTo GoSub
29 syn keyword lscriptStatement If %If In Is Kill Let List Lock Loop MkDir
30 syn keyword lscriptStatement Name Next New NoCase NoPitch Not Nothing NULL
31 syn keyword lscriptStatement On Option Or PI Pitch Preserve Private Public
32 syn keyword lscriptStatement Property Public Put
33 syn keyword lscriptStatement Randomize ReDim Reset Resume Return RmDir
34 syn keyword lscriptStatement Select SendKeys SetFileAttr Set Static Sub Then To TRUE
35 syn keyword lscriptStatement Type Unlock Until While WEnd With Write XOr
37 syn keyword lscriptDatatype Array Currency Double Integer Long Single String String$ Variant
39 syn keyword lscriptNotesType Field Button Navigator
40 syn keyword lscriptNotesType NotesACL NotesACLEntry NotesAgent NotesDatabase NotesDateRange
41 syn keyword lscriptNotesType NotesDateTime NotesDbDirectory NotesDocument
42 syn keyword lscriptNotesType NotesDocumentCollection NotesEmbeddedObject NotesForm
43 syn keyword lscriptNotesType NotesInternational NotesItem NotesLog NotesName NotesNewsLetter
44 syn keyword lscriptNotesType NotesMIMEEntry NotesOutline NotesOutlineEntry NotesRegistration
45 syn keyword lscriptNotesType NotesReplication NotesRichTextItem NotesRichTextParagraphStyle
46 syn keyword lscriptNotesType NotesRichTextStyle NotesRichTextTab
47 syn keyword lscriptNotesType NotesSession NotesTimer NotesView NotesViewColumn NotesViewEntry
48 syn keyword lscriptNotesType NotesViewEntryCollection NotesViewNavigator NotesUIDatabase
49 syn keyword lscriptNotesType NotesUIDocument NotesUIView NotesUIWorkspace
51 syn keyword lscriptNotesConst ACLLEVEL_AUTHOR ACLLEVEL_DEPOSITOR ACLLEVEL_DESIGNER
52 syn keyword lscriptNotesConst ACLLEVEL_EDITOR ACLLEVEL_MANAGER ACLLEVEL_NOACCESS
53 syn keyword lscriptNotesConst ACLLEVEL_READER ACLTYPE_MIXED_GROUP ACLTYPE_PERSON
54 syn keyword lscriptNotesConst ACLTYPE_PERSON_GROUP ACLTYPE_SERVER ACLTYPE_SERVER_GROUP
55 syn keyword lscriptNotesConst ACLTYPE_UNSPECIFIED ACTIONCD ALIGN_CENTER
56 syn keyword lscriptNotesConst ALIGN_FULL ALIGN_LEFT ALIGN_NOWRAP ALIGN_RIGHT
57 syn keyword lscriptNotesConst ASSISTANTINFO ATTACHMENT AUTHORS COLOR_BLACK
58 syn keyword lscriptNotesConst COLOR_BLUE COLOR_CYAN COLOR_DARK_BLUE COLOR_DARK_CYAN
59 syn keyword lscriptNotesConst COLOR_DARK_GREEN COLOR_DARK_MAGENTA COLOR_DARK_RED
60 syn keyword lscriptNotesConst COLOR_DARK_YELLOW COLOR_GRAY COLOR_GREEN COLOR_LIGHT_GRAY
61 syn keyword lscriptNotesConst COLOR_MAGENTA COLOR_RED COLOR_WHITE COLOR_YELLOW
62 syn keyword lscriptNotesConst DATABASE DATETIMES DB_REPLICATION_PRIORITY_HIGH
63 syn keyword lscriptNotesConst DB_REPLICATION_PRIORITY_LOW DB_REPLICATION_PRIORITY_MED
64 syn keyword lscriptNotesConst DB_REPLICATION_PRIORITY_NOTSET EFFECTS_EMBOSS
65 syn keyword lscriptNotesConst EFFECTS_EXTRUDE EFFECTS_NONE EFFECTS_SHADOW
66 syn keyword lscriptNotesConst EFFECTS_SUBSCRIPT EFFECTS_SUPERSCRIPT EMBED_ATTACHMENT
67 syn keyword lscriptNotesConst EMBED_OBJECT EMBED_OBJECTLINK EMBEDDEDOBJECT ERRORITEM
68 syn keyword lscriptNotesConst EV_ALARM EV_COMM EV_MAIL EV_MISC EV_REPLICA EV_RESOURCE
69 syn keyword lscriptNotesConst EV_SECURITY EV_SERVER EV_UNKNOWN EV_UPDATE FONT_COURIER
70 syn keyword lscriptNotesConst FONT_HELV FONT_ROMAN FORMULA FT_DATABASE FT_DATE_ASC
71 syn keyword lscriptNotesConst FT_DATE_DES FT_FILESYSTEM FT_FUZZY FT_SCORES FT_STEMS
72 syn keyword lscriptNotesConst FT_THESAURUS HTML ICON ID_CERTIFIER ID_FLAT
73 syn keyword lscriptNotesConst ID_HIERARCHICAL LSOBJECT MIME_PART NAMES NOTESLINKS
74 syn keyword lscriptNotesConst NOTEREFS NOTES_DESKTOP_CLIENT NOTES_FULL_CLIENT
75 syn keyword lscriptNotesConst NOTES_LIMITED_CLIENT NUMBERS OTHEROBJECT
76 syn keyword lscriptNotesConst OUTLINE_CLASS_DATABASE OUTLINE_CLASS_DOCUMENT
77 syn keyword lscriptNotesConst OUTLINE_CLASS_FOLDER OUTLINE_CLASS_FORM
78 syn keyword lscriptNotesConst OUTLINE_CLASS_FRAMESET OUTLINE_CLASS_NAVIGATOR
79 syn keyword lscriptNotesConst OUTLINE_CLASS_PAGE OUTLINE_CLASS_UNKNOWN
80 syn keyword lscriptNotesConst OUTLINE_CLASS_VIEW OUTLINE_OTHER_FOLDERS_TYPE
81 syn keyword lscriptNotesConst OUTLINE_OTHER_UNKNOWN_TYPE OUTLINE_OTHER_VIEWS_TYPE
82 syn keyword lscriptNotesConst OUTLINE_TYPE_ACTION OUTLINE_TYPE_NAMEDELEMENT
83 syn keyword lscriptNotesConst OUTLINE_TYPE_NOTELINK OUTLINE_TYPE_URL PAGINATE_BEFORE
84 syn keyword lscriptNotesConst PAGINATE_DEFAULT PAGINATE_KEEP_TOGETHER
85 syn keyword lscriptNotesConst PAGINATE_KEEP_WITH_NEXT PICKLIST_CUSTOM PICKLIST_NAMES
86 syn keyword lscriptNotesConst PICKLIST_RESOURCES PICKLIST_ROOMS PROMPT_OK PROMPT_OKCANCELCOMBO
87 syn keyword lscriptNotesConst PROMPT_OKCANCELEDIT PROMPT_OKCANCELEDITCOMBO PROMPT_OKCANCELLIST
88 syn keyword lscriptNotesConst PROMPT_OKCANCELLISTMULT PROMPT_PASSWORD PROMPT_YESNO
89 syn keyword lscriptNotesConst PROMPT_YESNOCANCEL QUERYCD READERS REPLICA_CANDIDATE
90 syn keyword lscriptNotesConst RICHTEXT RULER_ONE_CENTIMETER RULER_ONE_INCH SEV_FAILURE
91 syn keyword lscriptNotesConst SEV_FATAL SEV_NORMAL SEV_WARNING1 SEV_WARNING2
92 syn keyword lscriptNotesConst SIGNATURE SPACING_DOUBLE SPACING_ONE_POINT_50
93 syn keyword lscriptNotesConst SPACING_SINGLE STYLE_NO_CHANGE TAB_CENTER TAB_DECIMAL
94 syn keyword lscriptNotesConst TAB_LEFT TAB_RIGHT TARGET_ALL_DOCS TARGET_ALL_DOCS_IN_VIEW
95 syn keyword lscriptNotesConst TARGET_NEW_DOCS TARGET_NEW_OR_MODIFIED_DOCS TARGET_NONE
96 syn keyword lscriptNotesConst TARGET_RUN_ONCE TARGET_SELECTED_DOCS TARGET_UNREAD_DOCS_IN_VIEW
97 syn keyword lscriptNotesConst TEMPLATE TEMPLATE_CANDIDATE TEXT TRIGGER_AFTER_MAIL_DELIVERY
98 syn keyword lscriptNotesConst TRIGGER_BEFORE_MAIL_DELIVERY TRIGGER_DOC_PASTED
99 syn keyword lscriptNotesConst TRIGGER_DOC_UPDATE TRIGGER_MANUAL TRIGGER_NONE
100 syn keyword lscriptNotesConst TRIGGER_SCHEDULED UNAVAILABLE UNKNOWN USERDATA
101 syn keyword lscriptNotesConst USERID VC_ALIGN_CENTER VC_ALIGN_LEFT VC_ALIGN_RIGHT
102 syn keyword lscriptNotesConst VC_ATTR_PARENS VC_ATTR_PUNCTUATED VC_ATTR_PERCENT
103 syn keyword lscriptNotesConst VC_FMT_ALWAYS VC_FMT_CURRENCY VC_FMT_DATE VC_FMT_DATETIME
104 syn keyword lscriptNotesConst VC_FMT_FIXED VC_FMT_GENERAL VC_FMT_HM VC_FMT_HMS
105 syn keyword lscriptNotesConst VC_FMT_MD VC_FMT_NEVER VC_FMT_SCIENTIFIC
106 syn keyword lscriptNotesConst VC_FMT_SOMETIMES VC_FMT_TIME VC_FMT_TODAYTIME VC_FMT_YM
107 syn keyword lscriptNotesConst VC_FMT_YMD VC_FMT_Y4M VC_FONT_BOLD VC_FONT_ITALIC
108 syn keyword lscriptNotesConst VC_FONT_STRIKEOUT VC_FONT_UNDERLINE VC_SEP_COMMA
109 syn keyword lscriptNotesConst VC_SEP_NEWLINE VC_SEP_SEMICOLON VC_SEP_SPACE
110 syn keyword lscriptNotesConst VIEWMAPDATA VIEWMAPLAYOUT VW_SPACING_DOUBLE
111 syn keyword lscriptNotesConst VW_SPACING_ONE_POINT_25 VW_SPACING_ONE_POINT_50
112 syn keyword lscriptNotesConst VW_SPACING_ONE_POINT_75 VW_SPACING_SINGLE
114 syn keyword lscriptFunction Abs Asc Atn Atn2 ACos ASin
115 syn keyword lscriptFunction CCur CDat CDbl Chr Chr$ CInt CLng Command Command$
116 syn keyword lscriptFunction Cos CSng CStr
117 syn keyword lscriptFunction CurDir CurDir$ CVar Date Date$ DateNumber DateSerial DateValue
118 syn keyword lscriptFunction Day Dir Dir$ Environ$ Environ EOF Error Error$ Evaluate Exp
119 syn keyword lscriptFunction FileAttr FileDateTime FileLen Fix Format Format$ FreeFile
120 syn keyword lscriptFunction GetFileAttr GetThreadInfo Hex Hex$ Hour
121 syn keyword lscriptFunction IMESetMode IMEStatus Input Input$ InputB InputB$
122 syn keyword lscriptFunction InputBP InputBP$ InputBox InputBox$ InStr InStrB InStrBP InstrC
123 syn keyword lscriptFunction IsA IsArray IsDate IsElement IsList IsNumeric
124 syn keyword lscriptFunction IsObject IsResponse IsScalar IsUnknown LCase LCase$
125 syn keyword lscriptFunction Left Left$ LeftB LeftB$ LeftC
126 syn keyword lscriptFunction LeftBP LeftBP$ Len LenB LenBP LenC Loc LOF Log
127 syn keyword lscriptFunction LSet LTrim LTrim$ MessageBox Mid Mid$ MidB MidB$ MidC
128 syn keyword lscriptFunction Minute Month Now Oct Oct$ Responses Right Right$
129 syn keyword lscriptFunction RightB RightB$ RightBP RightBP$ RightC Round Rnd RSet RTrim RTrim$
130 syn keyword lscriptFunction Second Seek Sgn Shell Sin Sleep Space Space$ Spc Sqr Str Str$
131 syn keyword lscriptFunction StrConv StrLeft StrleftBack StrRight StrRightBack
132 syn keyword lscriptFunction StrCompare Tab Tan Time Time$ TimeNumber Timer
133 syn keyword lscriptFunction TimeValue Trim Trim$ Today TypeName UCase UCase$
134 syn keyword lscriptFunction UniversalID Val Weekday Year
136 syn keyword lscriptMethods AppendToTextList ArrayAppend ArrayReplace ArrayGetIndex
137 syn keyword lscriptMethods Append Bind Close
138 "syn keyword lscriptMethods Contains
139 syn keyword lscriptMethods CopyToDatabase CopyAllItems Count CurrentDatabase Delete Execute
140 syn keyword lscriptMethods GetAllDocumentsByKey GetDatabase GetDocumentByKey
141 syn keyword lscriptMethods GetDocumentByUNID GetFirstDocument GetFirstItem
142 syn keyword lscriptMethods GetItems GetItemValue GetNthDocument GetView
143 syn keyword lscriptMethods IsEmpty IsNull %Include Items
144 syn keyword lscriptMethods Line LBound LoadMsgText Open Print
145 syn keyword lscriptMethods RaiseEvent ReplaceItemValue Remove RemoveItem Responses
146 syn keyword lscriptMethods Save Stop UBound UnprocessedDocuments Write
148 syn keyword lscriptEvents Compare OnError
150 "*************************************************************************************
151 "These are Notes thingies that I'm not sure how to classify as they had no vb equivalent
152 " At a wild guess I'd put them as Functions...
153 " if anyone sees something really out of place... tell me!
155 syn keyword lscriptFunction Access Alias Any Bin Bin$ Binary ByVal
156 syn keyword lscriptFunction CodeLock CodeLockCheck CodeUnlock CreateLock
157 syn keyword lscriptFunction CurDrive CurDrive$ DataType DestroyLock Eqv
158 syn keyword lscriptFunction Erl Err Fraction From FromFunction FullTrim
159 syn keyword lscriptFunction Imp Int Lib Like ListTag LMBCS LSServer Me
160 syn keyword lscriptFunction Mod MsgDescription MsgText Output Published
161 syn keyword lscriptFunction Random Read Shared Step UChr UChr$ Uni Unicode
162 syn keyword lscriptFunction Until Use UseLSX UString UString$ Width Yield
165 syn keyword lscriptTodo contained       TODO
167 "integer number, or floating point number without a dot.
168 syn match  lscriptNumber                "\<\d\+\>"
169 "floating point number, with dot
170 syn match  lscriptNumber                "\<\d\+\.\d*\>"
171 "floating point number, starting with a dot
172 syn match  lscriptNumber                "\.\d\+\>"
174 " String and Character constants
175 syn region  lscriptString               start=+"+  end=+"+
176 syn region  lscriptComment              start="REM" end="$" contains=lscriptTodo
177 syn region  lscriptComment              start="'"   end="$" contains=lscriptTodo
178 syn region  lscriptLineNumber   start="^\d" end="\s"
179 syn match   lscriptTypeSpecifier        "[a-zA-Z0-9][\$%&!#]"ms=s+1
181 " Define the default highlighting.
182 " For version 5.7 and earlier: only when not done already
183 " For version 5.8 and later: only when an item doesn't have highlighting yet
184 if version >= 508 || !exists("did_lscript_syntax_inits")
185   if version < 508
186     let did_lscript_syntax_inits = 1
187     command -nargs=+ HiLink hi link <args>
188   else
189     command -nargs=+ HiLink hi def link <args>
190   endif
192   hi lscriptNotesType   term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold
194   HiLink lscriptNotesConst      lscriptNotesType
195   HiLink lscriptLineNumber      Comment
196   HiLink lscriptDatatype        Type
197   HiLink lscriptNumber          Number
198   HiLink lscriptError           Error
199   HiLink lscriptStatement       Statement
200   HiLink lscriptString          String
201   HiLink lscriptComment         Comment
202   HiLink lscriptTodo            Todo
203   HiLink lscriptFunction        Identifier
204   HiLink lscriptMethods         PreProc
205   HiLink lscriptEvents          Special
206   HiLink lscriptTypeSpecifier   Type
208   delcommand HiLink
209 endif
211 let b:current_syntax = "lscript"
213 " vim: ts=8