add SUV interfacing stuff to vscode

This commit is contained in:
Michael Becker 2023-11-28 22:10:24 -05:00
parent d877fc2bed
commit 131ad9cd24
11 changed files with 1215 additions and 9 deletions

View File

@ -0,0 +1,530 @@
{
"information_for_contributors": [
"This file has been converted from https://github.com/Microsoft/vscode-mssql/blob/master/syntaxes/SQL.plist",
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
"version": "https://github.com/Microsoft/vscode-mssql/commit/cd754662e5607c62ecdc51d2a2dc844546a0bbb6",
"name": "Mocha ZQL",
"scopeName": "source.zql",
"patterns": [
{
"match": "^[ \\t]*-{2,}\\s+(@[\\w_]+)\\s+(.+)?$",
"captures":{
"1": {
"name": "text.variable"
},
"2": {
"name": "entity.name.type.instance.metadata"
}
}
},
{
"match": "((?<!@)@)\\b(\\w+)\\b",
"name": "text.variable"
},
{
"match": "(\\[)[^\\]]*(\\])",
"name": "text.bracketed"
},
{
"match": "\\b(?i)(class||static|stub|function)\\b",
"name": "keyword.other.sql"
},
{
"include": "#comments"
},
{
"captures": {
"1": {
"name": "keyword.other.create.sql"
},
"2": {
"name": "keyword.other.sql"
},
"5": {
"name": "entity.name.function.sql"
}
},
"match": "(?i:^\\s*(create(?:\\s+or\\s+replace)?)\\s+(aggregate|conversion|database|domain|function|group|(unique\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)(['\"`]?)(\\w+)\\4",
"name": "meta.create.sql"
},
{
"captures": {
"1": {
"name": "keyword.other.create.sql"
},
"2": {
"name": "keyword.other.sql"
}
},
"match": "(?i:^\\s*(drop)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))",
"name": "meta.drop.sql"
},
{
"captures": {
"1": {
"name": "keyword.other.create.sql"
},
"2": {
"name": "keyword.other.table.sql"
},
"3": {
"name": "entity.name.function.sql"
},
"4": {
"name": "keyword.other.cascade.sql"
}
},
"match": "(?i:\\s*(drop)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)",
"name": "meta.drop.sql"
},
{
"captures": {
"1": {
"name": "keyword.other.create.sql"
},
"2": {
"name": "keyword.other.table.sql"
}
},
"match": "(?i:^\\s*(alter)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)",
"name": "meta.alter.sql"
},
{
"captures": {
"1": {
"name": "storage.type.sql"
},
"2": {
"name": "storage.type.sql"
},
"3": {
"name": "constant.numeric.sql"
},
"4": {
"name": "storage.type.sql"
},
"5": {
"name": "constant.numeric.sql"
},
"6": {
"name": "storage.type.sql"
},
"7": {
"name": "constant.numeric.sql"
},
"8": {
"name": "constant.numeric.sql"
},
"9": {
"name": "storage.type.sql"
},
"10": {
"name": "constant.numeric.sql"
},
"11": {
"name": "storage.type.sql"
},
"12": {
"name": "storage.type.sql"
},
"13": {
"name": "storage.type.sql"
},
"14": {
"name": "constant.numeric.sql"
},
"15": {
"name": "storage.type.sql"
}
},
"match": "(?xi)\n\n\t\t\t\t# normal stuff, capture 1\n\t\t\t\t \\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|numeric|text)\\b\n\n\t\t\t\t# numeric suffix, capture 2 + 3i\n\t\t\t\t|\\b(bit\\svarying|character\\s(?:varying)?|tinyint|var\\schar|float|interval)\\((\\d+)\\)\n\n\t\t\t\t# optional numeric suffix, capture 4 + 5i\n\t\t\t\t|\\b(char|number|varchar\\d?)\\b(?:\\((\\d+)\\))?\n\n\t\t\t\t# special case, capture 6 + 7i + 8i\n\t\t\t\t|\\b(numeric|decimal)\\b(?:\\((\\d+),(\\d+)\\))?\n\n\t\t\t\t# special case, captures 9, 10i, 11\n\t\t\t\t|\\b(times?)\\b(?:\\((\\d+)\\))?(\\swith(?:out)?\\stime\\szone\\b)?\n\n\t\t\t\t# special case, captures 12, 13, 14i, 15\n\t\t\t\t|\\b(timestamp)(?:(s|tz))?\\b(?:\\((\\d+)\\))?(\\s(with|without)\\stime\\szone\\b)?\n\n\t\t\t"
},
{
"match": "(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|check|constraint)\\b)",
"name": "storage.modifier.sql"
},
{
"match": "\\b\\d+\\b",
"name": "constant.numeric.sql"
},
{
"match": "(?i:\\b(select(\\s+distinct)?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\sby|or|like|and|union(\\s+all)?|having|order\\sby|limit|(inner|cross)\\s+join|join|straight_join|full\\s+outer\\s+join|(left|right)(\\s+outer)?\\s+join|natural(\\s+(left|right)(\\s+outer)?)?\\s+join)\\b)",
"name": "keyword.other.DML.sql"
},
{
"match": "(?i:\\b(on|off|((is\\s+)?not\\s+)?null)\\b)",
"name": "keyword.other.DDL.create.II.sql"
},
{
"match": "(?i:\\bvalues\\b)",
"name": "keyword.other.DML.II.sql"
},
{
"match": "(?i:\\b(begin(\\s+work)?|start\\s+transaction|commit(\\s+work)?|rollback(\\s+work)?)\\b)",
"name": "keyword.other.LUW.sql"
},
{
"match": "(?i:\\b(grant(\\swith\\sgrant\\soption)?|revoke)\\b)",
"name": "keyword.other.authorization.sql"
},
{
"match": "(?i:\\bin\\b)",
"name": "keyword.other.data-integrity.sql"
},
{
"match": "(?i:^\\s*(comment\\s+on\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\s+.*?\\s+(is)\\s+)",
"name": "keyword.other.object-comments.sql"
},
{
"match": "(?i)\\bAS\\b",
"name": "keyword.other.alias.sql"
},
{
"match": "(?i)\\b(DESC|ASC)\\b",
"name": "keyword.other.order.sql"
},
{
"match": "\\*",
"name": "keyword.operator.star.sql"
},
{
"match": "[!<>]?=|<>|<|>",
"name": "keyword.operator.comparison.sql"
},
{
"match": "-|\\+|/",
"name": "keyword.operator.math.sql"
},
{
"match": "\\|\\|",
"name": "keyword.operator.concatenator.sql"
},
{
"match": "(?i)\\b(avg|checksum_agg|count|count_big|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\b",
"name": "support.function.aggregate.sql"
},
{
"match": "(?i)\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\b",
"name": "support.function.conversion.sql"
},
{
"match": "(?i)\\b(cursor_status)\\b",
"name": "support.function.cursor.sql"
},
{
"match": "(?i)\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|eomonth|switchoffset|todatetimeoffset|isdate)\\b",
"name": "support.function.datetime.sql"
},
{
"match": "(?i)\\b(coalesce|nullif)\\b",
"name": "support.function.expression.sql"
},
{
"match": "(?<!@)@@(?i)\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\b",
"name": "support.function.globalvar.sql"
},
{
"match": "(?i)\\b(choose|iif)\\b",
"name": "support.function.logical.sql"
},
{
"match": "(?i)\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\b",
"name": "support.function.mathematical.sql"
},
{
"match": "(?i)\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\b",
"name": "support.function.metadata.sql"
},
{
"match": "(?i)\\b(rank|dense_rank|ntile|row_number)\\b",
"name": "support.function.ranking.sql"
},
{
"match": "(?i)\\b(opendatasource|openrowset|openquery|openxml)\\b",
"name": "support.function.rowset.sql"
},
{
"match": "(?i)\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\b",
"name": "support.function.security.sql"
},
{
"match": "(?i)\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|patindex|quotename|replace|replicate|reverse|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\b",
"name": "support.function.string.sql"
},
{
"match": "(?i)\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\b",
"name": "support.function.system.sql"
},
{
"match": "(?i)\\b(patindex|textptr|textvalid)\\b",
"name": "support.function.textimage.sql"
},
{
"captures": {
"1": {
"name": "constant.other.database-name.sql"
},
"2": {
"name": "constant.other.table-name.sql"
}
},
"match": "(\\w+?)\\.(\\w+)"
},
{
"include": "#strings"
},
{
"include": "#regexps"
},
{
"captures": {
"1": {
"name": "punctuation.section.scope.begin.sql"
},
"2": {
"name": "punctuation.section.scope.end.sql"
}
},
"comment": "Allow for special ↩ behavior",
"match": "(\\()(\\))",
"name": "meta.block.sql"
}
],
"repository": {
"comments": {
"patterns": [
{
"begin": "(^[ \\t]+)?(?=--)",
"beginCaptures": {
"1": {
"name": "punctuation.whitespace.comment.leading.zql"
}
},
"end": "(?!\\G)",
"patterns": [
{
"begin": "//",
"beginCaptures": {
"0": {
"name": "punctuation.definition.comment.zql"
}
},
"end": "\\n",
"name": "comment.line.double-dash.zql"
}
]
},
{
"begin": "(^[ \\t]+)?(?=#)",
"beginCaptures": {
"1": {
"name": "punctuation.whitespace.comment.leading.zql"
}
},
"end": "(?!\\G)",
"patterns": []
},
{
"begin": "/\\*",
"captures": {
"0": {
"name": "punctuation.definition.comment.zql"
}
},
"end": "\\*/",
"name": "comment.block.c"
}
]
},
"regexps": {
"patterns": [
{
"begin": "/(?=\\S.*/)",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.sql"
}
},
"end": "/",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.sql"
}
},
"name": "string.regexp.sql",
"patterns": [
{
"include": "#string_interpolation"
},
{
"match": "\\\\/",
"name": "constant.character.escape.slash.sql"
}
]
},
{
"begin": "%r\\{",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.sql"
}
},
"comment": "We should probably handle nested bracket pairs!?! -- Allan",
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.sql"
}
},
"name": "string.regexp.modr.sql",
"patterns": [
{
"include": "#string_interpolation"
}
]
}
]
},
"string_escape": {
"match": "\\\\.",
"name": "constant.character.escape.sql"
},
"string_interpolation": {
"captures": {
"1": {
"name": "punctuation.definition.string.begin.sql"
},
"3": {
"name": "punctuation.definition.string.end.sql"
}
},
"match": "(#\\{)([^\\}]*)(\\})",
"name": "string.interpolated.sql"
},
"strings": {
"patterns": [
{
"captures": {
"1": {
"name": "punctuation.definition.string.begin.sql"
},
"2": {
"name": "punctuation.definition.string.end.sql"
}
},
"comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",
"match": "(N)?(')[^']*(')",
"name": "string.quoted.single.sql"
},
{
"begin": "'",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.sql"
}
},
"end": "'",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.sql"
}
},
"name": "string.quoted.single.sql",
"patterns": [
{
"include": "#string_escape"
}
]
},
{
"captures": {
"1": {
"name": "punctuation.definition.string.begin.sql"
},
"2": {
"name": "punctuation.definition.string.end.sql"
}
},
"comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",
"match": "(`)[^`\\\\]*(`)",
"name": "string.quoted.other.backtick.sql"
},
{
"begin": "`",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.sql"
}
},
"end": "`",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.sql"
}
},
"name": "string.quoted.other.backtick.sql",
"patterns": [
{
"include": "#string_escape"
}
]
},
{
"captures": {
"1": {
"name": "punctuation.definition.string.begin.sql"
},
"2": {
"name": "punctuation.definition.string.end.sql"
}
},
"comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",
"match": "(\")[^\"#]*(\")",
"name": "string.quoted.double.sql"
},
{
"begin": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.sql"
}
},
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.sql"
}
},
"name": "string.quoted.double.sql",
"patterns": [
{
"include": "#string_interpolation"
}
]
},
{
"begin": "%\\{",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.sql"
}
},
"end": "\\}",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.sql"
}
},
"name": "string.other.quoted.brackets.sql",
"patterns": [
{
"include": "#string_interpolation"
}
]
}
]
}
}
}

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg4" width="250" height="250" version="1.1"><metadata id="metadata10"/><path id="path2-3" fill="#c5c5c5" fill-opacity="1" stroke-width="16.241" d="m 185.03615,136.31325 v 48.72291 h -48.72291 v 16.24093 h 48.72291 V 250 h 16.24094 V 201.27709 H 250 V 185.03616 H 201.27709 V 136.31325 Z M 120.19922,10 c -44.632848,0 -80.828126,18.08955 -80.828126,40.414062 0,0.646624 0.324054,1.244002 0.388672,1.890626 H 39.371094 V 195.72461 l 0.90625,5.77148 c 4.526324,19.56022 38.360459,34.82032 79.921876,34.82032 18.62135,0 35.67987,-3.06997 49.25781,-8.21094 v -17.50781 c -10.95269,5.22461 -27.63426,9.55273 -49.25781,9.55273 -39.298237,0 -62.318714,-14.28913 -64.177736,-22.29101 l -0.484375,-2.11719 v -0.0664 -121.240233 c 19.568307,11.472958 41.991178,17.157854 64.662111,16.392578 22.66464,0.784826 45.087,-4.87764 64.66211,-16.328125 v 46.19922 h 16.16406 V 52.304688 h -0.38672 c 0.0647,-0.646624 0.38672,-1.244001 0.38672,-1.890626 C 201.02539,28.08955 164.83207,10 120.19922,10 Z m 0,16.683594 c 39.47607,0 64.66211,15.647734 64.66211,23.730468 0,8.082738 -25.18604,23.730469 -64.66211,23.730469 -39.476073,0 -64.662111,-15.583069 -64.662111,-23.730469 0,-8.147396 25.186038,-23.730468 64.662111,-23.730468 z m 65.5,110.255856 v 48.09766 h 15.32617 v -48.09766 z m 0,64.33789 v 18.58008 c 7.73767,-5.29672 12.84991,-11.56825 14.42187,-18.36133 l 0.0352,-0.21875 z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg4" width="250" height="250" version="1.1"><metadata id="metadata10"/><path id="path2-3" fill="#424242" fill-opacity="1" stroke-width="16.241" d="m 185.03615,136.31325 v 48.72291 h -48.72291 v 16.24093 h 48.72291 V 250 h 16.24094 V 201.27709 H 250 V 185.03616 H 201.27709 V 136.31325 Z M 120.19922,10 c -44.632848,0 -80.828126,18.08955 -80.828126,40.414062 0,0.646624 0.324054,1.244002 0.388672,1.890626 H 39.371094 V 195.72461 l 0.90625,5.77148 c 4.526324,19.56022 38.360459,34.82032 79.921876,34.82032 18.62135,0 35.67987,-3.06997 49.25781,-8.21094 v -17.50781 c -10.95269,5.22461 -27.63426,9.55273 -49.25781,9.55273 -39.298237,0 -62.318714,-14.28913 -64.177736,-22.29101 l -0.484375,-2.11719 v -0.0664 -121.240233 c 19.568307,11.472958 41.991178,17.157854 64.662111,16.392578 22.66464,0.784826 45.087,-4.87764 64.66211,-16.328125 v 46.19922 h 16.16406 V 52.304688 h -0.38672 c 0.0647,-0.646624 0.38672,-1.244001 0.38672,-1.890626 C 201.02539,28.08955 164.83207,10 120.19922,10 Z m 0,16.683594 c 39.47607,0 64.66211,15.647734 64.66211,23.730468 0,8.082738 -25.18604,23.730469 -64.66211,23.730469 -39.476073,0 -64.662111,-15.583069 -64.662111,-23.730469 0,-8.147396 25.186038,-23.730468 64.662111,-23.730468 z m 65.5,110.255856 v 48.09766 h 15.32617 v -48.09766 z m 0,64.33789 v 18.58008 c 7.73767,-5.29672 12.84991,-11.56825 14.42187,-18.36133 l 0.0352,-0.21875 z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

