EelApi: move IjentPath to intellij.platform.eel

GitOrigin-RevId: fdae3e80a498e2c6480cd62fb7f82c2b6d3cb72d
This commit is contained in:
Vladimir Lagunov
2024-09-17 14:36:23 +02:00
committed by intellij-monorepo-bot
parent ed880ef479
commit bbedb129a3
21 changed files with 54 additions and 25 deletions

1
.idea/modules.xml generated
View File

@@ -644,6 +644,7 @@
<module fileurl="file://$PROJECT_DIR$/platform/editor-ui-ex/intellij.platform.editor.ex.iml" filepath="$PROJECT_DIR$/platform/editor-ui-ex/intellij.platform.editor.ex.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/eel/intellij.platform.eel.iml" filepath="$PROJECT_DIR$/platform/eel/intellij.platform.eel.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/eelProvider/intellij.platform.eel.provider.iml" filepath="$PROJECT_DIR$/platform/eelProvider/intellij.platform.eel.provider.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/eel/intellij.platform.eel.tests.iml" filepath="$PROJECT_DIR$/platform/eel/intellij.platform.eel.tests.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/execution/intellij.platform.execution.iml" filepath="$PROJECT_DIR$/platform/execution/intellij.platform.execution.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/execution.dashboard/intellij.platform.execution.dashboard.iml" filepath="$PROJECT_DIR$/platform/execution.dashboard/intellij.platform.execution.dashboard.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/execution-impl/intellij.platform.execution.impl.iml" filepath="$PROJECT_DIR$/platform/execution-impl/intellij.platform.execution.impl.iml" />

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$/tests">
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
<orderEntry type="module" module-name="intellij.platform.eel" scope="TEST" />
<orderEntry type="library" scope="TEST" name="JUnit5" level="project" />
<orderEntry type="library" scope="TEST" name="JUnit5Params" level="project" />
<orderEntry type="library" scope="TEST" name="kotlin-test" level="project" />
<orderEntry type="library" scope="TEST" name="kotlin-test-assertions-core-jvm" level="project" />
<orderEntry type="library" scope="TEST" name="kotlinx-coroutines-test" level="project" />
</component>
</module>

View File

