Skip to content

Commit 2583b28

Browse files
committed
Allow adding waveforms surfer via VSC ui
1 parent bb37e02 commit 2583b28

File tree

6 files changed

+13
-13
lines changed

6 files changed

+13
-13
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@
328328
},
329329
{
330330
"command": "rtlDebugger.addToWaveform",
331-
"when": "view == rtlDebugger.sidebar",
331+
"when": "view == rtlDebugger.sidebar && viewItem =~ /variable/",
332332
"group": "inline"
333333
}
334334
],

src/debugger.ts

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import * as vscode from 'vscode';
44
import { NodeStreamLink } from './cxxrtl/link';
55
import { StatusBarItem } from './ui/status';
66
import { Session } from './debug/session';
7+
import { WaveformProvider } from './ui/waveform';
78

89
export enum CXXRTLSimulationStatus {
910
Paused = 'paused',
@@ -21,6 +22,7 @@ export class CXXRTLDebugger {
2122
private statusBarItem: StatusBarItem;
2223
private terminal: vscode.Terminal | null = null;
2324
session: Session | null = null;
25+
waveformProvider: WaveformProvider | null = null;
2426

2527
// Session properties.
2628

src/extension.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ import { WaveformProvider } from './ui/waveform';
1111

1212
export function activate(context: vscode.ExtensionContext) {
1313
const rtlDebugger = new CXXRTLDebugger();
14-
// TODO This is presumably not the right way to do it, but I'll do it like this for
15-
// now in order to test the WCP stuff
16-
var waveformProvider: WaveformProvider;
1714

1815
console.log('Attached');
1916

@@ -81,8 +78,9 @@ export function activate(context: vscode.ExtensionContext) {
8178
}));
8279

8380
context.subscriptions.push(vscode.commands.registerCommand('rtlDebugger.addToWaveform', (treeItem) => {
84-
console.log("Adding to waveform", waveformProvider)
85-
waveformProvider.addVariable(treeItem.designation.variable.cxxrtlIdentifier)
81+
if (rtlDebugger.waveformProvider) {
82+
rtlDebugger.waveformProvider.addVariable(treeItem.designation.variable)
83+
}
8684
}));
8785

8886
context.subscriptions.push(vscode.commands.registerCommand('rtlDebugger.setRadix.2', (treeItem) =>
@@ -112,8 +110,8 @@ export function activate(context: vscode.ExtensionContext) {
112110
retainContextWhenHidden: true,
113111
});
114112
const bundleRoot = vscode.Uri.joinPath(context.extensionUri, 'out/');
115-
waveformProvider = new WaveformProvider(rtlDebugger, webviewPanel, bundleRoot)
116-
context.subscriptions.push(waveformProvider);
113+
rtlDebugger.waveformProvider = new WaveformProvider(rtlDebugger, webviewPanel, bundleRoot)
114+
context.subscriptions.push(rtlDebugger.waveformProvider);
117115
}));
118116

119117
// For an unknown reason, the `vscode.open` command (which does the exact same thing) ignores the options.

src/surfer/embed.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ document.addEventListener('DOMContentLoaded', async () => {
6565
await libsurfer.start_wcp();
6666

6767
libsurferInjectMessage('ToggleMenu'); // turn off menu
68-
// libsurferInjectMessage('ToggleStatusBar'); // turn off status bar
69-
// libsurferInjectMessage('ToggleSidePanel');
68+
libsurferInjectMessage('ToggleStatusbar'); // turn off status bar
69+
libsurferInjectMessage('ToggleSidePanel');
7070
libsurferInjectMessage({ SelectTheme: 'dark+' }); // pick VS Code like theme
7171

7272
overlay.style.display = 'none';

src/ui/sidebar.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,10 @@ class ScopeTreeItem extends TreeItem {
203203
for (const variable of variables) {
204204
if (variable instanceof ScalarVariable) {
205205
children.push(new ScalarTreeItem(this.provider, variable.designation(),
206-
variable.width > 1 ? 'canWatch|canSetRadix' : 'canWatch'));
206+
variable.width > 1 ? 'canWatch|canSetRadix|variable' : 'canWatch|variable'));
207207
}
208208
if (variable instanceof MemoryVariable) {
209-
children.push(new ArrayTreeItem(this.provider, variable.designation(), 'canWatch|canSetRadix'));
209+
children.push(new ArrayTreeItem(this.provider, variable.designation(), 'canWatch|canSetRadix|variable'));
210210
}
211211
}
212212
return children;

vendor/surfer

Submodule surfer updated from b07cb52 to ddb282a

0 commit comments

Comments
 (0)