diff --git a/platform/eel/src/com/intellij/platform/eel/fs/EelFileSystemApi.kt b/platform/eel/src/com/intellij/platform/eel/fs/EelFileSystemApi.kt index 0af47efd1410..e9dc29850b63 100644 --- a/platform/eel/src/com/intellij/platform/eel/fs/EelFileSystemApi.kt +++ b/platform/eel/src/com/intellij/platform/eel/fs/EelFileSystemApi.kt @@ -6,8 +6,16 @@ import com.intellij.platform.eel.EelUserPosixInfo import com.intellij.platform.eel.EelUserWindowsInfo import com.intellij.platform.eel.fs.EelFileSystemApi.StatError import com.intellij.platform.eel.path.EelPath +import com.intellij.platform.eel.path.EelPathResult import java.nio.ByteBuffer -import kotlin.Throws + +fun EelFileSystemApi.getPath(string: String): EelPathResult { + return EelPath.Absolute.parse(string, when (this) { + is EelFileSystemPosixApi -> EelPath.Absolute.OS.UNIX + is EelFileSystemWindowsApi -> EelPath.Absolute.OS.WINDOWS + else -> throw UnsupportedOperationException("Unsupported OS: ${this::class.java}") + }) +} // TODO Integrate case-(in)sensitiveness into the interface. diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt b/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt new file mode 100644 index 000000000000..673fb0ab3811 --- /dev/null +++ b/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt @@ -0,0 +1,12 @@ +// 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.eel.provider.utils + +import com.intellij.platform.eel.path.EelPath +import com.intellij.platform.eel.path.EelPathResult + +fun EelPathResult.unwrap(): T { + return when (this) { + is EelPathResult.Ok -> path + is EelPathResult.Err -> throw RuntimeException(reason) + } +} \ No newline at end of file