Commit graph

606 commits

Author SHA1 Message Date
Stefan Haller cede021400 Add config for soft-wrapping the commit message body 2024-03-09 10:00:44 +01:00
Stefan Haller 98d6504d1d Make ctrl-f available in staging view
A common workflow for me is to create a fixup commit from only some of my
current changes; to do that, I enter a file, stage a few hunks, and then want to
invoke ctrl-f to find the base commit for these changes. Currently I need to esc
back to the files panel in order to do that; it's more convenient to be able to
do this right from the staging panel.
2024-03-02 10:12:03 +01:00
Tristan Déplantes 503422a72e Add author filtering to commit view
This commit introduces a new feature to the commit view, allowing users
to filter commits based on the author's name or email address. Similar
to the existing path filtering functionality, accessible through <c-s>,
this feature allows users to filter the commit history by the currently
selected commit's author if the commit view is focused, or by typing in
the author's name or email address.

This feature adds an entry to the filtering menu, to provide users with
a familiar and intuitive experience
2024-02-21 09:58:09 +01:00
Stefan Haller c7c8776371 Update Config.md 2024-02-18 15:52:06 +01:00
Alex March e354a9bb48 Deprecate git.log.showGraph and git.log.order config
Added identical properties to AppState that should eventually have their defaults set.
2024-02-16 13:23:35 +01:00
Stefan Haller b1d05b6371 Change default of git.log.showGraph to 'always'
Most people seem to prefer it to be on.
2024-02-13 14:34:40 +01:00
Stefan Haller b133318b40 Add command to squash all fixups in the current branch
To do that, change the "Apply fixup commits" command to show a menu with the two
choices "in current branch" and "above the selected commit"; we make "in current
branch" the default, as it's the more useful one most of the time, even though
it is a breaking change for those who are used to "shift-S enter" meaning
"squash above selected".
2024-01-29 09:37:47 +01:00
Jesse Duffield 7bddf53223 Improve keybinding descriptions
This adds a bunch of tooltips to keybindings and updates some keybinding descriptions (i.e. labels).

It's in preparation for displaying more keybindings on-screen (in the bottom right of the screen),
and so due in part to laziness it shortens some descriptions so that we don't need to manage both
a short and long description (for on-screen vs in-menu). Nonetheless I've added a ShortDescription
field for when we do want to have both a short and long description.

You'll notice that some keybindings I deemed unworthy of the options view have longer descriptions,
because I could get away with it.
2024-01-28 08:12:01 +11:00
Jesse Duffield 0aa6109d4d Render keybinding cheatsheet as markdown table
We're going to be adding tooltips to the cheatsheet to better explain what each actions
does. As such, we're switching to a table format rather than a list.

I'm also changing how the keys are represented, using a markdown approach rather than
an html approach
2024-01-28 08:12:01 +11:00
Jesse Duffield 269ef7f250 Support range select for staging/discarding files
As part of this, you must now press enter on a merge conflict file
to focus the merge view; you can no longer press space and if you do
it will raise an error.
2024-01-25 11:34:59 +11:00
Stefan Haller 36134006c5 Add config setting to suppress showing file icons 2024-01-22 08:40:03 +01:00
Jesse Duffield 280b4d60f8 Support select range for cherry pick
This requires us to change the 'v' keybinding for paste to something else,
now that 'v' is used globally for toggling range select. So I'm using
'shift+v' and I'm likewise changing 'c' to 'shift+c' for copying, so
that they're consistent.

We will need to clearly communicate this change in keybindings.
2024-01-19 10:50:49 +11:00
Jesse Duffield d08fafb1c4 Clear range select upon pressing 'escape'
This is the highest priority of the escape actions because it's the thing you're
most likely to want to do upon hitting escape if you have a range selected.

Applying this to the staging/patch-building views is tricky: if we want this logic
for when a range of lines is selected, we'll also need to apply it when a hunk
is selected too. I still think it's worth it though: I've often accidentally
escaped from the staging view when trying to cancel a range selection.
2024-01-19 10:47:21 +11:00
Jesse Duffield f3eb180f75 Standardise display of range selection across views
We're not fully standardising here: different contexts can store their range state however
they like. What we are standardising on is that now the view is always responsible for
highlighting the selected lines, meaning the context/controller needs to tell the view
where the range start is.

Two convenient benefits from this change:
1) we no longer need bespoke code in integration tests for asserting on selected lines because
we can just ask the view
2) line selection in staging/patch-building/merge-conflicts views now look the same as in
list views i.e. the highlight applies to the whole line (including trailing space)

I also noticed a bug with merge conflicts not rendering the selection on focus though I suspect
it wasn't a bug with any real consequences when the view wasn't displaying the selection.

