Protected ReadonlyenvProtected ReadonlyfileProtectedhostProtected ReadonlyhostResolving re-hashes the workspace id and hits FileService.createFolder, and the plugin server asks for this on every workspace storage read/write. The roots are part of the key because an untitled workspace's id is derived from them.
Protected ReadonlyloggerProtected ReadonlyuntitledProtectedbuildProtectedcleanKeeps only the most recent PluginPaths.DEFAULT_PLUGIN_MAX_SESSION_LOGS_FOLDERS
session folders under logsDirUri, so reloading doesn't fill up browser storage.
ProtectedensureCreates uri as a directory (fine if it already exists) and returns its path. Plugins get
the path rather than the URI, e.g. as ExtensionContext.storagePath.
ProtectedgenerateGenerate time folder name in format: YYYYMMDDTHHMMSS, for example: 20181205T093828
Returns hosted log path. Create directory by this path if it is not exist on the file system.
ProtectedresolveProtectedresolve
Resolves plugin log and storage locations for a browser-only application, under the config directory, which lives on the same (browser-local) file system as the workspace.