sussudio
Version:
An unofficial VS Code Internal API
27 lines (26 loc) • 1.27 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Schemas } from "../../../base/common/network.mjs";
export function isVirtualResource(resource) {
return resource.scheme !== Schemas.file && resource.scheme !== Schemas.vscodeRemote;
}
export function getVirtualWorkspaceLocation(workspace) {
if (workspace.folders.length) {
return workspace.folders.every(f => isVirtualResource(f.uri)) ? workspace.folders[0].uri : undefined;
}
else if (workspace.configuration && isVirtualResource(workspace.configuration)) {
return workspace.configuration;
}
return undefined;
}
export function getVirtualWorkspaceScheme(workspace) {
return getVirtualWorkspaceLocation(workspace)?.scheme;
}
export function getVirtualWorkspaceAuthority(workspace) {
return getVirtualWorkspaceLocation(workspace)?.authority;
}
export function isVirtualWorkspace(workspace) {
return getVirtualWorkspaceLocation(workspace) !== undefined;
}