Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code VSCode扩展位置变量_Visual Studio Code_Vscode Extensions - Fatal编程技术网

Visual studio code VSCode扩展位置变量

Visual studio code VSCode扩展位置变量,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,在我正在编写的扩展中,我希望重新定义工作区中的现有设置,以指向我正在使用扩展打包的脚本。例如,在mac上,此脚本位于~/.vscode/extensions/publisher.name.version/script中 如果我假设这是扩展所在的位置,那么在激活函数中,我可以使用 导出异步函数激活(上下文:vscode.ExtensionContext){ const home=process.env.home; const execLocation=home+“/.vscode/extensio

在我正在编写的扩展中,我希望重新定义工作区中的现有设置,以指向我正在使用扩展打包的脚本。例如,在mac上,此脚本位于
~/.vscode/extensions/publisher.name.version/script

如果我假设这是扩展所在的位置,那么在激活函数中,我可以使用

导出异步函数激活(上下文:vscode.ExtensionContext){ const home=process.env.home; const execLocation=home+“/.vscode/extensions/publisher.name.version/script”; ... 然后更新工作空间设置

但是-我想访问本地安装的扩展的位置,以及我的扩展的id和版本-我在VSCode中找不到正确的设置来执行此操作。如果有人知道正确的环境变量,以便我可以访问他们,我将不胜感激

我知道可以使用选项
--extensionHomePath
从命令行调用代码-我不确定如何以编程方式访问此变量


另外,我不知道如何从
上下文
参数中找到版本、发布者和名称-显然,我从
package.json
文件中知道这些,但如果可能的话,能够以编程方式访问它们会很好。

您可以通过的
asabsolutionpath()
方法获得这些信息。
此方法为给定的相对路径(关于项目根)获取资源的绝对路径

因此,我建议您将代码更改为以下内容:

导出异步函数激活(上下文:vscode.ExtensionContext){ const execLocation=context.asAbsolutePath(“脚本”); log(“绝对执行位置:+execLocation”);
非常感谢您的回复。我注意到调试此操作不起作用(
AsabSolutionPath
是本地开发目录),但在创建vsix并从vsix安装时,
AsabSolutionPath
确实给出了正确的位置。再次感谢。