From 8fe4414a928a1f1c5f4b030cfa20b2b3131cfedc Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 23 Jan 2023 11:16:50 -0600 Subject: [PATCH] working vscode lsp; added Optional --- core/container/map.onyx | 11 +++- core/container/optional.onyx | 64 ++++++++++++++++++++++ core/container/set.onyx | 10 +++- core/std.onyx | 1 + misc/vscode/extension.ts | 40 +++++++++----- misc/vscode/onyx-0.1.4.vsix | Bin 1530994 -> 1531069 bytes misc/vscode/out/extension.js | 39 ++++++++----- shared/include/bh.h | 4 +- shared/lib/linux_x86_64/lib/libovmwasm.so | Bin 301536 -> 301536 bytes 9 files changed, 135 insertions(+), 34 deletions(-) create mode 100644 core/container/optional.onyx diff --git a/core/container/map.onyx b/core/container/map.onyx index b17adb0a..d3dbf7d7 100644 --- a/core/container/map.onyx +++ b/core/container/map.onyx @@ -1,6 +1,6 @@ package core.map -use core {array, hash, memory, math, conv} +use core {array, hash, memory, math, conv, Optional} use core.intrinsics.onyx { __initialize } #local ValidKey :: interface (t: $T) { @@ -30,7 +30,6 @@ Map :: struct (Key_Type: type_expr, Value_Type: type_expr) where ValidKey(Key_Ty key : K; value : V; } - } #inject Map { @@ -38,6 +37,7 @@ Map :: struct (Key_Type: type_expr, Value_Type: type_expr) where ValidKey(Key_Ty has :: has get :: get get_ptr :: get_ptr + get_opt :: get_opt put :: put delete :: delete update :: update @@ -111,6 +111,13 @@ get_ptr :: (use map: ^Map, key: map.Key_Type) -> ^map.Value_Type { return null; } +get_opt :: (use map: ^Map, key: map.Key_Type) -> Optional(map.Value_Type) { + lr := lookup(map, key); + if lr.entry_index >= 0 do return Optional.make(entries[lr.entry_index].value); + + return .{}; +} + delete :: (use map: ^Map, key: map.Key_Type) { lr := lookup(map, key); if lr.entry_index < 0 do return; diff --git a/core/container/optional.onyx b/core/container/optional.onyx new file mode 100644 index 00000000..0d51e3d2 --- /dev/null +++ b/core/container/optional.onyx @@ -0,0 +1,64 @@ +package core + +@conv.Custom_Format.{ #solidify format {T=Value_Type} } +Optional :: struct (Value_Type: type_expr) { + has_value: bool; + value: Value_Type; +} + +#inject Optional { + make :: (x: $T) => Optional(T).{ has_value = true, value = x }; + + value_or :: (o: Optional, default: o.Value_Type) -> o.Value_Type { + if !o.has_value do return default; + return o.value; + } + + reset :: (o: ^Optional) { + o.has_value = false; + core.memory.set(^o.value, 0, sizeof o.Value_Type); + } + + set :: (o: ^Optional, value: o.Value_Type) { + o.has_value = true; + o.value = value; + } + + and_then :: (o: Optional($T), transform: (T) -> Optional($R)) -> Optional(R) { + if !o.has_value do return .{ false }; + return transform(o.value); + } + + transform :: (o: Optional($T), transform: (T) -> $R) -> Optional(R) { + if !o.has_value do return .{ false }; + return Optional.make(transform(o.value)); + } + + or_else :: (o: Optional($T), generate: () -> Optional(T)) -> Optional(T) { + if o.has_value do return o; + return generate(); + } + + hash :: (o: Optional($T/core.hash.Hashable)) -> u32 { + if !o.has_value do return 0; + return core.hash.to_u32(o.value); + } + + format :: (o: ^conv.Format_Output, format: ^conv.Format, opt: ^Optional($T)) { + if opt.has_value { + conv.format(o, "Some({\"})", opt.value); + } else { + o->write("None"); + } + } +} + +#operator == (o1, o2: Optional($T)) -> bool { + if o1.has_value != o2.has_value do return false; + if !o1.has_value do return true; + return o1.value == o2.value; +} + +#overload +__implicit_bool_cast :: macro (o: Optional) => o.has_value; + diff --git a/core/container/set.onyx b/core/container/set.onyx index 1ac375b3..6d831c2a 100644 --- a/core/container/set.onyx +++ b/core/container/set.onyx @@ -1,6 +1,6 @@ package core.set -use core {array, hash, memory, math} +use core {array, hash, memory, math, Optional} #local SetValue :: interface (t: $T) { { hash.to_u32(t) } -> u32; @@ -28,6 +28,7 @@ Set :: struct (Elem_Type: type_expr) where SetValue(Elem_Type) { has :: has get :: get get_ptr :: get_ptr + get_opt :: get_opt insert :: insert remove :: remove clear :: clear @@ -91,6 +92,13 @@ get_ptr :: (use set: ^Set, value: set.Elem_Type) -> ^set.Elem_Type { return (^entries[lr.entry_index].value) if lr.entry_index >= 0 else null; } +get_opt :: (use set: ^Set, value: set.Elem_Type) -> Optional(set.Elem_Type) { + lr := lookup(set, value); + if lr.entry_index >= 0 do return Optional.make(entries[lr.entry_index].value); + + return .{}; +} + remove :: (use set: ^Set, value: set.Elem_Type) { lr := lookup(set, value); if lr.entry_index < 0 do return; diff --git a/core/std.onyx b/core/std.onyx index ae198e29..c5e4af45 100644 --- a/core/std.onyx +++ b/core/std.onyx @@ -13,6 +13,7 @@ package core #load "./container/bucket_array" #load "./container/heap" #load "./container/pair" +#load "./container/optional" #load "./conv/conv" #load "./conv/format" diff --git a/misc/vscode/extension.ts b/misc/vscode/extension.ts index 0b96f75c..b0258545 100644 --- a/misc/vscode/extension.ts +++ b/misc/vscode/extension.ts @@ -3,7 +3,6 @@ import * as vsctmls from 'vscode-textmate-languageservice'; import * as vslc2 from "vscode-languageclient"; import * as vslc from "vscode-languageclient/node"; -import { TransportKind } from "vscode-languageclient/node"; let client: vslc.LanguageClient; @@ -15,27 +14,38 @@ export async function activate(context: vscode.ExtensionContext) { const engine = new vsctmls.textmateEngine.TextmateEngine('onyx', 'source.onyx'); const documentSymbolProvider = new vsctmls.documentSymbols.DocumentSymbolProvider(engine); const workspaceSymbolProvider = new vsctmls.workspaceSymbols.WorkspaceSymbolProvider('onyx', documentSymbolProvider); - // const foldingProvider = new vsctmls.folding.FoldingProvider(engine); const peekFileDefinitionProvider = new vsctmls.peekDefinitions.PeekDefinitionProvider(documentSymbolProvider); context.subscriptions.push(vscode.languages.registerDocumentSymbolProvider(selector, documentSymbolProvider)); context.subscriptions.push(vscode.languages.registerWorkspaceSymbolProvider(workspaceSymbolProvider)); - // context.subscriptions.push(vscode.languages.registerFoldingRangeProvider(selector, foldingProvider)); context.subscriptions.push(vscode.languages.registerDefinitionProvider({ 'language': 'onyx' }, peekFileDefinitionProvider)); - // client = new vslc.LanguageClient("onyx-lsp", { - // command: "onyx-lsp", - // transport: TransportKind.stdio, - // }, { - // documentSelector: [ - // { scheme: "file", language: "onyx" }, - // ], - // synchronize: { - // fileEvents: vscode.workspace.createFileSystemWatcher("**/*.onyx") - // } - // }); + let serverOptions: vslc.ServerOptions = { + command: "onyx-lsp", + transport: vslc.TransportKind.stdio, + }; - // client.start(); + let clientOptions: vslc.LanguageClientOptions = { + documentSelector: [ + { scheme: "file", language: "onyx" }, + ], + connectionOptions: { + cancellationStrategy: null, + maxRestartCount: 5 + } + }; + + client = new vslc.LanguageClient("onyx-lsp", serverOptions, clientOptions); + + client.start(); console.appendLine("Onyx Extension loaded."); } + +export function deactivate(): Thenable | undefined { + if (!client) { + return undefined; + } + + return client.stop(); +} diff --git a/misc/vscode/onyx-0.1.4.vsix b/misc/vscode/onyx-0.1.4.vsix index c4bb2ce828e32e51212956e9be749fe9733b6656..04ccc70736a9e2e81000e45eaf1ced0f6746d859 100644 GIT binary patch delta 13656 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 diff --git a/misc/vscode/out/extension.js b/misc/vscode/out/extension.js index 9d1a4961..5ed52058 100644 --- a/misc/vscode/out/extension.js +++ b/misc/vscode/out/extension.js @@ -9,9 +9,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.activate = void 0; +exports.deactivate = exports.activate = void 0; const vscode = require("vscode"); const vsctmls = require("vscode-textmate-languageservice"); +const vslc = require("vscode-languageclient/node"); let client; function activate(context) { return __awaiter(this, void 0, void 0, function* () { @@ -21,25 +22,33 @@ function activate(context) { const engine = new vsctmls.textmateEngine.TextmateEngine('onyx', 'source.onyx'); const documentSymbolProvider = new vsctmls.documentSymbols.DocumentSymbolProvider(engine); const workspaceSymbolProvider = new vsctmls.workspaceSymbols.WorkspaceSymbolProvider('onyx', documentSymbolProvider); - // const foldingProvider = new vsctmls.folding.FoldingProvider(engine); const peekFileDefinitionProvider = new vsctmls.peekDefinitions.PeekDefinitionProvider(documentSymbolProvider); context.subscriptions.push(vscode.languages.registerDocumentSymbolProvider(selector, documentSymbolProvider)); context.subscriptions.push(vscode.languages.registerWorkspaceSymbolProvider(workspaceSymbolProvider)); - // context.subscriptions.push(vscode.languages.registerFoldingRangeProvider(selector, foldingProvider)); context.subscriptions.push(vscode.languages.registerDefinitionProvider({ 'language': 'onyx' }, peekFileDefinitionProvider)); - // client = new vslc.LanguageClient("onyx-lsp", { - // command: "onyx-lsp", - // transport: TransportKind.stdio, - // }, { - // documentSelector: [ - // { scheme: "file", language: "onyx" }, - // ], - // synchronize: { - // fileEvents: vscode.workspace.createFileSystemWatcher("**/*.onyx") - // } - // }); - // client.start(); + let serverOptions = { + command: "onyx-lsp", + transport: vslc.TransportKind.stdio, + }; + let clientOptions = { + documentSelector: [ + { scheme: "file", language: "onyx" }, + ], + connectionOptions: { + cancellationStrategy: null, + maxRestartCount: 5 + } + }; + client = new vslc.LanguageClient("onyx-lsp", serverOptions, clientOptions); + client.start(); console.appendLine("Onyx Extension loaded."); }); } exports.activate = activate; +function deactivate() { + if (!client) { + return undefined; + } + return client.stop(); +} +exports.deactivate = deactivate; diff --git a/shared/include/bh.h b/shared/include/bh.h index e35a8f5e..41c3d8c8 100644 --- a/shared/include/bh.h +++ b/shared/include/bh.h @@ -145,7 +145,9 @@ static inline u64 log2_dumb(u64 n) { } } - +static inline const char* bh_num_plural(u64 i) { + return i != 1 ? "s" : ""; +} static inline const char* bh_num_suffix(u64 i) { if (i == 11 || i == 12 || i == 13) return "th"; diff --git a/shared/lib/linux_x86_64/lib/libovmwasm.so b/shared/lib/linux_x86_64/lib/libovmwasm.so index 9368eae74de37c5ae3881b88ef51afc83c84d371..28469a478b665ddd44df95001556dfeec73a864f 100755 GIT binary patch delta 54 zcmaE`S?IxLp$#{fMADN(Bn35=@I_Cp;9_FG!Kc2ev~lwrrl6aQ>CN_c+U@T!0x{Ee K`#a1F_W}S}E*5_P delta 54 zcmaE`S?IxLp$#{fL~aO+U;pwv!uGag&;GTo4(tnGOfA^_hAHSKV`{Vgop$>>j6lq^ K-Tn^q!o2|U4;sP% -- 2.25.1