102
icons/dark/explorer/class.svg Executable file
View File

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="24"
height="24"
viewBox="0 0 6.3499994 6.3499994"
version="1.1"
id="svg5"
sodipodi:docname="class.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
width="24px"
units="px"
showguides="true"
inkscape:zoom="29.634812"
inkscape:cx="6.1582979"
inkscape:cy="10.646263"
inkscape:window-width="1452"
inkscape:window-height="752"
inkscape:window-x="134"
inkscape:window-y="114"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid11646"
enabled="true"
dotted="false"
originx="3.1749997"
originy="3.1749997" />
</sodipodi:namedview>
<defs
id="defs2">
<linearGradient
id="linearGradient7883"
inkscape:swatch="solid">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop7881" />
</linearGradient>
<linearGradient
id="linearGradient5790"
inkscape:swatch="solid">
<stop
style="stop-color:#ffb100;stop-opacity:1;"
offset="0"
id="stop5788" />
</linearGradient>
<linearGradient
id="linearGradient5784"
inkscape:swatch="solid">
<stop
style="stop-color:#ffb100;stop-opacity:1;"
offset="0"
id="stop5782" />
</linearGradient>
<linearGradient
id="linearGradient1808"
inkscape:swatch="solid">
<stop
style="stop-color:#659151;stop-opacity:1;"
offset="0"
id="stop1806" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1808"
id="linearGradient1810"
x1="0.1886691"
y1="3.3783665"
x2="6.2098795"
y2="3.3783665"
gradientUnits="userSpaceOnUse" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="path282"
style="fill:url(#linearGradient1810);fill-opacity:1;stroke:none;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 3.1687988 0.53485107 C 1.8521293 0.53708611 0.53747486 0.80188978 0.52916667 1.3229167 C 0.51255028 2.3649704 2.5061109 6.0929182 3.175 6.0854167 C 3.843889 6.0779167 5.8541832 2.3828507 5.8208333 1.3229167 C 5.8041584 0.79294963 4.4854684 0.53261604 3.1687988 0.53485107 z M 3.1718994 1.3151652 A 1.5875041 1.5951513 0 0 1 4.7625 2.9067993 L 3.175 2.9104167 L 4.7625 2.9104167 A 1.5875041 1.5951513 0 0 1 3.1760335 4.5056681 A 1.5875041 1.5951513 0 0 1 1.5875 2.9124837 A 1.5875041 1.5951513 0 0 1 3.1718994 1.3151652 z " />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

