当我调用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);
但不幸的是,这不起作用。任何想法将不胜感激!如果我可能遗漏了一些非常明显的东西,我会道歉。
感谢您的时间!
汤姆
答案 0 :(得分:1)
好的,事实证明我上面列出的代码示例确实有效,而我还没有意识到它面掌
我快速浏览了一下vscode源代码,在src / vs / base / commom / glob.ts中有一些你可以使用的正则表达式的例子以及它们如何被解析。使用' {'然后','因为分隔符处理正确。