1
###############################################################################
3
# Purpose: Syntax configuration for the Gui4Cli programming language #
4
# Author: Cody Precord <cprecord@editra.org> #
5
# Copyright: (c) 2007 Cody Precord <staff@editra.org> #
6
# License: wxWindows License #
7
###############################################################################
12
@summary: Lexer configuration module for Gui4Cli
16
__author__ = "Cody Precord <cprecord@editra.org>"
17
__svnid__ = "$Id: _gui4cli.py 68798 2011-08-20 17:17:05Z CJP $"
18
__revision__ = "$Revision: 68798 $"
20
#-----------------------------------------------------------------------------#
28
#-----------------------------------------------------------------------------#
30
#---- Keyword Definitions ----#
31
GLOBALS = (0, "3STATE #ANSI #FIXANSI #FIXOEM #FIXSYS #GUI #SEPARATOR #SYS ABRI "
32
"ACTIVE ALL ALTSTART APPDATA APPWIN ARRANGE ARROW ASCEND AUTO "
33
"BACK BC BITBUCKET BL BOLD BORDER BOTTOM BR BUFFERS BUSY BUTTON "
34
"BUTTONS CAPTION CENTER CHAR CHECK CHILD CLEAN CLEAR CLOSED "
35
"COLOR COMM COMMON.ALTSTART COMMON.DESKTOP COMMON.FAVORITES "
36
"COMMON.MENU COMMON.PROGRAMS COMMON.STARTUP COOKIES CROSS CURDIR "
37
"CURRENT CURSOR DATA DATE DAY DECORATIVE DEF1 DEF2 DEF3 DEF4 "
38
"DESCEND DESKTOP DIALOG DIR DISABLE DISABLED DISK DISKS DLBEGIN "
39
"DLCOMPLETE DLGFRAME DOUBLE DRAG DROP DROPLIST DTTM EDIT EDITOR "
40
"EFFECTS ELLIPSE EMBOSS END ENABLE ENDGUI ENGLISH ENTER ERROR "
41
"EXISTS EXPLORE EXT FAIL FAVORITES FIELDS FILE FILES FIND FIRST "
42
"FIXED FIXWIDTH FLAT FNUMBER FOCUS FOREGROUND FORMAT FORWARD "
43
"FREE FRONT FULL FULLPATH GCDIR GCEXE GCNAME GREEK GRID GUIPATH "
44
"HEAVY HEIGHT HELP HEX HIDDEN HIDE HIST HISTORY HOME HORIZONTAL "
45
"HOT HOUR IBEAM ICLEFT INDEX INFO INT INVOKE ITALIC ITEM JULIAN "
46
"JUSTIFY LARGE LAST LB LBLEFT LC LENGTH LIGHT LINE LINES LMB "
47
"LMDC LOAD LOADED LOWER LT MAX MAXI MAXBOX MAXIMIZE MEDIUM MENU "
48
"MINBOX MINI MINIMIZE MINUTE MMB MODERN MONTH MOVE MSEC MULTI "
49
"NAME NAVCOMPLETE NETCACHE NETHOOD NEW NEWMENU NEXT NO NOADJUST "
50
"NOBORDER NOERROR NOEXT NOFACE NOFILES NOFOCUS NOFOLDERS NONE "
51
"NOOPEN NOREFRESH NORESET NORMAL NORTH NOSIZE NOVECTOR NOVRT NOW "
52
"NOWRAP NUMBER OCTAL OFF OK OKCANCEL ON ONECLICK ONELINE OPEN "
53
"OVERLAP OWNED PARENT PATH PCPATH PERIOD PERSONAL POLYGON PREFS "
54
"PREV PREVIOUS PRINT PRINTERS PROGRAMS PROP PROPERTY PULSE "
55
"QUESTION QUOTE RAGGED RAISED RB RC REC RECENT REFRESH REMOVE "
56
"REMSIZE RENAME REPORT RESIZE RET RETRY RIGHT RMB ROMAN ROOT "
57
"ROUNDED ROUTINE ROWS RT SAVE SCALABLE SCREEN SCRIPT SCROLL "
58
"SEARCH SECOND SELECT SELECTED SELSCRIPT SENDTO SENSITIVE "
59
"SENTENCE SHELL SHOW SILENT SIMPLE SINGLE SIZE SMALL SMOOTH "
60
"SOLID SORT START STARTGUI STARTUP STAT0 STATIC STATUS STD STOP "
61
"STRECH STRIKE SUBCHILD SUBSUB SUNK SUNKEN SWISS SYSMENU TAB "
62
"TABS TC TEMPLATES TEXT THIN TIME TITLE TL TOGGLE TOOL TOP "
63
"TOPMOST TOTAL TR TRANS TRANSPARENT TTONLY TYPE UNDERLINE "
64
"UNFORMAT UNJULIAN UNQUOTE UNSELECT UNSELECTED UPPER USER VALID "
65
"VARIABLE VCENTER VERSION VERTICAL VIEW WAIT WARN WHEEL WIDTH "
66
"WINEDGE WORD YEAR YES YESNO YESTOALL YNCANCEL")
68
EVENTS = (1, "XAREA XBROWSER XBUTTON XCHECKBOX XCOMBO XEDBOX XGROUPBOX XICON "
69
"XIMAGE XLISTVIEW XMENU XPAN XPROGRESS XRADIO XREBAR XSPLITER "
70
"XSTATUS XTAB XTEXTBOX XTEXTIN XTOOLBAR XTRACKBAR XTREEVIEW "
71
"XUPDOWN XAFTER XATTR XBEFORE XENUM XHOTKEY XNOTIFY XONACTIVE "
72
"XONBROWSER XONCLICK XONCLOSE XONDOUBLECLICK XONDROP XONFAIL "
73
"XONHELP XONINACTIVE XONKEY XONLMB XONLOAD XONLVCLICK XONLVDIR "
74
"XONMARK XONMMB XONOPEN XONQUIT XONRELOAD XONRETURN XONRMB "
75
"XONTEXTIN XONWHEELDOWN XONWHEELUP XPIPE XREQFILE XROUTINE "
76
"XTBARICON XTIMER XONKEY")
78
ATTRIBUTES = (2, "ATTR BACKGROUND BUDDY BUFFERS COLORS COLSAVE DATA DBGSTEP DBGVARS "
79
"DEBUG DEEPTRANS EDITOR ENDGUI ESCAPE FAIL FILTER FONT FRAME "
80
"GRID HELP ICON ID IXICON KEY LIKE LOCAL LVCOLUMN MAXDATE "
81
"MAXSIZE MAXTRANS MCINOTIFY MCISIGNAL MENU MINDATE MINSIZE "
82
"NEXT OUTPUT PAGE PARENT PATH PREFS RBSTYLE RESIZE SAY SHAPE "
83
"SHOW STARTGUI STYLE TAB TITLE TRANSLATE VARIABLES")
85
CONTROL = (3, "AND ANDIFEXISTS BREAK CALL CASE DOCASE ELSE ELSEIF ELSEIFEXISTS "
86
"ENDCASE ENDFOR ENDIF ENDWHILE FOR GO GOSUB GOTO IF IFEXISTS "
87
"LABEL OR ORIFEXISTS QUIT RETURN STOP WHILE")
89
COMMANDS = (4, "ADD ADDRESS ADDUNIQUE APPEND APPVAR ASSIGN AUTO BRANCH BROWSER "
90
"CD CLOSE COMBO COMMAND COPY CREATE CREATELINK CUT CUTVAR DBSUM "
91
"DCKDEBUG DDEXEC DDPUT DDUSE DEC DEL DELAY DELETE DELVAR EDBOX "
92
"EMPTYBIN ENUM EXIT EXTRACT FLASH FREEFONT FREEICON GETCLIP "
93
"GETCOLOR GETFONT GOSUB GUI GUICLOSE GUILOAD GUIOPEN GUIQUIT "
94
"GUIRENAME GUIWINDOW HTMLHELP IMAGE INC JOINFILE LAUNCH "
95
"LISTVIEW LOADFONT LOADICON LV LVACTION LVCLIP LVREP LVSEARCH "
96
"LVSWITCH MAKEDIR MCI MOVE MSGBOX NEWFILE PARSEVAR POPMENU "
97
"QUICKMENU QUIT RANDOM REGCREATE REGDELETE REGGET REGSET RENAME "
98
"REPVAR REQFILE RUN SAY SEARCHVAR SEND SET SETATTR SETCLIP "
99
"SETEVENT SETGADVALUES SETICON SETPOINTER SETVAR SETWINATTR "
100
"SETWINTITLE SHELL STATUS SYSTEM TERMINATEPROC TEXTFILE "
101
"TREEVIEW TV UPDATE UPDOWN USE WAIT WINATTR WINDOW")
103
#---- End Keyword Definitions ----#
105
#---- Syntax Style Specs ----#
106
SYNTAX_ITEMS = [(stc.STC_GC_ATTRIBUTE, 'keyword3_style'),
107
(stc.STC_GC_COMMAND, 'keyword2_style'),
108
(stc.STC_GC_COMMENTBLOCK, 'comment_style'),
109
(stc.STC_GC_COMMENTLINE, 'comment_style'),
110
(stc.STC_GC_CONTROL, 'keyword_style'),
111
(stc.STC_GC_DEFAULT, 'default_style'),
112
(stc.STC_GC_EVENT, 'keyword4_style'),
113
(stc.STC_GC_GLOBAL, 'global_style'),
114
(stc.STC_GC_OPERATOR, 'operator_style'),
115
(stc.STC_GC_STRING, 'string_style')]
117
#---- Extra Properties ----#
119
FOLD_COMP = ("fold.compact", "1")
121
#-----------------------------------------------------------------------------#
123
class SyntaxData(syndata.SyntaxDataBase):
124
"""SyntaxData object for Gui4Cli"""
125
def __init__(self, langid):
126
super(SyntaxData, self).__init__(langid)
129
self.SetLexer(stc.STC_LEX_GUI4CLI)
131
def GetKeywords(self):
132
"""Returns Specified Keywords List """
133
return [GLOBALS, EVENTS, ATTRIBUTES, CONTROL, COMMANDS]
135
def GetSyntaxSpec(self):
136
"""Syntax Specifications """
139
def GetProperties(self):
140
"""Returns a list of Extra Properties to set
141
@note: gui4cli supports folding but it seems to be partially broken
144
return list() #[FOLD, FOLD_COMP]
146
def GetCommentPattern(self):
147
"""Returns a list of characters used to comment a block of code """