summaryrefslogtreecommitdiffstats
path: root/pkg/config
AgeCommit message (Collapse)Author
2024-04-10UserConfig validationoakio
2024-04-10Add StatusPanelView configoakio
2024-04-06Add `SpinnerConfig`Artem Belyakov
This new config section allows to customize frames and rate of thespinner
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-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-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-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-12Show popup message with breaking changes on startupStefan Haller
2024-03-11Add a commit menu to the commit message panelAbhishek Keshri
And move the "switch to editor" command into this menu. So far this is the only entry, but we'll add another one in the next commit.
2024-03-11Make keybindings for the "Amend attribute" menu configurableAbhishek Keshri
2024-03-09Add config for soft-wrapping the commit message bodyStefan Haller
2024-03-02Provide two helix presets, one for "helix" and one for "hx"Stefan Haller
The helix binary seems to be called "helix" on some distributions (e.g. Arch), but "hx" on others (e.g. Fedora). Provide presets for both, so that auto-detection from $EDITOR works.
2024-02-18Change log path to state dirChing Pei Yang
2024-02-18Use $XDG_STATE_DIR for state.ymlChing Pei Yang
2024-02-18Switch to github.com/adrg/xdgChing Pei Yang
2024-02-16Deprecate git.log.showGraph and git.log.order configAlex March
Added identical properties to AppState that should eventually have their defaults set.
2024-02-13Change default of git.log.showGraph to 'always'Stefan Haller
Most people seem to prefer it to be on.
2024-01-22Add config setting to suppress showing file iconsStefan Haller
2024-01-19Support select range for cherry pickJesse Duffield
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-19Standardise display of range selection across viewsJesse Duffield
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-19Add range selection ability on list contextsJesse Duffield
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-13Add ability to start an interactive rebase onto an appropriate baseJesse Duffield
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-10Add command to find base commit for creating a fixupStefan Haller
2024-01-09Add config setting for side panel location (left or top) in half screen modeStefan Haller
2024-01-09Add command to open git difftoolStefan Haller
2023-12-27Add a sort order menu for local branchesAlex March
2023-12-22Implement a sort order menu for remote branchesAlex March
2023-12-15fix(config): add yaml struct tag to `CustomCommandPrompt.[]Options`Emre Deger
add `yaml` struct tag for fixing uppercase issue on json schema
2023-12-07feat: introduce a copy menu into the file viewAzraelSec
2023-12-02Add UserConfig jsonschema generation scriptKarim Khaleel
2023-10-14Add 'lvim' editor preset for lunarvimzottelsheep
Add 'lvim' as a new standardTerminalEditorPreset, since lunarvim uses an alias for nvim.
2023-10-09Add disabled compat for user config (#2833)Karim Khaleel
Treat <disabled> setting as equivalent to "null" in keybindings user configs.
2023-10-03Add Micro editor presetNikita Karamov
2023-09-30Add ability to force portrait modeLouis DeLosSantos
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-30Add comments in user config structJesse Duffield
We're going to make this user config struct a more authoritative source of truth. Some of these fields weren't actually explained anywhere so I've added explanations. In places where a lot of explanation is required I've linked to existing explanations in other docs.
2023-09-09Change the default of the "gui.borders" config to "rounded"Stefan Haller
Most people seem to agree that it looks better than the sharp edges of "single".
2023-09-09feat: add jump-to-panel label settingMaria José Solano
2023-09-05Move diff context size from UserConfig to AppStateStefan Haller
2023-09-04Load defaults for AppState before reading from yamlStefan Haller
So far this hasn't been necessary because all defaults were zero values. We're about to add the first non-zero value though, and it's important that it is initialized correctly for users who have a state.yml that doesn't have it yet.
2023-09-04Add support for external diff commands (e.g. difftastic)Stefan Haller
2023-08-25Support custom keybindings for confirm discardMark Skelton
2023-08-21Add key binding for switching from the commit message panel to an editorStefan Haller
This is useful for when you begin to type the message in lazygit's commit panel, and then realize that you'd rather use your editor's more powerful editing capabilities. Pressing <c-o> will take you right there.
2023-08-21Add scrollOffEnabled configStefan Haller
2023-08-15Add ScrollOffMargin user configStefan Haller
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-09use 'suspend' instead of 'editInTerminal' internallyJesse Duffield
'suspend' is a more appropriate name, especially now that you can choose not to suspend despite still being in a terminal
2023-08-09Add nvim-remote editor presetJesse Duffield
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-09Honour editInTerminal value when opening a worktree folderJesse Duffield
There was no good reason not to do this in the first place.
2023-08-02Appease linterJesse Duffield
2023-08-01Add explosion animation when nuking working treeJesse Duffield
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