@@ -1,8 +1,8 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.fs
package com.intellij.platform.eel.path
import com.intellij.platform.ijent.fs.IjentPathResult.Err
import com.intellij.platform.ijent.fs.IjentPathResult.Ok
import com.intellij.platform.eel.path.IjentPathResult.Err
import com.intellij.platform.eel.path.IjentPathResult.Ok
internal class ArrayListIjentAbsolutePath private constructor(
private val _root: Root,

View File

@@ -1,8 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.fs
import com.intellij.util.SmartList
import com.intellij.util.asSafely
package com.intellij.platform.eel.path
internal class ArrayListIjentRelativePath private constructor(
private val parts: List<String>,
@@ -28,7 +25,7 @@ internal class ArrayListIjentRelativePath private constructor(
}
override fun resolve(other: IjentPath.Relative): IjentPathResult<ArrayListIjentRelativePath> {
val result = SmartList<String>()
val result = mutableListOf<String>()
result += parts
if (other != EMPTY) {
for (i in 0..<other.nameCount) {
@@ -55,7 +52,7 @@ internal class ArrayListIjentRelativePath private constructor(
}
override fun normalize(): IjentPath.Relative {
val result = SmartList<String>()
val result = mutableListOf<String>()
for (part in parts) {
when (part) {
"." -> Unit
@@ -102,7 +99,7 @@ internal class ArrayListIjentRelativePath private constructor(
override fun toString(): String = parts.joinToString("/")
override fun equals(other: Any?): Boolean =
other?.asSafely<IjentPath.Relative>()?.compareTo(this) == 0
other is IjentPath.Relative && other.compareTo(this) == 0
override fun hashCode(): Int =
parts.hashCode()

View File

@@ -1,9 +1,10 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.fs
package com.intellij.platform.eel.path
import com.intellij.platform.eel.EelPlatform
import com.intellij.platform.ijent.fs.IjentPath.Absolute.OS
import com.intellij.platform.eel.path.IjentPath.Absolute.OS
import java.nio.file.InvalidPathException
import kotlin.Throws
sealed interface IjentPathResult<P : IjentPath> {
data class Ok<P : IjentPath>(val path: P) : IjentPathResult<P>

View File

@@ -0,0 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
@ApiStatus.Internal
package com.intellij.platform.eel.path;
import org.jetbrains.annotations.ApiStatus;

View File

@@ -1,8 +1,6 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.community.impl.nio
package com.intellij.platform.eel.path
import com.intellij.platform.ijent.fs.IjentPath
import com.intellij.platform.ijent.fs.IjentPathResult
import io.kotest.matchers.shouldBe
import io.kotest.matchers.types.shouldBeTypeOf
import org.junit.jupiter.api.DynamicTest
@@ -36,11 +34,11 @@ class IjentAbsolutePathTest {
for (rawPath in (unixPaths + windowsPaths)) {
add(dynamicTest(rawPath) {
val ijentPath = IjentPath.Absolute
val eelPath = IjentPath.Absolute
.parse(rawPath, null)
.shouldBeTypeOf<IjentPathResult.Ok<IjentPath.Absolute>>()
.path
ijentPath.toString() shouldBe rawPath
eelPath.toString() shouldBe rawPath
})
}
}

View File

@@ -1,8 +1,6 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.community.impl.nio
package com.intellij.platform.eel.path
import com.intellij.platform.ijent.fs.IjentPath
import com.intellij.platform.ijent.fs.getOrThrow
import io.kotest.assertions.throwables.shouldThrowAny
import io.kotest.assertions.withClue
import io.kotest.matchers.be

View File

@@ -5,7 +5,6 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />

View File

@@ -1,6 +1,7 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.community.impl
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.ijent.IjentApi
import com.intellij.platform.ijent.IjentPosixApi
import com.intellij.platform.ijent.IjentPosixInfo

View File

@@ -1,6 +1,7 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.community.impl
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.ijent.fs.*
@Suppress("unused") // Usages are to be implemented later.

View File

@@ -1,8 +1,8 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.community.impl
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.ijent.fs.IjentFileInfo
import com.intellij.platform.ijent.fs.IjentPath
import com.intellij.platform.ijent.fs.IjentPosixFileInfo
import java.time.ZonedDateTime

View File

@@ -3,6 +3,7 @@ package com.intellij.platform.ijent.community.impl.nio
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.diagnostic.thisLogger
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.ijent.fs.*
import com.intellij.platform.ijent.spi.RECOMMENDED_MAX_PACKET_SIZE
import java.io.IOException

View File

@@ -1,6 +1,8 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.community.impl.nio
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.eel.path.getOrThrow
import com.intellij.platform.ijent.fs.*
import org.jetbrains.annotations.ApiStatus
import java.net.URI

View File

@@ -3,8 +3,9 @@ package com.intellij.platform.ijent.community.impl.nio
import com.intellij.openapi.diagnostic.thisLogger
import com.intellij.platform.core.nio.fs.BasicFileAttributesHolder2.FetchAttributesFilter
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.eel.path.getOrThrow
import com.intellij.platform.ijent.community.impl.IjentFsResultImpl
import com.intellij.platform.ijent.community.impl.nio.IjentNioFileSystemProvider.Companion.newFileSystemMap
import com.intellij.platform.ijent.community.impl.nio.IjentNioFileSystemProvider.UnixFilePermissionBranch.*
import com.intellij.platform.ijent.fs.*
import com.intellij.platform.ijent.fs.IjentFileInfo.Type.*

View File

@@ -3,6 +3,8 @@
package com.intellij.platform.ijent.community.impl.nio
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.eel.path.getOrThrow
import com.intellij.platform.ijent.fs.*
import com.intellij.util.text.nullize
import kotlinx.coroutines.Dispatchers

View File

@@ -2,10 +2,10 @@
package com.intellij.platform.ijent.community.impl.nio
import com.intellij.platform.core.nio.fs.BasicFileAttributesHolder2
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.eel.path.getOrThrow
import com.intellij.platform.ijent.fs.IjentFileSystemPosixApi
import com.intellij.platform.ijent.fs.IjentFileSystemWindowsApi
import com.intellij.platform.ijent.fs.IjentPath
import com.intellij.platform.ijent.fs.getOrThrow
import java.net.URI
import java.nio.file.*
import java.nio.file.attribute.BasicFileAttributes

View File

@@ -1,6 +1,7 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.fs
import com.intellij.platform.eel.path.IjentPath
import java.time.ZonedDateTime
sealed interface IjentFileInfo {

View File

@@ -2,6 +2,7 @@
package com.intellij.platform.ijent.fs
import com.intellij.openapi.util.NlsSafe
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.ijent.IjentInfo
import com.intellij.platform.ijent.IjentPosixInfo
import com.intellij.platform.ijent.IjentUnavailableException

View File

@@ -1,6 +1,7 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.fs
import com.intellij.platform.eel.path.IjentPath
import com.intellij.platform.ijent.fs.IjentFileSystemApi.CopyOptions
import com.intellij.platform.ijent.fs.IjentFileSystemApi.FileWriterCreationMode

View File

@@ -2,6 +2,7 @@
package com.intellij.platform.ijent.fs
import com.intellij.openapi.util.NlsSafe
import com.intellij.platform.eel.path.IjentPath
import org.jetbrains.annotations.Nls
import java.io.IOException