Commit Graph

30 Commits

Author SHA1 Message Date
28308c8977 updating grep for commits and stashes
when grepping for commits, searching for author initials is now possible, and will be prioritized first. this means typing ma for marcus for example will give you all commits from marcus. if no hits are found on initials it will apply that grep to the name/titles. also some highlighing has been added to commit grep

updated stash grep to include possiblility to grep for time and branches. this means you can filter for branches and times
2025-06-15 02:28:21 +02:00
dbf227a4fd adding grep to branches commits and stashes 2025-06-15 02:12:04 +02:00
3c80727058 added actual fzf for files, fully working and looks nice!! 2025-06-15 02:03:21 +02:00
9b38ef8765 adding primative fzf features to file list 2025-06-15 01:52:13 +02:00
453334de07 just updating the view because it broke a lil 2025-06-15 01:29:23 +02:00
f59381f929 feat: Add interactive line-by-line staging to ncurses diff viewer
Implement comprehensive interactive staging functionality that allows
users
to stage and unstage individual lines, similar to `git add -p` but with
a
visual interface.

New features:
- Split view mode showing unstaged changes (left) and staged changes
(right)
- Line-by-line staging: press Space on any diff line to stage/unstage it
- Tab switching between unstaged and staged panes
- Apply staged changes with 'a' key (runs `git apply --cached`)
- Visual indicators for staged vs unstaged content with proper syntax
highlighting
- Interactive unstaging: switch to staged pane and press Space to
unstage lines
- Automatic refresh of git status after staging/unstaging operations
- Proper git integration reading from both working directory and staging
area

Technical implementation:
- Added `load_file_with_staging_info()` to load unstaged changes
(staging vs working)
- Added `rebuild_staged_view_from_git()` to load staged changes (HEAD vs
staging)
- Added `stage_hunk_by_line()` for individual line staging
- Added `unstage_line_from_git()` for removing lines from staging area
- Added `apply_staged_changes()` to apply staged content to git
- Enhanced file content window with split view rendering
- Added proper cursor management for both unstaged and staged panes

This transforms the diff viewer into a full-featured interactive staging
tool,
allowing developers to create atomic commits with only specific lines
rather
than entire files.

Keybindings:
- Enter: Switch to split staging view
- Tab: Switch between unstaged/staged panes
- Space: Stage/unstage current line
- 'a': Apply staged changes to git
- 'c': Commit staged changes
- 'r': Reset staged changes
2025-06-13 16:33:45 +02:00
679ad3a35e added username and PAT prompt if user has not set that up
this is a nice feature
2025-06-12 16:00:29 +02:00
ab9ef0f6ee bruh 2025-06-11 18:09:19 +02:00
e9f8c86baa wowzers! 2025-06-11 18:04:07 +02:00
4b48526c25 line highlighter jumps over empty lines 2025-06-11 06:50:35 +02:00
a7c24f748b added commit history to branches
if you hover over a branc now you can see the commit history on that branch. it will display the hash author date title and message associated with that commit. very good very nice!!!!
2025-06-11 06:37:48 +02:00
3d00a3848f this is a test of the commits not working during critical operations
halla balla
2025-06-09 11:51:52 +02:00
7ca2268876 test commit
bruh
2025-06-08 23:04:19 +02:00
7b9e31b478 hopefully fixed the pushing
added the pushing to the branch, hoping it will show up as 1 behind when i get my laptop and make a change
2025-06-08 21:35:42 +02:00
f1b98418d9 added asking for upstream when branch lost upstream
pushing broke when upstream was not defined. this is now fixed.
2025-06-08 01:43:00 +02:00
3bb9f7b365 this is a test 2025-06-08 01:33:09 +02:00
659b7a0353 added branches pane
added branches pane with the core branch functionality
2025-06-08 01:25:00 +02:00
c7baafcbd1 added line highlighter in view pane
the view pane was working good and scrolling was fine, but it was impossible to know which line you were on because there was no cursor. this is now added, scrolling with j k ctrl d and ctrl u now works just like in vim (I LOVE VIM) this is just a change for satisfaction for now but will come in handy in the future when i make line by line and hunk staging and commitng. as comitting is onlyy possible file by file right now
2025-06-07 14:41:26 +02:00
e9406f469d added white line and a bunch of changes
here is a message
2025-06-07 02:23:27 +02:00
32333e6bd0 added full git stash features
added dropping appluing and shit
2025-06-07 01:12:03 +02:00
a7179b98b6 adding stash names
stashing the changes will prompt the user for a name
2025-06-07 01:04:22 +02:00
f505bb8dbb added git stash command and pane
ever messed up a feature and its not working, and you just dont want to work on that shit anymore, well thats how i use stash. all the changes into the stash so that i can fix it in the future (will never get worked on in the future)
2025-06-07 00:59:44 +02:00
07cab0fc86 attempt at fixing unstaged files hanging around after commit, also some miner status changes to be more clear
this change is aiming to fix the files still appearing in unstaged files even though it was just comitted. also the Pushing command would say synced! when done, this was just a filler from the fetching feature. this now has a Pushed! status, the same has been added to pulling
2025-06-06 20:23:31 +02:00
d9ec095206 added ability to open gg dd without any changes, and added pulling commits
this is a change that makes it able to have this view open without having any changes in the code. also makes it able to go into the commits pane and hit p to pull that commit
2025-06-06 16:12:29 +02:00
fe915f80b3 added a commit message box when comitting
bruh
2025-06-06 15:21:46 +02:00
01f7107c07 added git diff view with ncurses! command: gg dd
- Add ncurses-based interactive git diff viewer (gg dd command)
  - Create three-pane layout: file list, commit history, and diff
content
  - Implement file staging system with space/A keys for marking files
  - Add commit workflow with C key and title input dialog
  - Add push functionality with P key for individual commits
  - Create dynamic status bar with context-sensitive keybindings
  - Implement character-by-character text animations for status messages
  - Add auto-sync functionality to refresh files/commits every 30
seconds
  - Add spinning progress indicators for fetch/push operations
  - Fix cursor flickering and improve window layout spacing
  - Support number key navigation (1=files, 2=view, 3=commits)
  - Add proper window clearing to prevent content overlap issues
2025-06-06 15:09:58 +02:00
232e9a7a24 this is a test 2025-06-06 12:38:39 +02:00
00eb2aff0e adding a bunch of changes to gg dd command 2025-06-06 12:22:19 +02:00
c131398063 updating the marking and commit ui. 2025-06-06 11:02:34 +02:00
a1a7ec38ac this is a test commit 2025-06-06 10:46:12 +02:00