Visual Studio Code和子文件夹特定设置

37

我的工作区根目录是一个包含多个文件和多个git子模块的git仓库。每个子模块都有自己的.vscode/settings.json文件。我原本期望VSCode可以根据我所在的子模块/子文件夹来自动调整其设置,但实际上并没有按照我的预期进行调整。

是否有可能实现这一点呢? 我认为如果您使用多根工作区(自1.18版本起受支持),那么这是可能的,但在我的情况下,我希望保持单根工作区。


2
也在寻找答案! - bsbak
2个回答

39

我也找不到一个合适的答案,但我找到了一个“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": {}
}

这是我在编辑器上看到的内容:

Visual Studio Code资源管理器中的项目结构

而且确实遵循了子项目的settings.json。这远非一个好的解决方案,但目前这是我发现实现此功能的唯一方法 - 我也希望有人能记录下一个正确的解决方案。 :)


2
谢谢Diogo。这个很好用,而且让我对每个子模块有了更多的控制。 - Thomas Oatman

12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接