I'm going to scrap the selectedRangeBgColor config and just let it use the single line
background color. Hopefully nobody cares, but there's really no need for an extra config.
2024-01-19 10:47:21 +11:00
Jesse Duffield 24a4302c52 Add range selection ability on list contexts
This adds range select ability in two ways:
1) Sticky: like what we already have with the staging view i.e. press v then use arrow keys
2) Non-sticky: where you just use shift+up/down to expand the range

The state machine works like this:
(no range, press 'v') -> sticky range
(no range, press arrow) -> no range
(no range, press shift+arrow) -> nonsticky range
(sticky range, press 'v') -> no range
(sticky range, press arrow) -> sticky range
(sticky range, press shift+arrow) -> nonsticky range
(nonsticky range, press 'v') -> no range
(nonsticky range, press arrow) -> no range
(nonsticky range, press shift+arrow) -> nonsticky range
2024-01-19 10:47:21 +11:00
Jesse Duffield a0b63090e0 Update codebase guide
I'm adding a couple more terms: Keybinding and Action, to keep things standardised
2024-01-13 12:57:49 +11:00
Jesse Duffield 53a8bd2e3f Add ability to start an interactive rebase onto an appropriate base
A common issue I have is that I want to move a commit from the top of my branch
all the way down to the first commit on the branch. To do that, I need to navigate
down to the first commit on my branch, press 'e' to start an interactive rebase,
then navigate back up to the top of the branch, then move my commit back down to
the base. This is annoying.

Similarly annoying is moving the commit one-by-one without explicitly starting
an interactive rebase, because then each individual step is its own rebase which
takes a while in aggregate.

