从另一个文件扩展VSCODE工作区设置
#javascript #网络开发人员 #typescript #vscode

tldr;

我创建了一个VSCODE扩展名Tabaqa,以从另一个来源启用工作空间设置。


VSCODE的重要功能之一是您可以自定义工作区的设置。这通常是通过在.vscode文件夹中添加setting.json文件来完成的。

但是,这会引起很少的问题。例如,如果将项目推到git存储库并提交settings.json文件,则拉动代码的其他人将必须使用与您相同的设置。

显然,他们可以将设置自定义为自己的首选方式,但这意味着他们必须将新更改推向回购(并为其他所有人更改),或确保每次添加每次添加时都不会推动它新提交。

另一个问题是当您拥有monorepo时。通常,您将有不同的项目相邻。即使您可能为每个项目都有一些不同的设置,您仍然需要复制所有项目的所有设置。

这些方法很好地增加了额外的维护时间,并从从事项目本身的工作中分心。

这就是为什么我开发此扩展名的原因,Tabaqa。它的意思是阿拉伯语。该扩展名有助于从父文件夹,工作区中的文件或URL延长设置。

入门

将设置添加到工作空间中的QuickSet方法是创建一个名为tabaqa.json的文件,并将其放置在root .vscode中。使用此内容来创建它:

{
    "extends": "https://raw.githubusercontent.com/kalimahapps/configs/main/.vscode/settings.json"
}

Sidenote:我创建了一个带有定期使用的设置的存储库。您可以在这里找到它:https://github.com/kalimahapps/configs/tree/main/.vscode。上面的URL引用该仓库。

如果保存tabaqa.json文件并重新启动VSCODE,您将看到settings.json是在从该URL中提取的设置创建的。设置将应用于当前打开的工作区。

但是,如果您想更改其中一些设置怎么办?您可以将更改添加到tabaqa.json中的settings属性中。例如,

{
    "extends": "https://raw.githubusercontent.com/kalimahapps/configs/main/.vscode/settings.json",
    "settings": {
        "editor.formatOnPaste": true
    }
}

扩展程序将从远程存储库中取出设置,应用editor.formatOnPast并更新工作区设置。

您也可以从项目内的文件扩展:

{
    "extends": "../path/to/file.json",
    "settings": {
        "editor.formatOnPaste": true
    }
}

嵌套文件夹

扩展设置的另一种方法是从另一个tabaqa.json将它们继承在文件夹树上。这是默认行为。如果您想选择退出,则可以将root: true添加到tabaqa.json

{
    "root": true,
    "extends": "../path/to/file.json",
    "settings": {
        "editor.formatOnPaste": true
    }
}

这将向扩展名发出信号,以停止搜索树并在此级别填充设置。

Tabaqa on VSCode

GitHub logo kalimahapps / tabaqa

VSCODE的可扩展和嵌套设置

Tabaqa

Extendand and nested settings for VSCode



注意: 请注意,此扩展名更新了settings.json文件。如果您有任何自定义设置,请确保在安装此扩展名之前备份您的设置。


从父文件夹,另一个文件或URL扩展VSCODE设置。您还可以通过在文件夹中添加tabaqa.json文件来嵌套设置。扩展程序将寻找文件并将设置应用于当前工作区。


它如何工作?

扩展名在顶级.vscode文件夹中寻找一个文件名tabaqa.json。如果找到文件,它将读取文件并将设置应用于当前工作区。该扩展名将从所有tabaqa.json上继承设置在文件夹树上,直到它到达根文件夹(或者设置了root: true)。

请参见此文件夹结构作为示例:

¥连接
Twitter:@kalimahapps