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"))