From 13389b341c91bc700be996a3d2e0c0daf5f849b0 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Mon, 18 Oct 2021 15:31:42 -0400 Subject: [PATCH] Adding ktxt2 editor to Kiss-Vscode --- projects/kiss-vscode/package.json | 12 ++++++++++++ projects/kiss-vscode/src/KTxt2EditorProvider.hx | 10 ++++++++++ projects/kiss-vscode/src/KTxt2EditorProvider.kiss | 11 +++++++++++ projects/kiss-vscode/src/Main.kiss | 3 +++ 4 files changed, 36 insertions(+) create mode 100644 projects/kiss-vscode/src/KTxt2EditorProvider.hx create mode 100644 projects/kiss-vscode/src/KTxt2EditorProvider.kiss diff --git a/projects/kiss-vscode/package.json b/projects/kiss-vscode/package.json index fc27cb7e..845343c7 100644 --- a/projects/kiss-vscode/package.json +++ b/projects/kiss-vscode/package.json @@ -71,6 +71,18 @@ "kiss" ] } + ], + "customEditors": [ + { + "viewType": "ktxt2.splitView", + "displayName": "KTxt2 Split View", + "selector": [ + { + "filenamePattern": "*.*.*.ktxt2" + } + ], + "priority": "default" + } ] }, "engines": { diff --git a/projects/kiss-vscode/src/KTxt2EditorProvider.hx b/projects/kiss-vscode/src/KTxt2EditorProvider.hx new file mode 100644 index 00000000..90de0ea6 --- /dev/null +++ b/projects/kiss-vscode/src/KTxt2EditorProvider.hx @@ -0,0 +1,10 @@ +import kiss.Prelude; +import kiss.List; +import vscode.ExtensionContext; +import vscode.TextDocument; +import vscode.CancellationToken; +import vscode.WebviewPanel; +import js.lib.Promise; + +@:build(kiss.Kiss.build()) +class KTxt2EditorProvider {} diff --git a/projects/kiss-vscode/src/KTxt2EditorProvider.kiss b/projects/kiss-vscode/src/KTxt2EditorProvider.kiss new file mode 100644 index 00000000..8847f07a --- /dev/null +++ b/projects/kiss-vscode/src/KTxt2EditorProvider.kiss @@ -0,0 +1,11 @@ +(function register [context] + (let [provider (new KTxt2EditorProvider context)] + (Vscode.window.registerCustomEditorProvider "ktxt2.splitView" provider))) + +(defNew [&prop :ExtensionContext context]) + +(method :Promise resolveCustomTextEditor [:TextDocument document :WebviewPanel webviewPanel :CancellationToken _token] + (set webviewPanel.webview.options (object enableScripts true)) + (set webviewPanel.webview.html "hello editor") + null + ) \ No newline at end of file diff --git a/projects/kiss-vscode/src/Main.kiss b/projects/kiss-vscode/src/Main.kiss index 4c8d3275..6b6ddf8a 100644 --- a/projects/kiss-vscode/src/Main.kiss +++ b/projects/kiss-vscode/src/Main.kiss @@ -129,6 +129,9 @@ (.runKeyboardShortcut (the KissConfig config)) (Vscode.window.showErrorMessage "Can't run commands! No config is loaded."))))) + (context.subscriptions.push + (KTxt2EditorProvider.register context)) + (set builtinConfigDir (joinPath context.extensionPath "config")) (set activeConfigDir (joinPath (userHome) ".kiss-vscode" "activeConfig")) (set lastConfigDir (joinPath (userHome) ".kiss-vscode" "lastActiveConfig"))