Skip to content

feat: Debugger Diagnostics C++ driven displays and data - #393

Merged
AlexDenfordSkyboxLabs merged 28 commits into
mainfrom
sbl/alex.denford/debugger-native-descriptors
Jun 30, 2026
Merged

feat: Debugger Diagnostics C++ driven displays and data#393
AlexDenfordSkyboxLabs merged 28 commits into
mainfrom
sbl/alex.denford/debugger-native-descriptors

Conversation

@AlexDenfordSkyboxLabs

@AlexDenfordSkyboxLabs AlexDenfordSkyboxLabs commented Jun 10, 2026

Copy link
Copy Markdown
Contributor
  • Added support for native driven diagnostics descriptors.
  • Bumped protocol version.
  • Fixed crosshair/tip display for graphs (removed the X/Y label in favor of a nice tip display box info with formatting)
  • Fixed several linter issues
  • Tested and verified with current version of MC as well as with the native changes (to ensure backwards compatibility)

tickFormat: formatYAxisTick,
},
marks: [
Plot.differenceY(data, { x: 'time', y: 'value' }),

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This fixes an issue where the x & y values displayed when hovering the graph (showing where your cursor is pointing at), were not using the same formatting method that the ticks/edge labels were using.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's the new hover tip UI
image

@AlexDenfordSkyboxLabs
AlexDenfordSkyboxLabs marked this pull request as ready for review June 17, 2026 22:13

@frgarc frgarc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me,
Only comment that concerns me is under App.tsx to avoid flickering as now everything is dynamic.

Comment thread src/protocol-events.ts
handler(eventMessage);
return true;
}
console.warn(`No handler found for incoming event type: ${eventMessage.type}`);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking that this extension needs a custom output, to show all here.

Image

Not for these changes.

Comment on lines +53 to +54
color: '#ffffff',
background: '#333333',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is better to use the theming CSS variables: https://code.visualstudio.com/api/references/theme-color

That will handle the case of swapping themes from the UI.

Comment on lines +98 to +114
// Merge schema tabs into the prefab list. Schema tabs whose name matches a prefab replace it;
// new names are appended. Falls back to all prefabs when no schema has arrived yet.
const mergedTabs: MergedTab[] = sortedTabPrefabs.map(tab => ({
kind: 'prefab' as const,
name: tab.name,
tab,
}));
for (const descriptor of schema) {
const existingIndex = mergedTabs.findIndex(t => t.name === descriptor.name);
if (existingIndex !== -1) {
mergedTabs[existingIndex] = { kind: 'dynamic' as const, name: descriptor.name, descriptor };
} else {
mergedTabs.push({ kind: 'dynamic' as const, name: descriptor.name, descriptor });
}
}
mergedTabs.sort((a, b) => a.name.localeCompare(b.name));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be under a hook, in this case useMemo.
That will avoid unnecessary re-renders when consuming mergedTabs.
React will detect changes on that only if the dependencies to the hook change.

@frgarc frgarc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking over feedback :shipit:


function formatRelativeTime(latestTime: number, tick: number): string {
const diff = latestTime - tick;
if (diff < 20) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be a good idea to define a constant for this value.

@AlexDenfordSkyboxLabs
AlexDenfordSkyboxLabs merged commit 8cbc2fd into main Jun 30, 2026
2 checks passed
@AlexDenfordSkyboxLabs
AlexDenfordSkyboxLabs deleted the sbl/alex.denford/debugger-native-descriptors branch June 30, 2026 00:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants