Skip to content

Commit 9296b8b

Browse files
authored
Send refresh telemetry only if auto-refresh is off (#165)
1 parent c71b07b commit 9296b8b

File tree

4 files changed

+49
-23
lines changed

4 files changed

+49
-23
lines changed

package-lock.json

Lines changed: 10 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@
158158
"compile": "tsc -watch -p ./",
159159
"watch": "webpack --mode development --watch --info-verbosity verbose",
160160
"postinstall": "node ./node_modules/vscode/bin/install",
161-
"test": "node ./scripts/download-vscode-for-system-tests && node ./scripts/install-vsix-dependencies redhat.java && node ./scripts/install-vsix-dependencies vscode-java-dependency-0.4.0.vsix && node ./scripts/run-vscode-tests",
161+
"test": "node ./scripts/download-vscode-for-system-tests && node ./scripts/install-vsix-dependencies redhat.java && node ./scripts/install-vsix-dependencies vscode-java-dependency-0.5.0.vsix && node ./scripts/run-vscode-tests",
162162
"build-server": "./node_modules/.bin/gulp build_server",
163163
"vscode:prepublish": "tsc -p ./ && webpack --mode production"
164164
},

src/fileWather.ts

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,48 @@
22
// Licensed under the MIT license.
33

44
import { commands, Disposable, FileSystemWatcher, workspace } from "vscode";
5+
import { instrumentOperation } from "vscode-extension-telemetry-wrapper";
56
import { Commands } from "./commands";
67

78
export class SyncHandler {
89

910
public static updateFileWatcher(autoRefresh: boolean): void {
1011
if (autoRefresh) {
11-
SyncHandler.javaFileContentWatcher = workspace.onDidChangeTextDocument((event) => {
12-
if (event.document.languageId === "java") {
13-
SyncHandler.refresh();
14-
}
15-
});
16-
SyncHandler.javaFileSystemWatcher = workspace.createFileSystemWatcher("**/*.{java}");
17-
SyncHandler.javaFileSystemWatcher.onDidChange(SyncHandler.refresh);
18-
SyncHandler.javaFileSystemWatcher.onDidCreate(SyncHandler.refresh);
19-
SyncHandler.javaFileSystemWatcher.onDidDelete(SyncHandler.refresh);
12+
instrumentOperation(SyncHandler.ENABLE_AUTO_REFRESH, () => this.enableAutoRefresh());
2013
} else {
21-
if (SyncHandler.javaFileContentWatcher) {
22-
SyncHandler.javaFileContentWatcher.dispose();
23-
}
24-
if (SyncHandler.javaFileSystemWatcher) {
25-
SyncHandler.javaFileSystemWatcher.dispose();
26-
}
14+
instrumentOperation(SyncHandler.DISABLE_AUTO_REFRESH, () => this.disableAutoRefresh());
2715
}
2816
}
2917

3018
private static javaFileContentWatcher: Disposable = null;
3119

3220
private static javaFileSystemWatcher: FileSystemWatcher = null;
3321

22+
private static ENABLE_AUTO_REFRESH = "java.view.package.enableAutoRefresh";
23+
24+
private static DISABLE_AUTO_REFRESH = "java.view.package.disableAutoRefresh";
25+
26+
private static enableAutoRefresh() {
27+
SyncHandler.javaFileContentWatcher = workspace.onDidChangeTextDocument((event) => {
28+
if (event.document.languageId === "java") {
29+
SyncHandler.refresh();
30+
}
31+
});
32+
SyncHandler.javaFileSystemWatcher = workspace.createFileSystemWatcher("**/*.{java}");
33+
SyncHandler.javaFileSystemWatcher.onDidChange(SyncHandler.refresh);
34+
SyncHandler.javaFileSystemWatcher.onDidCreate(SyncHandler.refresh);
35+
SyncHandler.javaFileSystemWatcher.onDidDelete(SyncHandler.refresh);
36+
}
37+
38+
private static disableAutoRefresh() {
39+
if (SyncHandler.javaFileContentWatcher) {
40+
SyncHandler.javaFileContentWatcher.dispose();
41+
}
42+
if (SyncHandler.javaFileSystemWatcher) {
43+
SyncHandler.javaFileSystemWatcher.dispose();
44+
}
45+
}
46+
3447
private static refresh(): void {
3548
commands.executeCommand(Commands.VIEW_PACKAGE_REFRESH);
3649
}

src/views/dependencyDataProvider.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { instrumentOperation } from "vscode-extension-telemetry-wrapper";
99
import { Commands } from "../commands";
1010
import { Jdtls } from "../java/jdtls";
1111
import { INodeData, NodeKind } from "../java/nodeData";
12+
import { Settings } from "../settings";
1213
import { DataNode } from "./dataNode";
1314
import { ExplorerNode } from "./explorerNode";
1415
import { ProjectNode } from "./projectNode";
@@ -24,14 +25,21 @@ export class DependencyDataProvider implements TreeDataProvider<ExplorerNode> {
2425
private _rootItems: ExplorerNode[] = null;
2526

2627
constructor(public readonly context: ExtensionContext) {
27-
context.subscriptions.push(commands.registerCommand(Commands.VIEW_PACKAGE_REFRESH,
28-
instrumentOperation(Commands.VIEW_PACKAGE_REFRESH, () => this.refresh())));
28+
context.subscriptions.push(commands.registerCommand(Commands.VIEW_PACKAGE_REFRESH, () => this.refreshWithLog()));
2929
context.subscriptions.push(commands.registerCommand(Commands.VIEW_PACKAGE_OPEN_FILE,
3030
instrumentOperation(Commands.VIEW_PACKAGE_OPEN_FILE, (_operationId, uri) => this.openFile(uri))));
3131
context.subscriptions.push(commands.registerCommand(Commands.VIEW_PACKAGE_OUTLINE,
3232
instrumentOperation(Commands.VIEW_PACKAGE_OUTLINE, (_operationId, uri, range) => this.goToOutline(uri, range))));
3333
}
3434

35+
public refreshWithLog() {
36+
if (Settings.autoRefresh()) {
37+
this.refresh();
38+
} else {
39+
instrumentOperation(Commands.VIEW_PACKAGE_REFRESH, () => this.refresh())();
40+
}
41+
}
42+
3543
public refresh() {
3644
this._rootItems = null;
3745
this._onDidChangeTreeData.fire();

0 commit comments

Comments
 (0)