mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[IFT] Fix Java learning project loading
Seems that SetupJavaProjectFromSourcesActivity is broken and is not used to create projects anymore so let's do not run it and configure compiler output path manually. IJ-CR-102100 GitOrigin-RevId: b8afb03efe02922c7b9ab5c3c1cdcd1898fb00f1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
f67d97e0d3
commit
741a9a33d7
@@ -1,6 +1,8 @@
|
||||
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.java.ift
|
||||
|
||||
import com.intellij.ide.impl.NewProjectUtil
|
||||
import com.intellij.ide.impl.OpenProjectTask
|
||||
import com.intellij.openapi.application.invokeLater
|
||||
import com.intellij.openapi.application.runInEdt
|
||||
import com.intellij.openapi.application.runWriteAction
|
||||
@@ -10,7 +12,9 @@ import com.intellij.openapi.projectRoots.JavaSdkType
|
||||
import com.intellij.openapi.projectRoots.Sdk
|
||||
import com.intellij.openapi.projectRoots.ex.JavaSdkUtil
|
||||
import com.intellij.openapi.roots.ProjectRootManager
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.platform.PlatformProjectOpenProcessor
|
||||
import training.lang.AbstractLangSupport
|
||||
import training.project.ProjectUtils
|
||||
import java.nio.file.Path
|
||||
@@ -21,12 +25,27 @@ abstract class JavaBasedLangSupport : AbstractLangSupport() {
|
||||
override fun installAndOpenLearningProject(contentRoot: Path,
|
||||
projectToClose: Project?,
|
||||
postInitCallback: (learnProject: Project) -> Unit) {
|
||||
super.installAndOpenLearningProject(contentRoot, projectToClose) { project ->
|
||||
val openProjectTask = OpenProjectTask {
|
||||
this.projectToClose = projectToClose
|
||||
// It is required to not run SetupJavaProjectFromSourcesActivity because
|
||||
// Projects created from wizard do not use it now
|
||||
this.beforeOpen = { project ->
|
||||
project.putUserData(PlatformProjectOpenProcessor.PROJECT_OPENED_BY_PLATFORM_PROCESSOR, false)
|
||||
true
|
||||
}
|
||||
}
|
||||
ProjectUtils.simpleInstallAndOpenLearningProject(contentRoot, this, openProjectTask) { project ->
|
||||
val projectPath = FileUtil.toSystemIndependentName(contentRoot.toString())
|
||||
val outputPath = projectPath.removeSuffix("/") + "/out"
|
||||
NewProjectUtil.setCompilerOutputPath(project, outputPath)
|
||||
|
||||
JavaProjectUtil.findJavaSdkAsync(project) { sdk ->
|
||||
if (sdk != null) {
|
||||
applyProjectSdk(sdk, project)
|
||||
runInEdt {
|
||||
if (sdk != null) {
|
||||
applyProjectSdk(sdk, project)
|
||||
}
|
||||
postInitCallback(project)
|
||||
}
|
||||
postInitCallback(project)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -39,9 +58,7 @@ abstract class JavaBasedLangSupport : AbstractLangSupport() {
|
||||
val applySdkAction = {
|
||||
runWriteAction { JavaSdkUtil.applyJdkToProject(project, sdk) }
|
||||
}
|
||||
runInEdt {
|
||||
CommandProcessor.getInstance().executeCommand(project, applySdkAction, null, null)
|
||||
}
|
||||
CommandProcessor.getInstance().executeCommand(project, applySdkAction, null, null)
|
||||
}
|
||||
|
||||
override fun applyToProjectAfterConfigure(): (Project) -> Unit = { newProject ->
|
||||
|
||||
-5
@@ -8,7 +8,6 @@ import com.intellij.openapi.application.runReadAction
|
||||
import com.intellij.openapi.module.ModuleManager
|
||||
import com.intellij.openapi.progress.runBackgroundableTask
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.PlatformProjectOpenProcessor
|
||||
import org.jetbrains.kotlin.idea.configuration.KotlinJavaModuleConfigurator
|
||||
import org.jetbrains.kotlin.idea.configuration.NotificationMessageCollector
|
||||
import org.jetbrains.kotlin.idea.formatter.KotlinStyleGuideCodeStyle
|
||||
@@ -30,10 +29,6 @@ class KotlinLangSupport : JavaBasedLangSupport() {
|
||||
postInitCallback: (learnProject: Project) -> Unit
|
||||
) {
|
||||
super.installAndOpenLearningProject(contentRoot, projectToClose) { project ->
|
||||
// It is required to not run SetupJavaProjectFromSourcesActivity because
|
||||
// it will overwrite our manual setup of KotlinJavaRuntime library
|
||||
project.putUserData(PlatformProjectOpenProcessor.PROJECT_OPENED_BY_PLATFORM_PROCESSOR, false)
|
||||
|
||||
setupKotlin(project)
|
||||
postInitCallback(project)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user