List<Location> (@NotNull String protocol, @NotNull String path, @NotNull Project project, @NotNull GlobalSearchScope scope) { boolean isDumbMode = DumbService.isDumb(project); if (myPrimaryLocator != null && (!isDumbMode || DumbService.isDumbAware(myPrimaryLocator))) { List<Location> locations = myPrimaryLocator.getLocation(protocol, path, project); if (!locations.isEmpty()) { return locations; } } if (URLUtil.FILE_PROTOCOL.equals(protocol)) { List<Location> locations = FileUrlProvider.INSTANCE.getLocation(protocol, path, project, scope); if (!locations.isEmpty()) { return locations; } } for (TestLocationProvider provider : TestLocationProvider.EP_NAME.getExtensionList()) { if (!isDumbMode || DumbService.isDumbAware(provider)) { List<Location> locations = provider.getLocation(protocol, path, project); if (!locations.isEmpty()) { return locations; } } } return Collections.emptyList(); }