排除 VS Code 中的顶级目录而不影响同名的嵌套目录

问题描述 投票:0回答:1

我正在 Visual Studio Code 中处理一个项目,其目录结构如下:

project-root
├── dirA
│   └── dirB
├── dirB
└── tests
    ├── dirA
    └── dirB

我想在工作区设置中使用

dirA
从资源管理器视图中排除顶层的
dirB
files.exclude
without 排除嵌套的
dirA/dirB
tests/dirA
tests/dirB

不幸的是,在

"**/dirA": true
中使用
"**/dirB": true
files.exclude
之类的模式也会隐藏嵌套目录,因为 glob 模式适用于任何深度具有这些名称的所有目录。

有没有办法在 VS Code 的顶层严格指定排除,使用

files.exclude
或其他方法,以便仅隐藏顶层
dirA
dirB
,而不隐藏结构中更深层的同名对象?

电流限制

VS Code 的 glob 模式匹配

files.exclude
没有提供区分项目结构不同级别的目录的方法。这些模式全局应用,影响与该模式匹配的所有目录,无论其相对于工作空间根的深度如何。

尝试的解决方案

  • 特定的全局模式:使用更具体的路径(例如,

    "/project-root/dirA": true
    )无法达到预期的效果,因为模式是相对于工作空间根的,并且在
    files.exclude
    语法中不支持直接指定根。

  • 唯一命名:将顶级目录名称更改为唯一可能可行,但由于命名限制或项目标准并不总是可行。

  • 手动更新:对于更大或更动态的项目结构,动态更新

    files.exclude
    是不切实际的。

visual-studio-code glob exclude-constraint vscode-workspace
1个回答
0
投票

我认为你正在寻找的东西是不可能的(尽管我很乐意错)。您可以通过

./dir{A,B}/[!d]*
靠近。但它将无法排除
${workspaceFolder}/dir{A,B}
下以
d
开头的文件夹和文件。

有关文档,请参阅 https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-optionshttps://code.visualstudio.com/docs/editor/glob-patterns

© www.soinside.com 2019 - 2024. All rights reserved.