Skip to content

Commit f0eea3f

Browse files
committed
Added settingWatcher error handling
1 parent a854e6c commit f0eea3f

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

src/deepcode/lib/watchers/DeepCodeSettingsWatcher.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import * as vscode from "vscode";
22
import DeepCode from "../../../interfaces/DeepCodeInterfaces";
3+
import { errorsLogs } from "../../messages/errorsServerLogMessages";
34

45
class DeepCodeSettingsWatcher implements DeepCode.DeepCodeWatcherInterface {
56

6-
private async onChangeConfiguration(extension: DeepCode.ExtensionInterface): Promise<void> {
7+
private async onChangeConfiguration(extension: DeepCode.ExtensionInterface, key: string): Promise<void> {
78
const extensionConfig = vscode.workspace.getConfiguration('deepcode');
89
// @ts-ignore */}
910
const url: string = extensionConfig.get('url');
@@ -18,13 +19,21 @@ class DeepCodeSettingsWatcher implements DeepCode.DeepCodeWatcherInterface {
1819

1920
public activate(extension: DeepCode.ExtensionInterface): void {
2021
vscode.workspace.onDidChangeConfiguration(
21-
(event: vscode.ConfigurationChangeEvent): void => {
22-
if (
23-
event.affectsConfiguration('deepcode.url') ||
24-
event.affectsConfiguration('deepcode.token') ||
25-
event.affectsConfiguration('deepcode.uploadApproved')
26-
) {
27-
this.onChangeConfiguration(extension);
22+
async (event: vscode.ConfigurationChangeEvent): Promise<void> => {
23+
const change = [
24+
'deepcode.url', 'deepcode.token', 'deepcode.uploadApproved'
25+
].find(config => event.affectsConfiguration(config));
26+
if (change) {
27+
try {
28+
await this.onChangeConfiguration(extension, change);
29+
} catch (error) {
30+
await extension.processError(error, {
31+
message: errorsLogs.configWatcher,
32+
data: {
33+
configurationKey: change,
34+
}
35+
})
36+
}
2837
}
2938
}
3039
);

src/deepcode/messages/errorsServerLogMessages.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ export const errorsLogs = {
2525
// vscodeFileChanges: "Failed to process vscode file content changes",
2626
command: (type: string) => `Failed to execute ${type} command`,
2727
sendEvent: "Failed to send event to server",
28+
configWatcher: "Failed to handle configuration update",
2829
};

0 commit comments

Comments
 (0)