summaryrefslogtreecommitdiffstats
path: root/pkg
AgeCommit message (Collapse)Author
2024-04-07Replace min/max helpers with built-in min/maxEng Zer Jun
We upgraded our minimum Go version to 1.21 in commit 57ac9c2189458a7f0e63c2e9cac8334694a3d545. We can now replace our `utils.Min` and `utils.Max` functions with the built-in `min` and `max`. Reference: https://go.dev/ref/spec#Min_and_max Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2024-04-07pkg: fix some commenthongkuang
Signed-off-by: hongkuang <liurenhong@outlook.com>
2024-04-06Add `SpinnerConfig`Artem Belyakov
This new config section allows to customize frames and rate of thespinner
2024-03-30fixup! Introduce a yaml_utils.Walk functionStefan Haller
2024-03-29Remove our yaml forkStefan Haller
Switch back to the official go-yaml package.
2024-03-29Migrate null keybindings to "<disabled>"Stefan Haller
Unfortunately the migration code requires yaml v3, but our yaml fork is based on v2, so we need to import both in app_config.go in this commit, which is ugly. We can clean this up in the next commit.
2024-03-29Introduce a yaml_utils.Walk functionStefan Haller
2024-03-29Underline links in confirmation panelsStefan Haller
2024-03-29Make links clickable in confirmation panelsStefan Haller
This is not opt-in, we do it always. I can't imagine a situation where we wouldn't want it.
2024-03-29Make HandleGenericClick a little smarterStefan Haller
Make it recognize URLs wrapped in angle brackets, and followed by punktuation. We don't need this for the status panel, but we will need it for confirmation panels.
2024-03-29Extract a function HandleGenericClickStefan Haller
2024-03-29Cleanup: don't mess with globals in tests without resetting themStefan Haller
Changing globals in the init() function of a test file is a bad idea, as it affects all other tests that run after it. Do it explicitly in each test function that needs it, and take care of restoring the previous value afterwards.
2024-03-28Fix rewording signed commits when the log.showsignature git config is trueStefan Haller
For people who have the log.showsignature git config set to true, trying to reword a signed commit would put the signature verification into the subject field and the commit subject into the description field of the commit message panel. Amending commits, adding co-authors to a commit, and copying a commit message to the clipboard would all be broken in a similar way.
2024-03-28Fix the "Add to .git/info/exclude" command in submodules or worktreesStefan Haller
2024-03-28Add a test that demonstrates the problemStefan Haller
Using the "Add to .git/info/exclude" in a worktree results in an error message, as the test shows. The same would happen in a submodule, but I'm not adding an extra test for that, as the circumstances are the same.
2024-03-28Cleanup: simplify return statementsStefan Haller
2024-03-28Cleanup: remove pointless condition and error messageStefan Haller
The file .git/info/exclude can't possibly show up in the files panel.
2024-03-28Keep the same commit selected when exiting filtering modeStefan Haller
When exiting filtering mode, we currently keep the selection index the same in the commits panel. This doesn't make sense at all, since the index in the filtered view has no relation to the index in the unfiltered view. I often use filtering mode (either by path or by author) to find a given commit faster than I would otherwise be able to. When exiting filtering mode, it's useful to keep the same commit selected, so that I can look at the surrounding commits, see which branch it was a part of, etc. So reselect the commit again after exiting filtering mode. Sometimes this is not possible, most likely when the commit is so long ago that it's outside of the initial 300 range. In that case, at least select the commit again that was selected before I entered filtering; this is still better than arbitrarily keeping the same selection index.
2024-03-28Fix crash when filtering the keybindings menuStefan Haller
It would crash when some keybindings are set to null, and the filter string is such that only those keybindings remain visible. The reason for the crash is that when inserting non-model items (menu section headers in this case) you specify a column to align them to. This works on the assumption that the number of columns is always the same. It can cope with the case that columns are removed because they are empty for all items; but it can't cope with the case that the getDisplayStrings function returns a lower number of columns. And this is what happened here: MenuViewModel.GetDisplayStrings would omit the keybinding column when none of the entries have a keybinding. This logic is unnecessary, the generic list rendering mechanism takes care of this, so removing this logic fixes the crash. We do have to make sure though that the column is really empty when there's no keybinding, so change the logic to use FgCyan only when there's a keybinding.
2024-03-26Fix deleting update-ref todosStefan Haller
It is a bad idea to read a git-rebase-todo file, remove some update-ref todos, and write it back out behind git's back. This will cause git to actually remove the branches referenced by those update-ref todos when the rebase is continued. The reason is that git remembers the refs affected by update-ref todos at the beginning of the rebase, and remembers information about them in the file .git/rebase-merge/update-refs. Then, whenever the user performs a "git rebase --edit-todo" command, it updates that file based on whether update-ref todos were added or removed by that edit. If we rewrite the git-rebase-todo file behind git's back, this updating doesn't happen. Fix this by not updating the git-rebase-todo file directly in this case, but performing a "git rebase --edit-todo" command where we set ourselves as the editor and change the file in there. This makes git update the bookkeeping information properly. Ideally we would use this method for all cases where we change the git-rebase-todo file (e.g. moving todos up/down, or changing the type of a todo); this would be cleaner because we wouldn't mess with git's private implementation details. I tried this, but unfortunately it isn't fast enough. Right now, moving a todo up or down takes between 1 and 2ms on my machine; changing it to do a "git rebase --edit-todo" slows it down to over 100ms, which is unacceptable.
2024-03-26Cleanup: update outdated commentStefan Haller
We used to pass the todo string, but this has changed to instructions a while ago.
2024-03-26Extend delete_update_ref_todo test to actually test what it was supposed toStefan Haller
In the test we simply removed the update-ref todo but didn't make any other changes to the todos. This should really have kept everything the way it was, including the other branch head. The fact that the star was gone was really because of the bug that we are going to fix later in the branch. Change the test so that it also makes a change before the update-ref todo; this way we test that the star is gone because we deleted the update-ref, not because of the bug. To guard against the bug, we add another assertion for the branches view to test that both branches are still there. This currently fails.
2024-03-26Cleanup: fix typo in test commentStefan Haller
2024-03-23Set the `TERM` env variableTau
This communicates to pagers that we're in a very simple terminal that they should not expect to have much capabilities. See #3419
2024-03-23Fix inline status removal when recording demosStefan Haller
2024-03-23Update interactive rebase demoJesse Duffield
I'm adding an explicit delay between moving the commits and selecting the next items because otherwise it happens too fast
2024-03-22Fix container detectionaritmos
Running WSL without a container would be treated as native linux, causing problems at it would then attempt to use `xdg-open`. This was caused by `isContainer()` always returning true due to some dubious conditionals. These have been removed. The env-var check seems to not be used by lazygit, nor any common containers, and therefore appears to only exist to manually tell lazygit to behave as if it were inside of a container. This functionality has been kept, but the env-var has been changed to be all uppercaps as to comply with the POSIX standard. Fixes #2757 Bug introduced in 4d78d76
2024-03-22Change CopiedToClipboard text to start lower-caseStefan Haller
It is used in the context "'xyz' copied to clipboard", so it looks weird when it start uppercase.
2024-03-22Change toast for copying sha to clipboard to include what was copiedStefan Haller
This makes it easier to see that "y, enter" copies the full sha, whereas ctrl-o copies an abbreviated sha.
2024-03-22Change log message for copying sha to the clipboard to include "full"Stefan Haller
To make it even clearer that this is different from copying a sha with ctrl-o.
2024-03-22Add config to truncate commit hashes when copying them to the clipboardStefan Haller
I often copy hashes in the commits panel in order to paste them into Github comments (or other places), and I can't stand it when they have the full length. I picked a default of 12 for this; I find this to be a good middle ground between being reliable in large repos (12 still works in the linux kernel repo today, but it might not be enough in really huge repos) and not being too ugly (many smaller repos can probably get away with less). We deliberately don't change this for the "Copy to clipboard" menu, since this gives users a way to copy the unabbreviated sha if they need this occasionally.
2024-03-22Make it easy to create "amend!" commitsStefan Haller
To support this, we turn the confirmation prompt of the "Create fixup commit" command into a menu; creating a fixup commit is the first entry, so that "shift-F, enter" behaves the same as before. But there are additional entries for creating "amend!" commits, either with or without file changes. These make it easy to reword commit messages of existing commits.
2024-03-22Remove CreateFixupCommitDescription as it's identical to CreateFixupCommitStefan Haller
2024-03-22Support editing multiple files at once using range selectionStefan Haller
We pass all of them to a single editor command, hoping that the editor will be able to handle multiple files (VS Code and vim do). We ignore directories that happen to be in the selection range; this makes it easier to edit multiple files in different folders in tree view. We show an error if only directories are selected, though.
2024-03-22When creating a new remote, select it and fetch itStefan Haller
I'm doing these two things every time I add a new remote, in 100% of the cases, so do them automatically for me.
2024-03-22Make links in status view clickable, and underline themStefan Haller
2024-03-22Make the links in the status panel point to the current version rather than ↵Stefan Haller
master We've seen a lot of issues recently where people complain that lazygit doesn't behave as documented, but that was only because they were running the latest release but were looking at the documentation of master. Make the documentation links in the status panel point to the release that they are using in the hope that this will help a little bit with this problem.
2024-03-21Always prompt to return from subprocess if there was an errorstk
Except when we are running integration tests, in which case we never want to prompt because there wouldn't be a way to confirm the prompt.
2024-03-19Fix indentationStefan Haller
2024-03-19Improve translations for zh_TWStefan Haller
Authored-by: Oliver Tzeng <olivertzeng@proton.me>
2024-03-18Fix disabling the switch-to-editor menu item if unavailableStefan Haller
Some operations don't support switching to the editor from the commit message panel; an example is the commit message panel that appears when moving a custom patch into a new commit. Disable the "open in editor" menu entry in this case, instead of silently doing nothing.
2024-03-18Always show the "Press <c-o> to open menu" help text in the commit panelStefan Haller
Previously we would hide it if no onSwitchToEditor function was set; that was from a time when <c-o> was bound directly to the switch-to-editor command. Now it is bound to showing a menu, and that menu is always available even if no onSwitchToEditor function is set. (We rather need to disable the switch to editor item _within_ that menu, see next commit.)
2024-03-17Add missing translations for polishundg
2024-03-17Get rid of the retain-sort-order-when-filtering logic againStefan Haller
For die-hard fuzzy-searching fans it's probably in the way, so taking it out makes fuzzy filtering work better. For substring filtering it always retains the sort order anyway.
2024-03-17Rename FuzzySearchFunc to FilterFuncStefan Haller
It isn't necessarily fuzzy any more.
2024-03-17Rename FuzzySearch to FilterStringsStefan Haller
It isn't necessarily fuzzy any more.
2024-03-17Default to substring filtering, add option to go back to fuzzy filteringStefan Haller
By default we now search for substrings; you can search for multiple substrings by separating them with spaces. Add a config option gui.filterMode that can be set to 'fuzzy' to switch back to the previous behavior.
2024-03-17Don't sort the results of fuzzy.FindStefan Haller
It sorts them already, so it's unnecessary. In the next commit we use this same code for substring searching too, and in that case we don't want to sort because sorting is by Score, but we don't even fill in the score for substring searching.
2024-03-17Refresh after creating local branch, before checking it outStefan Haller
This way we see the local branch immediately when switching to the branches view, and we see an inline waiting status on it when checking it out.
2024-03-17Show inline waiting status when checking out a local branchStefan Haller