private static @Nullable ConfigurableHit findGroupsByPath(@NotNull List<? extends ConfigurableGroup> groups, @NotNull String path) {
    List<String> split = parseSettingsPath(path);
    if (split == null || split.isEmpty()) return null;

    ConfigurableGroup root = ContainerUtil.getOnlyItem(groups);
    List<Configurable> topLevel;
    if (root instanceof SearchableConfigurable &&
        ((SearchableConfigurable)root).getId().equals(ConfigurableExtensionPointUtil.ROOT_CONFIGURABLE_ID)) {
      topLevel = Arrays.asList(root.getConfigurables());
    }
    else {
      topLevel = ContainerUtil.filterIsInstance(groups, Configurable.class);
    }

    List<Configurable> current = topLevel;
    Configurable lastMatched = null;
    int lastMatchedIndex = -1;

    for (int i = 0; i < split.size(); i++) {
      String option = split.get(i);
      Configurable matched = ContainerUtil.find(current, group -> StringUtil.equalsIgnoreCase(group.getDisplayName(), option));
      if (matched == null) break;

      lastMatched = matched;
      lastMatchedIndex = i;

      if (matched instanceof Configurable.Composite) {
        current = Arrays.asList(((Configurable.Composite)matched).getConfigurables());
      }
      else {
        break;
      }
    }
    if (lastMatched == null) return null;

    String spotlightFilter = lastMatchedIndex + 1 < split.size()
                             ? StringUtil.join(split.subList(lastMatchedIndex + 1, split.size()), " ")
                             : "";

    Set<Configurable> hits = Collections.singleton(lastMatched);
    return new ConfigurableHit(hits, hits, hits, spotlightFilter);
  }
private static @Nullable ConfigurableHit findGroupsByPath(@NotNull List<? extends ConfigurableGroup> groups, @NotNull String path)