我的工作区根目录是一个包含多个文件和多个git子模块的git仓库。每个子模块都有自己的.vscode/settings.json
文件。我原本期望VSCode可以根据我所在的子模块/子文件夹来自动调整其设置,但实际上并没有按照我的预期进行调整。
是否有可能实现这一点呢? 我认为如果您使用多根工作区(自1.18版本起受支持),那么这是可能的,但在我的情况下,我希望保持单根工作区。
我的工作区根目录是一个包含多个文件和多个git子模块的git仓库。每个子模块都有自己的.vscode/settings.json
文件。我原本期望VSCode可以根据我所在的子模块/子文件夹来自动调整其设置,但实际上并没有按照我的预期进行调整。
是否有可能实现这一点呢? 我认为如果您使用多根工作区(自1.18版本起受支持),那么这是可能的,但在我的情况下,我希望保持单根工作区。
我也找不到一个合适的答案,但我找到了一个“hacky”解决方法。我的项目结构如下:
.
├── apps
│ ├── api
│ │ ├── Dockerfile
│ │ ├── .gitignore
│ │ ├── hhapi
│ │ ├── manage.py
│ │ ├── .pylintrc
│ │ ├── requirements.txt
│ │ ├── venv
│ │ └── .vscode
│ └── crawler
│ ├── crawler-crontab
│ ├── Dockerfile
│ ├── .gitignore
│ ├── hhcrawler
│ ├── .pylintrc
│ ├── requirements.txt
│ ├── .scrapy
│ ├── scrapy.cfg
│ ├── venv
│ └── .vscode
├── docker-compose.development.yml
├── docker-compose.production.yml
├── .gitignore
├── .gitlab-ci.yml
├── househunter.code-workspace
└── .vscode
└── settings.json
我最终做的是忽略项目根目录下的apps
目录,然后将两个应用程序都添加到工作区中。./.vscode/settings.json
看起来像这样:{
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"apps": true
},
}
并且 househunter.code-workspace
文件内容应该如下:
{
"folders": [
{
"path": "apps/api"
},
{
"path": "apps/crawler"
},
{
"name": "root",
"path": "."
}
],
"settings": {}
}
这是我在编辑器上看到的内容:
而且确实遵循了子项目的settings.json
。这远非一个好的解决方案,但目前这是我发现实现此功能的唯一方法 - 我也希望有人能记录下一个正确的解决方案。 :)
目前还未实现该功能。2017年8月17日,程序问题跟踪器中有一个功能请求:单体结构,多个项目设置 #32693。
如果你非常需要这个功能,那么可以像Diogo的回答所述,滥用多根工作区。