5

findFiles当我调用 api ( 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);

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

感谢您的时间!

汤姆

4

1 回答 1

4

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

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

于 2016-06-29T23:21:55.287 回答