This PR allows you to press 'i' from the commits view to start an interactive
rebase from an 'appropriate' base. By appropriate, we mean that we want to start
from the HEAD and stop when we reach the first merge commit or commit on the main
branch. This may end up including more commits than you need, but it doesn't make
a difference.
2024-01-13 12:57:49 +11:00
Jesse Duffield 5c888a0b47 Update codebase guide
fixes a line that used an incorrect path
2024-01-11 09:57:05 +11:00
Jesse Duffield caf6a3629d Add codebase guide 2024-01-11 09:43:38 +11:00
Stefan Haller 8ca78412ac Add command to find base commit for creating a fixup 2024-01-10 09:11:40 +01:00
Stefan Haller d70dd5123d Add config setting for side panel location (left or top) in half screen mode 2024-01-09 15:45:26 +01:00
Stefan Haller a6174271aa Update cheat sheets and json schema 2024-01-09 14:27:33 +01:00
Alex March 36a29f225b Add a sort order menu for local branches 2023-12-27 15:25:29 +01:00
Alex March 3fe491fcb2 Implement a sort order menu for remote branches 2023-12-22 16:30:20 +09:00
ZeroMask d00936fb4e
fix: MacOS default path misspelling 2023-12-07 11:52:39 +03:00
AzraelSec 38db574de9 chore: update cheatsheets 2023-12-07 08:30:03 +01:00
Stefan Haller 6ec109c15a Update cheatsheets
This was forgotten in #3046.
2023-12-02 10:36:15 +01:00
Jesse Duffield f5361fdcb4
commmit - enhance docs for keybinding 'c' for local branch (#3046) 2023-12-02 09:34:58 +11:00
Alan Potter 4d18b62c54
Update Stacked_Branches.md
Fix a typo.
2023-10-24 05:32:29 -04:00
zottelsheep 7ffb6ffb0f Add 'lvim' editor preset for lunarvim
Add 'lvim' as a new standardTerminalEditorPreset, since lunarvim uses an alias for nvim.
2023-10-14 15:04:23 +02:00
Karim Khaleel d02deeefd8 Add disabled compat for user config (#2833)
Treat <disabled> setting as equivalent to "null"
in keybindings user configs.
2023-10-09 22:34:50 +03:00
Sebastian 50b49ebeb1
Merge branch 'jesseduffield:master' into feature/keybinding-branch-recent 2023-10-04 09:42:53 +02:00
Sebastian Mangelsen a74c6eef40 adjust the text to received review comments 2023-10-04 09:41:00 +02:00
Nikita Karamov 8390622f70
Add Micro editor preset 2023-10-03 19:42:28 +02:00
Sebastian Mangelsen 5ebd8ac7fe commmit - enhance docs for keybinding 'c' for local branch
- closes #3030
- mention that it supports '-'
- fix documentation and builtin help
2023-10-02 18:06:24 +02:00
Louis DeLosSantos 9c72d8a2b0 Add ability to force portrait mode
A new gui config flag 'portraitMode':<string> is added to influence when
LazyGit stacks its UI components on top of one another.

The accepted values are 'auto', 'always', 'never'.

'auto': enter portrait mode when terminal becomes narrow enough

'always': always use portrait mode unconditional of the terminal
dimensions

'never': never use portraid mode

Signed-off-by: Louis DeLosSantos <louis.delos@gmail.com>
2023-09-30 20:57:38 +02:00
Stefan Haller 7af371701d Use go:generate for generating cheatsheets
This has several benefits:
- it's less code
- we're using the same mechanism to generate all our auto-generated files, so if
  someone wants to add a new one, it's clear which pattern to follow
- we can re-generate all generated files with a single command
  ("go generate ./...", or "make generate")
- we only need a single check on CI to check that all files are up to date (see
  previous commit)
2023-09-29 20:38:29 +02:00
Stefan Haller 5b8a8d356c Change the default of the "gui.borders" config to "rounded"
Most people seem to agree that it looks better than the sharp edges of "single".
2023-09-09 10:42:24 +02:00
Maria José Solano 387fbf6ab6 feat: add jump-to-panel label setting 2023-09-09 09:45:08 +02:00
AzraelSec 47d422bb8a chore: rename "Set/Unset upstream" menu to "Upstream Options"
This should already have been done when adding the "View divergence from
upstream" command, but now we're going to add yet another item to the menu that
is unrelated to setting or unsetting the upstream.
2023-09-06 00:23:35 +02:00
Stefan Haller 7774fe0ab3 Move diff context size from UserConfig to AppState 2023-09-05 13:55:30 +02:00
Stefan Haller 2e74b7177e Fix keybinding for editing config file 2023-09-04 16:52:30 +02:00
Stefan Haller 6266e19623 Add support for external diff commands (e.g. difftastic) 2023-09-04 16:52:30 +02:00
Mark Skelton e95505453e
Update docs 2023-08-25 08:52:52 -05:00
Jesse Duffield b2023f10b6
Fix: Update 'zh' to 'zh-CN' in lazygit Language Configuration (#2842) 2023-08-21 17:56:45 +10:00
Stefan Haller b2d629b50a Add scrollOffEnabled config 2023-08-21 09:03:45 +02:00
Stefan Haller 51d9f70f9e Fix section levels
These appeared as subsections of "Platform Defaults", which doesn't make sense.
2023-08-21 08:10:28 +02:00
Stefan Haller 341b9725d4 Add ScrollOffMargin user config
When set to a non-zero value, views will scroll when the selection gets this
close to the top or bottom of the view.
2023-08-15 11:40:40 +02:00
Jesse Duffield 3ea81d4a6f Add undo demo 2023-08-12 16:15:50 +10:00
Federico 0df5cb1286
Allow deleting remote tags/branches from local tag/branch views (#2738) 2023-08-10 17:39:26 +10:00
Jesse Duffield 9c5eedf748 use 'suspend' instead of 'editInTerminal' internally
'suspend' is a more appropriate name, especially now that you can choose not to suspend despite
still being in a terminal
2023-08-09 22:03:58 +10:00
Jesse Duffield ca08956f77 Use soft wrapping in config doc
Looking online I can't find any consensus about whether soft or hard wrap is better.
This post goes into the pros/cons: https://martin-ueding.de/posts/hard-vs-soft-line-wrap/

I find that editing hard-wrapped text is a pain in the ass, and it's hard to enforce
consistency. So I'm switching to soft-wrapping for this doc.
2023-08-09 21:33:12 +10:00
Jesse Duffield aa74239f05 Add nvim-remote editor preset
This allows us to jump back to the parent neovim process when we want to edit a file, rather than opening a new neovim
process within lazygit.

Arguably this should be the default, but I'm not familiar with the various ways people use lazygit with neovim.
2023-08-09 21:32:53 +10:00
Jesse Duffield ebd56bd8d5
Mention JSON schema (#2893) 2023-08-08 08:19:05 +10:00
微笑 82b5c20050
Add zh-TW to docs/Config.md
Co-authored-by: Bill ZHANG <36790218+Lutra-Fs@users.noreply.github.com>
2023-08-07 19:52:28 +08:00
EmilySeville7cfg f32fe84c9b feat(doc): better JSON schema usage explanation 2023-08-07 18:27:37 +10:00
EmilySeville7cfg fb05ee369f feat(doc): mention JSON schema 2023-08-07 03:38:30 +10:00
Jesse Duffield befd7fe63e Support mp4 videos for demos
For all videos but the first video in the readme we want to use mp4 because it's faster, better quality,
smaller, and allows you to play/pause (don't quote me on the smaller part).

HOWEVER: github won't let us reference mp4s stored in our repo from the readme, like it does for gifs
(who knows why). This is annoying because it prevents us from easily re-recording things if the UI
changes. So I've got the logic for recording to mp4 but I'm thinking of sticking to gifs for now
2023-08-02 22:21:25 +10:00
Jesse Duffield a200fccba9 Add explosion animation when nuking working tree
I've been thinking about this for a while: I think it looks really cool if nuking your working tree
actually results in a nuke animation.

So I've added an opt-out config for it
2023-08-01 22:16:04 +10:00
Jesse Duffield 9cc1d65280 Add demo test variant
We're piggybacking on our existing integration test framework to record  demos that we can include in our docs
2023-07-31 22:33:04 +10:00
Stefan Haller 66de981e91 Add a "Mark commit as base commit for rebase" command
This allows to do the equivalent of "git rebase --onto <target> <base>", by
first marking the <base> commit with the new command, and then selecting the
target branch and invoking the usual rebase command there.
2023-07-31 08:41:41 +02:00
Stefan Haller 94daf7bddc Add documentation for working with stacked branches 2023-07-31 08:34:01 +02:00
Stefan Haller 9c57444adc Remove the old experimentalShowBranchHeads mechanism and config
We are going to replace it with a better one later in this branch.
2023-07-31 08:34:00 +02:00
Jesse Duffield e356b29b4a Allow entering a submodule by pressing space 2023-07-30 18:35:23 +10:00
Jesse Duffield a313b16704 Add more worktree tests 2023-07-30 18:35:23 +10:00
Jesse Duffield 18a508b29c Update cheatsheets 2023-07-30 18:35:23 +10:00
Jesse Duffield 3a7468ecac Support opening worktree in editor 2023-07-30 18:35:23 +10:00
Red S d7f84aed8a feat: add os.copyToClipboardCmd to allow for a custom command
Issue #1055

test: CopyPatchToClipboard (temporary commit for review)
2023-07-29 19:09:59 +10:00
微笑 1431ffcebf
Corrected 'zh' to 'zh-CN' in lazygit docs for proper localization 2023-07-29 12:07:40 +08:00
Scott Callaway 9617737352 config: rely on .gitconfig for verbose commit messages
As discussed in https://github.com/jesseduffield/lazygit/pull/2599, it
makes more sense to have the user specify whether they want verbose
commits from their own git config, rather than lazygit config.

This means that we can remove all the code (including test coverage)
associated with the custom verbose flag, and lazygit will just inherit
the .gitconfig settings automatically.
2023-07-14 07:56:09 +02:00
Jesse Duffield b61ca21a84 Allow checking for merge conflicts after running a custom command
We have a use-case to rebind 'm' to the merge action in the branches panel. There's three ways to handle this:
1) For all global keybindings, define a per-panel key that invokes it
2) Give a name to all controller actions and allow them to be invoked in custom commands
3) Allow checking for merge conflicts after running a custom command so that users can add their own 'git merge' custom command
that matches the in-built action

Option 1 is hairy, Option 2 though good for users introduces new backwards compatibility issues that I don't want to do
right now, and option 3 is trivially easy to implement so that's what I'm doing.

I've put this under an 'after' key so that we can add more things later. I'm imagining other things like being able to
move the cursor to a newly added item etc.

I considered always running this hook by default but I'd rather not: it's matching on the output text and I'd rather something
like that be explicitly opted-into to avoid cases where we erroneously believe that there are conflicts.
2023-07-13 18:40:34 +10:00
Jesse Duffield 14ecc15e71 Use first class task objects instead of global counter
The global counter approach is easy to understand but it's brittle and depends on implicit behaviour that is not very discoverable.

With a global counter, if any goroutine accidentally decrements the counter twice, we'll think lazygit is idle when it's actually busy.
Likewise if a goroutine accidentally increments the counter twice we'll think lazygit is busy when it's actually idle.
With the new approach we have a map of tasks where each task can either be busy or not. We create a new task and add it to the map
when we spawn a worker goroutine (among other things) and we remove it once the task is done.

The task can also be paused and continued for situations where we switch back and forth between running a program and asking for user
input.

In order for this to work with `git push` (and other commands that require credentials) we need to obtain the task from gocui when
we create the worker goroutine, and then pass it along to the commands package to pause/continue the task as required. This is
MUCH more discoverable than the old approach which just decremented and incremented the global counter from within the commands package,
but it's at the cost of expanding some function signatures (arguably a good thing).

Likewise, whenever you want to call WithWaitingStatus or WithLoaderPanel the callback will now have access to the task for pausing/
continuing. We only need to actually make use of this functionality in a couple of places so it's a high price to pay, but I don't
know if I want to introduce a WithWaitingStatusTask and WithLoaderPanelTask function (open to suggestions).
2023-07-09 21:30:19 +10:00
Jesse Duffield 9e79ee5fe3 Add dev doc for busy/idle tracking 2023-07-09 20:57:18 +10:00
Jesse Duffield 4d734d594a Add filtering docs 2023-07-03 12:54:14 +10:00
Jesse Duffield b625eb5323 Differentiate between different filter modes
We can filter by path, by file status, and by text.
2023-07-03 12:54:14 +10:00
Jesse Duffield db7b472f9a Update cheatsheets 2023-07-03 12:54:14 +10:00
Jesse Duffield 9df634f13f Color view frame differently when searching/filtering
Given that we now persist search/filter states even after a side context loses focus, we need to make it really
clear to the user that the context is currently being searched/filtered
2023-07-03 12:54:14 +10:00
Amirzhan Aliyev 5133113142 feat(i18n): add russian translation 2023-06-28 00:34:59 +06:00
Stefan Haller ee03a0be41 Rename "Delete change" menu entry to "Discard change" in staging panel
For consistency with the previous commit.

Note that this menu entry is used both for unstaged and for staged changes, and
for staged changes it is not quite accurate, as we are not discarding changes in
that case (just unstaging them). Not sure it's worth fixing this; it's still
better than "Delete", anyway.
2023-06-26 08:19:58 +02:00
Stefan Haller 51a558040d Fix the title and text (and variable names) of the Discard Changes prompt
The title was saying "Unstage lines", which was just wrong. The text said
"Delete lines", which can be seen as a bit misleading; we are only discarding
the changes to the selected lines, not deleting the lines themselves.

For consistency, rename the config variable skipUnstageLineWarning accordingly.
2023-06-26 08:15:35 +02:00
Stefan Haller 77c5d1761d Add nerdFontsVersion config 2023-06-15 21:47:52 +02:00
Jesse Duffield a694c458dd Support authors and tags in custom command suggestions preset 2023-06-07 10:18:01 +10:00
Jesse Duffield a4db44bc3d show commits against branches 2023-06-01 19:21:24 +10:00
Stefan Haller 31a2ea1f19 Add --all to "git fetch" command when not fetching a specific remote 2023-06-01 10:13:14 +02:00
Jesse Duffield 614a30134c
Merge pull request #2688 from tzengyuxio/master 2023-05-31 09:36:12 +10:00
Tzeng Yuxio 6754335b26
Add key bindings doc for Chinese 2023-05-30 20:30:30 +08:00
Jesse Duffield 1de876ed4d Support using command output directly in menuFromCommand custom command prompt
The menuFromCommand option is a little complicated, so I'm adding an easy way to just use the command output directly,
where each line becomes a suggestion, as-is.

Now that we support suggestions in the input prompt, there's less of a need for menuFromCommand, but it probably still
serves some purpose.

In future I want to support this filter/valueFormat/labelFormat thing for suggestions too. I would like to think a little more
about the interface though: is using a regex like we currently do really the simplest approach?
2023-05-29 22:52:16 +10:00
Jesse Duffield 036a1ea519 Support suggestions generated from command in custom commands
This changes the interface a bit but it was only added earlier today so I doubt anybody is dependent on it yet.

I'm also updating the docs.
2023-05-29 22:47:35 +10:00
Jesse Duffield 16fa22a36e Add suggestionsPreset to custom commands system 2023-05-29 14:24:49 +10:00
Jesse Duffield 0e0458f355 More compact and flexible date format
You can now configure both a time format and a short time format, where the short format kicks in
when the time is within the last day
2023-05-26 17:31:39 +10:00
Jesse Duffield d772c9f1d4 Use sentence case everywhere
We have not been good at consistent casing so far. Now we use 'Sentence case' everywhere. EVERYWHERE.

Also Removing 'Lc' prefix from i18n field names: the 'Lc' stood for lowercase but now that everything
is in 'Sentence case' there's no need for the distinction.

I've got a couple lower case things I've kept: namely, things that show up in parentheses.
2023-05-25 23:52:19 +10:00
dvic ed496deeca
Add helix editor preset 2023-05-24 23:08:26 +02:00
Jesse Duffield 3eed997161 Update cheatsheet
Now that we're using the angle-bracket syntax everywhere for consistency, we need to escape
the angle brackets in the markdown of the cheatsheets.
2023-05-21 11:31:29 +10:00
Jesse Duffield 820f7b9404 Support strikethrough text style 2023-05-21 10:46:13 +10:00
Stefan Haller 46b93bba0e Add config git.mainBranches
It defaults to {"master", "main"}, but can be set to whatever branch names
are used as base branches, e.g. {"master", "devel", "v1.0-hotfixes"}. It is
used for color-coding the shas in the commit list, i.e. to decide whether
commits are green or yellow.
2023-05-16 13:20:03 +02:00
Jesse Duffield 7c66ca83c1 update cheatsheets 2023-05-11 19:02:25 +10:00
Jesse Duffield 2b30085dba Merge branch 'master' into refactor-better-encapsulation 2023-05-11 19:00:01 +10:00
Christian Rackerseder 1636931c2b
Include "kakoune" in supported edit presets 2023-05-04 08:28:58 +02:00
Christian Rackerseder 6e027f42da
Include "nvim" in supported edit presets 2023-05-03 13:30:51 +02:00
Jesse Duffield c88ecdf87c update open docs 2023-05-03 13:48:04 +10:00
Jesse Duffield 5dacbb6293 merge master into refactor-better-encapsulation 2023-05-02 19:05:42 +10:00
Stefan Haller fba1a2b5ac Add config gui.experimentalShowBranchHeads
People find the new (*) display for branch heads in the commits list confusing,
so make it opt-in for now.
2023-05-02 18:58:54 +10:00
Sean 9d68b287db Split commit message panel into commit summary and commit description panel
When we use the one panel for the entire commit message, its tricky to have a keybinding both for adding a newline and submitting.
By having two panels: one for the summary line and one for the description, we allow for 'enter' to submit the message when done from the summary panel,
and 'enter' to add a newline when done from the description panel. Alt-enter, for those who can use that key combo, also works for submitting the message
from the description panel. For those who can't use that key combo, and don't want to remap the keybinding, they can hit tab to go back to the summary panel
and then 'enter' to submit the message.

We have some awkwardness in that both contexts (i.e. panels) need to appear and disappear in tandem and we don't have a great way of handling that concept,
so we just push both contexts one after the other, and likewise remove both contexts when we escape.
2023-04-30 13:19:53 +10:00
Jesse Duffield dd31f8ecea update cheatsheets 2023-04-30 13:19:53 +10:00
Sean 49da7b482d Split commit message panel into commit summary and commit description panel
When we use the one panel for the entire commit message, its tricky to have a keybinding both for adding a newline and submitting.
By having two panels: one for the summary line and one for the description, we allow for 'enter' to submit the message when done from the summary panel,
and 'enter' to add a newline when done from the description panel. Alt-enter, for those who can use that key combo, also works for submitting the message
from the description panel. For those who can't use that key combo, and don't want to remap the keybinding, they can hit tab to go back to the summary panel
and then 'enter' to submit the message.

We have some awkwardness in that both contexts (i.e. panels) need to appear and disappear in tandem and we don't have a great way of handling that concept,
so we just push both contexts one after the other, and likewise remove both contexts when we escape.
2023-04-30 12:17:34 +10:00
Noah Gao bf3dd79b7a feat: add gitea to hosting service 2023-04-18 16:16:09 +00:00
Stefan Haller e3c5e07b20 Update documentation 2023-04-13 13:14:00 +02:00
Jesse Duffield a82d952f48
Merge pull request #2495 from jesseduffield/feature/remove-altreturn 2023-03-20 20:11:35 +11:00
Jens Kutilek 5c8bc790ff
Make arrows consistent (#2501) 2023-03-18 11:32:44 +11:00
yk-kd b5d612e6d6
Add border config (#2344)
Co-authored-by: yk-kd <yosuke.komada@gmail.com>
2023-03-18 11:23:31 +11:00
Luka Markušić f314cb3763 Remove alternative confirmation and return keymappings 2023-03-09 10:32:00 +01:00
Tyler Barnes 6735bf4c89
Update Config.md 2023-03-07 11:54:47 -08:00
Jesse Duffield 56424eb1aa remove x keybinding for opening menu so we now only use '?' 2023-02-20 19:28:45 +11:00
Ryooooooga 67b08ac239
feat: support to create tag on branch 2023-02-19 23:31:46 +09:00
Luka Markušić 8af59c3e6e Copy remote branch name to clipboard 2023-02-09 11:56:12 +01:00
stk d838965a41 Make "Toggle whitespace in diff view" a global key binding
Since it is going to affect a number of views later in the branch, it's easier
to make it global than to find all views that are affected.
2023-02-07 09:25:38 +01:00
Phanindra Kumar Paladi 01f0efb997
Merge branch 'master' into #2319_default_screen_mode 2023-01-29 10:25:14 +05:30
Jesse Duffield 996a1e469f
Merge pull request #2401 from Ryooooooga/disable-log-order 2023-01-29 14:05:31 +11:00
Ryooooooga 2183c157d4
feat(log): allow to disable git.log.order 2023-01-28 21:17:05 +09:00
stk 67fb28e2b8 Add user config gui.skipRewordInEditorWarning 2023-01-26 09:01:22 +01:00
Jesse Duffield fd86d29400
Merge pull request #2343 from Ryooooooga/commit-verbose 2023-01-17 09:19:22 +11:00
Phanindra kumar Paladi a11e91e651 replaced 'screenMode' to 'windowSize' in config 2023-01-16 20:07:21 +05:30
Phanindra kumar Paladi f4ccb68464 Added screenMode configuration to gui configuration 2023-01-11 16:51:46 +05:30
Ryooooooga acbcf9933d
docs(Config.md): add missing keybindings 2023-01-10 20:43:23 +09:00
Ryooooooga 965f7bfcb2
feat(config): change git.commit.verbose to accept "default" 2023-01-06 11:15:33 +09:00
Paul Horn d98130c3ef
Add option to allow --verbose commit in editor commits 2023-01-01 02:01:04 +01:00
Jesse Duffield f3fa9ec2d1
Merge pull request #2311 from wakaka6/add_return_alt1 2022-12-28 11:54:16 +11:00
Ryooooooga ac127f017e
chore(config): remove unused config 2022-12-26 16:14:30 +09:00
wakaka6 b6c73b3620 Change null as the default return-alt1 2022-12-20 21:39:24 +08:00
wakaka6 6bf28d325f Ament description about return-alt1 2022-12-20 14:08:33 +08:00
wakaka6 6386a03805 add return alt1 2022-12-11 15:44:25 +08:00
Arnaud PERALTA d0499286e2 keybindings cheatsheet for commit in unstaged/staged 2022-12-01 09:12:18 +11:00
Jesse Duffield 03ce22f3c9
Update docs/Config.md 2022-11-26 13:39:00 +11:00
Arnaud PERALTA 37997dcbcd [#2279] defaultFgColor entry in theme config 2022-11-21 21:48:18 +01:00
Jesse Duffield 1ac3ae1ad1 use better colour defaults 2022-11-12 14:59:15 +11:00
Ryooooooga 808b35d8f2
docs: add examples of disabling keybindings 2022-10-18 22:23:56 +09:00
Ryooooooga 14ec0cd92e
feat: allow null in keybindings 2022-10-18 22:20:03 +09:00
Ryooooooga 11316b7a48
feat: add rename stash 2022-10-16 09:12:42 +09:00
Jesse Duffield c953871ec7 use lowercase 'quote' for consistency with existing custom command template functions 2022-10-02 18:43:25 -07:00
Ryooooooga 19df238b77
feat: allow OSCommand.Quote to be invoked within a custom command 2022-09-30 21:16:45 +09:00
Takao fecf2ab810 fix: how to change the config dir for MacOS 2022-09-15 00:15:50 +09:00
Jesse Duffield 4aea005f26
Merge pull request #2098 from Ryooooooga/feature/not-a-repository-quit 2022-08-14 17:37:07 +10:00
Jesse Duffield 39e9266089
Merge pull request #2110 from mark2185/fix-ignore-or-exclude-file-menu 2022-08-14 17:35:35 +10:00
Jesse Duffield 1ef6f4c0e1 renaming 2022-08-13 13:55:08 +10:00
Jesse Duffield ae798157d2 update comments 2022-08-13 13:55:08 +10:00
Luka Markušić 0ff5b74d80 IgnoreOrExclude should be a menu 2022-08-11 14:23:02 +02:00
eetann 77622e5638 fix: document link 2022-08-10 13:17:07 +09:00
Ryooooooga 8b371ada73
feat(config): add notARepository: quit 2022-08-08 18:11:58 +09:00
Jesse Duffield 9578329cd9 update cheatsheet 2022-08-07 11:20:25 +10:00
Jesse Duffield 524bf83a4a refactor to only have one context per view 2022-08-06 13:49:11 +10:00
Jesse Duffield 932b0b593e add integration test to ensure we don't run into issues with popup focus 2022-08-01 22:17:06 +10:00
Jesse Duffield c81c046615
Merge pull request #2059 from sportshead/master 2022-07-31 16:19:59 +10:00
Luka Markušić 61e14c46b2 Add SelectedPath to the list of placeholder values 2022-07-30 08:25:40 +02:00
sportshead 168fbe0a6c Add showOutput option to docs 2022-07-28 18:57:16 +08:00
Jesse Duffield c087dca60a
Merge pull request #2027 from jesseduffield/gozes-jesse
Attempt at fixing CI
2022-07-05 19:37:09 +10:00
Jesse Duffield 5bd3eedd71 update docs 2022-07-05 19:33:44 +10:00
Juan Sanchez Montalvo 11d766053e Allow adding a file to the .git/info/exclude file 2022-07-05 19:33:44 +10:00
Michael Mead 9d304098bb feat: add confirm prompt for custom keybindings
- Supports configuring a custom confirmation prompt via `config.yml` for
  custom keybindings. A new `CustomCommandPrompt.Body` field is
  used to store the immutable body text of the confirmation popup.
- Adds a sample 'confirm' prompt to the example `config.yml`.
- Updates the `Prompts` section of the documentation to include
  'confirm' prompt type and also describe which fields pertain to it
  (i.e. `initialValue`).

Closes: https://github.com/jesseduffield/lazygit/issues/1858

Signed-off-by: Michael Mead <mmead.developer@gmail.com>
2022-07-04 11:36:13 -07:00
Ryooooooga 60049f8f4f
docs(Config.md): fix docs on specifying config file 2022-07-02 19:53:54 +09:00
Ryooooooga 92b0e0edd0
docs(Config.md): add missing keybinding.branches.renameBranch 2022-06-16 23:29:48 +09:00
Jesse Duffield de3114edc3
Merge pull request #1972 from lei4519/feature/display-whole-graph-by-default 2022-06-09 20:17:25 +10:00
Shin-JaeHeon d2a873cb40 improve korean translation 2022-06-07 23:36:24 +09:00
Shin-JaeHeon d533427173 Korean translation 2022-06-07 23:31:56 +09:00
Jesse Duffield f6ce220807
Update Custom_Command_Keybindings.md 2022-06-01 19:14:08 +10:00
Jesse Duffield b6b3be9ac7
Update docs/Config.md 2022-05-30 17:34:30 +10:00
Lay 666180cfd0 Add config param that displays the whole git graph by default 2022-05-30 13:52:39 +08:00
Jesse Duffield 8fd9dea641
Merge pull request #1936 from Ryooooooga/feature/tab-i18n 2022-05-18 22:24:45 +10:00
Ryooooooga 5275161a88
chore(i18n): localize panel titles 2022-05-18 20:55:42 +09:00
Ryooooooga 1f1d871837
feat: add ability to customize time format 2022-05-18 20:55:27 +09:00
HiromasaNojima 1ef585969f add option to always show unstaged/staged panels 2022-05-08 17:24:55 +09:00
Jesse Duffield 25b213b992 fix cheatsheet 2022-05-08 13:31:13 +10:00
Jens Pfeifle ec4b5ca134 Update cheatsheets. 2022-05-08 13:29:57 +10:00
Ryooooooga b07e0ea032
fix: fix context of edit hunk 2022-05-06 21:58:40 +09:00
Ryooooooga d458e78d95
feat: add ability to edit hunk 2022-05-06 21:53:00 +09:00
Jesse Duffield 0940e0182b
Merge pull request #1870 from mark2185/feature/stash-unstaged 2022-05-06 20:17:33 +10:00
Jesse Duffield f7fae0b82e
Merge pull request #1869 from mark2185/feature/unset-upstream 2022-05-06 20:14:13 +10:00
Jesse Duffield 6253258d4b
Merge pull request #1913 from Ryooooooga/feature/japanese 2022-05-06 08:40:43 +10:00
Ryooooooga cda359fbc9
feat(i18n): japanese translation 2022-05-05 18:42:27 +09:00
Ryooooooga 494368a241
feat: accept named colors for gui.authorColors 2022-05-04 19:03:00 +09:00
Jesse Duffield d85f4792af
Merge pull request #1894 from Ryooooooga/feature/icons 2022-05-01 12:21:32 +10:00
Ryooooooga 5524f007f3
docs(Config.md): add docs about nerd fonts 2022-04-30 23:13:49 +09:00
Jesse Duffield babb9d8656
Merge pull request #1891 from Ryooooooga/feature/improve-default-edit-command-template 2022-04-30 13:53:24 +10:00
Ryooooooga e5730cb80b
fix: improve default editCommandTemplate 2022-04-23 17:39:12 +09:00
Ryooooooga b07aeda5a6
feat(gui): show file icons 2022-04-23 12:25:40 +09:00
Brian Di Palma a5d4eccfa6
Update Custom_Command_Keybindings.md 2022-04-19 12:17:06 +01:00
Jesse Duffield 8b103b16bd add highlighting docs 2022-04-18 11:08:54 +10:00
Jesse Duffield 9b947b74a2 allow hiding bottom line 2022-04-18 09:58:36 +10:00
Jesse Duffield 6a153acc8f clearer highlighting of current line 2022-04-16 15:19:32 +10:00
Jesse Duffield 90c9c46ffc update integration test notes 2022-04-15 08:54:45 +10:00
Mukhlis Akbarrudin af5f4af6c0 docs: add alternative keybinding to scroll up/down main panel 2022-04-15 08:23:27 +10:00
Luka Markušić f83308c8df Add option to (un)set upstream for a local branch 2022-04-11 14:04:06 +02:00
TheBlob42 d0e099d2fc doc: add missing provider 2022-04-11 17:17:40 +10:00
Luka Markušić 6f7038c827 Add option to stash only unstaged files 2022-04-10 09:35:59 +02:00
Ryooooooga 3b5a019e1a feat(merge_panel): Add open/edit files in merge conflict panel 2022-04-06 08:27:03 +10:00
Jesse Duffield 48a244a923 update cheatsheets 2022-03-27 18:50:49 +11:00
Jesse Duffield 0dfb7c08b7 remove controllers struct 2022-03-27 18:16:16 +11:00
Moritz Haase 4abd80e2c4 pkg/gui: Fix crash if auto-fetch interval is non-positive
Check whether the auto-fetch interval configured is actually positive before
starting the background fetcher. If it is not, an error is logged. Also improve
the config option documentation a bit to make it easier to understand how to
disable auto-fetch.
2022-03-27 10:14:33 +11:00
Moritz Haase 240483953f config: Add option 'git.autoRefresh' to en-/disable auto-refresh
Adds a new 'autoRefresh' option to the 'git' config section that allows user to
disable auto-refresh (defaults to on). If auto-refresh is enabled, the
refreshInterval is now checked before starting the timer to prevent crashes when
it is non-positive.

Fixes #1417
2022-03-27 10:14:33 +11:00
Jesse Duffield 51baa8c17d update cheatsheet 2022-03-26 18:00:46 +11:00
Jesse Duffield ad7703df65 show namesake for child views 2022-03-26 18:00:46 +11:00