Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim syntax file |
| 2 | " Language: LotusScript |
| 3 | " Maintainer: Taryn East (taryneast@hotmail.com) |
| 4 | " Last Change: 2003 May 11 |
| 5 | |
| 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. |
| 11 | |
| 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 |
| 19 | |
| 20 | " LotusScript is case insensitive |
| 21 | syn case ignore |
| 22 | |
| 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 |
| 36 | |
| 37 | syn keyword lscriptDatatype Array Currency Double Integer Long Single String String$ Variant |
| 38 | |
| 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 |
| 50 | |
| 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 |
| 113 | |
| 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 |
| 135 | |
| 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 |
| 147 | |
| 148 | syn keyword lscriptEvents Compare OnError |
| 149 | |
| 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! |
| 154 | |
| 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 |
| 163 | |
| 164 | |
| 165 | syn keyword lscriptTodo contained TODO |
| 166 | |
| 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\+\>" |
| 173 | |
| 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 |
| 180 | |
| 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 |
| 191 | |
| 192 | hi lscriptNotesType term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold |
| 193 | |
| 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 |
| 207 | |
| 208 | delcommand HiLink |
| 209 | endif |
| 210 | |
| 211 | let b:current_syntax = "lscript" |
| 212 | |
| 213 | " vim: ts=8 |