VS Code的扩展如何获得VS Code的安装路径?

时间:2016-08-15 12:29:30

标签: visual-studio-code vscode-extensions

我正在开发VS代码的扩展(使用javascript)。现在我需要安装VS Code的路径。 Windows有一种方法:

var child = require('child_process');
child.exec('reg query HKEY_CLASSES_ROOT\\*\\shell\\VSCode /v Icon', function (error, strOut, strError) { 
//some code...
})

但是只有用户正确安装VS Code才能正常工作。如果此文件夹是从其他计算机复​​制的(它在注册表中没有任何VS代码),则此功能将失败。

另一方面,它在Linux或OS X上根本无法工作。

我想知道是否有API可以提供帮助(我什么也没找到),或者其他方式可以获得这条路径。

4 个答案:

答案 0 :(得分:3)

我不知道你为什么需要VSCODE的目录,但我需要的目录是我的extesion。 它可以按如下方式访问:

var myExtDir = vscode.extensions.getExtension ("publisher.name").extensionPath;

发布者和名称在package.json

答案 1 :(得分:0)

我想我会添加你发现自己的答案,以防其他人来寻找同样的事情。

path.dirname(require.main.filename);
Ubuntu中的

返回(对我来说)

/usr/share/code/resources/app/out

并在Windows中返回

c:\Program Files\Microsoft VS Code\resources\app\out

它也应该返回适​​合OSX的东西。

这是包含bootstrap.js的文件夹,足以确定应用程序的安装位置(此实例中的默认位置)。

在我的情况下,我想要一个节点模块(vscode-ripgrep)的路径,它是作为vscode的一部分构建的,所以我必须更多地处理路径,但它完成了这项工作。

答案 2 :(得分:0)

编写VSCode并使用node.js,因此您可以访问计算机,用户和节点环境变量。

要获取VSCode的已使用安装路径,您可以使用以下内容;

process.env.VSCODE_CWD

例如,如果我的扩展做的第一件事是; console.log(process.env.VSCODE_CWD)它会在调试控制台C:\Program Files\Microsoft VS Code中打印出以下内容(这是我安装VSCode的地方)。

答案 3 :(得分:0)

您现在可以使用

create or replace file format bigjson_ff
    type = json
        COMPRESSION = none
        STRIP_OUTER_ARRAY = true
        ALLOW_DUPLICATE = TRUE;

select
    parse_json($1)
from @stage_java/bigjson.json (file_format => 'bigjson_ff');