diff --git a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystem.kt b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystem.kt index fb77d3523028..6d855e74da72 100644 --- a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystem.kt +++ b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystem.kt @@ -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.execution.wsl.ijent.nio -import com.intellij.platform.core.nio.fs.DelegatingFileSystem import java.nio.file.* +import java.nio.file.attribute.UserPrincipalLookupService /** * See [IjentWslNioFileSystemProvider]. @@ -11,13 +11,9 @@ internal class IjentWslNioFileSystem( private val provider: IjentWslNioFileSystemProvider, private val ijentFs: FileSystem, private val originalFs: FileSystem, -) : DelegatingFileSystem() { +) : FileSystem() { override fun toString(): String = """${javaClass.simpleName}(ijentId=${provider.ijentId}, wslLocalRoot=${provider.wslLocalRoot})""" - override fun getDelegate(): FileSystem = originalFs - - override fun getDelegate(root: String): FileSystem = originalFs - override fun close() { ijentFs.close() } @@ -44,4 +40,16 @@ internal class IjentWslNioFileSystem( addAll(originalFs.supportedFileAttributeViews()) addAll(ijentFs.supportedFileAttributeViews()) } + + override fun getPath(first: String, vararg more: String): Path = + originalFs.getPath(first, *more) + + override fun getPathMatcher(syntaxAndPattern: String?): PathMatcher = + originalFs.getPathMatcher(syntaxAndPattern) + + override fun getUserPrincipalLookupService(): UserPrincipalLookupService = + originalFs.userPrincipalLookupService + + override fun newWatchService(): WatchService = + originalFs.newWatchService() } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystemProvider.kt b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystemProvider.kt index 15ca4504717b..a30234cb7f2b 100644 --- a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystemProvider.kt +++ b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystemProvider.kt @@ -3,7 +3,6 @@ package com.intellij.execution.wsl.ijent.nio import com.intellij.openapi.util.io.CaseSensitivityAttribute import com.intellij.openapi.util.io.FileAttributes -import com.intellij.platform.core.nio.fs.DelegatingFileSystemProvider import com.intellij.platform.core.nio.fs.RoutingAwareFileSystemProvider import com.intellij.platform.ijent.* import com.intellij.platform.ijent.community.impl.nio.IjentNioPath @@ -37,7 +36,7 @@ internal class IjentWslNioFileSystemProvider( internal val wslLocalRoot: Path, private val ijentFsProvider: FileSystemProvider, internal val originalFsProvider: FileSystemProvider, -) : DelegatingFileSystemProvider(), RoutingAwareFileSystemProvider { +) : FileSystemProvider(), RoutingAwareFileSystemProvider { init { require(wslLocalRoot.isAbsolute) } @@ -66,29 +65,6 @@ internal class IjentWslNioFileSystemProvider( override fun getScheme(): String = originalFsProvider.scheme - override fun wrapDelegateFileSystem(delegateFs: FileSystem): IjentWslNioFileSystem { - val ijentFs = - try { - ijentFsProvider.getFileSystem(ijentId.uri) - } - catch (ignored: FileSystemNotFoundException) { - ijentFsProvider.newFileSystem(ijentId.uri, null) - } - return IjentWslNioFileSystem(this, ijentFs = ijentFs, originalFs = delegateFs) - } - - override fun getDelegate(path1: Path?, path2: Path?): FileSystemProvider = - originalFsProvider - - // While the original file system implements more methods than the IJent FS, it make sens to keep it the default delegate and - // convert paths in place for the IJent FS. - // Everything may turn upside down later. - override fun toDelegatePath(path: Path?): Path? = - path?.toDefaultPath() - - override fun fromDelegatePath(path: Path?): Path? = - path?.toDefaultPath() - override fun newFileSystem(path: Path, env: MutableMap?): IjentWslNioFileSystem { val ijentNioPath = path.toIjentPath() require(ijentNioPath.toUri() == ijentId.uri) { "${ijentNioPath.toUri()} != ${ijentId.uri}" }