Skip to content
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

Additional Git Features and Navigator UI Improvements #1471

Merged
merged 34 commits into from
Dec 7, 2023

Conversation

austincondiff
Copy link
Collaborator

@austincondiff austincondiff commented Nov 2, 2023

Description

Improving the navigator and giving the UI design a bit more polish. See details below.

Checklist

  • Create reusable text field view for use in navigator with similar style found in Xcode
  • Explore if using a text field style instead of a few for text fields are possible (see it here) Not a viable solution
  • Refactor existing text fields to use new reusable view
    • Find navigator search field
    • Filter field across all navigators
    • Commit message field
  • Find UI design improvements
    • Adjust padding/spacing
    • Increase font size of find navigator breadcrumb pickers
    • Use pickers instead of menus for breadcrumb pickers (will do in a separate PR)
    • Add scoped toggle
    • Add "replace" field only visible when replace is selected
    • Add "include folders" and "exclude folders" fields only visible when scoped is enabled
    • Add "match case" toggle to find field
    • Add "preserve case" toggle to replace field
    • Add "scope to open editors" toggle to include folders field
    • Add "exclude ignored files from settings" toggle to exclude folders field
    • Add a "replace all" button that is only visible when replace is selected
  • Create "icon" toggle style similar to "icon" button style
  • Create custom content unavailable view (CEContentUnavailableView) for our zero-states (currently each are individually styled - not very DRY)
  • Source control navigator, changes tab improvements
    • Use new reusable text field view for commit text field
    • Add Stage/Unstage All button
    • Open changed file in editor as temporary tab when list item is selected
    • Open changed file in editor as normal tab when list item is double-clicked
    • Display changes in List (it was in a simple VStack)
    • Enable init
    • Enable remote add
    • Enable push
    • Sync git status with app UI
    • Enable periodic fetch when source control navigator is visible (every 10 seconds)
    • Provide an indicator for how many commits are ahead and behind with option to pull/push
    • Display changes list as tree (will do in another PR)
    • Combine checkboxes and M/A/D/? into toggle-able icons to the right (decided that checkboxes are more clear)
    • Add secondary action to commit button
      • Split button
      • Add secondary menu item - "Commit and push..."
      • Make "Commit and push..." functional (if push functionality exists currently)
  • Source control navigator, repositories tab
    • List branches
    • Add branch
    • Checkout branch
    • Rename branch
    • Delete branch
    • List stash entries
    • Stash changes
    • Apply stash entry
    • Delete stash entry
    • List remotes
    • Add remote
    • Delete remote

  • I read and understood the contributing guide as well as the code of conduct
  • The issues this PR addresses are related to each other
  • My changes generate no new warnings
  • My code builds and runs on my machine
  • My changes are all related to the related issue above
  • I documented my code

Screenshots

Screen.Recording.2023-11-02.at.10.23.06.AM.mov
Screen.Recording.2023-11-13.at.9.07.07.PM.mov
Screen.Recording.2023-11-18.at.1.50.57.AM.mp4
Screen.Recording.2023-11-18.at.3.12.31.AM.mp4
Screen.Recording.2023-11-19.at.12.41.43.AM.mp4
image

@austincondiff austincondiff added the help wanted Extra attention is needed label Nov 14, 2023
@austincondiff austincondiff marked this pull request as ready for review November 19, 2023 20:44
@FastestMolasses
Copy link
Member

Great PR!

Copy link
Collaborator

@thecoolwinter thecoolwinter left a comment

Choose a reason for hiding this comment

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

Leaving a partial review, I'll be able to review the rest of the UI improvements later.

Copy link
Collaborator

@thecoolwinter thecoolwinter left a comment

Choose a reason for hiding this comment

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

Finished reviewing the UI stuff. There's a couple UX papercuts in the git panes that I left notes about.

@austincondiff austincondiff changed the title Navigator Improvements Additional Git Features and Navigator UI Improvements Nov 30, 2023
@austincondiff austincondiff removed the help wanted Extra attention is needed label Nov 30, 2023
@austincondiff
Copy link
Collaborator Author

austincondiff commented Nov 30, 2023

While testing this, I discovered that some of the source control UI looks a little off when @Wouter01's new windowing system feature flag is turned on. There is no padding in some areas and the list item size is way to big. Nothing I do seems to have any effect on it. Does anyone have any idea why this is?

…or by replacing some text fields. Added more functionality to Find navigator's UI.
…aneTextField in navigators. Still a WIP. Crash occurs in changes tab of source control navigator because of duplicate keys of type 'CEWorkspaceFile'
…an now click a changed file to open it as a temporary tab in the editor, double-click to open as a normal tab.
…mmand. Checked state is synced with staged git status even when stage occurs externally.
…rce control navigator displays a content unavailable state letting the user know it isn't and offering an option to do a git init.
…trolManager as an EnvironmentObject instead of passing it down the view hierarchy
@austincondiff austincondiff force-pushed the navigator-improvements branch from 711ee8d to 2c61453 Compare December 4, 2023 16:26
Copy link
Collaborator

@thecoolwinter thecoolwinter left a comment

Choose a reason for hiding this comment

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

Looks good!

@austincondiff austincondiff merged commit 65bef99 into main Dec 7, 2023
2 checks passed
@austincondiff austincondiff deleted the navigator-improvements branch December 7, 2023 06:15
@austincondiff austincondiff restored the navigator-improvements branch December 7, 2023 06:16
@austincondiff austincondiff deleted the navigator-improvements branch December 7, 2023 06:16
@thecoolwinter thecoolwinter added the enhancement New feature or request label Dec 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants