add SUV interfacing stuff to vscode
This commit is contained in:
parent
d877fc2bed
commit
131ad9cd24
530
config/languages/zql.tmLanguage.json
Normal file
530
config/languages/zql.tmLanguage.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
1
icons/commands/add-connection-dark.svg
Normal file
1
icons/commands/add-connection-dark.svg
Normal 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 |
1
icons/commands/add-connection-light.svg
Normal file
1
icons/commands/add-connection-light.svg
Normal 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
102
icons/dark/explorer/class.svg
Executable 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
102
icons/light/explorer/class.svg
Executable 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 |
95
package.json
95
package.json
@ -15,31 +15,74 @@
|
||||
"commands": [
|
||||
{
|
||||
"command": "suvmanager.suv_manager",
|
||||
"title": "Mocha: SUV Manager"
|
||||
"title": "Manage SUVs",
|
||||
"category": "Mocha"
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"title": "Mocha: Add Documentation Comment"
|
||||
"title": "Add Documentation Comment",
|
||||
"category": "Mocha"
|
||||
},
|
||||
{
|
||||
"command": "mocha.add_extension_qualifier",
|
||||
"title": "Mocha: Add Extension Qualifier"
|
||||
"title": "Add Extension Qualifier",
|
||||
"category": "Mocha"
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"title": "Mocha: Publish as ZQ stub method"
|
||||
"title": "Publish as ZQ stub method",
|
||||
"category": "Mocha"
|
||||
},
|
||||
{
|
||||
"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": {
|
||||
@ -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": {
|
||||
"mocha": [
|
||||
{
|
||||
@ -64,6 +136,15 @@
|
||||
"type": "tree"
|
||||
}
|
||||
]
|
||||
},
|
||||
"menus": {
|
||||
"view/title": [
|
||||
{
|
||||
"command": "mocha.suvmanager.suv_new",
|
||||
"when": "view == mocha.suvManager",
|
||||
"group": "navigation@1"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
33
src/ModuleExplorerTreeDataProvider.ts
Normal file
33
src/ModuleExplorerTreeDataProvider.ts
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
176
src/extension.ts
176
src/extension.ts
@ -3,6 +3,95 @@
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
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
|
||||
// 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 treeSuvManager = vscode.window.createTreeView("mocha.suvManager", { "canSelectMany": true, "showCollapseAll": true, "treeDataProvider": treeDataProvider });
|
||||
treeDataProvider.treeview = treeSuvManager;
|
||||
|
||||
treeSuvManager.badge = { "value": 1, "tooltip": "1 SUV(s) running" };
|
||||
|
||||
updateModuleExplorerTreeView();
|
||||
|
||||
// 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
|
||||
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
|
||||
// Now provide the implementation of the command with registerCommand
|
||||
// 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', () => {
|
||||
// The code you place here will be executed every time your command is executed
|
||||
// Display a message box to the user
|
||||
const cp = require('child_process')
|
||||
cp.exec('mocha suv list', (err: string, stdout: string, stderr: string) =>
|
||||
{
|
||||
let list = stdout.split(' ');
|
||||
|
||||
29
src/localhost.crt
Normal file
29
src/localhost.crt
Normal 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-----
|
||||
68
src/tdp/GenericTreeDataItem.ts
Normal file
68
src/tdp/GenericTreeDataItem.ts
Normal 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 || [];
|
||||
}
|
||||
|
||||
}
|
||||
87
src/tdp/GenericTreeDataProvider.ts
Normal file
87
src/tdp/GenericTreeDataProvider.ts
Normal 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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user