Skip to content

Commit 24aa685

Browse files
committed
Code improvements.
1 parent 7ba2428 commit 24aa685

25 files changed

Lines changed: 635 additions & 447 deletions

extension/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"version": "2.0.0",
88
"license": "GPL-3.0",
99
"engines": {
10-
"vscode": "^1.35.0"
10+
"vscode": "^1.47.0"
1111
},
1212
"publisher": "hediet",
1313
"keywords": [
@@ -108,15 +108,16 @@
108108
"open": "^7.0.2",
109109
"serve-static": "^1.14.1",
110110
"ws": "^7.2.1",
111-
"crypto-random-string": "^3.1.0"
111+
"crypto-random-string": "^3.1.0",
112+
"mobx-utils": "^5.6.1"
112113
},
113114
"devDependencies": {
114115
"copy-webpack-plugin": "^5.1.1",
115116
"@types/copy-webpack-plugin": "^5.0.0",
116117
"@types/express": "^4.17.2",
117118
"@types/serve-static": "^1.13.3",
118119
"@types/node": "^13.7.4",
119-
"@types/vscode": "1.35.0",
120+
"@types/vscode": "1.47.0",
120121
"tslint": "^6.0.0",
121122
"typescript": "^3.8.2",
122123
"webpack": "^4.41.6",

extension/src/Config.ts

Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,50 @@
1-
import { workspace } from "vscode";
1+
import { workspace, window, ColorThemeKind } from "vscode";
22
import { Disposable } from "@hediet/std/disposable";
33
import { observable } from "mobx";
44
import { DataExtractorId } from "@hediet/debug-visualizer-data-extraction";
5-
6-
const useChromeKioskModeKey = "debugVisualizer.useChromeKioskMode";
7-
const debugAdapterConfigsKey = "debugVisualizer.debugAdapterConfigurations";
5+
import { VsCodeSetting, serializerWithDefault } from "./utils/VsCodeSettings";
86

97
export class Config {
108
public dispose = Disposable.fn();
119

12-
@observable
13-
private _useChromeKioskMode!: boolean;
14-
15-
@observable
16-
private _debugAdapterConfigs!: DebugAdapterConfigs;
10+
private readonly _useChromeKioskMode = new VsCodeSetting(
11+
"debugVisualizer.useChromeKioskMode",
12+
{ serializer: serializerWithDefault<boolean>(true) }
13+
);
1714

1815
public get useChromeKioskMode(): boolean {
19-
return this._useChromeKioskMode;
16+
return this._useChromeKioskMode.get();
2017
}
2118

22-
public get debugAdapterConfigs(): DebugAdapterConfigs {
23-
return this._debugAdapterConfigs;
19+
private readonly _debugAdapterConfigs = new VsCodeSetting(
20+
"debugVisualizer.debugAdapterConfigurations",
21+
{ serializer: serializerWithDefault<DebugAdapterConfigs>({}) }
22+
);
23+
24+
@observable
25+
private _vsCodeTheme = window.activeColorTheme;
26+
27+
public get theme(): "light" | "dark" {
28+
if (this._vsCodeTheme.kind === ColorThemeKind.Light) {
29+
return "light";
30+
} else if (this._vsCodeTheme.kind === ColorThemeKind.Dark) {
31+
return "dark";
32+
}
33+
return "light";
2434
}
2535

2636
constructor() {
27-
this.updateConfig();
2837
this.dispose.track(
29-
workspace.onDidChangeConfiguration(() => {
30-
this.updateConfig();
38+
window.onDidChangeActiveColorTheme(() => {
39+
this._vsCodeTheme = window.activeColorTheme;
3140
})
3241
);
3342
}
3443

35-
private updateConfig(): void {
36-
const c = workspace.getConfiguration();
37-
38-
this._useChromeKioskMode = mapUndefined(
39-
c.get<boolean>(useChromeKioskModeKey),
40-
true
41-
);
42-
43-
this._debugAdapterConfigs = mapUndefined(
44-
c.get<DebugAdapterConfigs>(debugAdapterConfigsKey),
45-
{}
46-
);
47-
}
48-
4944
public getDebugAdapterConfig(
5045
debugAdapterType: string
5146
): DebugAdapterConfig | undefined {
52-
const c = this.debugAdapterConfigs[debugAdapterType];
47+
const c = this._debugAdapterConfigs.get()[debugAdapterType];
5348
if (!c) {
5449
return undefined;
5550
}
@@ -65,13 +60,6 @@ export class Config {
6560
}
6661
}
6762

68-
function mapUndefined<T>(val: T | undefined, defaultVal: T) {
69-
if (val === undefined) {
70-
return defaultVal;
71-
}
72-
return val;
73-
}
74-
7563
type DebugAdapterConfigs = {
7664
[debugAdapter: string]: {
7765
context?: "watch" | "repl";

extension/src/EvaluationWatchService/EvaluationEngine/ComposedEvaluationEngine.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { EvaluationEngine, Evaluator } from "./EvaluationEngine";
2-
import { VsCodeDebugSession } from "../../VsCodeDebugger";
2+
import { EnhancedDebugSession } from "../../debugger/EnhancedDebugSession";
33

44
export class ComposedEvaluationEngine implements EvaluationEngine {
55
constructor(public readonly engines: EvaluationEngine[]) {}
66

7-
createEvaluator(session: VsCodeDebugSession): Evaluator | undefined {
7+
createEvaluator(session: EnhancedDebugSession): Evaluator | undefined {
88
for (const f of this.engines) {
99
const evaluator = f.createEvaluator(session);
1010
if (evaluator) {

extension/src/EvaluationWatchService/EvaluationEngine/ConfiguredEvaluationEngine.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { DataExtractorId } from "@hediet/debug-visualizer-data-extraction";
2-
import { VsCodeDebugSession } from "../../VsCodeDebugger";
2+
import { EnhancedDebugSession } from "../../debugger/EnhancedDebugSession";
33
import { EvaluationEngine, Evaluator } from "./EvaluationEngine";
44
import { Config, DebugAdapterConfig } from "../../Config";
55
import { GenericEvaluator } from "./GenericEvaluationEngine";
@@ -11,7 +11,7 @@ registerUpdateReconciler(module);
1111
export class ConfiguredEvaluationEngine implements EvaluationEngine {
1212
constructor(private readonly config: Config) {}
1313

14-
createEvaluator(session: VsCodeDebugSession): Evaluator | undefined {
14+
createEvaluator(session: EnhancedDebugSession): Evaluator | undefined {
1515
const config = this.config.getDebugAdapterConfig(session.session.type);
1616
if (!config) {
1717
return undefined;
@@ -22,7 +22,7 @@ export class ConfiguredEvaluationEngine implements EvaluationEngine {
2222

2323
class ConfiguredEvaluator extends GenericEvaluator {
2424
constructor(
25-
session: VsCodeDebugSession,
25+
session: EnhancedDebugSession,
2626
private readonly config: DebugAdapterConfig
2727
) {
2828
super(session);

extension/src/EvaluationWatchService/EvaluationEngine/EvaluationEngine.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import {
22
DataExtractionResult,
33
DataExtractorId,
44
} from "@hediet/debug-visualizer-data-extraction";
5-
import { VsCodeDebugSession } from "../../VsCodeDebugger";
6-
import { FormattedMessage } from "../../contract";
5+
import { EnhancedDebugSession } from "../../debugger/EnhancedDebugSession";
6+
import { FormattedMessage } from "../../webviewContract";
77

88
export interface EvaluationEngine {
9-
createEvaluator(session: VsCodeDebugSession): Evaluator | undefined;
9+
createEvaluator(session: EnhancedDebugSession): Evaluator | undefined;
1010
}
1111

1212
export interface Evaluator {

extension/src/EvaluationWatchService/EvaluationEngine/GenericEvaluationEngine.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,29 @@ import {
22
DataExtractionResult,
33
DataExtractorId,
44
} from "@hediet/debug-visualizer-data-extraction";
5-
import { VsCodeDebugSession } from "../../VsCodeDebugger";
5+
import { EnhancedDebugSession } from "../../debugger/EnhancedDebugSession";
66
import {
77
EvaluationEngine,
88
Evaluator,
99
EvaluationArgs,
1010
} from "./EvaluationEngine";
1111
import { parseEvaluationResultFromGenericDebugAdapter } from "./parseEvaluationResultFromGenericDebugAdapter";
12-
import { FormattedMessage } from "../../contract";
12+
import { FormattedMessage } from "../../webviewContract";
1313
import { hotClass, registerUpdateReconciler } from "@hediet/node-reload";
1414

1515
registerUpdateReconciler(module);
1616

1717
@hotClass(module)
1818
export class GenericEvaluationEngine implements EvaluationEngine {
19-
createEvaluator(session: VsCodeDebugSession): Evaluator | undefined {
19+
createEvaluator(session: EnhancedDebugSession): Evaluator | undefined {
2020
return new GenericEvaluator(session);
2121
}
2222
}
2323

2424
export class GenericEvaluator implements Evaluator {
2525
public readonly languageId = "text";
2626

27-
constructor(private readonly session: VsCodeDebugSession) {}
27+
constructor(private readonly session: EnhancedDebugSession) {}
2828

2929
public async evaluate({
3030
expression,

extension/src/EvaluationWatchService/EvaluationEngine/JsEvaluationEngine.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@ import {
55
getExpressionToInitializeDataExtractorApi,
66
DataExtractionResult,
77
} from "@hediet/debug-visualizer-data-extraction";
8-
import { VsCodeDebugSession } from "../../VsCodeDebugger";
8+
import { EnhancedDebugSession } from "../../debugger/EnhancedDebugSession";
99
import {
1010
EvaluationEngine,
1111
Evaluator,
1212
EvaluationArgs,
1313
} from "./EvaluationEngine";
14-
import { FormattedMessage } from "../../contract";
14+
import { FormattedMessage } from "../../webviewContract";
1515
import { registerUpdateReconciler, hotClass } from "@hediet/node-reload";
1616

1717
registerUpdateReconciler(module);
1818

1919
@hotClass(module)
2020
export class JsEvaluationEngine implements EvaluationEngine {
21-
createEvaluator(session: VsCodeDebugSession): Evaluator | undefined {
21+
createEvaluator(session: EnhancedDebugSession): Evaluator | undefined {
2222
const supportedDebugAdapters = [
2323
"node",
2424
"node2",
@@ -37,7 +37,7 @@ export class JsEvaluationEngine implements EvaluationEngine {
3737
class JsEvaluator implements Evaluator {
3838
public readonly languageId = "javascript";
3939

40-
constructor(private readonly session: VsCodeDebugSession) {}
40+
constructor(private readonly session: EnhancedDebugSession) {}
4141

4242
private getContext(): "copy" | "repl" {
4343
if (this.session.session.type.startsWith("pwa-")) {

extension/src/EvaluationWatchService/EvaluationEngine/parseEvaluationResultFromGenericDebugAdapter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {
22
DataExtractionResult,
33
isExtractedData,
44
} from "@hediet/debug-visualizer-data-extraction";
5-
import { FormattedMessage } from "../../contract";
5+
import { FormattedMessage } from "../../webviewContract";
66

77
export interface ParseEvaluationResultContext {
88
debugAdapterType: string;

extension/src/EvaluationWatchService/EvaluationWatchService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { DataExtractorId } from "@hediet/debug-visualizer-data-extraction";
2-
import { DataExtractionState, CompletionItem } from "../contract";
2+
import { DataExtractionState, CompletionItem } from "../webviewContract";
33

44
export interface EvaluationWatchService {
55
createEvaluationWatcher(

extension/src/EvaluationWatchService/EvaluationWatchServiceImpl.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import {
66
import { observable, autorun, action } from "mobx";
77
import { Disposable } from "@hediet/std/disposable";
88
import { DataExtractorId } from "@hediet/debug-visualizer-data-extraction";
9-
import { DataExtractionState, CompletionItem } from "../contract";
9+
import { DataExtractionState, CompletionItem } from "../webviewContract";
1010
import { hotClass } from "@hediet/node-reload";
11-
import { VsCodeDebuggerView } from "../VsCodeDebugger";
11+
import { VsCodeDebuggerView } from "../debugger/VsCodeDebuggerView";
1212
import { EvaluationEngine } from "./EvaluationEngine/EvaluationEngine";
1313

1414
@hotClass(module)

0 commit comments

Comments
 (0)