mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
refactor supported root type checking according to CR-IC-3056
This commit is contained in:
@@ -26,6 +26,7 @@ import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -115,4 +116,8 @@ public abstract class ModuleType<T extends ModuleBuilder> {
|
||||
public FrameworkRole getDefaultAcceptableRole() {
|
||||
return myFrameworkRole;
|
||||
}
|
||||
|
||||
public boolean isSupportedRootType(JpsModuleSourceRootType type) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.intellij.psi.util.ParameterizedCachedValueProvider;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -86,4 +87,14 @@ public class ModuleUtil extends ModuleUtilCore {
|
||||
public static boolean hasModulesOfType(@NotNull Project project, @NotNull ModuleType<?> module) {
|
||||
return !getModulesOfType(project, module).isEmpty();
|
||||
}
|
||||
|
||||
public static boolean isSupportedRootType(Project project, JpsModuleSourceRootType sourceRootType) {
|
||||
Module[] modules = ModuleManager.getInstance(project).getModules();
|
||||
for (Module module : modules) {
|
||||
if (ModuleType.get(module).isSupportedRootType(sourceRootType)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return modules.length == 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,10 +20,10 @@ import com.intellij.find.FindSettings;
|
||||
import com.intellij.ide.util.scopeChooser.ScopeChooserCombo;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.module.ModuleUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.roots.SupportedRootTypes;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
@@ -112,7 +112,7 @@ public class BaseAnalysisActionDialog extends DialogWrapper {
|
||||
|
||||
//include test option
|
||||
myInspectTestSource.setSelected(myAnalysisOptions.ANALYZE_TEST_SOURCES);
|
||||
myInspectTestSource.setVisible(SupportedRootTypes.isSupported(JavaSourceRootType.TEST_SOURCE));
|
||||
myInspectTestSource.setVisible(ModuleUtil.isSupportedRootType(myProject, JavaSourceRootType.TEST_SOURCE));
|
||||
|
||||
//module scope if applicable
|
||||
myModuleButton.setText(AnalysisScopeBundle.message("scope.option.module.with.mnemonic", myModuleName));
|
||||
|
||||
@@ -27,9 +27,9 @@ import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtil;
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.SupportedRootTypes;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.packageDependencies.ChangeListsScopesProvider;
|
||||
@@ -239,7 +239,7 @@ public class ScopeChooserCombo extends ComboboxWithBrowseButton implements Dispo
|
||||
result.add(GlobalSearchScope.allScope(project));
|
||||
}
|
||||
|
||||
if (!PlatformUtils.isCidr() && SupportedRootTypes.isSupported(JavaSourceRootType.TEST_SOURCE)) { // TODO: fix these scopes in AppCode
|
||||
if (!PlatformUtils.isCidr() && ModuleUtil.isSupportedRootType(project, JavaSourceRootType.TEST_SOURCE)) { // TODO: fix these scopes in AppCode
|
||||
result.add(GlobalSearchScopes.projectProductionScope(project));
|
||||
result.add(GlobalSearchScopes.projectTestScope(project));
|
||||
}
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.openapi.roots;
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public abstract class SupportedRootTypes {
|
||||
public abstract boolean isSupportedRootType(JpsModuleSourceRootType sourceRootType);
|
||||
|
||||
public static boolean isSupported(JpsModuleSourceRootType sourceRootType) {
|
||||
SupportedRootTypes service = ServiceManager.getService(SupportedRootTypes.class);
|
||||
if (service != null) {
|
||||
return service.isSupportedRootType(sourceRootType);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,8 @@ package com.jetbrains.python;
|
||||
import com.intellij.ide.util.projectWizard.EmptyModuleBuilder;
|
||||
import com.intellij.openapi.module.ModuleType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
@@ -33,4 +35,9 @@ public class PlatformPythonModuleType extends PythonModuleTypeBase<EmptyModuleBu
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSupportedRootType(JpsModuleSourceRootType type) {
|
||||
return type == JavaSourceRootType.SOURCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.jetbrains.python;
|
||||
|
||||
import com.intellij.openapi.roots.SupportedRootTypes;
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public class PySupportedRootTypes extends SupportedRootTypes {
|
||||
@Override
|
||||
public boolean isSupportedRootType(JpsModuleSourceRootType sourceRootType) {
|
||||
return sourceRootType == JavaSourceRootType.SOURCE;
|
||||
}
|
||||
}
|
||||
@@ -75,9 +75,6 @@
|
||||
|
||||
<renameHandler implementation="com.intellij.platform.renameProject.RenameProjectHandler"/>
|
||||
<renameHandler implementation="com.intellij.platform.renameProject.ProjectFolderRenameHandler"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.openapi.roots.SupportedRootTypes"
|
||||
serviceImplementation="com.jetbrains.python.PySupportedRootTypes"/>
|
||||
</extensions>
|
||||
|
||||
<actions>
|
||||
|
||||
Reference in New Issue
Block a user