KT-4211 Can't see kotlin annotation icon for Java-declaration with source
#KT-4211 Fixed
This commit is contained in:
+3
-3
@@ -89,12 +89,12 @@ public class KotlinSignatureInJavaMarkerProvider implements LineMarkerProvider {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Module module = ModuleUtilCore.findModuleForPsiElement(elements.get(0));
|
if (!ProjectStructureUtil.hasJvmKotlinModules(project)) {
|
||||||
if (module == null) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ProjectStructureUtil.isUsedInKotlinJavaModule(module)) {
|
Module module = ModuleUtilCore.findModuleForPsiElement(elements.get(0));
|
||||||
|
if (module != null && !ProjectStructureUtil.isUsedInKotlinJavaModule(module)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
public class ProjectStructureUtil {
|
public class ProjectStructureUtil {
|
||||||
private static final Key<CachedValue<Boolean>> IS_KOTLIN_JS_MODULE = Key.create("IS_KOTLIN_JS_MODULE");
|
private static final Key<CachedValue<Boolean>> IS_KOTLIN_JS_MODULE = Key.create("IS_KOTLIN_JS_MODULE");
|
||||||
|
private static final Key<CachedValue<Boolean>> HAS_KOTLIN_JVM_MODULES = Key.create("HAS_KOTLIN_JVM_MODULES");
|
||||||
private static final Key<CachedValue<Boolean>> IS_DEPEND_ON_JVM_KOTLIN = Key.create("KOTLIN_IS_DEPEND_ON_JVM_KOTLIN");
|
private static final Key<CachedValue<Boolean>> IS_DEPEND_ON_JVM_KOTLIN = Key.create("KOTLIN_IS_DEPEND_ON_JVM_KOTLIN");
|
||||||
|
|
||||||
private ProjectStructureUtil() {
|
private ProjectStructureUtil() {
|
||||||
@@ -86,6 +87,31 @@ public class ProjectStructureUtil {
|
|||||||
return result.getValue();
|
return result.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean hasJvmKotlinModules(@NotNull final Project project) {
|
||||||
|
CachedValue<Boolean> result = project.getUserData(HAS_KOTLIN_JVM_MODULES);
|
||||||
|
if (result == null) {
|
||||||
|
result = CachedValuesManager.getManager(project).createCachedValue(new CachedValueProvider<Boolean>() {
|
||||||
|
@Override
|
||||||
|
public Result<Boolean> compute() {
|
||||||
|
boolean hasJvmKotlinModules = false;
|
||||||
|
|
||||||
|
for (Module module : ModuleManager.getInstance(project).getModules()) {
|
||||||
|
if (isJavaKotlinModule(module)) {
|
||||||
|
hasJvmKotlinModules = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result.create(hasJvmKotlinModules, ProjectRootModificationTracker.getInstance(project));
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
project.putUserData(HAS_KOTLIN_JVM_MODULES, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isUsedInKotlinJavaModule(@NotNull final Module module) {
|
public static boolean isUsedInKotlinJavaModule(@NotNull final Module module) {
|
||||||
CachedValue<Boolean> result = module.getUserData(IS_DEPEND_ON_JVM_KOTLIN);
|
CachedValue<Boolean> result = module.getUserData(IS_DEPEND_ON_JVM_KOTLIN);
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user