Skip to content

Ui modernization #772

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

Open
wants to merge 13 commits into
base: 2027
Choose a base branch
from

Conversation

nobody5050
Copy link

@nobody5050 nobody5050 commented Jun 11, 2025

closes #23

@nobody5050 nobody5050 force-pushed the ui-improvements-2-electric-boogaloo branch 7 times, most recently from 2e89356 to d6dd638 Compare June 11, 2025 21:38
@nobody5050 nobody5050 force-pushed the ui-improvements-2-electric-boogaloo branch from d6dd638 to 30d1cca Compare June 11, 2025 21:48
@Gold856 Gold856 mentioned this pull request Jun 12, 2025
Gold856 and others added 6 commits June 12, 2025 12:57
* Remove simple pathUtils functions

* Remove unused deps

* Fix extension build

* Delete unused stuff, do formatting touch ups

* Fold wpilibapi into extension and remove shims

* Move i18n to l10n and fix API imports

* Remove unneeded project generator code

* Fix 2025 stuff

* Fix CSS
* Move catch block

* Remove Command Palette vendordep manager

* Make webpack configs work properly

* Fix up help page layout

* Fix icon

* Remove unnecessary .then()

* Format
* Clean up utilities

* Inline file processor

* Format
@sciencewhiz
Copy link
Contributor

This looks to be doing multiple things, which makes it really hard to review. It looks like there's refactoring that's enabled by #767, which should probably be a separate PR, so that the actual UI changes are more easily reviewable. Also, it would really help for the PR to describe how the UI is improved. A picture is worth a thousand words.

* Move dependencyView back to its original location

* Move files back

* Move locale file back
@github-actions github-actions bot added the 2027 label Jul 8, 2025
@Gold856
Copy link
Contributor

Gold856 commented Jul 8, 2025

We moved several files back to their original locations to help minimize the diff. The API package folding and new utility files were not undone, solely because this originated as an deep refactoring of many dark corners of the codebase, and the changes are a little too intertwined to safely undo. This branch has already been shredded apart and reconstituted multiple times to get it in a state even remotely close to review. The codebase is fundmentally under too much tech debt to be able to do smaller incremental refactors, and we have several deeper refactors queued up that are blocked on the changes in this PR. The diff on just the TypeScript files is now +2975 lines, -1769 lines, split between modernizing the UI (the majority) and refactoring file handling for project generation and file templates. We apologize for the large diff, but hope that the PR is still reviewable enough that reviewed and merged.

If it helps with reviewing, everything in shared and the commands.ts files for both C++ and Java, except for the vendor files in shared are the files that were changed because of the file handling refactor. Everything else is either minor changes like imports or typo fixes, or it's UI modernization.

@nobody5050
Copy link
Author

nobody5050 commented Jul 8, 2025

Also, it would really help for the PR to describe how the UI is improved. A picture is worth a thousand words.

Absolutely!

Starting small, this PR adds an "install from url" section to the vendor dependencies UI that was added in 2025. In adding this, the command palette vendordep manager is officially removed as it is no longer needed for anything.
picture of install from url ui

Also, it revamps the RioLog UI to be cleaner, use VSCode UI elements and styling (including the user's VSCode theme) and adding ANSI escape sequence support so that the color of log entries can be set as they would in a normal terminal. It also adds a default "welcome" message when initialized.
image

The WPILib Help page has been updated and now includes some basic getting started tasks and a button that opens the command palette.
image

The project creation page has been updated to be paginated, make use of the user's VSCode theme and also make use of VSCode's inbuilt UI elements.
image
image
image
image

And lastly the project importer has also been updated to follow a similar design language
image
image
image

If there's anything else you'd like to know, I (or @Gold856) would be happy to answer!

Copy link
Member

@auscompgeek auscompgeek left a comment

Choose a reason for hiding this comment

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

I'll try to find some more time this evening, but here's a few things I noticed at a quick glance.

</label>
</div>
<div id="xrpRomiError" class="project-error-text">
You cannot select both Romi and XRP
Copy link
Member

Choose a reason for hiding this comment

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

I'd make these radio buttons instead of checkboxes if they're meant to be mutually exclusive?

Copy link
Author

Choose a reason for hiding this comment

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

image Checkboxes is just retaining behavior from the previous UI. I suppose it's up to the reviewer if that's something we should change.

Copy link
Contributor

Choose a reason for hiding this comment

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

Ideally they'd go away and the importer would detect them automatically #528

radio buttons are probably the more logical UI choice with the default being import for Systemcore. But wouldn't hold this up since it's existing behavior.

Copy link
Member

@auscompgeek auscompgeek left a comment

Choose a reason for hiding this comment

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

I think I've managed to look over all this now. Got a few more comments.

</div>
<div class="radio-option">
<input id="noneCB" type="radio" name="hardware" value="none" checked />
<label for="noneCB">roboRIO</label>
Copy link
Contributor

Choose a reason for hiding this comment

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

Since this is targeted to 2027, this should be Systemcore.

Copy link
Author

@nobody5050 nobody5050 Jul 21, 2025

Choose a reason for hiding this comment

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

Any chance we could get some of these ui changes in 2026? For instance, riolog is still named riolog in this pr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants