List<Set<String>> (String filter, Set<? super String> quoted) { filter = processFilter(Strings.toLowerCase(filter), quoted); List<Set<String>> keySetList = new ArrayList<>(); SearchableOptionsRegistrarImpl optionsRegistrar = (SearchableOptionsRegistrarImpl)SearchableOptionsRegistrar.getInstance(); for (String word : optionsRegistrar.getProcessedWords(filter)) { final Set<OptionDescription> descriptions = optionsRegistrar.getAcceptableDescriptions(word); Set<String> keySet = new HashSet<>(); if (descriptions != null) { for (OptionDescription description : descriptions) { keySet.add(description.getPath()); } } keySetList.add(keySet); } if (keySetList.isEmpty() && !Strings.isEmptyOrSpaces(filter)) { keySetList.add(Collections.singleton(filter)); } return keySetList; }