From 05a2808680cf5bb1c47347ced976f8cabb38bd61 Mon Sep 17 00:00:00 2001 From: ImUrX Date: Sun, 5 Apr 2020 15:50:44 -0300 Subject: [PATCH] tidying it up --- icon-theme.json | 4 + package-lock.json | 53 --- package.json | 12 +- src/completionProvider.ts | 736 +++++++++++++++++++++----------------- src/extension.ts | 1 - 5 files changed, 404 insertions(+), 402 deletions(-) diff --git a/icon-theme.json b/icon-theme.json index 336a885..aaa824f 100644 --- a/icon-theme.json +++ b/icon-theme.json @@ -6,5 +6,9 @@ }, "languageIds": { "scarpet": "_icon" + }, + "fileExtensions": { + "sc": "_icon", + "scl": "_icon" } } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c89244a..e4a7b4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -384,11 +384,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -452,11 +447,6 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, - "discontinuous-range": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=" - }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1267,11 +1257,6 @@ } } }, - "moo": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", - "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1290,25 +1275,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "nearley": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.19.1.tgz", - "integrity": "sha512-xq47GIUGXxU9vQg7g/y1o1xuKnkO7ev4nRWqftmQrLkfnE/FjRqDaGOUakM8XHPn/6pW3bGjU2wgoJyId90rqg==", - "requires": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -1486,20 +1452,6 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "railroad-diagrams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=" - }, - "randexp": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", - "requires": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - } - }, "readdirp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", @@ -1543,11 +1495,6 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", diff --git a/package.json b/package.json index 23541fb..7859d01 100644 --- a/package.json +++ b/package.json @@ -58,13 +58,6 @@ "title": "Copy code to clipboard for Minecraft usage", "category": "scarpet" } - ], - "iconThemes": [ - { - "id": "scarpet", - "label": "Scarpet", - "path": "./icon-theme.json" - } ] }, "activationEvents": [ @@ -92,8 +85,5 @@ "typescript": "^3.7.5", "vscode-test": "^1.3.0" }, - "dependencies": { - "moo": "^0.5.1", - "nearley": "^2.19.1" - } + "dependencies": {} } diff --git a/src/completionProvider.ts b/src/completionProvider.ts index ca5fb98..f730a4e 100644 --- a/src/completionProvider.ts +++ b/src/completionProvider.ts @@ -2,355 +2,417 @@ import * as vscode from "vscode"; const typesEnum = vscode.CompletionItemKind; -export default class ScarpetCompletionItemProvider implements vscode.CompletionItemProvider { - - public async provideCompletionItems( - document: vscode.TextDocument, - position: vscode.Position, - token: vscode.CancellationToken - ): Promise { - const results: vscode.CompletionItem[] = [], - text = document.lineAt(position.line).text; +export default class ScarpetCompletionItemProvider + implements vscode.CompletionItemProvider { + public async provideCompletionItems( + document: vscode.TextDocument, + position: vscode.Position, + token: vscode.CancellationToken + ): Promise { + const results: vscode.CompletionItem[] = [], + text = document.lineAt(position.line).text; - if( - position.character <= 0 - || this.isInsideStringOrComment(document, position) - ) { - return Promise.resolve(results); - } + if ( + position.character <= 0 || + this.isInsideStringOrComment(document, position) + ) { + return Promise.resolve(results); + } - for(const item of ScarpetSet.set) { - results.push(item); - } - return Promise.resolve(results); + for (const item of ScarpetSet.set) { + results.push(item); } + return Promise.resolve(results); + } - private isInsideStringOrComment( - document: vscode.TextDocument, - position: vscode.Position - ): boolean { - const strings: Array = [], - text = document.lineAt(position.line).text; - let curString: number|null = null; + private isInsideStringOrComment( + document: vscode.TextDocument, + position: vscode.Position + ): boolean { + const strings: Array = [], + text = document.lineAt(position.line).text; + let curString: number | null = null; - for(let i = 0; i < position.character; i++) { - const char = text[i]; + for (let i = 0; i < position.character; i++) { + const char = text[i]; - //If its a comment, yeah just say it is - if(char === "//" && !curString) { - return true; - } + //If its a comment, yeah just say it is + if (char === "//" && !curString) { + return true; + } - //Register each String in the line - if(char === "'") { - if(curString) { - strings[curString].push(i); - curString = null; - } else { - curString = strings.length; - strings.push([i]); - } - } + //Register each String in the line + if (char === "'") { + if (curString) { + strings[curString].push(i); + curString = null; + } else { + curString = strings.length; + strings.push([i]); } - return !!curString; + } } + return !!curString; + } } export class ScarpetSet extends Set { - static set = new ScarpetSet(); + static set = new ScarpetSet(); - constructor() { - if(ScarpetSet.set) { - throw Error("This class is a singleton and is already constructed in static set property"); - } - super([ - //Operators - new vscode.CompletionItem("~", typesEnum.Operator), - new vscode.CompletionItem(":", typesEnum.Operator), - new vscode.CompletionItem("+", typesEnum.Operator), - new vscode.CompletionItem("-", typesEnum.Operator), - new vscode.CompletionItem("!", typesEnum.Operator), - new vscode.CompletionItem("^", typesEnum.Operator), - new vscode.CompletionItem("*", typesEnum.Operator), - new vscode.CompletionItem("/", typesEnum.Operator), - new vscode.CompletionItem("%", typesEnum.Operator), - new vscode.CompletionItem("==", typesEnum.Operator), - new vscode.CompletionItem("!=", typesEnum.Operator), - new vscode.CompletionItem(">", typesEnum.Operator), - new vscode.CompletionItem(">=", typesEnum.Operator), - new vscode.CompletionItem("<=", typesEnum.Operator), - new vscode.CompletionItem("<", typesEnum.Operator), - new vscode.CompletionItem("&&", typesEnum.Operator), - new vscode.CompletionItem("||", typesEnum.Operator), - new vscode.CompletionItem("=", typesEnum.Operator), - new vscode.CompletionItem("+=", typesEnum.Operator), - new vscode.CompletionItem("<>", typesEnum.Operator), - new vscode.CompletionItem("->", typesEnum.Operator), - new vscode.CompletionItem(";", typesEnum.Operator), - new vscode.CompletionItem(",", typesEnum.Operator), - new vscode.CompletionItem("$", typesEnum.Operator), - //Functions - // arithmetic - new vscode.CompletionItem("fact", typesEnum.Function), - new vscode.CompletionItem("sqrt", typesEnum.Function), - new vscode.CompletionItem("abs", typesEnum.Function), - new vscode.CompletionItem("round", typesEnum.Function), - new vscode.CompletionItem("floor", typesEnum.Function), - new vscode.CompletionItem("ceil", typesEnum.Function), - new vscode.CompletionItem("ln", typesEnum.Function), - new vscode.CompletionItem("ln1p", typesEnum.Function), - new vscode.CompletionItem("log10", typesEnum.Function), - new vscode.CompletionItem("log", typesEnum.Function), - new vscode.CompletionItem("mandelbrot", typesEnum.Function), - new vscode.CompletionItem("min", typesEnum.Function), - new vscode.CompletionItem("max", typesEnum.Function), - new vscode.CompletionItem("relu", typesEnum.Function), - new vscode.CompletionItem("sin", typesEnum.Function), - new vscode.CompletionItem("cos", typesEnum.Function), - new vscode.CompletionItem("tan", typesEnum.Function), - new vscode.CompletionItem("asin", typesEnum.Function), - new vscode.CompletionItem("acos", typesEnum.Function), - new vscode.CompletionItem("atan", typesEnum.Function), - new vscode.CompletionItem("atan2", typesEnum.Function), - new vscode.CompletionItem("sinh", typesEnum.Function), - new vscode.CompletionItem("cosh", typesEnum.Function), - new vscode.CompletionItem("tanh", typesEnum.Function), - new vscode.CompletionItem("sec", typesEnum.Function), - new vscode.CompletionItem("csc", typesEnum.Function), - new vscode.CompletionItem("sech", typesEnum.Function), - new vscode.CompletionItem("csch", typesEnum.Function), - new vscode.CompletionItem("cot", typesEnum.Function), - new vscode.CompletionItem("acot", typesEnum.Function), - new vscode.CompletionItem("coth", typesEnum.Function), - new vscode.CompletionItem("asinh", typesEnum.Function), - new vscode.CompletionItem("acosh", typesEnum.Function), - new vscode.CompletionItem("atanh", typesEnum.Function), - new vscode.CompletionItem("rad", typesEnum.Function), - new vscode.CompletionItem("deg", typesEnum.Function), - // Type based - new vscode.CompletionItem("copy", typesEnum.Function), - new vscode.CompletionItem("type", typesEnum.Function), - new vscode.CompletionItem("bool", typesEnum.Class), - new vscode.CompletionItem("number", typesEnum.Class), - new vscode.CompletionItem("str", typesEnum.Class), - // Threading/Parallel - new vscode.CompletionItem("task", typesEnum.Function), - new vscode.CompletionItem("task_count", typesEnum.Function), - new vscode.CompletionItem("task_value", typesEnum.Function), - new vscode.CompletionItem("task_join", typesEnum.Function), - new vscode.CompletionItem("task_completed", typesEnum.Function), - new vscode.CompletionItem("synchronize", typesEnum.Function), - // Auxiliary - new vscode.CompletionItem("lower", typesEnum.Function), - new vscode.CompletionItem("replace", typesEnum.Function), - new vscode.CompletionItem("length", typesEnum.Function), - new vscode.CompletionItem("rand", typesEnum.Function), - new vscode.CompletionItem("perlin", typesEnum.Function), - new vscode.CompletionItem("simplex", typesEnum.Function), - new vscode.CompletionItem("print", typesEnum.Function), - new vscode.CompletionItem("sleep", typesEnum.Function), - new vscode.CompletionItem("time", typesEnum.Function), - new vscode.CompletionItem("profile_expr", typesEnum.Function), - // Dynamic-based functions - new vscode.CompletionItem("var", typesEnum.Function), - new vscode.CompletionItem("undef", typesEnum.Function), - new vscode.CompletionItem("vars", typesEnum.Function), - // Global key-value functions - new vscode.CompletionItem("system_variable_get", typesEnum.Function), - new vscode.CompletionItem("system_variable_set", typesEnum.Function), - // High-order functions - new vscode.CompletionItem("map", typesEnum.Function), - new vscode.CompletionItem("filter", typesEnum.Function), - new vscode.CompletionItem("first", typesEnum.Function), - new vscode.CompletionItem("all", typesEnum.Function), - new vscode.CompletionItem("reduce", typesEnum.Function), - // Containers - new vscode.CompletionItem("get", typesEnum.Function), - new vscode.CompletionItem("has", typesEnum.Function), - new vscode.CompletionItem("delete", typesEnum.Function), - new vscode.CompletionItem("put", typesEnum.Function), - new vscode.CompletionItem("l", typesEnum.Class), - new vscode.CompletionItem("join", typesEnum.Function), - new vscode.CompletionItem("split", typesEnum.Function), - new vscode.CompletionItem("slice", typesEnum.Function), - new vscode.CompletionItem("sort", typesEnum.Function), - new vscode.CompletionItem("sort_key", typesEnum.Function), - new vscode.CompletionItem("range", typesEnum.Function), - new vscode.CompletionItem("element", typesEnum.Function), - new vscode.CompletionItem("m", typesEnum.Class), - new vscode.CompletionItem("keys", typesEnum.Function), - new vscode.CompletionItem("values", typesEnum.Function), - new vscode.CompletionItem("pairs", typesEnum.Function), - // Minecraft - new vscode.CompletionItem("block", typesEnum.Function), - new vscode.CompletionItem("x", typesEnum.Function), - new vscode.CompletionItem("y", typesEnum.Function), - new vscode.CompletionItem("z", typesEnum.Function), - new vscode.CompletionItem("_x", typesEnum.Function), - new vscode.CompletionItem("_y", typesEnum.Function), - new vscode.CompletionItem("_z", typesEnum.Function), - new vscode.CompletionItem("_", typesEnum.Function), - new vscode.CompletionItem("_i", typesEnum.Function), - new vscode.CompletionItem("_a", typesEnum.Function), + constructor() { + if (ScarpetSet.set) { + throw Error( + "This class is a singleton and is already constructed in static set property" + ); + } + super([ + //Operators + new vscode.CompletionItem("~", typesEnum.Operator), + new vscode.CompletionItem(":", typesEnum.Operator), + new vscode.CompletionItem("+", typesEnum.Operator), + new vscode.CompletionItem("-", typesEnum.Operator), + new vscode.CompletionItem("!", typesEnum.Operator), + new vscode.CompletionItem("^", typesEnum.Operator), + new vscode.CompletionItem("*", typesEnum.Operator), + new vscode.CompletionItem("/", typesEnum.Operator), + new vscode.CompletionItem("%", typesEnum.Operator), + new vscode.CompletionItem("==", typesEnum.Operator), + new vscode.CompletionItem("!=", typesEnum.Operator), + new vscode.CompletionItem(">", typesEnum.Operator), + new vscode.CompletionItem(">=", typesEnum.Operator), + new vscode.CompletionItem("<=", typesEnum.Operator), + new vscode.CompletionItem("<", typesEnum.Operator), + new vscode.CompletionItem("&&", typesEnum.Operator), + new vscode.CompletionItem("||", typesEnum.Operator), + new vscode.CompletionItem("=", typesEnum.Operator), + new vscode.CompletionItem("+=", typesEnum.Operator), + new vscode.CompletionItem("<>", typesEnum.Operator), + new vscode.CompletionItem("->", typesEnum.Operator), + new vscode.CompletionItem(";", typesEnum.Operator), + new vscode.CompletionItem(",", typesEnum.Operator), + new vscode.CompletionItem("$", typesEnum.Operator), + //Functions + // arithmetic + new vscode.CompletionItem("fact", typesEnum.Function), + new vscode.CompletionItem("sqrt", typesEnum.Function), + new vscode.CompletionItem("abs", typesEnum.Function), + new vscode.CompletionItem("round", typesEnum.Function), + new vscode.CompletionItem("floor", typesEnum.Function), + new vscode.CompletionItem("ceil", typesEnum.Function), + new vscode.CompletionItem("ln", typesEnum.Function), + new vscode.CompletionItem("ln1p", typesEnum.Function), + new vscode.CompletionItem("log10", typesEnum.Function), + new vscode.CompletionItem("log", typesEnum.Function), + new vscode.CompletionItem("mandelbrot", typesEnum.Function), + new vscode.CompletionItem("min", typesEnum.Function), + new vscode.CompletionItem("max", typesEnum.Function), + new vscode.CompletionItem("relu", typesEnum.Function), + new vscode.CompletionItem("sin", typesEnum.Function), + new vscode.CompletionItem("cos", typesEnum.Function), + new vscode.CompletionItem("tan", typesEnum.Function), + new vscode.CompletionItem("asin", typesEnum.Function), + new vscode.CompletionItem("acos", typesEnum.Function), + new vscode.CompletionItem("atan", typesEnum.Function), + new vscode.CompletionItem("atan2", typesEnum.Function), + new vscode.CompletionItem("sinh", typesEnum.Function), + new vscode.CompletionItem("cosh", typesEnum.Function), + new vscode.CompletionItem("tanh", typesEnum.Function), + new vscode.CompletionItem("sec", typesEnum.Function), + new vscode.CompletionItem("csc", typesEnum.Function), + new vscode.CompletionItem("sech", typesEnum.Function), + new vscode.CompletionItem("csch", typesEnum.Function), + new vscode.CompletionItem("cot", typesEnum.Function), + new vscode.CompletionItem("acot", typesEnum.Function), + new vscode.CompletionItem("coth", typesEnum.Function), + new vscode.CompletionItem("asinh", typesEnum.Function), + new vscode.CompletionItem("acosh", typesEnum.Function), + new vscode.CompletionItem("atanh", typesEnum.Function), + new vscode.CompletionItem("rad", typesEnum.Function), + new vscode.CompletionItem("deg", typesEnum.Function), + // Type based + new vscode.CompletionItem("copy", typesEnum.Function), + new vscode.CompletionItem("type", typesEnum.Function), + new vscode.CompletionItem("bool", typesEnum.Class), + new vscode.CompletionItem("number", typesEnum.Class), + new vscode.CompletionItem("str", typesEnum.Class), + // Threading/Parallel + new vscode.CompletionItem("task", typesEnum.Function), + new vscode.CompletionItem("task_count", typesEnum.Function), + new vscode.CompletionItem("task_value", typesEnum.Function), + new vscode.CompletionItem("task_join", typesEnum.Function), + new vscode.CompletionItem("task_completed", typesEnum.Function), + new vscode.CompletionItem("synchronize", typesEnum.Function), + // Auxiliary + new vscode.CompletionItem("lower", typesEnum.Function), + new vscode.CompletionItem("replace", typesEnum.Function), + new vscode.CompletionItem("length", typesEnum.Function), + new vscode.CompletionItem("rand", typesEnum.Function), + new vscode.CompletionItem("perlin", typesEnum.Function), + new vscode.CompletionItem("simplex", typesEnum.Function), + new vscode.CompletionItem("print", typesEnum.Function), + new vscode.CompletionItem("sleep", typesEnum.Function), + new vscode.CompletionItem("time", typesEnum.Function), + new vscode.CompletionItem("profile_expr", typesEnum.Function), + // Dynamic-based functions + new vscode.CompletionItem("var", typesEnum.Function), + new vscode.CompletionItem("undef", typesEnum.Function), + new vscode.CompletionItem("vars", typesEnum.Function), + // Global key-value functions + new vscode.CompletionItem("system_variable_get", typesEnum.Function), + new vscode.CompletionItem("system_variable_set", typesEnum.Function), + // High-order functions + new vscode.CompletionItem("map", typesEnum.Function), + new vscode.CompletionItem("filter", typesEnum.Function), + new vscode.CompletionItem("first", typesEnum.Function), + new vscode.CompletionItem("all", typesEnum.Function), + new vscode.CompletionItem("reduce", typesEnum.Function), + // Containers + new vscode.CompletionItem("get", typesEnum.Function), + new vscode.CompletionItem("has", typesEnum.Function), + new vscode.CompletionItem("delete", typesEnum.Function), + new vscode.CompletionItem("put", typesEnum.Function), + new vscode.CompletionItem("l", typesEnum.Class), + new vscode.CompletionItem("join", typesEnum.Function), + new vscode.CompletionItem("split", typesEnum.Function), + new vscode.CompletionItem("slice", typesEnum.Function), + new vscode.CompletionItem("sort", typesEnum.Function), + new vscode.CompletionItem("sort_key", typesEnum.Function), + new vscode.CompletionItem("range", typesEnum.Function), + new vscode.CompletionItem("element", typesEnum.Function), + new vscode.CompletionItem("m", typesEnum.Class), + new vscode.CompletionItem("keys", typesEnum.Function), + new vscode.CompletionItem("values", typesEnum.Function), + new vscode.CompletionItem("pairs", typesEnum.Function), + // Minecraft + new vscode.CompletionItem("block", typesEnum.Function), + new vscode.CompletionItem("x", typesEnum.Function), + new vscode.CompletionItem("y", typesEnum.Function), + new vscode.CompletionItem("z", typesEnum.Function), + new vscode.CompletionItem("_x", typesEnum.Function), + new vscode.CompletionItem("_y", typesEnum.Function), + new vscode.CompletionItem("_z", typesEnum.Function), + new vscode.CompletionItem("_", typesEnum.Function), + new vscode.CompletionItem("_i", typesEnum.Function), + new vscode.CompletionItem("_a", typesEnum.Function), - // World Manipulation - new vscode.CompletionItem("set", typesEnum.Function), - new vscode.CompletionItem("without_updates", typesEnum.Function), - new vscode.CompletionItem("place_item", typesEnum.Function), - new vscode.CompletionItem("set_poi", typesEnum.Function), - new vscode.CompletionItem("set_biome", typesEnum.Function), - new vscode.CompletionItem("update", typesEnum.Function), - new vscode.CompletionItem("block_tick", typesEnum.Function), - new vscode.CompletionItem("random_tick", typesEnum.Function), - new vscode.CompletionItem("destroy", typesEnum.Function), - new vscode.CompletionItem("harvest", typesEnum.Function), - // Block and world querying - new vscode.CompletionItem("pos", typesEnum.Function), - new vscode.CompletionItem("pos_offset", typesEnum.Function), - new vscode.CompletionItem("block_properties", typesEnum.Function), - new vscode.CompletionItem("property", typesEnum.Function), - new vscode.CompletionItem("block_data", typesEnum.Function), - new vscode.CompletionItem("poi", typesEnum.Function), - new vscode.CompletionItem("biome", typesEnum.Function), - new vscode.CompletionItem("solid", typesEnum.Function), - new vscode.CompletionItem("air", typesEnum.Function), - new vscode.CompletionItem("liquid", typesEnum.Function), - new vscode.CompletionItem("flammable", typesEnum.Function), - new vscode.CompletionItem("transparent", typesEnum.Function), - new vscode.CompletionItem("opacity", typesEnum.Function), - new vscode.CompletionItem("blocks_daylight", typesEnum.Function), - new vscode.CompletionItem("emitted_light", typesEnum.Function), - new vscode.CompletionItem("light", typesEnum.Function), - new vscode.CompletionItem("block_light", typesEnum.Function), - new vscode.CompletionItem("sky_light", typesEnum.Function), - new vscode.CompletionItem("see_sky", typesEnum.Function), - new vscode.CompletionItem("hardness", typesEnum.Function), - new vscode.CompletionItem("blast_resistance", typesEnum.Function), - new vscode.CompletionItem("in_slime_chunk", typesEnum.Function), - new vscode.CompletionItem("top", typesEnum.Function), - new vscode.CompletionItem("loaded", typesEnum.Function), - new vscode.CompletionItem("loaded_ep", typesEnum.Function), - new vscode.CompletionItem("loaded_status", typesEnum.Function), - new vscode.CompletionItem("generation_status", typesEnum.Function), - new vscode.CompletionItem("structures", typesEnum.Function), - new vscode.CompletionItem("structure_references", typesEnum.Function), - new vscode.CompletionItem("set_structure", typesEnum.Function), - new vscode.CompletionItem("suffocates", typesEnum.Function), - new vscode.CompletionItem("power", typesEnum.Function), - new vscode.CompletionItem("ticks_randomly", typesEnum.Function), - new vscode.CompletionItem("blocks_movement", typesEnum.Function), - new vscode.CompletionItem("block_sound", typesEnum.Function), - new vscode.CompletionItem("material", typesEnum.Function), - new vscode.CompletionItem("map_colour", typesEnum.Function), - // Big boi stuff - new vscode.CompletionItem("scan", typesEnum.Function), - new vscode.CompletionItem("volume", typesEnum.Function), - new vscode.CompletionItem("neighbours", typesEnum.Function), - new vscode.CompletionItem("rect", typesEnum.Function), - new vscode.CompletionItem("diamond", typesEnum.Function), - // Entity API - new vscode.CompletionItem("player", typesEnum.Class), - new vscode.CompletionItem("entity_id", typesEnum.Function), - new vscode.CompletionItem("entity_list", typesEnum.Function), - new vscode.CompletionItem("entity_area", typesEnum.Function), - new vscode.CompletionItem("entity_selector", typesEnum.Function), - new vscode.CompletionItem("spawn", typesEnum.Function), - new vscode.CompletionItem("query", typesEnum.Function), - new vscode.CompletionItem("modify", typesEnum.Function), - new vscode.CompletionItem("entity_event", typesEnum.Function), - // Inventory and Items API - new vscode.CompletionItem("stack_limit", typesEnum.Function), - new vscode.CompletionItem("item_category", typesEnum.Function), - new vscode.CompletionItem("inventory_size", typesEnum.Function), - new vscode.CompletionItem("inventory_has_items", typesEnum.Function), - new vscode.CompletionItem("inventory_get", typesEnum.Function), - new vscode.CompletionItem("inventory_set", typesEnum.Function), - new vscode.CompletionItem("inventory_find", typesEnum.Function), - new vscode.CompletionItem("drop_item", typesEnum.Function), - // Events - new vscode.CompletionItem("__config()->", typesEnum.Event), - new vscode.CompletionItem("__on_tick()->", typesEnum.Event), - new vscode.CompletionItem("__on_lightning(pos, mode)->",typesEnum.Event), - new vscode.CompletionItem("__on_tick_nether()->", typesEnum.Event), - new vscode.CompletionItem("__on_tick_ender()->", typesEnum.Event), - new vscode.CompletionItem("__on_chunk_generated()->", typesEnum.Event), - new vscode.CompletionItem("__on_player_uses_item(player, item_tuple, hand)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_releases_item(player, item_tuple, hand)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_finishes_using_item(player, item_tuple, hand)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_clicks_block(player, block, face)", typesEnum.Event), - new vscode.CompletionItem("__on_player_breaks_block(player, block)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_right_clicks_block(player, item_tuple, hand, block, face, hitvec)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_interacts_with_block(player, hand, block, face, hitvec)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_places_block(player, item_tuple, hand, block)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_interacts_with_entity(player, entity, hand)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_attacks_entity(player, entity)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_rides(player, forward, strafe, jumping, sneaking)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_jumps(player)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_deploys_elytra(player)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_wakes_up(player)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_starts_sneaking(player)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_stops_sneaking(player)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_starts_sprinting(player)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_stops_sprinting(player)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_drops_item(player)->", typesEnum.Event), - new vscode.CompletionItem("__on_player_drops_stack(player)->", typesEnum.Event), - new vscode.CompletionItem("__on_statistic(player, category, event, value)->", typesEnum.Event), - // Misc - new vscode.CompletionItem("sound", typesEnum.Function), - new vscode.CompletionItem("particle", typesEnum.Function), - new vscode.CompletionItem("particle_line", typesEnum.Function), - new vscode.CompletionItem("particle_rect", typesEnum.Function), - new vscode.CompletionItem("create_marker", typesEnum.Function), - new vscode.CompletionItem("remove_all_marker", typesEnum.Function), - new vscode.CompletionItem("nbt", typesEnum.Function), - new vscode.CompletionItem("escape_nbt", typesEnum.Function), - new vscode.CompletionItem("print", typesEnum.Function), - new vscode.CompletionItem("logger", typesEnum.Function), - new vscode.CompletionItem("run", typesEnum.Function), - new vscode.CompletionItem("save", typesEnum.Function), - new vscode.CompletionItem("load_app_data", typesEnum.Function), - new vscode.CompletionItem("store_app_data", typesEnum.Function), - new vscode.CompletionItem("tick_time", typesEnum.Function), - new vscode.CompletionItem("game_tick", typesEnum.Function), - new vscode.CompletionItem("seed", typesEnum.Function), - new vscode.CompletionItem("current_dimension", typesEnum.Function), - new vscode.CompletionItem("in_dimension", typesEnum.Function), - new vscode.CompletionItem("schedule", typesEnum.Function), - new vscode.CompletionItem("statistic", typesEnum.Function), - new vscode.CompletionItem("plop", typesEnum.Function), - new vscode.CompletionItem("reset_chunk", typesEnum.Function), - // Scoreboard API - new vscode.CompletionItem("scoreboard", typesEnum.Keyword), - new vscode.CompletionItem("scoreboard_add", typesEnum.Keyword), - new vscode.CompletionItem("scoreboard_remove", typesEnum.Keyword), - new vscode.CompletionItem("scoreboard_display", typesEnum.Keyword), + // World Manipulation + new vscode.CompletionItem("set", typesEnum.Function), + new vscode.CompletionItem("without_updates", typesEnum.Function), + new vscode.CompletionItem("place_item", typesEnum.Function), + new vscode.CompletionItem("set_poi", typesEnum.Function), + new vscode.CompletionItem("set_biome", typesEnum.Function), + new vscode.CompletionItem("update", typesEnum.Function), + new vscode.CompletionItem("block_tick", typesEnum.Function), + new vscode.CompletionItem("random_tick", typesEnum.Function), + new vscode.CompletionItem("destroy", typesEnum.Function), + new vscode.CompletionItem("harvest", typesEnum.Function), + // Block and world querying + new vscode.CompletionItem("pos", typesEnum.Function), + new vscode.CompletionItem("pos_offset", typesEnum.Function), + new vscode.CompletionItem("block_properties", typesEnum.Function), + new vscode.CompletionItem("property", typesEnum.Function), + new vscode.CompletionItem("block_data", typesEnum.Function), + new vscode.CompletionItem("poi", typesEnum.Function), + new vscode.CompletionItem("biome", typesEnum.Function), + new vscode.CompletionItem("solid", typesEnum.Function), + new vscode.CompletionItem("air", typesEnum.Function), + new vscode.CompletionItem("liquid", typesEnum.Function), + new vscode.CompletionItem("flammable", typesEnum.Function), + new vscode.CompletionItem("transparent", typesEnum.Function), + new vscode.CompletionItem("opacity", typesEnum.Function), + new vscode.CompletionItem("blocks_daylight", typesEnum.Function), + new vscode.CompletionItem("emitted_light", typesEnum.Function), + new vscode.CompletionItem("light", typesEnum.Function), + new vscode.CompletionItem("block_light", typesEnum.Function), + new vscode.CompletionItem("sky_light", typesEnum.Function), + new vscode.CompletionItem("see_sky", typesEnum.Function), + new vscode.CompletionItem("hardness", typesEnum.Function), + new vscode.CompletionItem("blast_resistance", typesEnum.Function), + new vscode.CompletionItem("in_slime_chunk", typesEnum.Function), + new vscode.CompletionItem("top", typesEnum.Function), + new vscode.CompletionItem("loaded", typesEnum.Function), + new vscode.CompletionItem("loaded_ep", typesEnum.Function), + new vscode.CompletionItem("loaded_status", typesEnum.Function), + new vscode.CompletionItem("generation_status", typesEnum.Function), + new vscode.CompletionItem("structures", typesEnum.Function), + new vscode.CompletionItem("structure_references", typesEnum.Function), + new vscode.CompletionItem("set_structure", typesEnum.Function), + new vscode.CompletionItem("suffocates", typesEnum.Function), + new vscode.CompletionItem("power", typesEnum.Function), + new vscode.CompletionItem("ticks_randomly", typesEnum.Function), + new vscode.CompletionItem("blocks_movement", typesEnum.Function), + new vscode.CompletionItem("block_sound", typesEnum.Function), + new vscode.CompletionItem("material", typesEnum.Function), + new vscode.CompletionItem("map_colour", typesEnum.Function), + // Big boi stuff + new vscode.CompletionItem("scan", typesEnum.Function), + new vscode.CompletionItem("volume", typesEnum.Function), + new vscode.CompletionItem("neighbours", typesEnum.Function), + new vscode.CompletionItem("rect", typesEnum.Function), + new vscode.CompletionItem("diamond", typesEnum.Function), + // Entity API + new vscode.CompletionItem("player", typesEnum.Class), + new vscode.CompletionItem("entity_id", typesEnum.Function), + new vscode.CompletionItem("entity_list", typesEnum.Function), + new vscode.CompletionItem("entity_area", typesEnum.Function), + new vscode.CompletionItem("entity_selector", typesEnum.Function), + new vscode.CompletionItem("spawn", typesEnum.Function), + new vscode.CompletionItem("query", typesEnum.Function), + new vscode.CompletionItem("modify", typesEnum.Function), + new vscode.CompletionItem("entity_event", typesEnum.Function), + // Inventory and Items API + new vscode.CompletionItem("stack_limit", typesEnum.Function), + new vscode.CompletionItem("item_category", typesEnum.Function), + new vscode.CompletionItem("inventory_size", typesEnum.Function), + new vscode.CompletionItem("inventory_has_items", typesEnum.Function), + new vscode.CompletionItem("inventory_get", typesEnum.Function), + new vscode.CompletionItem("inventory_set", typesEnum.Function), + new vscode.CompletionItem("inventory_find", typesEnum.Function), + new vscode.CompletionItem("drop_item", typesEnum.Function), + // Events + new vscode.CompletionItem("__config()->", typesEnum.Event), + new vscode.CompletionItem("__on_tick()->", typesEnum.Event), + new vscode.CompletionItem("__on_lightning(pos, mode)->", typesEnum.Event), + new vscode.CompletionItem("__on_tick_nether()->", typesEnum.Event), + new vscode.CompletionItem("__on_tick_ender()->", typesEnum.Event), + new vscode.CompletionItem("__on_chunk_generated()->", typesEnum.Event), + new vscode.CompletionItem( + "__on_player_uses_item(player, item_tuple, hand)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_releases_item(player, item_tuple, hand)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_finishes_using_item(player, item_tuple, hand)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_clicks_block(player, block, face)", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_breaks_block(player, block)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_right_clicks_block(player, item_tuple, hand, block, face, hitvec)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_interacts_with_block(player, hand, block, face, hitvec)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_places_block(player, item_tuple, hand, block)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_interacts_with_entity(player, entity, hand)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_attacks_entity(player, entity)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_rides(player, forward, strafe, jumping, sneaking)->", + typesEnum.Event + ), + new vscode.CompletionItem("__on_player_jumps(player)->", typesEnum.Event), + new vscode.CompletionItem( + "__on_player_deploys_elytra(player)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_wakes_up(player)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_starts_sneaking(player)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_stops_sneaking(player)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_starts_sprinting(player)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_stops_sprinting(player)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_drops_item(player)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_player_drops_stack(player)->", + typesEnum.Event + ), + new vscode.CompletionItem( + "__on_statistic(player, category, event, value)->", + typesEnum.Event + ), + // Misc + new vscode.CompletionItem("sound", typesEnum.Function), + new vscode.CompletionItem("particle", typesEnum.Function), + new vscode.CompletionItem("particle_line", typesEnum.Function), + new vscode.CompletionItem("particle_rect", typesEnum.Function), + new vscode.CompletionItem("create_marker", typesEnum.Function), + new vscode.CompletionItem("remove_all_marker", typesEnum.Function), + new vscode.CompletionItem("nbt", typesEnum.Function), + new vscode.CompletionItem("escape_nbt", typesEnum.Function), + new vscode.CompletionItem("print", typesEnum.Function), + new vscode.CompletionItem("logger", typesEnum.Function), + new vscode.CompletionItem("run", typesEnum.Function), + new vscode.CompletionItem("save", typesEnum.Function), + new vscode.CompletionItem("load_app_data", typesEnum.Function), + new vscode.CompletionItem("store_app_data", typesEnum.Function), + new vscode.CompletionItem("tick_time", typesEnum.Function), + new vscode.CompletionItem("game_tick", typesEnum.Function), + new vscode.CompletionItem("seed", typesEnum.Function), + new vscode.CompletionItem("current_dimension", typesEnum.Function), + new vscode.CompletionItem("in_dimension", typesEnum.Function), + new vscode.CompletionItem("schedule", typesEnum.Function), + new vscode.CompletionItem("statistic", typesEnum.Function), + new vscode.CompletionItem("plop", typesEnum.Function), + new vscode.CompletionItem("reset_chunk", typesEnum.Function), + // Scoreboard API + new vscode.CompletionItem("scoreboard", typesEnum.Keyword), + new vscode.CompletionItem("scoreboard_add", typesEnum.Keyword), + new vscode.CompletionItem("scoreboard_remove", typesEnum.Keyword), + new vscode.CompletionItem("scoreboard_display", typesEnum.Keyword), - //Keywords (Some global variables are going to be keywords) - // Global Variables - new vscode.CompletionItem("null", typesEnum.Keyword), - new vscode.CompletionItem("true", typesEnum.Keyword), - new vscode.CompletionItem("false", typesEnum.Keyword), - new vscode.CompletionItem("pi", typesEnum.Unit), - new vscode.CompletionItem("euler", typesEnum.Unit), - new vscode.CompletionItem("loop", typesEnum.Keyword), - // ???? - new vscode.CompletionItem("outer", typesEnum.Keyword), - new vscode.CompletionItem("import", typesEnum.Keyword), - new vscode.CompletionItem("call", typesEnum.Keyword), - new vscode.CompletionItem("not", typesEnum.Function), - // Control Flow - new vscode.CompletionItem("return", typesEnum.Keyword), - new vscode.CompletionItem("exit", typesEnum.Keyword), - new vscode.CompletionItem("try", typesEnum.Keyword), - new vscode.CompletionItem("if", typesEnum.Keyword), - new vscode.CompletionItem("throw", typesEnum.Keyword), - // Loops - new vscode.CompletionItem("break", typesEnum.Keyword), - new vscode.CompletionItem("continue", typesEnum.Keyword), - new vscode.CompletionItem("for", typesEnum.Keyword), - new vscode.CompletionItem("c_for", typesEnum.Keyword), - new vscode.CompletionItem("while", typesEnum.Keyword), - new vscode.CompletionItem("loop", typesEnum.Keyword), - ]); - } -} \ No newline at end of file + //Keywords (Some global variables are going to be keywords) + // Global Variables + new vscode.CompletionItem("null", typesEnum.Keyword), + new vscode.CompletionItem("true", typesEnum.Keyword), + new vscode.CompletionItem("false", typesEnum.Keyword), + new vscode.CompletionItem("pi", typesEnum.Unit), + new vscode.CompletionItem("euler", typesEnum.Unit), + new vscode.CompletionItem("loop", typesEnum.Keyword), + // ???? + new vscode.CompletionItem("outer", typesEnum.Keyword), + new vscode.CompletionItem("import", typesEnum.Keyword), + new vscode.CompletionItem("call", typesEnum.Keyword), + new vscode.CompletionItem("not", typesEnum.Function), + // Control Flow + new vscode.CompletionItem("return", typesEnum.Keyword), + new vscode.CompletionItem("exit", typesEnum.Keyword), + new vscode.CompletionItem("try", typesEnum.Keyword), + new vscode.CompletionItem("if", typesEnum.Keyword), + new vscode.CompletionItem("throw", typesEnum.Keyword), + // Loops + new vscode.CompletionItem("break", typesEnum.Keyword), + new vscode.CompletionItem("continue", typesEnum.Keyword), + new vscode.CompletionItem("for", typesEnum.Keyword), + new vscode.CompletionItem("c_for", typesEnum.Keyword), + new vscode.CompletionItem("while", typesEnum.Keyword), + new vscode.CompletionItem("loop", typesEnum.Keyword) + ]); + } +} diff --git a/src/extension.ts b/src/extension.ts index cc64794..c2db787 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -2,7 +2,6 @@ import * as vscode from "vscode"; import CompletionProvider from "./completionProvider"; import { copyClipboard } from "./commands"; -import { Parser } from "./parser"; export function activate(ctx: vscode.ExtensionContext): void { console.log("Scarpet is alive and doing well");