首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法重构属性“未定义”的订阅- vscode扩展

无法重构属性“未定义”的订阅- vscode扩展
EN

Stack Overflow用户
提问于 2022-01-03 15:58:36
回答 1查看 68关注 0票数 0

我正在编写一个vscode扩展,它接受文档的语言,并在此基础上生成hello world模板。我已经生成了状态栏图标,这也没有出现。这是我的第一个扩展,所以我对所有这些都是新的。当我使用Control + Shift +P运行该命令时,它还会得到一个没有找到该命令的错误。

密码..。

代码语言:javascript
复制
import * as vscode from 'vscode';
import "typescript";
import "./constants";

let myStatusBar : vscode.StatusBarItem;

export function activate(context: vscode.ExtensionContext, { subscriptions }: vscode.ExtensionContext) {
    const codeBoilerplateCommand = 'code-boilerplate.CodeBoilerplate';
    subscriptions.push(vscode.commands.registerCommand(codeBoilerplateCommand, () => {
        const documentFileType = vscode.window.activeTextEditor?.document.languageId;
        const documentFileName = vscode.window.activeTextEditor?.document.fileName;
        const documentFilePath = vscode.window.activeTextEditor?.document.fileName.split('/');

        vscode.window.showInformationMessage("Generating your Code Boilerplate... ⌛")
        if (documentFileType === "javascript") {
            vscode.window.activeTextEditor.edit(editBuilder => {
                editBuilder.insert(new vscode.Position(0, 0), 'console.log("Hello World!")');
            });
        }
        else if (documentFileType === "python") {
            vscode.window.activeTextEditor.edit(editBuilder => {
                editBuilder.insert(new vscode.Position(0, 0), 'print("Hello World!")');
            });
        }
        else if (documentFileType === "typescript") {
            vscode.window.activeTextEditor.edit(editBuilder => {
                editBuilder.insert(new vscode.Position(0, 0), 'console.log("Hello World!");');
            });
        }
        else if (documentFileType === "csharp") {
            vscode.window.activeTextEditor.edit(editBuilder => {
                editBuilder.insert(new vscode.Position(0, 0), 'using System;');
                editBuilder.insert(new vscode.Position(3,0), 'namespace' + documentFileName + ' {');
                editBuilder.insert(new vscode.Position(6,4), 'class HelloWorld {');
                editBuilder.insert(new vscode.Position(9, 8), 'static void Main(string[] args) {');
                editBuilder.insert(new vscode.Position(12,12), 'Console.WriteLine("Hello World!");');
                editBuilder.insert(new vscode.Position(14,8), '}');
                editBuilder.insert(new vscode.Position(15, 4), '}');
                editBuilder.insert(new vscode.Position(16, 0), '}');
            });
        }
        else if (documentFileType === "c") {
            vscode.window.activeTextEditor.edit(editBuilder => {
                editBuilder.insert(new vscode.Position(0,0), '#include <stdio.h>');
                editBuilder.insert(new vscode.Position(1,0), 'int main() {');
                editBuilder.insert(new vscode.Position(2,4), 'printf("Hello World!");');
                editBuilder.insert(new vscode.Position(3,4), 'return 0;');
                editBuilder.insert(new vscode.Position(4,0), '}');
            })
        }
        else if (documentFileType === "cpp") {
            return null;
        }
        else if (documentFileType === "java") {
            return null;
        }
    }));

    myStatusBar = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100);
    myStatusBar.command = codeBoilerplateCommand;
    subscriptions.push(myStatusBar);

    subscriptions.push(vscode.window.onDidChangeActiveTextEditor(updateStatusBarItem));
    subscriptions.push(vscode.window.onDidChangeTextEditorSelection(updateStatusBarItem));
    updateStatusBarItem();
}

function updateStatusBarItem(): void {
    myStatusBar.text = `$(new-file) Hello World!`;
    myStatusBar.show();
}

export function deactivate() {
    myStatusBar.dispose();
}
EN

回答 1

Stack Overflow用户

发布于 2022-01-05 09:33:43

您的函数的原型是不正确的,activate只使用一个参数。若要访问订阅,请执行以下操作:

代码语言:javascript
复制
export function activate(context: ExtensionContext) {
    context.subscriptions.push(...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70568348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档