From 9057e84c6d88d93e621e69f7b86d80b23211c3a2 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Thu, 22 Jan 2015 16:32:29 +0300 Subject: [PATCH] Remove isKtFileInWrongFolder --- .../configuration/JetModuleTypeManager.java | 5 - .../kotlin/idea/util/ProjectRootsUtil.kt | 2 +- idea/src/META-INF/plugin.xml | 1 - .../kotlin/idea/JetModuleTypeManagerImpl.java | 42 ------- .../jetbrains/kotlin/idea/JetPluginUtil.java | 11 -- .../IncorrectSourceRootNameNotification.java | 108 ------------------ 6 files changed, 1 insertion(+), 168 deletions(-) delete mode 100644 idea/src/org/jetbrains/kotlin/idea/quickfix/IncorrectSourceRootNameNotification.java diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/configuration/JetModuleTypeManager.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/configuration/JetModuleTypeManager.java index f2d78f69ff9..6a392b2863b 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/configuration/JetModuleTypeManager.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/configuration/JetModuleTypeManager.java @@ -18,9 +18,6 @@ package org.jetbrains.kotlin.idea.configuration; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.module.Module; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; public abstract class JetModuleTypeManager { @@ -28,8 +25,6 @@ public abstract class JetModuleTypeManager { return ServiceManager.getService(JetModuleTypeManager.class); } - public abstract boolean isKtFileInGradleProjectInWrongFolder(@NotNull PsiElement element); - public abstract boolean isKtFileInGradleProjectInWrongFolder(@NotNull VirtualFile virtualFile, @NotNull Project project); public abstract boolean isAndroidGradleModule(@NotNull Module module); public boolean isGradleModule(@NotNull Module module) { return ModuleTypeCacheManager.OBJECT$.geInstance(module.getProject()).isGradleModule(module); diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt index 5ac0f8889ed..00fe4a92eab 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt @@ -34,7 +34,7 @@ public object ProjectRootsUtil { fileIndex: ProjectFileIndex = ProjectFileIndex.SERVICE.getInstance(project), isJsProject: Boolean? = null): Boolean { if (includeProjectSource && fileIndex.isInSourceContent(file)) { - return !JetModuleTypeManager.getInstance()!!.isKtFileInGradleProjectInWrongFolder(file, project) + return true } if (!includeLibraryClasses && !includeLibrarySource) return false diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index bc7f8b27da3..9882ef28fb1 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -423,7 +423,6 @@ - diff --git a/idea/src/org/jetbrains/kotlin/idea/JetModuleTypeManagerImpl.java b/idea/src/org/jetbrains/kotlin/idea/JetModuleTypeManagerImpl.java index c27b7f1f38d..bf0dbe5e6fe 100644 --- a/idea/src/org/jetbrains/kotlin/idea/JetModuleTypeManagerImpl.java +++ b/idea/src/org/jetbrains/kotlin/idea/JetModuleTypeManagerImpl.java @@ -18,53 +18,11 @@ package org.jetbrains.kotlin.idea; import com.intellij.facet.Facet; import com.intellij.facet.FacetManager; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; -import com.intellij.openapi.module.ModuleUtilCore; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.ProjectRootManager; -import com.intellij.openapi.util.Computable; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.idea.configuration.JetModuleTypeManager; public class JetModuleTypeManagerImpl extends JetModuleTypeManager { - @Override - public boolean isKtFileInGradleProjectInWrongFolder(@NotNull final PsiElement element) { - return ApplicationManager.getApplication().runReadAction(new Computable() { - @Override - public Boolean compute() { - PsiFile containingFile = element.getContainingFile(); - if (containingFile == null) { - return false; - } - VirtualFile virtualFile = containingFile.getVirtualFile(); - if (virtualFile == null) { - return false; - } - return isKtFileInGradleProjectInWrongFolder(virtualFile, element.getProject()); - } - }); - } - - @Override - public boolean isKtFileInGradleProjectInWrongFolder(@NotNull VirtualFile virtualFile, @NotNull Project project) { - Module module = ModuleUtilCore.findModuleForFile(virtualFile, project); - if (module == null) return false; - - if (!isAndroidGradleModule(module) && !isGradleModule(module)) { - return false; - } - - VirtualFile sourceRootForFile = ProjectRootManager.getInstance(project).getFileIndex().getSourceRootForFile(virtualFile); - if (sourceRootForFile != null) { - return !sourceRootForFile.getName().equals("kotlin"); - } - return false; - } - @Override public boolean isAndroidGradleModule(@NotNull Module module) { // We don't want to depend on the Android-Gradle plugin diff --git a/idea/src/org/jetbrains/kotlin/idea/JetPluginUtil.java b/idea/src/org/jetbrains/kotlin/idea/JetPluginUtil.java index 6bf7c46f40f..f2e8ddd1322 100644 --- a/idea/src/org/jetbrains/kotlin/idea/JetPluginUtil.java +++ b/idea/src/org/jetbrains/kotlin/idea/JetPluginUtil.java @@ -21,9 +21,6 @@ import com.intellij.ide.plugins.PluginManager; import com.intellij.ide.plugins.PluginManagerCore; import com.intellij.openapi.extensions.PluginId; import com.intellij.openapi.module.Module; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.idea.configuration.JetModuleTypeManager; @@ -38,14 +35,6 @@ public class JetPluginUtil { return plugin.getVersion(); } - public static boolean isKtFileInGradleProjectInWrongFolder(@NotNull PsiElement element) { - return JetModuleTypeManager.getInstance().isKtFileInGradleProjectInWrongFolder(element); - } - - public static boolean isKtFileInGradleProjectInWrongFolder(@NotNull VirtualFile virtualFile, @NotNull Project project) { - return JetModuleTypeManager.getInstance().isKtFileInGradleProjectInWrongFolder(virtualFile, project); - } - public static boolean isAndroidGradleModule(@NotNull Module module) { return JetModuleTypeManager.getInstance().isAndroidGradleModule(module); } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/IncorrectSourceRootNameNotification.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/IncorrectSourceRootNameNotification.java deleted file mode 100644 index 83a254730f7..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/IncorrectSourceRootNameNotification.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2010-2015 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 org.jetbrains.kotlin.idea.quickfix; - -import com.intellij.ide.actions.OpenFileAction; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.compiler.CompilerManager; -import com.intellij.openapi.fileEditor.FileEditor; -import com.intellij.openapi.module.Module; -import com.intellij.openapi.module.ModuleUtilCore; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.ProjectRootManager; -import com.intellij.openapi.util.Key; -import com.intellij.openapi.vfs.VfsUtil; -import com.intellij.openapi.vfs.VfsUtilCore; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.ui.EditorNotificationPanel; -import com.intellij.ui.EditorNotifications; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.idea.JetFileType; -import org.jetbrains.kotlin.idea.JetPluginUtil; - -import java.io.IOException; - -public class IncorrectSourceRootNameNotification extends EditorNotifications.Provider { - private static final Key KEY = Key.create("move.kotlin.file.under.kotlin.source.root"); - - private final Project project; - - public IncorrectSourceRootNameNotification(Project project) { - this.project = project; - } - - @Override - @Nullable - public EditorNotificationPanel createNotificationPanel(@NotNull final VirtualFile file, @NotNull FileEditor fileEditor) { - if (file.getFileType() != JetFileType.INSTANCE) return null; - if (CompilerManager.getInstance(project).isExcludedFromCompilation(file)) return null; - - if (!JetPluginUtil.isKtFileInGradleProjectInWrongFolder(file, project)) { - return null; - } - - Module module = ModuleUtilCore.findModuleForFile(file, project); - if (module == null) return null; - - EditorNotificationPanel panel = new EditorNotificationPanel(); - panel.setText("Kotlin file in Gradle Project should be under source root with name 'kotlin'"); - - ModuleRootManager moduleManager = ModuleRootManager.getInstance(module); - boolean isInTestSourceRoot = moduleManager.getFileIndex().isInTestSourceContent(file); - - for (final VirtualFile root : moduleManager.getSourceRoots(isInTestSourceRoot)) { - if (root.getName().equals("kotlin") && moduleManager.getFileIndex().isInTestSourceContent(root) == isInTestSourceRoot) { - VirtualFile sourceRootForFile = ProjectRootManager.getInstance(project).getFileIndex().getSourceRootForFile(file); - assert sourceRootForFile != null : "Notification Panel should appear only for files under source root " + - file.getCanonicalPath(); - final String relativePath = VfsUtilCore.getRelativePath(file, sourceRootForFile, '/'); - if (relativePath != null) { - VirtualFile inKotlinDir = VfsUtil.findRelativeFile(root, relativePath.split("/")); - if (inKotlinDir == null) { - panel.createActionLabel("Move file", new Runnable() { - @Override - public void run() { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - try { - VirtualFile newFile = VfsUtil. - copyFileRelative(IncorrectSourceRootNameNotification.class, file, root, relativePath); - file.delete(IncorrectSourceRootNameNotification.class); - OpenFileAction.openFile(newFile, project); - } - catch (IOException ignored) { - } - } - }); - } - }); - break; - } - } - } - } - return panel; - } - - @Override - public Key getKey() { - return KEY; - } -}