我想在调用 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/