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
}
}
这将向扩展名发出信号,以停止搜索树并在此级别填充设置。
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