Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
canHandle(element: object): number {
const current = this.iconThemeService.getDefinition(this.iconThemeService.current);
if (current instanceof PluginIconTheme && (
(element instanceof URI && element.scheme === 'file') || URIIconReference.is(element) || FileStat.is(element) || FileStatNode.is(element)
)) {
return Number.MAX_SAFE_INTEGER;
}
return 0;
}
protected getClassNames(element: URI | URIIconReference | FileStat | FileStatNode | WorkspaceRootNode): string[] {
if (WorkspaceRootNode.is(element)) {
const name = this.labelProvider.getName(element);
if (element.expanded) {
return [this.rootFolderExpandedIcon, this.expandedFolderNameIcon(name)];
}
return [this.rootFolderIcon, this.folderNameIcon(name)];
}
if (DirNode.is(element)) {
if (element.expanded) {
const name = this.labelProvider.getName(element);
return [this.folderExpandedIcon, this.expandedFolderNameIcon(name)];
}
return this.getFolderClassNames(element);
}
if (FileStatNode.is(element)) {
return this.getFileClassNames(element, element.fileStat.uri);
}
if (FileStat.is(element)) {
if (element.isDirectory) {
return this.getFolderClassNames(element);
}
return this.getFileClassNames(element, element.uri);
}
if (URIIconReference.is(element)) {
if (element.id === 'folder') {
return this.getFolderClassNames(element);
}
return this.getFileClassNames(element, element.uri && element.uri.toString());
}
return this.getFileClassNames(element, element.toString());
}