Refactoring: introduce isInSourceWithGradleCheck() method

This commit is contained in:
Nikolay Krasko
2014-09-02 13:55:07 +04:00
parent 053201f30f
commit 10886a8ce3
9 changed files with 15 additions and 30 deletions
@@ -21,9 +21,11 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetCodeFragment;
import org.jetbrains.jet.plugin.configuration.JetModuleTypeManager;
public class ProjectRootsUtil { public class ProjectRootsUtil {
public static boolean isInSource(@NotNull PsiElement element) { private static boolean isInSource(@NotNull PsiElement element) {
return isInSource(element, true); return isInSource(element, true);
} }
@@ -39,4 +41,8 @@ public class ProjectRootsUtil {
ProjectFileIndex index = ProjectFileIndex.SERVICE.getInstance(element.getProject()); ProjectFileIndex index = ProjectFileIndex.SERVICE.getInstance(element.getProject());
return includeLibrarySources ? index.isInSource(virtualFile) : index.isInSourceContent(virtualFile); return includeLibrarySources ? index.isInSource(virtualFile) : index.isInSourceContent(virtualFile);
} }
public static boolean isInSourceWithGradleCheck(@NotNull PsiElement element) {
return isInSource(element) && !JetModuleTypeManager.getInstance().isKtFileInGradleProjectInWrongFolder(element);
}
} }
@@ -29,7 +29,6 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.plugin.ProjectRootsUtil; import org.jetbrains.jet.plugin.ProjectRootsUtil;
import org.jetbrains.jet.plugin.actions.internal.KotlinInternalMode; import org.jetbrains.jet.plugin.actions.internal.KotlinInternalMode;
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
import org.jetbrains.jet.plugin.configuration.JetModuleTypeManager;
/** /**
* Quick showing possible problems with Kotlin internals in IDEA with tooltips * Quick showing possible problems with Kotlin internals in IDEA with tooltips
@@ -42,9 +41,7 @@ public class DebugInfoAnnotator implements Annotator {
@Override @Override
public void annotate(@NotNull PsiElement element, @NotNull final AnnotationHolder holder) { public void annotate(@NotNull PsiElement element, @NotNull final AnnotationHolder holder) {
if (!isDebugInfoEnabled() || if (!isDebugInfoEnabled() || !ProjectRootsUtil.isInSourceWithGradleCheck(element)) {
!ProjectRootsUtil.isInSource(element) ||
JetModuleTypeManager.getInstance().isKtFileInGradleProjectInWrongFolder(element)) {
return; return;
} }
@@ -48,7 +48,6 @@ import org.jetbrains.jet.lang.resolve.Diagnostics;
import org.jetbrains.jet.plugin.ProjectRootsUtil; import org.jetbrains.jet.plugin.ProjectRootsUtil;
import org.jetbrains.jet.plugin.actions.internal.KotlinInternalMode; import org.jetbrains.jet.plugin.actions.internal.KotlinInternalMode;
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
import org.jetbrains.jet.plugin.configuration.JetModuleTypeManager;
import org.jetbrains.jet.plugin.quickfix.JetIntentionActionsFactory; import org.jetbrains.jet.plugin.quickfix.JetIntentionActionsFactory;
import org.jetbrains.jet.plugin.quickfix.QuickFixes; import org.jetbrains.jet.plugin.quickfix.QuickFixes;
@@ -94,10 +93,7 @@ public class JetPsiChecker implements Annotator, HighlightRangeExtension {
@Override @Override
public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) { public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) {
if (!(ProjectRootsUtil.isInSource(element) || element.getContainingFile() instanceof JetCodeFragment) if (!(ProjectRootsUtil.isInSourceWithGradleCheck(element) || element.getContainingFile() instanceof JetCodeFragment)) return;
|| JetModuleTypeManager.getInstance().isKtFileInGradleProjectInWrongFolder(element)) {
return;
}
for (HighlightingVisitor visitor : getBeforeAnalysisVisitors(holder)) { for (HighlightingVisitor visitor : getBeforeAnalysisVisitors(holder)) {
element.accept(visitor); element.accept(visitor);
@@ -30,7 +30,6 @@ import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetNamedFunction; import org.jetbrains.jet.lang.psi.JetNamedFunction;
import org.jetbrains.jet.lang.psi.JetProperty; import org.jetbrains.jet.lang.psi.JetProperty;
import org.jetbrains.jet.lang.psi.psiUtil.PsiUtilPackage; import org.jetbrains.jet.lang.psi.psiUtil.PsiUtilPackage;
import org.jetbrains.jet.plugin.JetPluginUtil;
import org.jetbrains.jet.plugin.ProjectRootsUtil; import org.jetbrains.jet.plugin.ProjectRootsUtil;
public class HierarchyUtils { public class HierarchyUtils {
@@ -61,8 +60,7 @@ public class HierarchyUtils {
PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
if (file == null) return null; if (file == null) return null;
if (!ProjectRootsUtil.isInSource(file)) return null; if (!ProjectRootsUtil.isInSourceWithGradleCheck(file)) return null;
if (JetPluginUtil.isKtFileInGradleProjectInWrongFolder(file)) return null;
return TargetElementUtilBase.findTargetElement(editor, TargetElementUtilBase.getInstance().getAllAccepted()); return TargetElementUtilBase.findTargetElement(editor, TargetElementUtilBase.getInstance().getAllAccepted());
} }
@@ -35,7 +35,6 @@ import org.jetbrains.jet.lang.psi.JetClassOrObject;
import org.jetbrains.jet.lang.psi.JetNamedFunction; import org.jetbrains.jet.lang.psi.JetNamedFunction;
import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.plugin.JetPluginUtil;
import org.jetbrains.jet.plugin.ProjectRootsUtil; import org.jetbrains.jet.plugin.ProjectRootsUtil;
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
import org.jetbrains.jet.plugin.libraries.JetSourceNavigationHelper; import org.jetbrains.jet.plugin.libraries.JetSourceNavigationHelper;
@@ -55,8 +54,7 @@ public class KotlinTypeHierarchyProvider extends JavaTypeHierarchyProvider {
PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
if (file == null) return null; if (file == null) return null;
if (!ProjectRootsUtil.isInSource(file)) return null; if (!ProjectRootsUtil.isInSourceWithGradleCheck(file)) return null;
if (JetPluginUtil.isKtFileInGradleProjectInWrongFolder(file)) return null;
PsiElement target = TargetElementUtilBase.findTargetElement(editor, TargetElementUtilBase.getInstance().getAllAccepted()); PsiElement target = TargetElementUtilBase.findTargetElement(editor, TargetElementUtilBase.getInstance().getAllAccepted());
@@ -28,7 +28,6 @@ import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.plugin.JetPluginUtil;
import org.jetbrains.jet.plugin.ProjectRootsUtil; import org.jetbrains.jet.plugin.ProjectRootsUtil;
import org.jetbrains.jet.plugin.hierarchy.HierarchyUtils; import org.jetbrains.jet.plugin.hierarchy.HierarchyUtils;
@@ -47,8 +46,7 @@ public class KotlinCallHierarchyProvider implements HierarchyProvider {
PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
if (file == null) return null; if (file == null) return null;
if (!ProjectRootsUtil.isInSource(file)) return null; if (!ProjectRootsUtil.isInSourceWithGradleCheck(file)) return null;
if (JetPluginUtil.isKtFileInGradleProjectInWrongFolder(file)) return null;
return TargetElementUtilBase.findTargetElement(editor, TargetElementUtilBase.getInstance().getAllAccepted()); return TargetElementUtilBase.findTargetElement(editor, TargetElementUtilBase.getInstance().getAllAccepted());
} }
@@ -45,7 +45,6 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.plugin.JetLanguage; import org.jetbrains.jet.plugin.JetLanguage;
import org.jetbrains.jet.plugin.ProjectRootsUtil; import org.jetbrains.jet.plugin.ProjectRootsUtil;
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
import org.jetbrains.jet.plugin.configuration.JetModuleTypeManager;
import org.jetbrains.jet.plugin.util.LongRunningReadTask; import org.jetbrains.jet.plugin.util.LongRunningReadTask;
import org.jetbrains.jet.renderer.DescriptorRenderer; import org.jetbrains.jet.renderer.DescriptorRenderer;
@@ -89,9 +88,7 @@ public class DeclarationHintSupport extends AbstractProjectComponent {
Editor editor = e.getEditor(); Editor editor = e.getEditor();
PsiFile psiFile = PsiDocumentManager.getInstance(myProject).getPsiFile(editor.getDocument()); PsiFile psiFile = PsiDocumentManager.getInstance(myProject).getPsiFile(editor.getDocument());
if (psiFile == null || psiFile.getLanguage() != JetLanguage.INSTANCE || if (psiFile == null || psiFile.getLanguage() != JetLanguage.INSTANCE || !ProjectRootsUtil.isInSourceWithGradleCheck(psiFile)) {
!ProjectRootsUtil.isInSource(psiFile) ||
JetModuleTypeManager.getInstance().isKtFileInGradleProjectInWrongFolder(psiFile)) {
return; return;
} }
@@ -64,7 +64,6 @@ import org.jetbrains.jet.plugin.JetBundle;
import org.jetbrains.jet.plugin.ProjectRootsUtil; import org.jetbrains.jet.plugin.ProjectRootsUtil;
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
import org.jetbrains.jet.plugin.codeInsight.JetFunctionPsiElementCellRenderer; import org.jetbrains.jet.plugin.codeInsight.JetFunctionPsiElementCellRenderer;
import org.jetbrains.jet.plugin.configuration.JetModuleTypeManager;
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
import org.jetbrains.jet.plugin.search.ideaExtensions.KotlinDefinitionsSearcher; import org.jetbrains.jet.plugin.search.ideaExtensions.KotlinDefinitionsSearcher;
import org.jetbrains.jet.renderer.DescriptorRenderer; import org.jetbrains.jet.renderer.DescriptorRenderer;
@@ -370,8 +369,7 @@ public class JetLineMarkerProvider implements LineMarkerProvider {
public void collectSlowLineMarkers(@NotNull List<PsiElement> elements, @NotNull Collection<LineMarkerInfo> result) { public void collectSlowLineMarkers(@NotNull List<PsiElement> elements, @NotNull Collection<LineMarkerInfo> result) {
if (elements.isEmpty() || if (elements.isEmpty() ||
DumbService.getInstance(elements.get(0).getProject()).isDumb() || DumbService.getInstance(elements.get(0).getProject()).isDumb() ||
!ProjectRootsUtil.isInSource(elements.get(0)) || !ProjectRootsUtil.isInSourceWithGradleCheck(elements.get(0))) {
JetModuleTypeManager.getInstance().isKtFileInGradleProjectInWrongFolder(elements.get(0))) {
return; return;
} }
@@ -30,7 +30,6 @@ import org.jetbrains.jet.asJava.LightClassUtil;
import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.java.jetAsJava.KotlinLightMethod; import org.jetbrains.jet.lang.resolve.java.jetAsJava.KotlinLightMethod;
import org.jetbrains.jet.plugin.ProjectRootsUtil; import org.jetbrains.jet.plugin.ProjectRootsUtil;
import org.jetbrains.jet.plugin.configuration.JetModuleTypeManager;
import org.jetbrains.jet.plugin.search.usagesSearch.*; import org.jetbrains.jet.plugin.search.usagesSearch.*;
public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters> { public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters> {
@@ -59,9 +58,7 @@ public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, Re
PsiElement element = queryParameters.getElementToSearch(); PsiElement element = queryParameters.getElementToSearch();
final PsiNamedElement unwrappedElement = AsJavaPackage.getNamedUnwrappedElement(element); final PsiNamedElement unwrappedElement = AsJavaPackage.getNamedUnwrappedElement(element);
if (unwrappedElement == null if (unwrappedElement == null || !ProjectRootsUtil.isInSourceWithGradleCheck(unwrappedElement)) return;
|| !ProjectRootsUtil.isInSource(unwrappedElement)
|| JetModuleTypeManager.getInstance().isKtFileInGradleProjectInWrongFolder(unwrappedElement)) return;
ApplicationManager.getApplication().runReadAction( ApplicationManager.getApplication().runReadAction(
new Runnable() { new Runnable() {