-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow periodic updates (running and stopped CPU) #50
base: main
Are you sure you want to change the base?
Conversation
- Propagate value updates back to the data provider and tracker - Simplify column declaration and provide dedicated 'edit' property -- Always render the expander on the first column - Provide edit renderer for text value changes Refactor: - Convert some utility functions to React components - Convert thenable to promises Closes eclipse-cdt-cloud#16 Add more edit controls for specific types - Enumeration Dropdown for fields with enumeration values - Boolean Checkbox edit for non-enums of width 1 Closes eclipse-cdt-cloud#22 Consider monospace font for values Closes eclipse-cdt-cloud#45
- Align enum value label with enum value options - Avoid expanding rows on double click used for editing mode - Automatically render enums and booleans as editable fields - Use dotted lines for all editable fields - Use reduced opacity for non-editable fields - Align text with editable fields
58f02de
to
46de635
Compare
As discussed directly with @jreineckearm, I pushed a commit to simplify some options:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I think this is much more intuitive now! Also slightly reorganizing the extension settings is very helpful.
Some more items to look into
- When periodic refresh is active, something seems to be wrong with rendering expand/collapse states. Example:
- Periodic refresh is
always
on. - Expand a node
- The node expands, collapses, and expands again. Ending in the requested state. But the temporary and intermediate inversion is a little irritating.
- Periodic refresh is
- I like the restructured context menu. :-)
- But it feels a bit odd to have an "ignore" option at the top. Should we reorder "Set Value Format", "Periodic Refresh", "Ignore..."?
- I assume we can't have similar structuring (Periodic Refresh group) in the "..." menu?
- The periodic refresh sometimes makes the context menu disappear while trying to navigate through it. Same for the quickpick to change the refresh period if you made it that far. This happens when you have a changing value in the visible part of the table.
- I do understand that this presumably comes from internal states to deal with on/off? But should we really allow users to have another way of turning the refreshs of next to the "mode" settings?
- Still wondering if it would make sense to have the available refresh modes as child entries here rather than the quick-pick? But could be a future enhancement after the general introduction of the feature.
src/plugin/peripheral/tree/peripheral-configuration-provider.ts
Outdated
Show resolved
Hide resolved
- Fix issue of checkbox not initializing correctly - Improve issue of not syncing correctly with outside updates - Do not show update command for auto-editable checkbox and enum - Fix linting error - Replace 'return' with 'await'
Hi Jens, thank you very much for your review! I pushed a commit that fixes the "cosmetic" parts that you mentioned. As for the behavior I might need more information on how to actually reproduce this.
I cannot reproduce this on my side. Do there have to be some actual value updates for this to appear?
I re-ordered the menu items as you suggested.
Can you give me an example of a place where some values change over time so I can see if I can reproduce this?
Agreed, allowing -1 is a bit odd. I updated the label and the validation to avoid the user setting -1. Technically, any number below or equal to 0 will still cause periodic updates to stop.
I agree that would be lovely but unfortunately, VS Code does not support checked commands (or menu items), see microsoft/vscode#109306. There even has been a proposal but nothing has been merged. I also had a quick look into a workaround, where we simply add the checkmark to the label. That would work but it still looks a bit odd in my opinion. If you want I can implement that but apparently all extensions do run into the same problem with the VS Code API. |
Thanks for the updates, @martin-fleck-at ! I will try to create a reproducer for your HW setup and share separately tomorrow. Here already some comments.
Yes, it appears to happen when a changing value is visible. If I scroll somewhere without any re-rendering happening, then the context menu becomes more stable.
Yes, will try to set something up for you. Appreciate it's a bit tedious to do these fixes w/o a reproducer at hand.
Thanks! Let me test tomorrow how this looks now.
Apologies, I remember now that we had this topic already on the Memory Inspector last year. Please ignore. |
Thanks again, @martin-fleck-at , for the recent changes! Some more test results
Saw it now also for a register group without a visibly changing value. Enable
Awesome, looks more intuitive now (at least to me :-) ).
Will try to find an example and send it offline. I saw this behavior once with the above mentioned expanded
Great, thanks! Maybe combine the two sets of parenthesis in the shown text, i.e. something like I'll send you a reproducer for a peripheral with changing values for your HW setup offline. |
- Only use '(Write Only)' on drop down label but keep option labels - Avoid jumping on expand for auto-edit rendered fields (focus issue) - Use empty string when editing a Write-Only field - Remove state handling from cell and simply render the column value
- Add configuration for periodic refresh mode and interval - Add commands to modify periodic refresh mode and interval - Add context menu entries to modify periodic refresh mode and interval Additional: - Extract configuration provider for settings, session and ws-scoped Fixes eclipse-cdt-cloud#36
- Context Menu: Mode before Interval - Settings: Mode before Interval, Group Periodic Refresh - Remove periodic refresh and mode from session and only use workspace - Make Set Periodic Refresh also available as More actions - Remove 'While Stopped' configuration option but keep logic
- Change order to: Clear, Set Mode, Set Interval - Remove mention of -1 in interval setting - Remove session parameter
52adb2b
to
bbfed78
Compare
- Fix onDebugContinued - Move '(Workspace)' suffix
Still having troubles to reproduce, unfortunately.
I moved the '(Workspace)' suffix as you suggested.
For me the quickpick stays as long as I don't click on the tree somewhere. But this might have been fixed with an update in #46 where we now no longer steal the focus.
Unfortunately, I cannot combine the text as the |
bbfed78
to
f6d318d
Compare
Additional:
Fixes #36
Please note that this PR is based on #46 and should therefore only be merged after the other PR was merged. If #46 proves to be difficult, we may rebase this commit on the main branch.