From a29773597efde6336f6d69c806947514a0b28c94 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 7 Oct 2014 23:36:29 +0400 Subject: [PATCH] Convert to Kotlin --- .../jet/plugin/util/ProjectRootsUtil.java | 54 ------------------ .../jet/plugin/util/ProjectRootsUtil.kt | 56 +++++++++++++++++++ 2 files changed, 56 insertions(+), 54 deletions(-) delete mode 100644 idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.java create mode 100644 idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.kt diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.java b/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.java deleted file mode 100644 index d761b6f14d0..00000000000 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2010-2014 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.jet.plugin.util; - -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.roots.ProjectFileIndex; -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.jet.plugin.configuration.JetModuleTypeManager; - -public class ProjectRootsUtil { - private static boolean isInSource(@NotNull PsiElement element) { - return isInSource(element, true); - } - - public static boolean isInSource(@NotNull final PsiElement element, final boolean includeLibrarySources) { - 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; - } - ProjectFileIndex index = ProjectFileIndex.SERVICE.getInstance(element.getProject()); - return includeLibrarySources ? index.isInSource(virtualFile) : index.isInSourceContent(virtualFile); - } - }); - } - - public static boolean isInSourceWithGradleCheck(@NotNull PsiElement element) { - return isInSource(element) && !JetModuleTypeManager.getInstance().isKtFileInGradleProjectInWrongFolder(element); - } -} diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.kt new file mode 100644 index 00000000000..016c9a67172 --- /dev/null +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.kt @@ -0,0 +1,56 @@ +/* + * Copyright 2010-2014 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.jet.plugin.util + +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.roots.ProjectFileIndex +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.jet.plugin.configuration.JetModuleTypeManager +import kotlin.platform.platformStatic +import org.jetbrains.jet.plugin.util.application.runReadAction + +public object ProjectRootsUtil { + platformStatic + private fun isInSource(element: PsiElement): Boolean { + return isInSource(element, true) + } + + platformStatic + public fun isInSource(element: PsiElement, includeLibrarySources: Boolean): Boolean { + return runReadAction { (): Boolean -> + val containingFile = element.getContainingFile() + if (containingFile == null) return@runReadAction false + + val virtualFile = containingFile.getVirtualFile() + if (virtualFile == null) return@runReadAction false + + val index = ProjectFileIndex.SERVICE.getInstance(element.getProject()) + return@runReadAction if (includeLibrarySources) + index.isInSource(virtualFile) + else + index.isInSourceContent(virtualFile) + }!! + } + + platformStatic + public fun isInSourceWithGradleCheck(element: PsiElement): Boolean { + return isInSource(element) && !JetModuleTypeManager.getInstance()!!.isKtFileInGradleProjectInWrongFolder(element) + } +}