Make ResourceMap treat the same file with different scheme as different

Fixes #110435
This commit is contained in:
Matt Bierner
2020-11-11 14:57:46 -08:00
parent 67817c33a1
commit 805aa7e8f4

View File

@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode';
import * as fileSchemes from '../utils/fileSchemes';
/**
* Maps of file resources
@@ -12,10 +13,18 @@ import * as vscode from 'vscode';
* file systems.
*/
export class ResourceMap<T> {
private readonly _map = new Map<string, { resource: vscode.Uri, value: T }>();
private static readonly defaultPathNormalizer = (resource: vscode.Uri): string => {
if (resource.scheme === fileSchemes.file) {
return resource.fsPath;
}
return resource.toString(true);
};
private readonly _map = new Map<string, { readonly resource: vscode.Uri, value: T }>();
constructor(
private readonly _normalizePath: (resource: vscode.Uri) => string | undefined = (resource) => resource.fsPath,
private readonly _normalizePath: (resource: vscode.Uri) => string | undefined = ResourceMap.defaultPathNormalizer,
protected readonly config: {
readonly onCaseInsenitiveFileSystem: boolean,
},