Visual Studio代码和特定于子文件夹的设置

kyt*_*twb 8 visual-studio-code vscode-settings

我的工作区根目录是一个包含几个文件和几个git子模块的git存储库.每个子模块都有自己的子模块.vscode/settings.json.我期待VSCode根据我正在使用的子模块/子文件夹调整其设置但是它没有按预期工作.

可能吗?我认为你可以使用多根工作区(从1.18开始支持),但在我的情况下,我想保留单根工作区.

小智 9

我也找不到合适的答案,但确实找到了“ 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
Run Code Online (Sandbox Code Playgroud)

我最终要做的是忽略apps项目根目录下的目录,然后将两个应用程序都添加到工作区中。

所以./.vscode/settings.json看起来像这样:

{
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "apps": true
      },
}
Run Code Online (Sandbox Code Playgroud)

househunter.code-workspace像这样的文件:

{
    "folders": [
        {
            "path": "apps/api"
        },
        {
            "path": "apps/crawler"
        },
        {
            "name": "root",
            "path": "."
        }
    ],
    "settings": {}
}
Run Code Online (Sandbox Code Playgroud)

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

Visual Studio Code Explorer上的项目结构

的确确实在跟着这些子项目settings.json。这远不是一个很好的解决方案,但暂时是我发现实现此目标的唯一方法-我也很乐意看到有人为这个问题提供适当的解决方案。:)

  • 谢谢迪奥戈。这很好用。并让我对每个子模块有更多的控制权。 (2认同)

Álv*_*lez 7

在撰写本文时,该功能尚未实现。2017 年 8 月 17 日提交的程序问题跟踪器中有一个功能请求:整体结构,多个项目设置 #32693

同时,如果您非常需要它,则必须按照Diogo 的回答中所述滥用多根工作区。