Rework the editor's menu bar, tree panel and class graph, and take ImGuiApp 3.16.8 - #144
Merged
Merged
Conversation
The menu bar carried the open document's name and the validation counts, which put a file name and a pair of numbers among File, Edit and Theme, reading as menus nobody could open. The name lives in the window title alone now, and the counts ride on the Diagnostics tab's own label, one click from the list they count. Along the way the summary turned out never to have been coloured: the scope it used picks whichever text colour reads on top of a coloured frame, so plain text inside it came out black or white. It takes the severity colour directly now, in the panel headline as well. The four trees shared one narrow column, and a schema with a dozen classes pushed the data sources and code generators off the bottom of it. Each kind now has its own tab, selecting an element opens the tab it lives in, and every "+ New" button moved to the top of its tree where it is reachable without scrolling past everything already there. The class graph opened in the top-left corner because its nodes were seeded on a ring around the origin, and ImNodes measures a node's position from the canvas's top-left. Three quarters of that ring was off the canvas, and the layout's gravity, initialised to the centroid of those seeds, held what was left in the corner. The ring is centred on the canvas now and no wider than it. The type picker was handed the schema's available types as the lazy sequence that builds them, so it saw a new set of equal objects every frame and could never recognise the one that had been picked. The list is materialised once, with the current type resolved to the instance in it. The tree tests open the tab they need first, which the harness now offers.
Three fixes the editor was waiting on, all made in that repo: a node with no pins submits an item of its own, so the class graph no longer draws over the application with "code uses SetCursorPos() to extend window/parent boundaries" and an unreferenced enum's node no longer grows eight pixels a frame; and the type picker confirms on the click that picks a row, keeps choices that share a ToString apart, and marks the row holding the current type. All eight packages that ship from that repo move together, since they release as one version and mixing them invites conflicts. ImGui.Styler 3.16.8 wants ThemeProvider 3.0.15, so that moves too. The class graph's regression test drops its Ignore and passes.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



The editor's menu bar, left panel and class graph all get their layout reworked, and the package fixes they were waiting on land with them.
What changes for the user
The menu bar is File, Edit and Theme again. The open document's name lives in the window title alone, and the validation counts ride on the Diagnostics tab's label, one click from the list they count.
The four schema trees each get a tab instead of sharing one narrow column, so a schema with a dozen classes no longer pushes its data sources and code generators off the bottom. Selecting an element opens the tab it lives in, and every "+ New" button sits at the top of its tree.
The class graph opens around the middle of its canvas instead of in the top-left corner, and no longer draws an ImGui warning over the application or grows an unreferenced enum's node wider every frame. The type picker shows what you have selected and confirms on a single click.
How
ShowDocumentStatusis gone, andDiagnosticsTabkeeps the counts on the tab label. That work turned up a defect worth naming: the summary had never actually been coloured, becauseEditorTheme.Severityscopes a widget's frame and picks whichever text colour reads on top of it, so plain text inside that scope came out black or white. The newEditorTheme.SeverityTextcolours plain text, and the diagnostics panel headline uses it too.TreeSchemadraws a tab per kind and can be asked to open one, whichSchemaEditor.SelectTreeexposes and theEdit*methods call. The "+ New" buttons moved fromOnTreeEndtoOnTreeStartin all six trees, nested member and enum value trees included.ClassGraphViewseeds its ring on the canvas centre, clamped to fit, so the layout's gravity settles the graph in view.Popups.OpenTypeListmaterialises the available types and resolves the current one to the instance in that list, because the picker redraws from the same sequence every frame andSchema.GetAvailableTypesbuilds fresh objects on each enumeration.The package bump moves all eight packages that ship from ImGuiApp together, since they release as one version, and ThemeProvider to 3.0.15 with them because ImGui.Styler 3.16.8 requires it.
Tests
100 pass, none skipped. The tree tests open the tab they need through a new harness helper. New tests cover what changed: the Diagnostics tab carries the counts, the graph opens around the middle of the canvas, and a node with no pins draws without an ImGui error and keeps its size. The last of those was written against 3.16.6, where it failed, and is what confirms the package fix.
🤖 Generated with Claude Code
https://claude.ai/code/session_01AWrfVmf1yQ7vE4ZFab7qV7