diff --git a/projects/kiss-vscode/build.hxml b/projects/kiss-vscode/build.hxml index 500e2378..bb66e085 100644 --- a/projects/kiss-vscode/build.hxml +++ b/projects/kiss-vscode/build.hxml @@ -1,3 +1,7 @@ +-cp src +-js bin/ktxt2editor.js +--main KTxt2Editor +--next -lib vscode -lib hxnodejs -lib kiss diff --git a/projects/kiss-vscode/src/EditorExterns.hx b/projects/kiss-vscode/src/EditorExterns.hx new file mode 100644 index 00000000..3455366b --- /dev/null +++ b/projects/kiss-vscode/src/EditorExterns.hx @@ -0,0 +1,13 @@ +import js.html.Window; + +typedef VSCodeAPI = { + function postMessage(message:Any):Void; + function getState():Any; + function setState(a:Any):Void; +} + +@:native("") +extern class EditorExterns { + static function acquireVsCodeApi():VSCodeAPI; + static var window:Window; +} diff --git a/projects/kiss-vscode/src/KTxt2Editor.hx b/projects/kiss-vscode/src/KTxt2Editor.hx new file mode 100644 index 00000000..aeaa88a6 --- /dev/null +++ b/projects/kiss-vscode/src/KTxt2Editor.hx @@ -0,0 +1,12 @@ +import EditorExterns; + +class KTxt2Editor { + public static function main() { + var vscode = EditorExterns.acquireVsCodeApi(); + + var document = EditorExterns.window.document; + var pElement = document.createElement("p"); + pElement.innerHTML = "helly eah"; + document.body.appendChild(pElement); + } +} diff --git a/projects/kiss-vscode/src/KTxt2EditorProvider.hx b/projects/kiss-vscode/src/KTxt2EditorProvider.hx index 90de0ea6..366deab8 100644 --- a/projects/kiss-vscode/src/KTxt2EditorProvider.hx +++ b/projects/kiss-vscode/src/KTxt2EditorProvider.hx @@ -1,9 +1,6 @@ import kiss.Prelude; import kiss.List; -import vscode.ExtensionContext; -import vscode.TextDocument; -import vscode.CancellationToken; -import vscode.WebviewPanel; +import vscode.*; import js.lib.Promise; @:build(kiss.Kiss.build()) diff --git a/projects/kiss-vscode/src/KTxt2EditorProvider.kiss b/projects/kiss-vscode/src/KTxt2EditorProvider.kiss index 8847f07a..74def65a 100644 --- a/projects/kiss-vscode/src/KTxt2EditorProvider.kiss +++ b/projects/kiss-vscode/src/KTxt2EditorProvider.kiss @@ -6,6 +6,21 @@ (method :Promise resolveCustomTextEditor [:TextDocument document :WebviewPanel webviewPanel :CancellationToken _token] (set webviewPanel.webview.options (object enableScripts true)) - (set webviewPanel.webview.html "hello editor") + (set webviewPanel.webview.html (htmlForWebview webviewPanel.webview)) null - ) \ No newline at end of file + ) + +(method :String htmlForWebview [:Webview webview] + (let [scriptUri + (webview.asWebviewUri (Uri.joinPath (Uri.parse this.context.extensionUri) "bin" "ktxt2editor.js"))] + " + + + + + KTxt2 + + + + + ")) \ No newline at end of file