102
icons/light/explorer/class.svg Executable file
View File

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="24"
height="24"
viewBox="0 0 6.3499994 6.3499994"
version="1.1"
id="svg5"
sodipodi:docname="class.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
width="24px"
units="px"
showguides="true"
inkscape:zoom="29.634812"
inkscape:cx="8.0142233"
inkscape:cy="10.612519"
inkscape:window-width="1452"
inkscape:window-height="752"
inkscape:window-x="118"
inkscape:window-y="114"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:grid
type="xygrid"
id="grid11646"
enabled="true"
dotted="false"
originx="3.1749997"
originy="3.1749997" />
</sodipodi:namedview>
<defs
id="defs2">
<linearGradient
id="linearGradient7883"
inkscape:swatch="solid">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop7881" />
</linearGradient>
<linearGradient
id="linearGradient5790"
inkscape:swatch="solid">
<stop
style="stop-color:#ffb100;stop-opacity:1;"
offset="0"
id="stop5788" />
</linearGradient>
<linearGradient
id="linearGradient5784"
inkscape:swatch="solid">
<stop
style="stop-color:#ffb100;stop-opacity:1;"
offset="0"
id="stop5782" />
</linearGradient>
<linearGradient
id="linearGradient1808"
inkscape:swatch="solid">
<stop
style="stop-color:#008317;stop-opacity:1;"
offset="0"
id="stop1806" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1808"
id="linearGradient1810"
x1="0.1886691"
y1="3.3783665"
x2="6.2098795"
y2="3.3783665"
gradientUnits="userSpaceOnUse" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="path282"
style="fill:url(#linearGradient1810);fill-opacity:1;stroke:none;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 3.1687988 0.53485107 C 1.8521293 0.53708611 0.53747486 0.80188978 0.52916667 1.3229167 C 0.51255028 2.3649704 2.5061109 6.0929182 3.175 6.0854167 C 3.843889 6.0779167 5.8541832 2.3828507 5.8208333 1.3229167 C 5.8041584 0.79294963 4.4854684 0.53261604 3.1687988 0.53485107 z M 3.1718994 1.3151652 A 1.5875041 1.5951513 0 0 1 4.7625 2.9067993 L 3.175 2.9104167 L 4.7625 2.9104167 A 1.5875041 1.5951513 0 0 1 3.1760335 4.5056681 A 1.5875041 1.5951513 0 0 1 1.5875 2.9124837 A 1.5875041 1.5951513 0 0 1 3.1718994 1.3151652 z " />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -15,31 +15,74 @@
"commands": [ "commands": [
{ {
"command": "suvmanager.suv_manager", "command": "suvmanager.suv_manager",
"title": "Mocha: SUV Manager" "title": "Manage SUVs",
"category": "Mocha"
}, },
{ {
"command": "suvmanager.suv_up", "command": "suvmanager.suv_up",
"title": "Mocha: SUV Up" "title": "Launch SUV",
"category": "Mocha"
},
{
"command": "mocha.suvmanager.suv_new",
"title": "Provision New SUV",
"category": "Mocha",
"icon": {
"light": "icons/commands/add-connection-light.svg",
"dark": "icons/commands/add-connection-dark.svg"
}
}, },
{ {
"command": "mocha.add_documentation_comment", "command": "mocha.add_documentation_comment",
"title": "Mocha: Add Documentation Comment" "title": "Add Documentation Comment",
"category": "Mocha"
}, },
{ {
"command": "mocha.add_extension_qualifier", "command": "mocha.add_extension_qualifier",
"title": "Mocha: Add Extension Qualifier" "title": "Add Extension Qualifier",
"category": "Mocha"
}, },
{ {
"command": "mocha.publish_zq_stub_with_implementation", "command": "mocha.publish_zq_stub_with_implementation",
"title": "Mocha: Publish as ZQ stub and upload implementation" "title": "Publish as ZQ stub and upload implementation",
"category": "Mocha"
}, },
{ {
"command": "mocha.publish_zq_stub", "command": "mocha.publish_zq_stub",
"title": "Mocha: Publish as ZQ stub method" "title": "Publish as ZQ stub method",
"category": "Mocha"
}, },
{ {
"command": "mocha.import_function_implementation_from_zq", "command": "mocha.import_function_implementation_from_zq",
"title": "Mocha: Import Function Implementation from ZQ" "title": "Import Function Implementation from ZQ",
"category": "Mocha"
},
{
"command": "mocha.zq_lookup_instance",
"title": "Look up ZQ Instance",
"category": "Mocha"
},
{
"command": "mocha.zq_lookup_resource",
"title": "Look up ZQ Resource",
"category": "Mocha"
},
{
"command": "mocha.zq_open_document",
"enablement": "never",
"category": "Mocha"
},
{
"command": "mocha.zq_import_function_signature",
"title": "Import ZQ Function Signature",
"category": "Mocha"
}
],
"keybindings": [
{
"command": "mocha.zq_lookup_instance",
"key": "Ctrl+O",
"when": "view == mocha.zqEditor"
} }
], ],
"viewsContainers": { "viewsContainers": {
@ -51,6 +94,35 @@
} }
] ]
}, },
"customEditors": [
{
"viewType": "mocha.zqEditor",
"displayName": "Mocha ZQ Editor",
"selector": [
{
"filenamePattern": "*.zql"
}
]
}
],
"grammars": [
{
"language": "zql",
"scopeName": "source.zql",
"path": "./config/languages/zql.tmLanguage.json"
}
],
"languages": [
{
"id": "zql",
"aliases": [
"Mocha ZQL"
],
"filenamePatterns": [
"*.zql"
]
}
],
"views": { "views": {
"mocha": [ "mocha": [
{ {
@ -64,6 +136,15 @@
"type": "tree" "type": "tree"
} }
] ]
},
"menus": {
"view/title": [
{
"command": "mocha.suvmanager.suv_new",
"when": "view == mocha.suvManager",
"group": "navigation@1"
}
]
} }
}, },
"scripts": { "scripts": {

View File

@ -0,0 +1,33 @@
import * as vscode from 'vscode';
import * as fs from 'fs';
import * as path from 'path';
import { GenericTreeDataItem } from './tdp/GenericTreeDataItem';
import { Uri } from 'vscode';
import { GenericTreeDataProvider } from './tdp/GenericTreeDataProvider';
export class ModuleExplorerTreeDataProvider extends GenericTreeDataProvider {
makeIconPath(pathstr : string)
{
return {
"light": path.join(__filename, "..", "..", "icons", "light", pathstr),
"dark": path.join(__filename, "..", "..", "icons", "dark", pathstr)
};
}
override getIconPath(element: GenericTreeDataItem): string | vscode.Uri | { light: string | vscode.Uri; dark: string | vscode.Uri; } | vscode.ThemeIcon | undefined {
let attr = element.customAttributes["type"];
switch (attr)
{
case "class":
return this.makeIconPath("explorer/class.svg");
case "module":
return vscode.ThemeIcon.Folder;
}
}
}

View File

@ -3,6 +3,95 @@
import * as vscode from 'vscode'; import * as vscode from 'vscode';
import { SuvManagerTreeDataProvider } from './SuvManagerTreeDataProvider'; import { SuvManagerTreeDataProvider } from './SuvManagerTreeDataProvider';
import { GenericTreeDataProvider } from './tdp/GenericTreeDataProvider';
import { GenericTreeDataItem } from './tdp/GenericTreeDataItem';
import { ModuleExplorerTreeDataProvider } from './ModuleExplorerTreeDataProvider';
import { userInfo } from 'os';
import * as path from 'path';
import https from 'node:https';
const cp = require('child_process');
export function mkotsuri(suvId : string, tenantName : string, command : string, serviceName : string = "zq", version : string = "v1") : vscode.Uri
{
let otsUri = vscode.Uri.parse("https://" + suvId + ".privatesuv.com/ots/" + tenantName + "/services/" + serviceName + "/" + version + "/" + command);
return otsUri;
}
function updateModuleExplorerTreeView() {
let dpModuleExplorer = new ModuleExplorerTreeDataProvider();
/*
dpModuleExplorer.items.push(new GenericTreeDataItem("tools", "tools", [
new GenericTreeDataItem("tools:xpresso", "xpressO", [
new GenericTreeDataItem("tools:xpressO:method", "method", [
new GenericTreeDataItem("tools:xpresso:method:AccessModifier", "AccessModifier", undefined, {
"type": "class",
"instanceId": "1$4170"
}),
new GenericTreeDataItem("tools:xpresso:method:Method", "Method", undefined, {
"type": "class",
"instanceId": "1$4171"
})
], {
"type": "module"
})
], {
"type": "module"
})],
{
"type": "module"
}
));
*/
let suvId : string = "i-0c0398f84acecb702";
let tenantName : string = "super";
let otsuri = mkotsuri(suvId, tenantName, "module/list");
cp.exec("curl " + otsuri.toString(), (err: string, stdout: string, stderr: string) =>
{
let json = JSON.parse(stdout);
for (var i = 0; i < json.items.length; i++)
{2
recursiveAddItemToTreeView(dpModuleExplorer, json.items[i], null);
}
//dpModuleExplorer.refresh();
let treeModuleExplorer = vscode.window.createTreeView("mocha.moduleExplorer", { "canSelectMany": true, "showCollapseAll": true, "treeDataProvider": dpModuleExplorer });
//console.log(stdout);
});
}
function recursiveAddItemToTreeView(dp : GenericTreeDataProvider, item : any, parent : GenericTreeDataItem | null)
{
var p;
if (item.instanceId)
{
p = new GenericTreeDataItem(item.name, item.title, undefined, { "type": item.type, "instanceId": item.instanceId });
}
else
{
p = new GenericTreeDataItem(item.name, item.title, undefined, { "type": item.type });
}
if (item.items)
{
for (var i = 0; i < item.items.length; i++)
{
recursiveAddItemToTreeView(dp, item.items[i], p);
}
}
if (parent === null)
{
console.log("adding item '" + p.name + "' to root");
dp.items.push(p);
}
else
{
console.log("adding item '" + p.name + "' to parent '" + parent.name + "'");
parent.children.push(p);
}
}
// This method is called when your extension is activated // This method is called when your extension is activated
// Your extension is activated the very first time the command is executed // Your extension is activated the very first time the command is executed
@ -11,13 +100,97 @@ export function activate(context: vscode.ExtensionContext) {
let treeDataProvider = new SuvManagerTreeDataProvider(); let treeDataProvider = new SuvManagerTreeDataProvider();
let treeSuvManager = vscode.window.createTreeView("mocha.suvManager", { "canSelectMany": true, "showCollapseAll": true, "treeDataProvider": treeDataProvider }); let treeSuvManager = vscode.window.createTreeView("mocha.suvManager", { "canSelectMany": true, "showCollapseAll": true, "treeDataProvider": treeDataProvider });
treeDataProvider.treeview = treeSuvManager; treeDataProvider.treeview = treeSuvManager;
treeSuvManager.badge = { "value": 1, "tooltip": "1 SUV(s) running" }; treeSuvManager.badge = { "value": 1, "tooltip": "1 SUV(s) running" };
updateModuleExplorerTreeView();
// Use the console to output diagnostic information (console.log) and errors (console.error) // Use the console to output diagnostic information (console.log) and errors (console.error)
// This line of code will only be executed once when your extension is activated // This line of code will only be executed once when your extension is activated
console.log('Congratulations, your extension "suvmanager" is now active!'); console.log('Congratulations, your extension "suvmanager" is now active!');
let cmd_zq_import_function_signature = vscode.commands.registerCommand("mocha.zq_import_function_signature", () => {
/*
const rootCas = require('ssl-root-cas').create();
rootCas.addFile(path.resolve(__dirname,'localhost.crt'));
https.globalAgent.options.ca = rootCas;
let req = https.request({
"hostname": otsuri.authority,
"port": 443,
"path": otsuri.path,
"method": "GET",
"headers":
{
}
}, (res) => {
res.on("data", (chunk) => {
console.log("BODY: " + chunk);
});
res.on("end", () => {
console.log("end transmission");
});
});
req.on('error', (e) => {
console.error(`problem with request: ${e.message}`);
});
req.end();
*/
vscode.window.showQuickPick([ "Access Modifier@get Access Modifier.for Metadata With Access Modifier(GR)",
"Access Modifier@get Access Modifiers Effectively Equivalent to A2 Root Acess(GSI)*S",
"Access Modifier@get Access Modifiers with Override Restrictions(GSI)*S",
"Access Modifier@get Active Method Accesses(IOP)*S",
"Access Modifier@get Method Access Public Instance(GSI)*S(public)",
"Access Modifier@get Methods for Access Modifiers(IOP)*P*S",
"Access Modifier@get Most Restrictive from Set(SS)*P*S"], { title: "Function name or instance ID"}).then ((choice) =>
{
let ed = vscode.window.activeTextEditor;
if (ed !== undefined)
{
ed.edit((edit) => {
if (ed !== undefined)
{
if (choice !== undefined)
{
var ppp = choice.split("@");
var qqq = ppp[1].replaceAll(" ", "").replaceAll(".", "");
var xxx = qqq.substring(0, qqq.indexOf('('));
edit.insert(ed.selection.active, "static stub function " + xxx + "() : AccessModifier");
}
}
});
}
});
});
let cmd_mocha_open_doc = vscode.commands.registerCommand("mocha.zq_open_document", (item : GenericTreeDataItem) => {
console.log(item.name);
if (item.customAttributes["instanceId"])
{
let tdi = vscode.workspace.openTextDocument(vscode.Uri.file(path.join(userInfo().homedir, item.title + ".zql") ).with({ scheme: "untitled" })).then( (doc) =>
{
vscode.window.showTextDocument(doc).then((editor) =>
{
editor.edit(edit => {
edit.delete(new vscode.Range(new vscode.Position(0, 0), new vscode.Position(editor.document.lineCount - 1, editor.document.lineAt(editor.document.lineCount-1).range.end.character)))
edit.insert(new vscode.Position(0, 0), "class " + item.title + ", " + item.customAttributes["instanceId"] + " {\n\nattributes:\n name: 4$1 : text\n order, 4$7 : text\n\nrelationships:\n forMetadataWithAccessModifier, 3$11854\n\nfunctions:\n\ninstances:\n Public, 4170$1\n}");
});
});
});
}
});
// The command has been defined in the package.json file // The command has been defined in the package.json file
// Now provide the implementation of the command with registerCommand // Now provide the implementation of the command with registerCommand
// The commandId parameter must match the command field in package.json // The commandId parameter must match the command field in package.json
@ -32,7 +205,6 @@ export function activate(context: vscode.ExtensionContext) {
let cmd_suv_up = vscode.commands.registerCommand('suvmanager.suv_up', () => { let cmd_suv_up = vscode.commands.registerCommand('suvmanager.suv_up', () => {
// The code you place here will be executed every time your command is executed // The code you place here will be executed every time your command is executed
// Display a message box to the user // Display a message box to the user
const cp = require('child_process')
cp.exec('mocha suv list', (err: string, stdout: string, stderr: string) => cp.exec('mocha suv list', (err: string, stdout: string, stderr: string) =>
{ {
let list = stdout.split(' '); let list = stdout.split(' ');

29
src/localhost.crt Normal file
View File

@ -0,0 +1,29 @@
-----BEGIN CERTIFICATE-----
MIIE7zCCA9egAwIBAgIURvpBSseeEDIKEO0c1VBMWkLexMQwDQYJKoZIhvcNAQEL
BQAwgZkxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJGTDEQMA4GA1UEBwwHT3JsYW5k
bzEfMB0GA1UECgwWTUJTIEJ1c2luZXNzIFNvbHV0aW9uczEkMCIGA1UEAwwbTUJT
IEludGVybmFsIERldmVsb3BtZW50IENBMSQwIgYJKoZIhvcNAQkBFhVzdXBwb3J0
QHRldHJvbmljYS5jb20wHhcNMjMxMTA3MTI0MjMyWhcNMjUxMTA2MTI0MjMyWjBo
MQswCQYDVQQGEwJVUzELMAkGA1UECAwCRkwxEDAOBgNVBAcMB09ybGFuZG8xHzAd
BgNVBAoMFk1CUyBCdXNpbmVzcyBTb2x1dGlvbnMxGTAXBgNVBAMMECoucHJpdmF0
ZXN1di5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCB79lGqz1t
wC5KDJ6TMsJk6/BK7vQiyT3umuut2RPhwkMHfihz+zfxaYo4C7KHkSoCPT4v3u1y
MONJfiev8E+/ZzHlPNYhxs/Su1iSavJQHPvKzKMSkvjbMQFX/Cqzp/A2NL5EkmYv
HrFd9WiV2azp5knQ8hLWdvWR8gUHJZK0FocKA6qbQNQ3G/McOsEsaUZtjCcb1oJw
fKt4G8i2Iv0aMMTOJfCQYhrpuGuX8qkcD1gR9imb8qhthiLw54LwcrtQcIVEwFAG
YyDPVRsw6xvLYHchRkx+DvRdgy/UKMha9tq/3lzF9Fm1/3cnelEsKe7W51ZGkU+3
apVqNovaYZ+ty1rRxMe/tj4XtHaOLTioG/UMT7AL0LK3darEAS29n8UdT+xORBsU
7iENL112ZcY4yrzCDzUz1Ys0NJAl9a4p6kW33lu0idRTq75xwOYoKhX69Kff0bF8
dAAebxZSYcIF9/uKHpKW31zK8ac9d1bHYnkL8Ej2yA6Ps98tYLDUecC3dbYk+k2I
igz2BN2UhyEonb5DUz6dSlR+RR3kB884ycMrBi9FNEhjBhm5+iOHs1nAh1Hzm/IJ
Koiw49XyWZIxNYWkcqq9h4wQEQIiZ/3S1FeJWxj+vt+tZKAhDc71V5kSHHJXCh3X
EIqXLZYKXPAG0uST+H8VY5bXahKW/A60UQIDAQABo18wXTAbBgNVHREEFDASghAq
LnByaXZhdGVzdXYuY29tMB0GA1UdDgQWBBSCn5UhCbR7QG5M5RgZXI4y4LoFSDAf
BgNVHSMEGDAWgBSkDws8lTr7dn6nUzawl/gS5J2i3DANBgkqhkiG9w0BAQsFAAOC
AQEAPozqKZadO7QR4HxdU2KNuBlfbvZ62KS2UoiISnUS/cHEejkSdU6RaWN1wVv4
rimBhhVX+vkIBcd4OiaRTxFBQpgkyTxI7L+B/fKTmwUP3KEl2GSiWFwmAcRQjn4u
tNuABnn7d7UTl9NCR/n3981A1gl6cIAjv6XBEuDWCCTSCVWgWDBlpG2OA0Fp5+GL
J4Jl7xfjpiFAdOllVi/Cd63DiQmv6Fxuc2wBeugatLYCM8Mu6WOJ8+SvbJ57zYec
1oWftLmRr5WxpgGrbDMcAwwD74OXlTOuNX/Jx7uX2Y4Qlqysl7gHJtztlTQCO+23
RRiyHDf6iKxeh2S16xnVi2vtWw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,68 @@
import * as vscode from 'vscode';
import { ThemeIcon, Uri } from 'vscode';
type Dictionary = {
[ key: string ] : any;
};
export class GenericTreeDataItem
{
public constructor(name : string, title: string, children? : GenericTreeDataItem[], customAttributes? : Dictionary )
{
this._name = name;
this._title = title;
if (children !== undefined)
{
this._children = children;
}
this._customAttributes = customAttributes;
}
private _name : string = "";
public get name() : string {
return this._name;
}
public set name(v : string) {
this._name = v;
}
private _title : string = "";
public get title() : string {
return this._title;
}
public set title(v : string) {
this._title = v;
}
private _customAttributes? : Dictionary;
public get customAttributes() : Dictionary {
return this._customAttributes || [];
}
/**
* The icon path or {@link ThemeIcon} for the tree item.
* When `falsy`, {@link ThemeIcon.Folder Folder Theme Icon} is assigned, if item is collapsible otherwise {@link ThemeIcon.File File Theme Icon}.
* When a file or folder {@link ThemeIcon} is specified, icon is derived from the current file icon theme for the specified theme icon using {@link TreeItem.resourceUri resourceUri} (if provided).
*/
icon?: string | Uri | {
/**
* The icon path for the light theme.
*/
light: string | Uri;
/**
* The icon path for the dark theme.
*/
dark: string | Uri;
} | ThemeIcon;
hasChildren() : boolean {
return this.children.length > 0;
}
private _children : GenericTreeDataItem[] = [];
public get children() : GenericTreeDataItem[] {
return this._children || [];
}
}

View File

@ -0,0 +1,87 @@
import * as vscode from 'vscode';
import * as fs from 'fs';
import * as path from 'path';
import { GenericTreeDataItem } from './GenericTreeDataItem';
import { Uri } from 'vscode';
export class GenericTreeDataProvider implements vscode.TreeDataProvider<GenericTreeDataItem> {
onActivated?: vscode.Event<void | GenericTreeDataItem | GenericTreeDataItem[] | null | undefined> | undefined;
private _onDidChangeTreeData: vscode.EventEmitter<GenericTreeDataItem | undefined> = new vscode.EventEmitter<GenericTreeDataItem | undefined>();
readonly onDidChangeTreeData: vscode.Event<GenericTreeDataItem | undefined> = this
._onDidChangeTreeData.event;
refresh(item : GenericTreeDataItem | undefined = undefined): void {
this._onDidChangeTreeData.fire(item);
}
private _items : GenericTreeDataItem[] = [];
public get items() : GenericTreeDataItem[]
{
return this._items;
}
getIconPath(element : GenericTreeDataItem) : string | Uri | {
/**
* The icon path for the light theme.
*/
light: string | Uri;
/**
* The icon path for the dark theme.
*/
dark: string | Uri;
} | vscode.ThemeIcon | undefined
{
return element.icon;
}
getTreeItem(element: GenericTreeDataItem): vscode.TreeItem {
let item = new vscode.TreeItem(element.title, element.hasChildren() ? vscode.TreeItemCollapsibleState.Collapsed : vscode.TreeItemCollapsibleState.None);
item.command = {
command: "mocha.zq_open_document",
arguments: [ element ],
title: "OpenFile"
};
item.iconPath = this.getIconPath(element);
/*
switch (element.type)
{
case "module":
{
item.iconPath = new vscode.ThemeIcon("folder");
break;
}
case "class":
{
//item.iconPath = new vscode.ThemeIcon("symbol-class");
item.iconPath =
{
"light": path.join(__filename, "..", "..", "icons", "light", "explorer", "class.svg"),
"dark": path.join(__filename, "..", "..", "icons", "dark", "explorer", "class.svg")
};
// console.log('looking for icon @ ' + item.iconPath);
break;
}
}
*/
return item;
}
getChildren(element?: GenericTreeDataItem): Thenable<GenericTreeDataItem[]> {
if (element) {
return Promise.resolve(element.children);
}
return new Promise((resolve, reject) =>
{
resolve(this.items);
});
}
}