Skip to content

Commit 29bdb7c

Browse files
authored
Merge pull request #113 from badsyntax/feature/configure
Improve tree refresh
2 parents 37a9ccb + 2a05e1d commit 29bdb7c

File tree

5 files changed

+12
-27
lines changed

5 files changed

+12
-27
lines changed

src/commands/CommandProvider.ts

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { Project } from 'nuget-deps-tree';
21
import * as vscode from 'vscode';
32
import { EXTENSION_NAMESPACE } from '../constants/constants';
43
import type { TerminalProvider } from '../terminal/TerminalProvider';
@@ -30,7 +29,6 @@ export class CommandProvider extends Disposable {
3029
treeDataProvider: TreeDataProvider,
3130
terminalProvider: TerminalProvider,
3231
extensionUri: vscode.Uri,
33-
solutionProjects?: Project[],
3432
) {
3533
super();
3634
this.registerCommand(
@@ -68,13 +66,7 @@ export class CommandProvider extends Disposable {
6866
this.registerCommand(
6967
GenerateERDCommand.commandName,
7068
(item?: DbContextTreeItem) =>
71-
new GenerateERDCommand(
72-
logger,
73-
terminalProvider,
74-
extensionUri,
75-
item,
76-
solutionProjects,
77-
),
69+
new GenerateERDCommand(logger, terminalProvider, extensionUri, item),
7870
);
7971
this.registerCommand(
8072
RefreshTreeCommand.commandName,
@@ -100,8 +92,7 @@ export class CommandProvider extends Disposable {
10092
);
10193
this.registerCommand(
10294
ScaffoldCommand.commandName,
103-
(item?: DbContextTreeItem) =>
104-
new ScaffoldCommand(terminalProvider, item, solutionProjects),
95+
(item?: DbContextTreeItem) => new ScaffoldCommand(terminalProvider, item),
10596
);
10697
this.registerCommand(
10798
ConfigureCommand.commandName,

src/commands/GenerateERDCommand.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type { TerminalProvider } from '../terminal/TerminalProvider';
77
import { type DbContextTreeItem } from '../treeView/DbContextTreeItem';
88
import { Command } from './Command';
99
import type { Logger } from '../util/Logger';
10-
import type { Project } from 'nuget-deps-tree';
10+
import { ProjectFilesProvider } from '../solution/ProjectFilesProvider';
1111

1212
export class GenerateERDCommand extends Command {
1313
public static commandName = 'generateERD';
@@ -17,7 +17,6 @@ export class GenerateERDCommand extends Command {
1717
private readonly terminalProvider: TerminalProvider,
1818
private readonly extensionUri: vscode.Uri,
1919
private readonly item?: DbContextTreeItem,
20-
private readonly solutionProjects?: Project[],
2120
) {
2221
super();
2322
}
@@ -27,14 +26,15 @@ export class GenerateERDCommand extends Command {
2726
return;
2827
}
2928
const outputDir = fs.mkdtempSync(path.join(os.tmpdir(), 'mermaid-erd'));
29+
const { solutionProjects } = await ProjectFilesProvider.getProjectFiles();
3030
return new GenerateERDAction(
3131
this.logger,
3232
this.terminalProvider,
3333
this.item.label,
3434
this.item.projectFile,
3535
outputDir,
3636
this.extensionUri,
37-
this.solutionProjects,
37+
solutionProjects,
3838
).run();
3939
}
4040
}

src/commands/ScaffoldCommand.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
import type { Project } from 'nuget-deps-tree';
21
import { ScaffoldAction } from '../actions/ScaffoldAction';
32
import type { TerminalProvider } from '../terminal/TerminalProvider';
43
import { type DbContextTreeItem } from '../treeView/DbContextTreeItem';
54
import { Command } from './Command';
5+
import { ProjectFilesProvider } from '../solution/ProjectFilesProvider';
66

77
export class ScaffoldCommand extends Command {
88
public static commandName = 'scaffold';
99

1010
constructor(
1111
private readonly terminalProvider: TerminalProvider,
1212
private readonly item?: DbContextTreeItem,
13-
private readonly solutionProjects?: Project[],
1413
) {
1514
super();
1615
}
@@ -19,10 +18,11 @@ export class ScaffoldCommand extends Command {
1918
if (!this.item) {
2019
return;
2120
}
21+
const { solutionProjects } = await ProjectFilesProvider.getProjectFiles();
2222
return new ScaffoldAction(
2323
this.terminalProvider,
2424
this.item.projectFile,
25-
this.solutionProjects,
25+
solutionProjects,
2626
).run();
2727
}
2828
}

src/extension.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,24 @@ import { MigrationTreeItemDecorationProvider } from './treeView/MigrationTreeIte
55
import { Terminal } from './terminal/Terminal';
66
import { TerminalProvider } from './terminal/TerminalProvider';
77
import { TextDocumentProvider } from './util/TextDocumentProvider';
8-
import { ProjectFilesProvider } from './solution/ProjectFilesProvider';
98
import { Logger } from './util/Logger';
109
import { CLI } from './cli/CLI';
1110

1211
export async function activate(context: vscode.ExtensionContext) {
1312
const logger = new Logger();
1413
logger.info(`Extension activated`);
1514

16-
const { projectFiles, solutionProjects } =
17-
await ProjectFilesProvider.getProjectFiles();
18-
logger.info(`Discovered ${projectFiles.length} compatible projects`);
19-
2015
const cli = new CLI(logger);
2116
const textDocumentProvider = new TextDocumentProvider();
2217
const migrationTreeItemDecorationProvider =
2318
new MigrationTreeItemDecorationProvider();
24-
const treeDataProvider = new TreeDataProvider(logger, projectFiles, cli);
19+
const treeDataProvider = new TreeDataProvider(logger, cli);
2520
const terminalProvider = new TerminalProvider(new Terminal(cli));
2621
const commandProvider = new CommandProvider(
2722
logger,
2823
treeDataProvider,
2924
terminalProvider,
3025
context.extensionUri,
31-
solutionProjects,
3226
);
3327

3428
context.subscriptions.push(

src/treeView/TreeDataProvider.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ import * as vscode from 'vscode';
22
import { type TreeItem } from './TreeItem';
33
import { Disposable } from '../util/Disposable';
44
import { EXTENSION_NAMESPACE } from '../constants/constants';
5-
import type { ProjectFile } from '../types/ProjectFile';
65
import { ProjectTreeItem } from './ProjectTreeItem';
76
import type { CLI } from '../cli/CLI';
87
import { MigrationTreeItem } from './MigrationTreeItem';
98
import { CommandProvider } from '../commands/CommandProvider';
109
import { OpenMigrationFileCommand } from '../commands/OpenMigrationFileCommand';
1110
import type { Logger } from '../util/Logger';
1211
import { getProjectsConfig } from '../config/config';
12+
import { ProjectFilesProvider } from '../solution/ProjectFilesProvider';
1313

1414
export class TreeDataProvider
1515
extends Disposable
@@ -25,7 +25,6 @@ export class TreeDataProvider
2525

2626
constructor(
2727
private readonly logger: Logger,
28-
private readonly projectFiles: ProjectFile[],
2928
private readonly cli: CLI,
3029
) {
3130
super();
@@ -68,8 +67,9 @@ export class TreeDataProvider
6867
return element.getChildren();
6968
} else {
7069
const { project } = getProjectsConfig();
70+
const { projectFiles } = await ProjectFilesProvider.getProjectFiles();
7171

72-
return this.projectFiles
72+
return projectFiles
7373
.filter(projectFile => !project || projectFile.name === project)
7474
.map(
7575
projectFile =>

0 commit comments

Comments
 (0)