Visual studio code VSCode扩展位置变量
在我正在编写的扩展中,我希望重新定义工作区中的现有设置,以指向我正在使用扩展打包的脚本。例如,在mac上,此脚本位于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
~/.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
确实给出了正确的位置。再次感谢。