gradle.kts: use toSystemIndependentName for paths coming from Gradle

This commit is contained in:
Sergey Rostov
2020-05-07 12:33:53 +03:00
parent c79858e965
commit 3a98ed96a2
2 changed files with 7 additions and 8 deletions
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.scripting.gradle.importing
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key import com.intellij.openapi.util.Key
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil.toSystemIndependentName
import com.intellij.openapi.vfs.VfsUtil import com.intellij.openapi.vfs.VfsUtil
import org.gradle.tooling.model.kotlin.dsl.EditorReportSeverity import org.gradle.tooling.model.kotlin.dsl.EditorReportSeverity
import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel
@@ -90,11 +90,10 @@ private fun KotlinDslScriptsModel.toListOfScriptModels(project: Project): List<K
// todo(KT-34440): take inputs snapshot before starting import // todo(KT-34440): take inputs snapshot before starting import
KotlinDslScriptModel( KotlinDslScriptModel(
file.absolutePath, toSystemIndependentName(file.absolutePath),
// TODO: NPE getGradleScriptInputsStamp(project, virtualFile)!!, // TODO: NPE
getGradleScriptInputsStamp(project, virtualFile)!!, model.classPath.map { toSystemIndependentName(it.absolutePath) },
model.classPath.map { it.absolutePath }, model.sourcePath.map { toSystemIndependentName(it.absolutePath) },
model.sourcePath.map { it.absolutePath },
model.implicitImports, model.implicitImports,
messages messages
) )
@@ -114,7 +113,7 @@ fun saveScriptModels(project: Project, build: KotlinDslGradleBuildSync) {
} }
// todo: use real info about projects // todo: use real info about projects
build.projectRoots.addAll(build.models.map { FileUtil.toSystemIndependentName(File(it.file).parent) }) build.projectRoots.addAll(build.models.map { toSystemIndependentName(File(it.file).parent) })
GradleBuildRootsManager.getInstance(project).update(build) GradleBuildRootsManager.getInstance(project).update(build)
} }
@@ -19,7 +19,7 @@ import java.io.DataInputStream
import java.io.DataOutput import java.io.DataOutput
internal object GradleBuildRootDataSerializer { internal object GradleBuildRootDataSerializer {
private val attribute = FileAttribute("kotlin-dsl-script-models", 4, false) private val attribute = FileAttribute("kotlin-dsl-script-models", 5, false)
fun read(buildRoot: VirtualFile): GradleBuildRootData? { fun read(buildRoot: VirtualFile): GradleBuildRootData? {
return attribute.readAttribute(buildRoot)?.use { return attribute.readAttribute(buildRoot)?.use {