boolean (Descriptor descriptor, @NonNls String filter, final boolean forceInclude, final List<? extends Set<String>> keySetList, final Set<String> quoted) { filter = StringUtil.toLowerCase(filter); if (StringUtil.containsIgnoreCase(descriptor.getText(), filter)) { return true; } final String[] groupPath = descriptor.getGroup(); for (String group : groupPath) { if (StringUtil.containsIgnoreCase(group, filter)) { return true; } } for (String stripped : quoted) { if (StringUtil.containsIgnoreCase(descriptor.getText(),stripped)) { return true; } for (String group : groupPath) { if (StringUtil.containsIgnoreCase(group,stripped)) { return true; } } final String description = descriptor.getToolWrapper().loadDescription(); if (description != null && StringUtil.containsIgnoreCase(StringUtil.toLowerCase(description), stripped)) { if (!forceInclude) return true; } else if (forceInclude) return false; } for (Set<String> keySet : keySetList) { if (keySet.contains(descriptor.getKey().toString())) { if (!forceInclude) { return true; } } else { if (forceInclude) { return false; } } } return forceInclude; }