mirror of
https://github.com/microsoft/vscode-extension-samples.git
synced 2026-04-27 16:55:44 +08:00
Improve file explorer to use file system provider and reveal api
This commit is contained in:
@ -46,23 +46,23 @@ export class DepNodeProvider implements vscode.TreeDataProvider<Dependency> {
|
||||
if (this.pathExists(packageJsonPath)) {
|
||||
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
||||
|
||||
const toDep = (moduleName: string): Dependency => {
|
||||
const toDep = (moduleName: string, version: string): Dependency => {
|
||||
if (this.pathExists(path.join(this.workspaceRoot, 'node_modules', moduleName))) {
|
||||
return new Dependency(moduleName, vscode.TreeItemCollapsibleState.Collapsed);
|
||||
return new Dependency(moduleName, version, vscode.TreeItemCollapsibleState.Collapsed);
|
||||
} else {
|
||||
return new Dependency(moduleName, vscode.TreeItemCollapsibleState.None, {
|
||||
return new Dependency(moduleName, version, vscode.TreeItemCollapsibleState.None, {
|
||||
command: 'extension.openPackageOnNpm',
|
||||
title: '',
|
||||
arguments: [moduleName],
|
||||
arguments: [moduleName]
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const deps = packageJson.dependencies
|
||||
? Object.keys(packageJson.dependencies).map(toDep)
|
||||
? Object.keys(packageJson.dependencies).map(dep => toDep(dep, packageJson.dependencies[dep]))
|
||||
: [];
|
||||
const devDeps = packageJson.devDependencies
|
||||
? Object.keys(packageJson.devDependencies).map(toDep)
|
||||
? Object.keys(packageJson.devDependencies).map(dep => toDep(dep, packageJson.devDependencies[dep]))
|
||||
: [];
|
||||
return deps.concat(devDeps);
|
||||
} else {
|
||||
@ -85,12 +85,17 @@ class Dependency extends vscode.TreeItem {
|
||||
|
||||
constructor(
|
||||
public readonly label: string,
|
||||
private version: string,
|
||||
public readonly collapsibleState: vscode.TreeItemCollapsibleState,
|
||||
public readonly command?: vscode.Command
|
||||
) {
|
||||
super(label, collapsibleState);
|
||||
}
|
||||
|
||||
get tooltip(): string {
|
||||
return `${this.label}-${this.version}`
|
||||
}
|
||||
|
||||
iconPath = {
|
||||
light: path.join(__filename, '..', '..', '..', 'resources', 'light', 'dependency.svg'),
|
||||
dark: path.join(__filename, '..', '..', '..', 'resources', 'dark', 'dependency.svg')
|
||||
|
||||
Reference in New Issue
Block a user