_visualbasic.py
11.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
###############################################################################
# Name: visualbasic.py #
# Purpose: Define Visual Basic syntax for highlighting and other features #
# Author: Cody Precord <cprecord@editra.org> #
# Copyright: (c) 2007 Cody Precord <staff@editra.org> #
# License: wxWindows License #
###############################################################################
"""
FILE: visualbasic.py
AUTHOR: Cody Precord
@summary: Lexer configuration module for Visual Basic.
@todo: Incomplete requires color/kw tuning
"""
__author__ = "Cody Precord <cprecord@editra.org>"
__svnid__ = "$Id: _visualbasic.py 68798 2011-08-20 17:17:05Z CJP $"
__revision__ = "$Revision: 68798 $"
#-----------------------------------------------------------------------------#
# Imports
import wx.stc as stc
# Local Imports
import syndata
#-----------------------------------------------------------------------------#
#---- Keyword Specifications ----#
# Visual Basic Keywords (Statements)
VB_KW = (0, "AppActivate Base Beep Begin Call Case ChDir ChDrive Const Declare "
"DefByte DefCur DefDate DefDbl DefDec DefInt DefLng DefObj DefSng "
"DefStr Deftype DefVar DeleteSetting Dim Do Else End Enum Erase "
"Event Exit Explicit FileCopy For ForEach Function Get GoSub GoTo "
"If Implements Kill Let LineInput Lock LSet MkDir Name Next "
"On Option Private Property Public Put RaiseEvent Randomize ReDim "
"Rem Reset Resume Return RmDir RSet SavePicture SaveSetting With "
"SendKeys SetAttr Static Sub Then Type Unlock Wend While Width "
"Write Height DefBool OnError ")
# Visual Basic User Keywords 1 (Functions)
VB_UKW1 = (1, "Abs Array Asc AscB AscW Atn Avg CBool CByte CCur CDate CDbl "
"Choose Chr ChrB ChrW CInt CLng Command Cos Count CreateObject "
"CSng CStr CurDir CVar CVDate CVErr Date DateAdd DateDiff Cdec "
"DatePart DateSerial DateValue Day DDB Dir DoEvents Environ EOF "
"Error Exp FileAttr FileDateTime FileLen Fix Format FreeFile FV "
"GetAllStrings GetAttr GetAutoServerSettings GetObject NPV "
"Hex Hour IIf IMEStatus Input InputB InputBox InStr InstB Int "
"IPmt IsArray IsDate IsEmpty IsError IsMissing IsNull IsNumeric "
"IsObject LBound LCase Left LeftB Len LenB LoadPicture Loc LOF "
"Log LTrim Max Mid MidB Min Minute MIRR Month MsgBox Now NPer "
"Oct Partition Pmt PPmt PV QBColor Rate RGB Right RightB Rnd "
"RTrim Second Seek Sgn Shell Sin SLN Space Spc Sqr StDev StDevP "
"Str StrComp StrConv String Switch Sum SYD Tab Tan Time Timer "
"TimeSerial TimeValue Trim TypeName UBound UCase Val Var VarP "
"VarType Weekday Year GetSetting ")
# Visual Basic User Keywords 2 (Methods)
VB_UKW2 = (2, "Accept Activate Add AddCustom AddFile AddFromFile AddItem "
"AddFromTemplate AddNew AddToAddInToolbar AddToolboxProgID "
"Append AppendChunk Arrange Assert AsyncRead BatchUpdate "
"BeginTrans Bind Cancel CancelAsyncRead CancelBatch CancelUpdate "
"CanPropertyChange CaptureImage CellText CellValue Circle Clear "
"ClearFields ClearSel ClearSelCols Clone Close Cls ColContaining "
"ColumnSize CommitTrans CompactDatabase Compose Connect Copy "
"CopyQueryDef CreateDatabase CreateDragImage CreateEmbed "
"CreateField CreateGroup CreateIndex CreateLink Customize"
"CreatePreparedStatement CreatePropery CreateQueryCreateQueryDef "
"CreateRelation CreateTableDef CreateUser CreateWorkspace "
"Delete DeleteColumnLabels DeleteColumns DeleteRowLabels Open "
"DeleteRows DoVerb Drag Draw Edit EditCopy EditPaste EndDoc "
"EnsureVisible EstablishConnection Execute ExtractIcon Fetch "
"FetchVerbs Files FillCache Find FindFirst FindItem FindLast "
"FindNext GoForward KillDoc LoadFile MakeCompileFile MoveNext "
"FindPrevious Forward GetBookmark GetChunk GetClipString GetData "
"GetFirstVisible GetFormat GetHeader GetLineFromChar GetNumTicks "
"GetRows GetSelectedPart GetText GetVisibleCount GoBack OLEDrag "
"Hide HitTest HoldFields Idle InitializeLabels InsertRows Item "
"InsertColumnLabels InsertColumns InsertObjDlg InsertRowLabels "
"Layout Line LinkExecute LinkPoke LinkRequest LinkSend Listen "
"LoadResData LoadResPicture LoadResString LogEvent OpenResultset "
"MakeReplica MoreResults Move MoveData MoveFirst MoveLast Point "
"MovePrevious NavigateTo NewPage NewPassword NextRecordset Quit "
"OnAddinsUpdate OnConnection OnDisconnection OnStartupComplete "
"OpenConnection OpenDatabase OpenQueryDef OpenRecordset Reload "
"OpenURL Overlay PaintPicture Paste PastSpecialDlg PeekData Play "
"PopulatePartial PopupMenu Print PrintForm PropertyChanged PSet "
"Raise RandomDataFill RandomFillColumns RandomFillRows Remove "
"rdoCreateEnvironment rdoRegisterDataSource ReadFromFile "
"Rebind ReFill Refresh RefreshLink RegisterDatabase ReadProperty "
"RemoveAddInFromToolbar RemoveItem Render RepairDatabase Reply "
"ReplyAll Requery ResetCustom ResetCustomLabel ResolveName "
"RestoreToolbar Resync Rollback RollbackTrans RowBookmark "
"RowContaining RowTop Save SaveAs SaveFile SaveToFile SelectAll "
"SaveToolbar SaveToOle1File Scale ScaleX ScaleY Scroll Select "
"SelectPart SelPrint Send SendData Set SetAutoServerSettings "
"SetData SetFocus SetOption SetSize SetText SetViewport Show "
"ShowColor ShowFont ShowHelp ShowOpen ShowPrinter ShowSave "
"ShowWhatsThis SignOff SignOn Size Span SplitContaining "
"StartLabelEdit StartLogging Stop Synchronize TextHeight "
"TextWidth ToDefaults TwipsToChartPart TypeByChartType "
"Update UpdateControls UpdateRecord UpdateRow Upto WhatsThisMode "
"WriteProperty ZOrder")
# Visual Basic User Keywords 3 (Events)
VB_UKW3 = (3, "AccessKeyPress AfterAddFile AfterChangeFileName AfterCloseFile "
"AfterColEdit AfterColUpdate AfterDelete AfterInsert "
"AfterLabelEdit AfterRemoveFile AfterUpdate AfterWriteFile "
"AmbienChanged ApplyChanges Associate AsyncReadComplete "
"AxisActivated AxisLabelActivated AxisLabelSelected Collapse "
"AxisLabelUpdated AxisSelected AxisTitleActivated BeforeColEdit "
"AxisTitleSelected AxisTitleUpdated AxisUpdated BeforeClick "
"BeforeColUpdate BeforeConnect BeforeDelete BeforeInsert "
"BeforeLabelEdit BeforeLoadFile BeforeUpdate ButtonClick "
"ButtonCompleted ButtonGotFocus ButtonLostFocus Change ColResize "
"ChartActivated ChartSelected ChartUpdated Click ColEdit "
"ColumnClick Compare ConfigChageCancelled ConfigChanged "
"ConnectionRequest DataArrival DataChanged DataUpdated DblClick "
"Deactivate DeviceArrival DeviceOtherEvent DeviceQueryRemove "
"DeviceQueryRemoveFailed DeviceRemoveComplete DoGetNewFileName "
"DeviceRemovePending DevModeChange Disconnect DisplayChanged "
"Dissociate Done DonePainting DownClick DragDrop DragOver "
"DropDown EditProperty EnterCell EnterFocus ExitFocus Expand "
"FootnoteActivated FootnoteSelected FootnoteUpdated GotFocus "
"HeadClick InfoMessage Initialize IniProperties ItemActivated "
"ItemAdded ItemCheck ItemClick ItemReloaded ItemRemoved "
"ItemRenamed ItemSeletected KeyDown KeyPress KeyUp LeaveCell "
"LegendActivated LegendSelected LegendUpdated LinkClose "
"LinkError LinkNotify LinkOpen Load LostFocus MouseDown "
"MouseMove MouseUp NodeClick ObjectMove OLECompleteDrag "
"OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag "
"OnAddNew OnComm Paint PanelClick PanelDblClick PathChange "
"PatternChange PlotActivated PlotSelected PlotUpdated "
"PointActivated Reposition SelChange StateChanged TitleActivated "
"PointLabelActivated PointLabelSelected PointLabelUpdated "
"PointSelected PointUpdated PowerQuerySuspend PowerResume "
"PowerStatusChanged PowerSuspend QueryChangeConfig QueryComplete "
"QueryCompleted QueryTimeout QueryUnload ReadProperties "
"RequestChangeFileName RequestWriteFile Resize ResultsChanged "
"RowColChange RowCurrencyChange RowResize RowStatusChanged "
"SelectionChanged SendComplete SendProgress SeriesActivated "
"SeriesSelected SeriesUpdated SettingChanged SplitChange Unload "
"StatusUpdate SysColorsChanged Terminate TimeChanged "
"TitleSelected TitleActivated UnboundAddData UnboundDeleteRow "
"UnboundGetRelativeBookmark UnboundReadData UnboundWriteData "
"UpClick Updated Validate ValidationError WillAssociate "
"WillDissociate WillExecute WillUpdateRows WriteProperties "
"WillChangeData")
#---- Syntax Style Specs ----#
SYNTAX_ITEMS = [ (stc.STC_B_ASM, 'asm_style'),
(stc.STC_B_BINNUMBER, 'default_style'), # STYLE NEEDED
(stc.STC_B_COMMENT, 'comment_style'),
(stc.STC_B_CONSTANT, 'const_style'),
(stc.STC_B_DATE, 'default_style'), # STYLE NEEDED
(stc.STC_B_DEFAULT, 'default_style'),
(stc.STC_B_ERROR, 'error_style'),
(stc.STC_B_HEXNUMBER, 'number_style'),
(stc.STC_B_IDENTIFIER, 'default_style'),
(stc.STC_B_KEYWORD, 'keyword_style'),
(stc.STC_B_KEYWORD2, 'class_style'), # STYLE NEEDED
(stc.STC_B_KEYWORD3, 'funct_style'), # STYLE NEEDED
(stc.STC_B_KEYWORD4, 'scalar_style'), # STYLE NEEDED
(stc.STC_B_LABEL, 'directive_style'), # STYLE NEEDED
(stc.STC_B_NUMBER, 'number_style'),
(stc.STC_B_OPERATOR, 'operator_style'),
(stc.STC_B_PREPROCESSOR, 'pre_style'),
(stc.STC_B_STRING, 'string_style'),
(stc.STC_B_STRINGEOL, 'stringeol_style')
]
#---- Extra Properties ----#
FOLD = ("fold", "1")
#-----------------------------------------------------------------------------#
class SyntaxData(syndata.SyntaxDataBase):
"""SyntaxData object for VisualBasic"""
def __init__(self, langid):
super(SyntaxData, self).__init__(langid)
# Setup
self.SetLexer(stc.STC_LEX_VB)
def GetKeywords(self):
"""Returns Specified Keywords List """
keywords = list()
tmp = [VB_KW, VB_UKW1, VB_UKW2, VB_UKW3]
for keyw in tmp:
keywords.append((keyw[0], keyw[1].lower()))
return keywords
def GetSyntaxSpec(self):
"""Syntax Specifications """
return SYNTAX_ITEMS
def GetProperties(self):
"""Returns a list of Extra Properties to set """
return [FOLD]
def GetCommentPattern(self):
"""Returns a list of characters used to comment a block of code """
return [u'\'']