Commit Graph

166 Commits

Author SHA1 Message Date
e3e10a67c8 updated folder structure 2025-09-23 21:58:27 +02:00
a6c6b7faec just uploading a comment 2025-09-21 03:18:48 +02:00
51810fea13 Add complete README describing FERRUM shell features, usage, and build instructions 2025-09-20 21:41:39 +02:00
1170a89057 testing 2025-09-18 17:08:12 +02:00
fb3b7faad8 breuhg 2025-09-18 17:07:37 +02:00
230f5303af testing again 2025-08-27 20:56:16 +02:00
088eb6d785 first time signing 2025-08-27 20:54:52 +02:00
86f96ee350 added this file 2025-08-27 20:47:44 +02:00
560c5e54b0 added this file 2025-08-27 20:13:49 +02:00
0bde393a9e this is a change 2025-08-23 04:06:42 +02:00
815e6b7606 dette er en endring 2025-08-21 13:28:11 +02:00
d3fd316db9 this is a test 2025-08-21 12:33:23 +02:00
bad477b2c9 this is a test commit
hello man!
2025-08-01 03:00:15 +02:00
3ce167f6e5 added gpu and gpu memory usage 2025-07-17 17:38:41 +02:00
bc54bbaa6b improvements to monitor
the system monitor now reacts to terminal resizing and resizes the view
automatically. also added clearer grep/filter mode ui to signify that
you are in the search mode
2025-07-12 12:09:57 -06:00
e4d0191a88 reworked monitor command
the monitor command now uses ncurses for a better ui experience, with this change i have reworked some of the code and the list is now sorted by CPU usage. processes can now be filtered with using '/', the process list will update in real time so you can find the process you are looking fro faster
2025-07-12 00:58:57 -06:00
8e42a53557 adding command specific help with autocomplete
the help command only printed the list of commands, and did not accept arugments, the help command now takes in a command as an argument andprints out that commands guide. also added autocomplete for the help command and will suggest any command from the command list.
2025-07-11 23:13:44 -06:00
c0342aa822 fixed trans-sessional aliases
for some reason when porting to linux a long time ago the alias command didnt work properly and aliases added in one shell session would not be saved into thealiases file (by default at ~/.lsh_aliases) but this now works and loads any time
2025-07-08 21:55:32 -06:00
1c05bfb3dc just revering it back now that i know that it works in here tooooooooooo 2025-07-08 21:25:59 -06:00
6a4f0507e8 this is a test of the changes i just made and if they work in here 2025-07-08 21:24:22 -06:00
83ba4093b2 just reverting it back now that i know that it works 2025-07-08 21:23:35 -06:00
83ebb6016a this is a test of this working 2025-07-08 21:18:22 -06:00
3c73f2bcdf fixed the scrolling bug in stashes list 2025-07-08 21:01:17 -06:00
5da517315f added scrolling in the commits pane
added scrolling in the commits pane so that you can view older commits without going into them. also tried adding this to the stashes pane but because of an older bug it broke and is not working right. its added to the things to fix list
2025-07-08 15:48:59 -06:00
a039053e9f added support for username and pat prompting to push when credentials arent found by git 2025-06-29 17:22:43 -06:00
18f591e79f this is a test 2025-06-29 16:56:43 -06:00
139c762955 changed fzf and grep menues size and positioning. reduced escape handling delay to make exiting feel more responsive 2025-06-28 22:48:08 -06:00
2a1cebb1f8 this is a change i want to make
some ranfom desc of my changes
2025-06-20 02:28:53 +02:00
da321d1271 fixed border rendering issues
after i added the * indicator to commits and stashes, the left borded dissapeared, i forgot to indent the line with one to make space for the indicators.

fixed text in the view pane to stop / wrap before the last line, meaning that the last character is not in the border anymore
2025-06-15 16:06:28 +02:00
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
0245ca6ed0 this is a chanege
halla balla
2025-06-14 14:54:34 +02:00
7124a72efb this is a change
bruh
2025-06-13 16:50:02 +02:00
80f72faa50 this is a test of line staging and comitting
bruh
2025-06-13 16:49:15 +02:00
8476645a31 fix: Prevent commit message crashes from special characters
Replace shell command string building with temp file approach for commit
messages to prevent crashes from special characters, quotes, backticks,
and newlines.

Changes:
- Use `git commit -F tempfile` instead of `git commit -m "message"`
- Write commit messages to temporary files before passing to git
- Updated commit_marked_files(), commit_staged_changes_only(), and amend_commit()
- Eliminates shell command injection vulnerabilities
- Supports unlimited message length and any special characters

Fixes crashes when commit messages contain backticks, quotes, newlines,
or other shell metacharacters that were previously breaking the shell
command construction.
2025-06-13 16:48:13 +02:00
9fe5ad1af3 updated the commit size 2025-06-13 16:41:18 +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
30935b34ba this is another test
lkajsdflkjasdf
2025-06-13 16:29:00 +02:00
c70cc7c8f8 this is a test of the line by line staging
halla
2025-06-13 16:27:38 +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
51b9765959 removing unwanted commment 2025-06-12 15:12:40 +02:00
6dc3826c32 this is a commit 2025-06-11 21:41:42 +02:00
85a35dff58 added coloring and formatting in the commit history in a branch and in the commits 2025-06-11 20:07:55 +02:00
5ebb676890 change: reformatted stashes
stashes now show time ago stats instead of which stash it was. so instead of stash{0} its now 34m On main.

also gave it some formatting so that the name/title of the stash and the branch is inline. also removed the coloring from the name/title in favour of readability
2025-06-11 19:31:05 +02:00
3367abf1a8 removed weird characters being automatically inserted into commit title prompt 2025-06-11 18:55:51 +02:00
559f35de5f fix: improve UI responsiveness during git operations
- Fix show_error_popup() getmaxyx parameter order bug
- Update branch view immediately after amend operations with get_ncurses_git_branches()
- Fix push operation displaying only branch pane during force push dialog
- Remove aggressive screen clearing from commit dialog to prevent UI flicker
- Optimize post-commit refresh to only update changed windows

These changes eliminate jarring full-screen redraws and make git operations
feel much more responsive and smooth.
2025-06-11 18:30:59 +02:00
ab6ed8a274 this is a test
lkjasdlkj
2025-06-11 18:24:28 +02:00