private static @Nullable String computeModuleSourcePath(@NotNull Map<Module, VirtualFile> moduleDescriptors) {
      if (moduleDescriptors.isEmpty()) return null;
      Set<String> moduleSourcePathParts = new SmartHashSet<>();
      for (var entry : moduleDescriptors.entrySet()) {
        String descriptorParentPath = PathUtil.getParentPath(entry.getValue().getPath());
        VirtualFile modulePath = ContainerUtil.find(ModuleRootManager.getInstance(entry.getKey()).getContentRoots(),
                                                    f -> descriptorParentPath.contains(f.getName()));
        if (modulePath == null) return null;
        String moduleSourcePathPart = descriptorParentPath.replace(modulePath.getName(), "*");
        moduleSourcePathParts.add(moduleSourcePathPart);
      }
      return String.join(File.pathSeparator, moduleSourcePathParts);
    }
private static @Nullable String computeModuleSourcePath(@NotNull Map<Module, VirtualFile> moduleDescriptors)