From b4a2507d43d5a55fbc6c6cb6aa22b0cb92a97b45 Mon Sep 17 00:00:00 2001 From: ErikrafT <139592038+erikraft@users.noreply.github.com> Date: Sat, 3 May 2025 19:21:57 -0300 Subject: [PATCH] Update extension.js --- .../erikraft-drop/src/extension.js | 144 +++++++++++------- 1 file changed, 89 insertions(+), 55 deletions(-) diff --git a/VS Code Extension/erikraft-drop/src/extension.js b/VS Code Extension/erikraft-drop/src/extension.js index 6dbb48b..4e1dc75 100644 --- a/VS Code Extension/erikraft-drop/src/extension.js +++ b/VS Code Extension/erikraft-drop/src/extension.js @@ -1,69 +1,103 @@ const vscode = require('vscode'); +const path = require('path'); function activate(context) { + // Registrar o comando para abrir a visualização let disposable = vscode.commands.registerCommand('erikraftDrop.open', function () { - const panel = vscode.window.createWebviewPanel( - 'erikraftDrop', - 'ErikrafT Drop', - vscode.ViewColumn.One, - { - enableScripts: true - } - ); - - panel.webview.html = getWebviewContent(); + vscode.commands.executeCommand('workbench.view.extension.erikraftDrop'); }); + // Registrar o provedor de visualização + const viewProvider = new ErikrafTDropViewProvider(context.extensionPath); + context.subscriptions.push( + vscode.window.registerWebviewViewProvider('erikraftDrop.view', viewProvider) + ); + context.subscriptions.push(disposable); } +class ErikrafTDropViewProvider { + constructor(extensionPath) { + this.extensionPath = extensionPath; + } + + resolveWebviewView(webviewView) { + webviewView.webview.options = { + enableScripts: true, + localResourceRoots: [ + vscode.Uri.file(path.join(this.extensionPath, 'images')), + vscode.Uri.file(path.join(this.extensionPath, 'media')) + ] + }; + + webviewView.webview.html = this.getWebviewContent(webviewView.webview); + } + + getWebviewContent(webview) { + const darkIconPath = webview.asWebviewUri(vscode.Uri.file( + path.join(this.extensionPath, 'images', 'ui-icon-dark.svg') + )); + const lightIconPath = webview.asWebviewUri(vscode.Uri.file( + path.join(this.extensionPath, 'images', 'ui-icon-light.svg') + )); + + return ` + + + + + + ErikrafT Drop + + + +
+ + + ErikrafT Drop Icon + +
+ + + + + `; + } +} + exports.activate = activate; function deactivate() {} exports.deactivate = deactivate; - -function getWebviewContent() { - return ` - - - - - ErikrafT Drop - - - - - - - ErikrafT Drop Icon - - - -
- Demo 1 - Demo 2 -
- - - - - `; -}