Кнопка плагина VSC не загружается, когда я нажимаю на нееJavascript

Форум по Javascript
Ответить
Anonymous
 Кнопка плагина VSC не загружается, когда я нажимаю на нее

Сообщение Anonymous »

Я пытаюсь сделать кнопку в своем собственном плагине VSC, который должен застегнуть корневой каталог, который я открыл в коде Visual Studio. Когда я нажимаю на кнопку, она, кажется, не стреляет. Попытка console.log или vscode.window.showinformationmessage тоже ничего не показывает, поэтому я довольно уверен, что функция не верна. Я искал разные решения, но никто не работает. Я также пытался получить информацию из документов VSC, но безрезультатно. ): < /p>
"contributes": {
"commands": [
{
"command": "zipView.zipRootFolder",
"title": "Zip Root Folder"
}
],
"viewsContainers": {
"activitybar": [
{
"id": "zipView",
"title": "Zip",
"icon": "./src/icon/download_button.png"
}
]
},
"views": {
"zipView": [
{
"id": "zipButtonView",
"name": "Zip Button",
"contextualTitle": "Zip Root Folder",
"type": "webview"
}
]
}
}

my zipbutton.ts :
import * as vscode from 'vscode';
import * as fs from 'fs';
import * as path from 'path';
import archiver from 'archiver';

export function registerZipButton(context: vscode.ExtensionContext) {
context.subscriptions.push(
vscode.window.registerWebviewViewProvider(
ZipButtonViewProvider.viewType,
new ZipButtonViewProvider(context.extensionUri)
)
);

context.subscriptions.push(
vscode.commands.registerCommand('zipView.zipRootFolder', zipRootFolder)
);
}

class ZipButtonViewProvider implements vscode.WebviewViewProvider {
public static readonly viewType = 'zipView.zipButtonView';

constructor(private readonly extensionUri: vscode.Uri) {}

public resolveWebviewView(
webviewView: vscode.WebviewView,
context: vscode.WebviewViewResolveContext,
_token: vscode.CancellationToken
) {
webviewView.webview.options = {
enableScripts: true,
};

webviewView.webview.html = `





Zip Button

button {
background-color: #007acc;
color: white;
border: none;
padding: 10px 15px;
border-radius: 4px;
cursor: pointer;
font-size: 14px;
}
button:hover {
background-color: #005f9e;
}



Zip Root Folder

const vscode = acquireVsCodeApi();
document.getElementById('zipButton').addEventListener('click', () => {
vscode.postMessage({ command: 'zip' });
});



`;

webviewView.webview.onDidReceiveMessage((message) => {
if (message.command === 'zip') {
vscode.commands.executeCommand('zipView.zipRootFolder'); // Roep het commando aan
}
});
}
}

// Logic for zip
async function zipRootFolder() {
vscode.window.showInformationMessage(`Wassup`);
console.log("wassup");
const workspaceFolders = vscode.workspace.workspaceFolders;
if (!workspaceFolders) {
vscode.window.showErrorMessage('Er is geen workspace geopend.');
return;
}

const rootPath = workspaceFolders[0].uri.fsPath;
const zipPath = path.join(rootPath, 'root-folder.zip');

try {
const output = fs.createWriteStream(zipPath);
const archive = archiver('zip', { zlib: { level: 9 } });

output.on('close', () => {
vscode.window.showInformationMessage(`Map is succesvol gezipt naar: ${zipPath}`);
});

archive.on('error', (err) => {
throw err;
});

archive.pipe(output);
archive.directory(rootPath, false);
await archive.finalize();
} catch (error) {
let errorMessage = 'Fout bij zippen...';
if (error instanceof Error) {
errorMessage = error.message;
}
vscode.window.showErrorMessage(`Fout bij het zippen: ${errorMessage}`);
}
}

my extension.ts :
import * as vscode from 'vscode';
import { listExtensions } from './utils/extensionsUtils';
import { monitorDebugSessions } from './utils/debugUtils';
import { onchangeText } from './utils/keydownUtils';
import { registerZipButton } from './components/zipButton';

export function activate(context: vscode.ExtensionContext): void {
console.log('Your extension is now up and running!');

registerZipButton(context);
}

export function deactivate(): void {
console.log('Your extension is now deactivated!');
//HERE SHOULD COME THE SELF SIGNED STUFF
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... lick-on-it
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»