mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[gradle] use existing ExternalProject model cache IDEA-197590
GitOrigin-RevId: cf578092eed955cc6bf38593934ff8a25622cd12
This commit is contained in:
committed by
intellij-monorepo-bot
parent
1bacac04bf
commit
7b4a2b6e04
@@ -8,11 +8,13 @@ import com.intellij.model.presentation.SymbolPresentation
|
||||
import com.intellij.navigation.NavigatableSymbol
|
||||
import com.intellij.navigation.NavigationTarget
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vfs.LocalFileSystem
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.util.PsiUtil
|
||||
import com.intellij.psi.PsiManager
|
||||
import icons.GradleIcons
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
import org.jetbrains.plugins.gradle.settings.GradleExtensionsSettings
|
||||
import org.jetbrains.plugins.gradle.model.ExternalProject
|
||||
import org.jetbrains.plugins.gradle.service.project.data.ExternalProjectDataCache
|
||||
import org.jetbrains.plugins.gradle.util.GradleBundle
|
||||
|
||||
@Internal
|
||||
@@ -46,10 +48,20 @@ class GradleProjectSymbol(private val myQualifiedName: List<String>, private val
|
||||
}
|
||||
|
||||
private fun findBuildFile(project: Project): PsiElement? {
|
||||
val extensionsData = GradleExtensionsSettings.getInstance(project).getExtensionsFor(myRootProjectPath, qualifiedName)
|
||||
?: return null
|
||||
val buildScript = extensionsData.buildScriptFile ?: return null
|
||||
return PsiUtil.findFileSystemItem(project, buildScript)
|
||||
val rootProject = ExternalProjectDataCache.getInstance(project)
|
||||
.getRootExternalProject(myRootProjectPath)
|
||||
?: return null
|
||||
|
||||
val externalProject = myQualifiedName
|
||||
.drop(1)
|
||||
.fold(rootProject as ExternalProject?) {
|
||||
extProject, name -> extProject?.childProjects?.get(name)
|
||||
} ?: return null
|
||||
|
||||
val buildFile = externalProject.buildFile ?: return null
|
||||
val virtualFile = LocalFileSystem.getInstance().findFileByIoFile(buildFile) ?: return null
|
||||
|
||||
return PsiManager.getInstance(project).findFile(virtualFile)
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
|
||||
@@ -14,8 +14,6 @@ import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.CommonClassNames;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
@@ -33,7 +31,6 @@ import org.jetbrains.plugins.gradle.service.project.data.GradleExtensionsDataSer
|
||||
import org.jetbrains.plugins.gradle.service.resolve.GradleCommonClassNames;
|
||||
import org.jetbrains.plugins.gradle.util.GradleConstants;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@@ -104,10 +101,6 @@ public class GradleExtensionsSettings {
|
||||
GradleExtensionsData extensionsData = new GradleExtensionsData();
|
||||
GradleExtensions gradleExtensions = entry.getValue();
|
||||
extensionsData.parent = gradleExtensions.getParentProjectPath();
|
||||
File scriptFile = gradleExtensions.getBuildScriptFile();
|
||||
if (scriptFile != null) {
|
||||
extensionsData.buildScriptFile = VfsUtil.findFileByIoFile(scriptFile, true);
|
||||
}
|
||||
|
||||
for (org.jetbrains.plugins.gradle.model.GradleExtension extension : gradleExtensions.getExtensions()) {
|
||||
GradleExtension gradleExtension = new GradleExtension();
|
||||
@@ -236,8 +229,6 @@ public class GradleExtensionsSettings {
|
||||
public final Map<String, GradleConfiguration> configurations = new HashMap<>();
|
||||
@NotNull
|
||||
public final Map<String, GradleConfiguration> buildScriptConfigurations = new HashMap<>();
|
||||
@Nullable
|
||||
public VirtualFile buildScriptFile;
|
||||
|
||||
@Nullable
|
||||
public GradleExtensionsData getParent() {
|
||||
|
||||
-3
@@ -4,7 +4,6 @@ package org.jetbrains.plugins.gradle.model;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@@ -29,6 +28,4 @@ public interface GradleExtensions extends Serializable {
|
||||
|
||||
@NotNull
|
||||
List<? extends GradleConfiguration> getConfigurations();
|
||||
|
||||
@Nullable File getBuildScriptFile();
|
||||
}
|
||||
|
||||
-19
@@ -4,7 +4,6 @@ package org.jetbrains.plugins.gradle.model;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -22,7 +21,6 @@ public class DefaultGradleExtensions implements GradleExtensions {
|
||||
private final ArrayList<DefaultExternalTask> tasks;
|
||||
private final List<DefaultGradleConfiguration> configurations;
|
||||
private String parentProjectPath;
|
||||
private File buildScriptFile;
|
||||
|
||||
public DefaultGradleExtensions() {
|
||||
extensions = new ArrayList<DefaultGradleExtension>(0);
|
||||
@@ -34,7 +32,6 @@ public class DefaultGradleExtensions implements GradleExtensions {
|
||||
|
||||
public DefaultGradleExtensions(@NotNull GradleExtensions extensions) {
|
||||
parentProjectPath = extensions.getParentProjectPath();
|
||||
buildScriptFile = extensions.getBuildScriptFile();
|
||||
|
||||
this.extensions = new ArrayList<DefaultGradleExtension>(extensions.getExtensions().size());
|
||||
for (GradleExtension extension : extensions.getExtensions()) {
|
||||
@@ -114,16 +111,6 @@ public class DefaultGradleExtensions implements GradleExtensions {
|
||||
return configurations == null ? Collections.<DefaultGradleConfiguration>emptyList() : configurations;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public File getBuildScriptFile() {
|
||||
return buildScriptFile;
|
||||
}
|
||||
|
||||
public void setBuildScriptFile(File buildScript) {
|
||||
buildScriptFile = buildScript;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
@@ -138,11 +125,6 @@ public class DefaultGradleExtensions implements GradleExtensions {
|
||||
if (configurations != null ? !configurations.equals(that.configurations) : that.configurations != null) return false;
|
||||
if (parentProjectPath != null ? !parentProjectPath.equals(that.parentProjectPath) : that.parentProjectPath != null) return false;
|
||||
|
||||
final String buildScriptPath = buildScriptFile != null ? buildScriptFile.getAbsolutePath() : null;
|
||||
final String otherScriptPath = that.buildScriptFile != null ? that.buildScriptFile.getAbsolutePath() : null;
|
||||
|
||||
if (buildScriptPath != null ? buildScriptPath.equals(otherScriptPath) : otherScriptPath != null) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -154,7 +136,6 @@ public class DefaultGradleExtensions implements GradleExtensions {
|
||||
result = 31 * result + (tasks != null ? tasks.hashCode() : 0);
|
||||
result = 31 * result + (configurations != null ? configurations.hashCode() : 0);
|
||||
result = 31 * result + (parentProjectPath != null ? parentProjectPath.hashCode() : 0);
|
||||
result = 31 * result + (buildScriptFile != null ? buildScriptFile.hashCode() : 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
-4
@@ -29,10 +29,6 @@ class ProjectExtensionsDataBuilderImpl implements ModelBuilderService {
|
||||
Object buildAll(String modelName, Project project) {
|
||||
DefaultGradleExtensions result = new DefaultGradleExtensions()
|
||||
result.parentProjectPath = project.parent?.path
|
||||
def file = project.getBuildFile()
|
||||
if (file.exists()) {
|
||||
result.buildScriptFile = file
|
||||
}
|
||||
|
||||
for (it in project.configurations) {
|
||||
result.configurations.add(new DefaultGradleConfiguration(it.name, it.description, it.visible))
|
||||
|
||||
-2
@@ -64,7 +64,6 @@ public class GradleExtensionsSerializationService implements SerializationServic
|
||||
writer.writeInt(objectId);
|
||||
if (isAdded) {
|
||||
writeString(writer, "parentProjectPath", model.getParentProjectPath());
|
||||
writeFile(writer, "buildScriptFile" , model.getBuildScriptFile());
|
||||
writeConfigurations(writer, context, model.getConfigurations());
|
||||
writeConventions(writer, context, model.getConventions());
|
||||
writeExtensions(writer, context, model.getExtensions());
|
||||
@@ -170,7 +169,6 @@ public class GradleExtensionsSerializationService implements SerializationServic
|
||||
public DefaultGradleExtensions create() {
|
||||
DefaultGradleExtensions gradleExtensions = new DefaultGradleExtensions();
|
||||
gradleExtensions.setParentProjectPath(readString(reader, "parentProjectPath"));
|
||||
gradleExtensions.setBuildScriptFile(readFile(reader, "buildScriptFile"));
|
||||
gradleExtensions.getConfigurations().addAll(readConfigurations(reader, context));
|
||||
gradleExtensions.getConventions().addAll(readConventions(reader, context));
|
||||
gradleExtensions.getExtensions().addAll(readExtensions(reader, context));
|
||||
|
||||
Reference in New Issue
Block a user