visual-studio-code - 你可以将多个 glob 字符串传递给 vscode findFiles api

标签 visual-studio-code vscode-extensions

我想在调用 api 时忽略工作区设置中排除的文件夹 findFiles ( https://code.visualstudio.com/Docs/extensionAPI/vscode-api#WorkspaceConfiguration ),但是我不知道该怎么做。我曾尝试寻找一种组合 glob 语句的方法,但我运气不佳。我找到了 GLOB_BRACE 示例,但我认为这在这种情况下不起作用。

(例如 glob("{foo/.cpp,bar/.cpp}", GLOB_BRACE))

有没有办法将多个目录传递给 findFiles 中的 glob 语句以忽略?

我理想地想做这样的事情......

let search_config = vscode.workspace.getConfiguration( "search" );
let search_exclude_settings = search_config.get( "exclude" );
let exclude_properties = "{";
for ( var exclude in search_exclude_settings ) {
    if( search_exclude_settings.hasOwnProperty( exclude ) ) {
        exclude_properties += exclude + ",";
    }
}
exclude_properties += filename_and_extension + "}";

var files = vscode.workspace.findFiles(filename_search, exclude_properties, 100);

但不幸的是,这不起作用。任何想法将不胜感激!如果我可能遗漏了一些非常明显的东西,我深表歉意。

感谢您的时间!

汤姆

最佳答案

好吧,事实证明我上面列出的代码示例确实有效,只是我没有意识到它面对手掌

我快速查看了 vscode 源代码,在 src/vs/base/commom/glob.ts 中有一些您可以使用的正则表达式示例以及它们是如何解析的。使用 '{' 然后使用 ',' 作为分隔符被正确处理。

关于visual-studio-code - 你可以将多个 glob 字符串传递给 vscode findFiles api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38063144/

相关文章:

visual-studio-code - 如何在我的 vscode 扩展中使用问题面板?

java - 使用 VS Code 编译 Java,收到 "restriction on required library"错误消息

visual-studio-code - VS 代码 : how to keep two projects open in tabs (instead of two windows)?

visual-studio-code - VSCode : activeTextEditor encoding

visual-studio-code - 以编程方式获取 VS Code 工作区中所有符号的列表以进行自定义扩展

visual-studio-code - 通过 Azure DevOps 发布 VS Code 扩展

visual-studio-code - 过滤 TreeView

visual-studio-code - 每次构建/运行时,VS Code 都会打开一个新的调试控制台

debugging - VSCode dotnet 3.0 附加调试器不工作

javascript - eslint 没有根据 .eslintrc 文件中的规则在 VSCode 中给出错误