import { isAbsolutePath } from "./path"; interface BuildAbsoluteExplorerPathInput { workspaceRoot: string; entryPath: string; } export function buildAbsoluteExplorerPath({ workspaceRoot, entryPath, }: BuildAbsoluteExplorerPathInput): string { const normalizedWorkspaceRoot = workspaceRoot.trim().replace(/[\\/]+$/, ""); const normalizedEntryPath = entryPath.trim(); if (!normalizedWorkspaceRoot) { return normalizedEntryPath; } if (!normalizedEntryPath || normalizedEntryPath === ".") { return normalizedWorkspaceRoot; } if (isAbsolutePath(normalizedEntryPath)) { return normalizedEntryPath; } const separator = normalizedWorkspaceRoot.includes("\\") ? "\\" : "/"; const segments = normalizedEntryPath.split(/[\\/]+/).filter(Boolean); if (segments.length === 0) { return normalizedWorkspaceRoot; } return `${normalizedWorkspaceRoot}${separator}${segments.join(separator)}`; } export function parentExplorerPath(entryPath: string): string { const separatorIndex = entryPath.lastIndexOf("/"); return separatorIndex > 0 ? entryPath.slice(0, separatorIndex) : "."; }