-
Notifications
You must be signed in to change notification settings - Fork 16
/
Visual Foxpro.JSON-tmLanguage
156 lines (147 loc) · 17.3 KB
/
Visual Foxpro.JSON-tmLanguage
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
{ "name": "Visual FoxPro",
"scopeName": ".foxpro",
"fileTypes": ["prg"],
"patterns": [
{ "include": "#operators"},
{ "include": "#string1"},
{ "include": "#string2"},
{ "include": "#string3"},
{ "include": "#comment1"},
{ "include": "#comment2"},
{ "include": "#numericConstant"},
{ "include": "#constant"},
{ "include": "#controlKeywords"},
{ "include": "#classDefinition" },
{ "include": "#functionDefinition"},
{ "match": "(?i:\\b(acla|aclass|adbo|adbobjects|adat|adatabases|adir|adoc|adockstate|aerr|aerror|aeve|aevents|afie)\\b)", "name": "keywords.foxpro", "comment": "" },
{ "match": "(?i:\\b(afields|afon|afont|agetc|agetclass|agetf|agetfileversion|ainst|ainstance|alan|alanguage|alin)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(alines|amem|amembers|amou|amouseobj|anet|anetresources|apri|aprinters|apro|aprocinfo|asql|asqlhandles)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(asel|aselobj|asta|astackinfo|atag|ataginfo|ause|aused|avcx|avcxclasses|abs|acop|acopy|acos|addp|addproperty)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(addb|addbs|adel|adll|adlls|aele|aelement|ains|alen|alia|alias|allt|alltrim|asc|asca|ascan|ases|asessions|asin)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(asor|asort|asub|asubscript|at|at_c|atan|atc|atcc|atcl|atcline|atli|atline|avg|bar|betw|between|bint|bintoc|bind)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(bindevent|bita|bitand|bitc|bitclear|bitl|bitlshift|bitn|bitnot|bito|bitor|bitr|bitrshift|bits|bitset|bitt)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(bittest|bitx|bitxor|bof|ctob|ctobin|cand|candidate|caps|capslock|cast|cdow|cdx|ceil|ceiling|chr|chrs|chrsaw)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(chrt|chrtran|chrtranc|clearr|clearresultset|cmon|cmonth|cnt|cntb|cntbar|cntp|cntpad|coma|comarray|comc)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(comclassinfo|comr|comreturnerror|comp|compobj|comprop|cos|count|cpco|cpconvert|cpcu|cpcurrent|cpdb|cpdbf)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(createb|createbinary|create|createobject|createobjectex|createof|createoffline|ctod|ctot|curd|curdir|cursorg)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(cursorgetprop|cursors|cursorsetprop|cursortox|cursortoxml|curv|curval|dbal|dbalias|dbge|dbgetprop|dbse|dbsetprop)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(dbus|dbused|ddeab|ddeaborttrans|ddead|ddeadvise|ddeen|ddeenabled|ddeex|ddeexecute|ddei|ddeinitiate|ddel|ddelasterror)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(ddep|ddepoke|dder|dderequest|ddes|ddesetoption|ddesets|ddesetservice|ddesett|ddesettopic|ddet|ddeterminate|date)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(datet|datetime|day|dbc|dbf|defa|defaultext|dele|deleted|desc|descending|diff|difference|dire|directory|disk)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(diskspace|disp|displaypath|dmy|dode|dodefault|dow|driv|drivetype|drop|dropoffline|dtoc|dtor|dtos|dtot|edit)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(editsource|empt|empty|endfor|endscan|eof|erro|error|eval|evaluate|event|eventhandler|evl|exec|execscript|exp|fchs|fchsize)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(fclo|fclose|fcou|fcount|fcre|fcreate|fdat|fdate|feof|ferr|ferror|fflu|fflush|fget|fgets|fiel|field|file|filet)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(filetostr|filt|filter|fkla|fklabel|fkma|fkmax|floc|flock|floo|floor|font|fontmetric|fope|fopen|for|forc)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(forceext|forcep|forcepath|foun|found|fput|fputs|frea|fread|fsee|fseek|fsiz|fsize|ftim|ftime|full|fullpath)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(fv|fwri|fwrite|geta|getautoincvalue|getcp|getc|getcolor|getcu|getcursoradapter|getd|getdir|gete|getenv)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(getf|getfile|getfl|getfldstate|getfo|getfont|geth|gethost|geti|getinterface|getn|getnextmodified|geto)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(getobject|getp|getpem|getpi|getpict|getpr|getprinter|getr|getresultset|getwordc|getwordcount|getwordn)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(getwordnum|getb|getbar|getpa|getpad|gomo|gomonth|head|header|home|hour|icas|icase|imes|imestatus|id)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(idxc|idxcollate|iif|inli|inlist|indb|indbc|inde|indexseek|inke|inkey|inpu|inputbox|insm|insmode|int)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(isal|isalpha|isbl|isblank|isco|iscolor|isdi|isdigit|isex|isexclusive|isfl|isflocked|isho|ishosted)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(isle|isleadbyte|islo|islower|isme|ismemofetched|ismo|ismouse|isnu|isnull|ispe|ispen|isrl|isrlocked)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(isre|isreadonly|istr|istransactable|isup|isupper|justd|justdrive|juste|justext|justf|justfname)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(justp|justpath|justs|juststem|key|keym|keymatch|last|lastkey|left|leftc|len|lenc|like|likec|line)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(lineno|load|loadpicture|locf|locfile|lock|log|log1|log10|look|lookup|lowe|lower|ltri|ltrim|lupd)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(lupdate|make|maketransactable|max|mcol|mdow|mdown|mdx|mdy|meml|memlines|memo|memory|menu|mess)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(message|messageb|messagebox|msgb|messagebox|min|minu|minute|mlin|mline|mod|mont|month|mrkb)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(mrkbar|mrkp|mrkpad|mrow|mton|mwin|mwindow|ndx|new|newobject|newo|newobject|norm|normalize|ntom)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(numl|numlock|nvl|objt|objtoclient|occu|occurs|oldv|oldval|on|orde|order|os|pad|padc|padl|padr)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(para|parameters|paym|payment|pcol|pcou|pcount|pems|pemstatus|pi|popu|popup|prim|primary|prin)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(printstatus|prmb|prmbar|prmp|prmpad|prog|program|prom|prompt|prop|proper|prow|prti|prtinfo)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(putf|putfile|pv|quar|quarter|rais|raiseevent|rand|rat|ratc|ratl|ratline|recc|reccount|recn)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(recno|recs|recsize|refr|refresh|rela|relation|remo|removeproperty|repl|replicate|requ|requery)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(rgb|rgbs|rgbscheme|righ|right|rightc|rloc|rlock|roun|round|rtod|rtri|rtrim|sqlca|sqlcancel)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(sqlcol|sqlcolumns|sqlcom|sqlcommit|sqlcon|sqlconnect|sqld|sqldisconnect|sqle|sqlexec|sqlg|sqlgetprop)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(sqli|sqlidledisconnect|sqlm|sqlmoreresults|sqlp|sqlprepare|sqlr|sqlrollback|sqlse|sqlsetprop|sqlst)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(sqlstringconnect|sqlt|sqltables|save|savepicture|scan|sche|scheme|scol|scols|sec|seco|seconds|seek|sele)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(select|set|setf|setfldstate|setr|setresultset|sign|sin|skpb|skpbar|skpp|skppad|soun|soundex|spac)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(space|sqrt|srow|srows|str|stre|strextract|strto|strtofile|strc|strconv|strtr|strtran|stuf|stuff)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(stuffc|subs|substr|substrc|sum|sys|sysm|sysmetric|tabler|tablerevert|tableu|tableupdate|tag|tagc)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(tagcount|tagn|tagno|tan|targ|target|text|textmerge|time|tran|transform|trim|ttoc|ttod|txnl|txnlevel)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(txtw|txtwidth|type|unbi|unbindevents|uppe|upper|used|val|vart|vartype|vers|version|wdoc|wdockable)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(wbor|wborder|wchi|wchild|wcol|wcols|week|wexi|wexist|wfon|wfont|wlas|wlast|wlco|wlcol|wlro|wlrow)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(wmax|wmaximum|wmin|wminimum|wont|wontop|wout|woutput|wpar|wparent|wrow|wrows|wtit|wtitle|wvis|wvisible)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(xmlt|xmltocursor|xmlu|xmlupdategram|year|acti|activate|add|alte|alter|appe|append|asse|assert|aver)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(average|begi|begin|blan|brow|browse|buil|build|calc|calculate|canc|cancel|catc|catch|cd|chdi)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(chdir|chan|change|clea|clear|clos|close|comp|compile|cont|continue|copy|coun|count|crea|create|deac)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(deactivate|debu|debug|debugo|debugout|decl|declare|defi|dele|dime|dimension|dir|disp|display|do|dock)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(doev|doevents|dotip|drop|edit|ejec|eject|end|endc|endcase|endde|enddo|endfo|endfu|endi|endpri)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(endprintjob|endp|ends|endt|endtr|endw|eras|erase|erro|exit|expo|export|exte|external|fina|flus|flush)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(func|gath|gather|gete|getexpr|go|goto|help|hidd|hide|impl|impo|import|inde|index|inse|keyb|keyboard)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(labe|list|local|loca|locate|loop|lpar|md|mkdi|modi|modify|mous|mouse|move|node|nodefault|note|open)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(opendatatip|othe|otherwise|pack|para|parameters|play|pop|prin|printjob|priv|private|prot|publ)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(public|push|quit|rd|read|reca|recall|rein|reindex|rele|release|remo|remove|rena|rename|repl|replace)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(arepltip|repo|restore|resu|resume|retr|retry|retu|rmdi|roll|rollback|run|scat|scatter|seek|sele|sort)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(stor|store|sum|susp|suspend|thro|throw|tota|total|unlo|unlock|upda|use|usetip|vali|validate|wait|zap)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(additive|after|alias|all|alt|alternate|american|ansi|app|array|as|asc|ascending|asserts|at|auto|autoinc)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(autoincerror|automatic|autosave|bar|before|bell|binary|blank|blocksize|bottom|british|browseime|by)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(candidate|carry|cdx|center|century|cga|character|check|class|classlib|click|clock|codepage|collate)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(collection|color|column|command|compact|compatible|confirm|connection|connections|connstring|console)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(control|coverage|cpcompile|cpdialog|csv|currency|cursor|data|database|databases|datasession|datasource)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(date|dbf|dblclick|decimals|default|delete|deleted|deletetables|delimited|delimiters|desc|descending)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(development|device|dif|directory|distinct|dll|dlls|dmy|dohistory|dos|double|drag|each|echo|encrypt)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(enginebehavior|environment|error|escape|eventlist|eventtracking|exact|except|exclude|exclusive|exe)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(extended|fdow|field|fields|file|files|fill|filter|finally|fixed|flags|float|font|footer|force|foreign)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(form|format|foxplus|free|freeze|french|from|full|fullpath|fweek|general|group|grow|halfheight|having)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(heading|headings|helpfilter|hidden|hours|icon|id|implements|in|indexes|inner|insert|into|italian|japan)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(join|key|keycomp|label|last|ledit|left|library|like|line|link|lock|logerrors|long|lparameters|lpartition)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(ltrjustify|macdesktop|mackey|macro|macros|margin|mark|master|max|mdi|mdy|memo|memory|memowidth|memvar|menu)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(menus|message|method|middle|min|minimize|mkdir|mod|mover|mru|mtdll|multilocks|multiselect|name|near|negotiate)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(next|nextvalue|noappend|nocaptions|noclear|noclose|noconsole|nocptrans|nodebug|nodelete|nodialog|nodup|noedit)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(noenvironment|nofilter|nofloat|nogrow|noinit|nolgrid|nolink|nomargin|nomdi|nomenu|nominimize|nomodify|none)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(nooptimize|nooverwrite|nopageeject|noprompt|norefresh|norequery|noreset|norgrid|norm|normal|nosave|noshow)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(notify|nowait|nowindow|nozoom|null|nulldisplay|object|objects|odometer|of|off|oleobject|on|optimize|order|pad)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(page|palette|panel|partition|password|path|pdox|pdsetup|percent|pictres|picture|pixels|plain|point|popup|popups)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(position|preference|pretext|preview|primary|printer|production|project|prompt|protected|query|range)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(readborder|readwrite|recompile|record|recover|recycle|redit|reference|references|refresh|relation|relative|remote)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(report|reportbehavior|reprocess|resource|resources|rest|return|right|rmdir|rollover|rpd|rtljustify|safety|same|save)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(scheme|screen|scroll|sdf|seconds|select|selection|separator|set|share|sheet|shift|short|shortcut|show|shutdown|size)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(skip|space|sql|sqlbuffering|status|step|strictdate|structure|style|summary|sylk|sysformats|sysmenu|system|tab|table)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(tables|tablevalidate|tag|taiwan|talk|textmerge|time|timeout|title|to|top|topic|transaction|try|endtry|trbetween|trigger|type)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(typeahead|udfparms|union|unique|update|usa|userid|valid|value|values|varcharmapping|view|views|when|where|while)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(endtext|define|class|enddefine|endproc|include|func|function|endfunc)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(awidth|window|windows|wks|wrap|wrk|xls|ymd|zoom|and|or|not)\\b)", "name": "keyword.foxpro", "comment": "" },
{ "match": "(?i:\\b(this|thisform)\\b)", "name": "keyword.foxpro", "comment": "" }
],
"repository": {
"string1": { "match": "(\")(.*)(\")", "name": "string.foxpro" },
"string2": { "match": "(')(.*)(')", "name": "string.foxpro" },
"string3": { "match": "(\\[)(.*)(\\])", "name": "string.foxpro" },
"numericConstant": { "match": "\\b(-?\\d+(\\.?\\d?)*)", "name": "constant.foxpro" },
"operators": { "match": "\\b(\\+|\\-|\\^|\\*|\\=)\\b", "name": "keyword.operator.foxpro" },
"constant": { "match": "(?i:(\\.t\\.|\\.f\\.|\\.null\\.))", "name": "constant.foxpro"},
"comment1": { "match": "(&&.*)", "name": "comment.foxpro"},
"comment2": { "match": "(^\\s*\\*.*)", "name": "comment.foxpro"},
"controlKeywords": {
"name": "keyword.control.foxpro",
"match": "(?i:\\b(if|else|endif|with|endwith|do case|case|endcase|)\\b)"},
"functionDefinition": {
"name": "meta.function.vbnet",
"begin": "(?i:\\b(proc[e]?[d]?[u]?[r]?[e]?|func[t]?[i]?[o]?[n]?)\\s+([a-zA-Z_]\\w*)\\s*(\\()?)",
"beginCaptures": {
"1": { "name": "support.type.function.vbnet" },
"2": { "name": "entity.name.function.vbnet" },
"3": { "name": "meta.parameters.vbnet"},
"4": { "name": "punctuation.definition.parameters.vbnet" }
},
"patterns": [
{ "include": "#otherKeywords" },
{ "include": "#supportTypes" }
],
"end": "(\\))?\\s*",
"endCaptures": {
"1": { "name": "punctuation.definition.parameters.vbnet" }
}
},
"classDefinition":{
"name": "meta.class.foxpro",
"match": "(?i:\\b(define class)\\s+([a-zA-Z_]\\w*)\\s*)",
"captures": {
"1": { "name": "storage.type.class.vbnet" },
"2": { "name": "entity.name.type.class.vbnet" }
}
}
},
"uuid": "e42126eb-466c-4187-9bd2-5385285fbe69"
}