Jesse Duffield
ad7703df65
show namesake for child views
2022-03-26 18:00:46 +11:00
Jesse Duffield
13b90ac37f
support viewing commits of reflog entry and show better view title
2022-03-26 18:00:46 +11:00
Jesse Duffield
a34bdf1a04
update linters
2022-03-19 12:12:57 +11:00
Jesse Duffield
8fd6338527
move workspace reset menu into controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
ee1337b931
add remote branches controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
675510ba53
fix integration test
2022-03-17 19:13:40 +11:00
Jesse Duffield
ef7c4c9ca9
refactor custom commands
...
more custom command refactoring
2022-03-17 19:13:40 +11:00
Jesse Duffield
952a4f3f23
prevent interrupting confirmation panel
2022-03-17 19:13:40 +11:00
Jesse Duffield
46e9946854
refactor credential handling
2022-03-17 19:13:40 +11:00
Jesse Duffield
d991d74b06
add commit message controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
ecaff7fc6c
add commit files controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
c685a413c9
stash controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
a643957f89
include stash in commitish controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
e842d1bc9e
move git flow
2022-03-17 19:13:40 +11:00
Jesse Duffield
8a555dd62e
refactor
2022-03-17 19:13:40 +11:00
Jesse Duffield
bef26b9634
add common commit controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
574c5ca0de
add subcommits controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
eab00de273
reflog controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
371b8d638b
more consistent naming
2022-03-17 19:13:40 +11:00
Jesse Duffield
943a8e83da
ensure we retain state when returning to submodule parent
2022-03-17 19:13:40 +11:00
Jesse Duffield
41527270ed
appease linter
2022-03-17 19:13:40 +11:00
Jesse Duffield
722410aded
refactor controllers
2022-03-17 19:13:40 +11:00
Jesse Duffield
b93b8cc00a
controller for viewing sub commits
2022-03-17 19:13:40 +11:00
Jesse Duffield
cd31a762b9
rename OSCommand field to os
2022-03-17 19:13:40 +11:00
Jesse Duffield
d82f175e79
refactor contexts
2022-03-17 19:13:40 +11:00
Jesse Duffield
145c69d9ae
working again
2022-03-17 19:13:40 +11:00
Jesse Duffield
482bdc4f1e
more refactoring
2022-03-17 19:13:40 +11:00
Jesse Duffield
8e3484d8e9
add global controller
2022-03-17 19:13:40 +11:00
Jesse Duffield
226985bf76
refactor keybindings
2022-03-17 19:13:40 +11:00
Jesse Duffield
2db4636815
no more indirection
2022-03-17 19:13:40 +11:00
Jesse Duffield
2a1e3faa0c
resetting controllers on new repo
2022-03-17 19:13:40 +11:00
Jesse Duffield
0a8cff6ab6
some more refactoring
2022-03-17 19:13:40 +11:00
Jesse Duffield
182c999ee0
fix linting
2022-03-17 19:13:40 +11:00
Jesse Duffield
b5515da00b
move commit files context into new structure
2022-03-17 19:13:40 +11:00
Jesse Duffield
c084abb378
move more view model logic into the files view model
2022-03-17 19:13:40 +11:00
Jesse Duffield
8ea7b7a62e
migrate files context to new structure
2022-03-17 19:13:40 +11:00
Jesse Duffield
f97de692e3
move helpers into their own struct
2022-03-17 19:13:40 +11:00
Jesse Duffield
2692637fbe
standardise naming
2022-03-17 19:13:40 +11:00
Jesse Duffield
77d0732fa8
add actions abstraction
2022-03-17 19:13:40 +11:00
Jesse Duffield
138be04e65
refactor contexts code
2022-03-17 19:13:40 +11:00
Jesse Duffield
1a74ed3214
avoid deadlock
2022-03-17 19:13:40 +11:00
Jesse Duffield
a2318d75b5
fix some things
2022-03-17 19:13:40 +11:00
Jesse Duffield
1dd7307fde
start moving commit panel handlers into controller
...
more
and more
move rebase commit refreshing into existing abstraction
and more
and more
WIP
and more
handling clicks
properly fix merge conflicts
update cheatsheet
lots more preparation to start moving things into controllers
WIP
better typing
expand on remotes controller
moving more code into controllers
2022-03-17 19:13:40 +11:00
Jesse Duffield
a90b6efded
start refactoring gui
2022-03-17 19:13:40 +11:00
Jesse Duffield
fa8571e1f4
rename field
2022-03-17 19:01:28 +11:00
David Roman
b8fc829f86
Record current directory on switch
2022-03-17 19:01:28 +11:00
Ram Bhosale
7be25a105d
allow skipping confirmation prompt after opening subprocess
2022-03-17 17:52:31 +11:00
Matt Cles
9adf4a1908
Add shared function for loading map of custom colors
2022-02-01 18:55:45 +11:00
Matt Cles
4df7646654
Add configurable colors for branch prefixes
...
Branches can now be colored based on their prefix, if it matches
a user defined prefix in the config file. If no user defined
prefix matches, then it will fallback to the defaults: green for
'feature', yellow for 'bugfix', and red for 'hotfix'. All
remaining branches will be set to the default text color.
2022-02-01 18:55:45 +11:00
Jesse Duffield
c8cc18920f
improve merge conflict flow
2022-01-26 14:50:47 +11:00
Jesse Duffield
5b7dd9e43c
properly resolve cyclic dependency
2022-01-22 10:48:51 +11:00
Jesse Duffield
4ab5e54139
add support for git bisect
2022-01-22 10:48:51 +11:00
Birger Skogeng Pedersen
ab84410b41
check returned error (if any) from UpdateWindowTitle
2022-01-21 23:13:39 +11:00
Birger Skogeng Pedersen
62a7d9bbcc
invoke title-setting shell command appropriately
2022-01-21 23:13:39 +11:00
Birger Skogeng Pedersen
555d8bbc96
set repo name as window title when loading repo, fix #1691
2022-01-21 23:13:39 +11:00
Jesse Duffield
0092c9d08d
fix bug with subprocess
2022-01-16 03:32:09 +00:00
Jesse Duffield
cdcfeb396f
stop refreshing the screen so much
2022-01-15 14:15:41 +11:00
Jesse Duffield
ee15202207
add newline after message because it looks like the message doesn't appear otherwise for some reason
2022-01-09 14:09:53 +11:00
Jesse Duffield
18f48a43d5
add some more linters
2022-01-09 14:09:53 +11:00
Jesse Duffield
364c5db19c
shorten name
2022-01-09 14:09:53 +11:00
Jesse Duffield
f503ff1ecb
start breaking up git struct
2022-01-09 14:09:53 +11:00
Jesse Duffield
48a4565d1f
remove log of error now that we're returning it normally
2022-01-07 11:01:42 +11:00
Jakob Kogler
ee7a6391a8
remove redundant commit
2022-01-07 11:01:42 +11:00
Jakob Kogler
68fc6059d3
rename variable to failedCommitMessage
2022-01-07 11:01:42 +11:00
Jakob Kogler
f981255a5b
don't ignore error when commit with subprocess fails
...
If signing by GPG is enabled, the git commit command will be executed in
a subprocess, differently from when it is executed without GPG signing.
In case of an error, e.g. a failing pre-commit hook, the error needs to
be passed along, and not just ignored.
2022-01-07 11:01:42 +11:00
Jakob Kogler
beedc2553d
remember the message if commit fails
...
In case a commit fails, e.g. because a pre-commit hook returns an error,
lazygit will now remember the commit message and will suggest it during
the next commit (e.g. after fixing the error of the pre-commit hook).
2022-01-07 11:01:42 +11:00
Jesse Duffield
0d3e5e6a1d
simplify fetch
2022-01-07 10:52:51 +11:00
Jesse Duffield
91fe68576c
refactor
2022-01-07 10:52:51 +11:00
Jesse Duffield
192a548c99
refactoring the config struct
2022-01-04 09:07:15 +11:00
Jesse Duffield
01ea5813a8
align Gui struct with GitCommand
2022-01-04 09:07:15 +11:00
Jesse Duffield
18ab086126
introduce Common struct for passing around common stuff
2022-01-04 09:07:15 +11:00
Jesse Duffield
b4c078d565
WIP
2022-01-04 09:07:15 +11:00
Jesse Duffield
18283ad41b
add popup handler for easier testing
2021-12-06 22:37:28 +11:00
Jesse Duffield
9a9e3d506d
more consistent rendering
2021-11-05 07:58:21 +11:00
Jesse Duffield
ccd80a0e4b
add menu options for log stuff
2021-11-05 07:58:21 +11:00
Jesse Duffield
37be9dbea1
support scrolling left and right
2021-11-05 07:58:21 +11:00
Jesse Duffield
802cfb1a04
render commit graph
2021-11-05 07:58:21 +11:00
Jesse Duffield
2fc1498517
some refactoring in anticipation of the graph feature
2021-11-01 10:03:49 +11:00
Jesse Duffield
c47c539e12
support user-configurable author colours
2021-10-30 18:26:06 +11:00
Jesse Duffield
3eb124c732
easier hiding of command log
2021-10-23 12:54:57 +11:00
Jesse Duffield
ca7252ef8e
suggest files when picking a path to filter on
...
async fetching of suggestions
remove limit
cache the trie for future use
more
more
2021-10-19 09:02:42 +11:00
Jesse Duffield
d02e52989e
small changes
2021-10-16 12:22:34 +11:00
mjarkk
913a2fd065
Allow having multiple config files
2021-10-16 12:22:34 +11:00
Jesse Duffield
ab0117c416
fix some encodings
2021-09-27 19:58:24 +10:00
mjarkk
79848087bc
Switch to github.com/gookit/color for terminal colors
2021-07-30 15:14:46 +02:00
Davyd McColl
a9f04d3925
✨ facilitate toggling whitespace in the diff view with a hotkey (c-w by default)
2021-07-01 17:13:13 +10:00
Jesse Duffield
ce7cbe58a0
naming change
2021-06-14 18:17:08 +10:00
Andrei Yangabishev
7588d5290b
ShowTotal flag
2021-06-10 12:43:05 +03:00
Jesse Duffield
93bf691fd6
refactoring
2021-06-06 09:12:49 +10:00
Jesse Duffield
a99e6ba071
update release notes
2021-04-20 18:34:47 +10:00
Jesse Duffield
604ee02cd9
ignore east asian width setting to avoid broken frame rendering
2021-04-19 23:06:05 +10:00
Jesse Duffield
98375dc902
refactor merge panel
2021-04-18 18:58:09 +10:00
Jesse Duffield
e73de332a1
refactor line by line panel
2021-04-18 16:55:09 +10:00
Jesse Duffield
06a8eb115c
make command log size configurable
2021-04-11 23:36:34 +10:00
Jesse Duffield
0bebfe454e
pull out function
2021-04-11 23:36:34 +10:00
Jesse Duffield
393ce05860
allow focusing on command log view
2021-04-11 17:07:49 +10:00
Jesse Duffield
4f03d7733a
allow showing, hiding, and scrolling the extras panel
2021-04-11 17:07:49 +10:00
Jesse Duffield
f2007f4d95
support scrolling extras view
2021-04-11 17:07:49 +10:00
Jesse Duffield
6fbe660f96
full coverage for logging commands
2021-04-11 17:07:49 +10:00
Jesse Duffield
bb918b579a
start adding support for logging of commands
2021-04-11 17:07:49 +10:00
Jesse Duffield
e145090046
add cmdLog panel
2021-04-11 17:07:49 +10:00
Jesse Duffield
8d416634ba
update release notes
2021-04-11 10:21:53 +10:00
Jesse Duffield
e092da5f78
pause background threads when running subprocess
2021-04-10 12:16:45 +10:00
Jesse Duffield
e42e7e5cbd
fix commit amend
2021-04-10 11:54:38 +10:00
Jesse Duffield
4f700c23ba
fix crash on first open
2021-04-07 22:59:53 +10:00
Jesse Duffield
8c93289a72
reduce chance of deadlock by using a RW mutex on the context stack
2021-04-06 19:34:32 +10:00
Jesse Duffield
f09309485a
remove time limit
2021-04-06 19:34:32 +10:00
Jesse Duffield
7178bab6b4
only re-use repo state when jumping in and out of submodules
2021-04-06 19:34:32 +10:00
Jesse Duffield
7bc6dc5cf3
show branches context when starting in filtering mode
2021-04-06 19:34:32 +10:00
Jesse Duffield
8301bba8ad
make it more likely for CI to work
2021-04-06 19:34:32 +10:00
Jesse Duffield
843b8ceab0
support tcell simulation screen
2021-04-06 19:34:32 +10:00
Jesse Duffield
6a0066253f
move recording code into gocui
2021-04-06 19:34:32 +10:00
Jesse Duffield
4fe512ff3a
test
...
type safe view access
2021-04-06 19:34:32 +10:00
Jesse Duffield
4b69ab08c1
WIP
2021-04-06 19:34:32 +10:00
Jesse Duffield
633b6f596d
WIP
2021-04-06 19:34:32 +10:00
Jesse Duffield
e6274c0757
remove sentinel errors
2021-04-06 19:34:32 +10:00
Jesse Duffield
0898a7bb57
refactor
2021-04-06 19:34:32 +10:00
Jesse Duffield
fafd5234bd
refactor to get view tab context map into gui state
2021-04-06 19:34:32 +10:00
Jesse Duffield
f1d7f59e49
switching repos without restarting the gui
2021-04-06 19:34:32 +10:00
Jesse Duffield
bc9a99387f
refactor of contexts and filtering
2021-04-06 19:34:32 +10:00
Jesse Duffield
69e9f6d29d
use suspense rather than close the gui when switching to a subprocess
2021-04-06 19:34:32 +10:00
Jesse Duffield
1fb2317bac
use true output mode
2021-04-06 19:34:32 +10:00
Jesse Duffield
6a6024e38f
use tcell via porting over code from awesome-gocui
2021-04-06 19:34:32 +10:00
Jesse Duffield
cc9293b386
add mutex to prevent crashes with merge conflicts
2021-04-02 11:09:12 +11:00
Jesse Duffield
efe43077bc
fix name
2021-04-02 11:00:15 +11:00
Jesse Duffield
af09223dd5
refactor
2021-04-02 11:00:15 +11:00
Jesse Duffield
7d62f103e4
big refactor to give our enums actual types
2021-04-02 11:00:15 +11:00
Jesse Duffield
9e85d37fb9
refactor to no longer call these things file changes
2021-04-02 11:00:15 +11:00
Jesse Duffield
332a3c4cbf
file tree for commit files
2021-04-02 11:00:15 +11:00
Jesse Duffield
e52cec9cdf
small refactor
2021-03-30 21:57:00 +11:00
Jesse Duffield
1b94462410
rename some things
2021-03-30 21:57:00 +11:00
Jesse Duffield
6fc3c03c4b
allow configuring to show file tree on startup
2021-03-30 21:57:00 +11:00
Jesse Duffield
a31db3df9c
support toggling collapsed
2021-03-30 21:57:00 +11:00
Jesse Duffield
45939171ea
WIP
...
start moving to new interface
WIP
WIP
WIP
WIP
WIP
2021-03-30 21:57:00 +11:00
Jesse Duffield
ad1468f66f
better handling of discarding files
2021-03-20 12:46:27 +11:00
Jesse Duffield
043cb2ea44
reload config whenever returning to gui
2021-02-24 02:45:05 -08:00
Nick Flueckiger
6f0f70bd92
Adding setup and config
2021-02-08 14:25:24 -08:00
Jesse Duffield
f31fbc10f6
soft code finding of suggestions
2020-11-28 20:48:17 +11:00
Jesse Duffield
be404068ff
support labels for suggestions which are distinct from values
2020-11-28 20:48:17 +11:00
Jesse Duffield
da3b0bf7c8
Start on supporting auto-suggestions when checking out a branch
...
switch to other fuzzy package with no dependencies
2020-11-28 20:48:17 +11:00
Jesse Duffield
682db77401
fix lint errors
2020-11-18 08:36:19 +11:00
Jesse Duffield
63f6d0c036
release notes in status panel
2020-10-10 00:23:01 +11:00
Jesse Duffield
4c9ec88be5
fix mutex deadlock
2020-10-10 00:23:01 +11:00
Jesse Duffield
9011271a01
fix another panic error
2020-10-10 00:23:01 +11:00
Jesse Duffield
795e4da8b8
do not put mutexes on state else we might unlock an unlocked mutex
2020-10-10 00:23:01 +11:00
Jesse Duffield
79e59d5460
add some safe goroutines
...
WIP
2020-10-10 00:23:01 +11:00
Jesse Duffield
2e05ac0c90
paging keybindings for line by line panel
...
support searching in line by line panel
move mutexes into their own struct
add line by line panel mutex
apply LBL panel mutex
bump gocui to prevent crashing when search item count decreases
2020-10-10 00:23:01 +11:00
Jesse Duffield
ece93e5eef
support recording sessions for testing purposes
2020-10-10 00:23:01 +11:00
Jesse Duffield
37bb89dac3
type i18n
2020-10-10 00:23:01 +11:00
Jesse Duffield
ca31e5258f
store popup version in state not config so that we never need to write to the user config
2020-10-10 00:23:01 +11:00
Jesse Duffield
4912205adb
remove viper
...
WIP
2020-10-10 00:23:01 +11:00
Jesse Duffield
7b4a0f20b2
add submodules context
2020-10-02 08:09:42 +10:00
Jesse Duffield
ce6f8ed1bc
move models folder into commands folder
2020-09-29 20:48:49 +10:00
Jesse Duffield
1759ddf247
move OS commands into their own package
2020-09-29 20:48:49 +10:00
Jesse Duffield
f9643448a4
move commit files
2020-09-29 20:48:49 +10:00
Jesse Duffield
91f0b0e28f
move stash panel
2020-09-29 20:48:49 +10:00
Jesse Duffield
8d2af5cc61
move file and submodule
2020-09-29 20:48:49 +10:00
Jesse Duffield
eda4619a4f
move remotes and remote branches
2020-09-29 20:48:49 +10:00
Jesse Duffield
e849ca3372
move tags
2020-09-29 20:48:49 +10:00
Jesse Duffield
630e446989
move commits model into models package
2020-09-29 20:48:49 +10:00
Jesse Duffield
44248d9ab0
pull branch model out into models package
2020-09-29 20:48:49 +10:00
Jesse Duffield
914fb36173
allow entering and returning from submodule
2020-09-29 18:21:59 +10:00
Jesse Duffield
b8da166ab1
support discarding submodule changes
2020-09-29 18:21:59 +10:00
Jesse Duffield
077f113618
add in-built logging support for a better dev experience
2020-09-26 11:00:50 +10:00
Jesse Duffield
40bec49de8
more efficient refreshing of rebase commits
2020-08-27 21:51:07 +10:00
Jesse Duffield
45a0378c01
do not create error panel for sentinel errors
2020-08-25 22:21:15 +00:00
Jesse Duffield
44ee28bb2e
support alacritty
2020-08-24 09:19:56 +10:00
Jesse Duffield
0f7003d939
allow spamming the p key
2020-08-23 11:30:29 +00:00
Jesse Duffield
66bd86b9b7
set keybindings after initialising views
2020-08-23 17:49:58 +10:00
Jesse Duffield
94601b4dc9
use context to return to the correct view
2020-08-23 14:29:18 +10:00
Jesse Duffield
ed85ea69bd
cleanup of list context file
2020-08-23 14:29:18 +10:00
Jesse Duffield
5638a40007
carry more mode state across after returning from subprocess
2020-08-23 14:29:18 +10:00
Jesse Duffield
d6005dc0eb
more accurate comment
2020-08-23 14:29:18 +10:00
Jesse Duffield
148f601bcb
cleanup now that we're always using the same diff command
2020-08-23 14:29:18 +10:00
Jesse Duffield
c2b154acad
better handling of our different modes and also cherry picking
2020-08-23 14:29:18 +10:00
Jesse Duffield
fbd61fcd17
refactor how we handle different modes
2020-08-23 14:29:18 +10:00
Jesse Duffield
974c6510b8
add sub commit context
2020-08-23 14:29:18 +10:00
Jesse Duffield
59f5f5c1af
refactor
2020-08-23 14:29:18 +10:00
Jesse Duffield
2d90e1e8ee
commit files kind of generalised
2020-08-23 14:29:18 +10:00
Jesse Duffield
ddf25e14af
allowing commit files to be viewed in reflog as well
2020-08-23 14:29:18 +10:00
Jesse Duffield
146722beb8
rename to SelectedLineIdx
2020-08-23 14:29:18 +10:00
Jesse Duffield
eb5e54e9fd
use interface for panel state rather than pointer
2020-08-23 14:29:18 +10:00
Jesse Duffield
99707a527d
WIP
2020-08-23 14:29:18 +10:00
Jesse Duffield
419cb9feb8
more standardisation
2020-08-23 14:29:18 +10:00
Jesse Duffield
a32947e7a7
prepare for OnRender prop
2020-08-23 14:29:18 +10:00
Jesse Duffield
2fdadd383a
introduce new approach to handling tab states
2020-08-23 14:29:18 +10:00
Jesse Duffield
9a2dc3fe15
stop crash due to context stack not being initialized
2020-08-23 14:29:18 +10:00
Jesse Duffield
a12d18146c
better logic for taking focus away from popup panels
2020-08-23 14:29:18 +10:00
Jesse Duffield
c9ae54a8c8
remove previous view
2020-08-23 14:29:18 +10:00
Jesse Duffield
7f89113245
WIP
2020-08-23 14:29:18 +10:00
Jesse Duffield
0ea0c48631
WIP
2020-08-23 14:29:18 +10:00
Jesse Duffield
4f4bb40ea6
support opening lazygit outside a git directory
2020-08-16 22:59:58 +10:00
Jesse Duffield
28cd827cea
better popups
2020-08-16 09:07:54 +10:00
Jesse Duffield
ffda2839e0
remove anonymous reporting popup cos we dont do it anymore anyway
2020-08-16 09:07:54 +10:00
Jesse Duffield
0822a9296c
rename
2020-08-15 18:01:43 +10:00
Jesse Duffield
d9fa02c53b
clean up interface for popup panels
2020-08-15 18:01:43 +10:00
Jesse Duffield
826d1660c9
move patch stuff into its own package
2020-08-15 11:41:37 +10:00
Jesse Duffield
fcd5aea04e
support multiple modes of git pull
2020-08-12 18:47:16 +10:00
Jesse Duffield
79e73d2eff
minor cleanup
...
WIP
2020-08-12 18:47:16 +10:00
Jesse Duffield
cf5cefb2d6
allow user to scroll themselves inside merge panel
2020-05-19 18:44:53 +10:00
Jesse Duffield
40fbce91ce
add new diff mode
...
WIP
WIP
WIP
WIP
WIP
WIP
WIP
2020-03-29 18:26:24 +11:00
Jesse Duffield
33d287d2f0
remove old diff mode code
2020-03-29 18:26:24 +11:00
Jesse Duffield
8822c409e2
split reflog commits into ReflogCommits and FilteredReflogCommits
2020-03-29 11:37:29 +11:00
Jesse Duffield
d90d9d7330
reset state on each Run() call
2020-03-29 11:37:29 +11:00
Jesse Duffield
a8db672ffb
refactor gui.go
2020-03-29 11:37:29 +11:00
Jesse Duffield
76b66ae26f
properly reset gui state when restarting or coming back from a subprocess
2020-03-29 11:37:29 +11:00
Jesse Duffield
a2790cfe8e
rename to filtered mode
2020-03-29 11:37:29 +11:00
Jesse Duffield
624ae45ebb
allow scoped mode where the commits/reflog/stash panels are scoped to a file
...
WIP
restrict certain actions in scoped mode
WIP
2020-03-29 11:37:29 +11:00
Jesse Duffield
2756b82f57
fix width of half screen mode
2020-03-29 11:37:29 +11:00
Jesse Duffield
814ee24c8d
better error handling
2020-03-28 11:59:45 +11:00
Jesse Duffield
3f7ec3f3b8
load reflog commits in two stages to speed up startup time
2020-03-28 11:59:45 +11:00
Jesse Duffield
f7add8d788
smarter refreshing for tags and remotes
2020-03-28 11:59:45 +11:00
Jesse Duffield
c1a4bd0482
more smart refreshing
...
WIP
WIP
WIP
WIP
WIP
fix how diff entries are handled
WIP
WIP
WIP
WIP
WIP
WIP
2020-03-28 11:59:45 +11:00
Jesse Duffield
61b4bbf74e
clean up signature
2020-03-28 11:59:45 +11:00
Jesse Duffield
198d237679
more centralised handling of refreshing
2020-03-28 11:59:45 +11:00
Jesse Duffield
efb51eee96
more efficient refreshing
2020-03-28 11:59:45 +11:00
Jesse Duffield
83757f1065
limit size of menu panel
2020-03-26 21:44:33 +11:00
Jesse Duffield
c3aefdb98e
stateless undos and redos
2020-03-25 09:39:04 +11:00
Jesse Duffield
daecdd7c2b
redoing
2020-03-25 09:39:04 +11:00
Jesse Duffield
f80d15062b
use reflog undo history pointer
2020-03-25 09:39:04 +11:00
Jesse Duffield
3aab37611a
show status of selected cherry picked commits
2020-03-19 21:42:21 +11:00
Jesse Duffield
1be0ff8da7
better upstream tracking and allow renaming a branch
2020-03-18 21:29:06 +11:00
Jesse Duffield
7df4b736cf
be a bit more lenient
2020-03-09 12:41:41 +11:00
Jesse Duffield
e47ad846c4
big golangci-lint cleanup
2020-03-09 12:23:13 +11:00
Jesse Duffield
31e201ca52
allow configuring side panel width
2020-03-04 00:12:23 +11:00
Jesse Duffield
355f1615ab
supporing custom pagers step 1
2020-03-04 00:12:23 +11:00
Jesse Duffield
f94d0be2c9
refactor the way we render lists
2020-02-25 21:21:07 +11:00
Jesse Duffield
9fd9fd6816
better commit lines in fullscreen mode
2020-02-25 21:21:07 +11:00
Jesse Duffield
fdb543fa7d
add half and fullscreen modes
2020-02-25 08:45:30 +11:00
Jesse Duffield
52b5a6410c
show item counts in frames
2020-02-25 07:19:46 +11:00
Jesse Duffield
78b62be96f
better handling of clearing the search
2020-02-24 22:18:04 +11:00
Jesse Duffield
46be280c92
support searching in side panels
...
For now we're just doing side panels, because it will take more work
to support this in the various main panel contexts
2020-02-24 22:18:04 +11:00
Jesse Duffield
fabdda0492
allow customizing background color in staging mode
2020-02-23 18:37:19 +11:00
Jesse Duffield
f062e1dcda
ignore carriage returns
2020-02-09 16:43:02 +11:00
Jesse Duffield
5f71f87496
correctly compare new main height to previous
2020-02-03 21:50:31 +11:00
Jesse Duffield
df050472a1
more ticker improvements
2020-02-02 11:26:24 +11:00
Jesse Duffield
cf6be928a3
only rerender app status when we need to
2020-02-01 00:23:22 +11:00
Jesse Duffield
c907c55144
close more things when switching repos or to a subprocess
2020-01-31 20:53:08 +11:00
Jesse Duffield
64782a433e
fix segfault on line by line panel
...
The state object is sometimes undefined in the onclick method of the
line by line panel. Because we set it to nil in a bunch of places,
I've decided to just change the main context to 'normal' before setting
it to nil anywhere. That way the keybindings for the line by line panel
won't get executed and we won't get a segfault.
2020-01-31 08:27:49 +11:00
Jesse Duffield
1a6d269063
split main view vertically
...
When staging lines (or doing anything that requires the main view to split into two)
we want to split vertically if there's not much width available in the window.
If there is enough width we will split horizontally. The aim here is to allow for
sufficient room in the side panel. We might need to tweak this or make it configurable
but I think it's set to a pretty reasonable default i.e. switching to split vertically
when the window width falls under 220
2020-01-29 18:44:50 +11:00
Jamie Brynes
810adab957
handle case where file watcher is disabled
2020-01-16 00:30:53 +00:00
Jesse Duffield
77a82e9d51
use view line height to see if you should stop scrolling
2020-01-12 13:55:14 +11:00
Jesse Duffield
23bcc19180
allow fast flicking through any list panel
...
Up till now our approach to rendering things like file diffs, branch logs, and
commit patches, has been to run a command on the command line, wait for it to
complete, take its output as a string, and then write that string to the main
view (or secondary view e.g. when showing both staged and unstaged changes of a
file).
This has caused various issues. For once, if you are flicking through a list of
files and an untracked file is particularly large, not only will this require
lazygit to load that whole file into memory (or more accurately it's equally
large diff), it also will slow down the UI thread while loading that file, and
if the user continued down the list, the original command might eventually
resolve and replace whatever the diff is for the newly selected file.
Following what we've done in lazydocker, I've added a tasks package for when you
need something done but you want it to cancel as soon as something newer comes
up. Given this typically involves running a command to display to a view, I've
added a viewBufferManagerMap struct to the Gui struct which allows you to define
these tasks on a per-view basis.
viewBufferManagers can run files and directly write the output to their view,
meaning we no longer need to use so much memory.
In the tasks package there is a helper method called NewCmdTask which takes a
command, an initial amount of lines to read, and then runs that command, reads
that number of lines, and allows for a readLines channel to tell it to read more
lines. We read more lines when we scroll or resize the window.
There is an adapter for the tasks package in a file called tasks_adapter which
wraps the functions from the tasks package in gui-specific stuff like clearing
the main view before starting the next task that wants to write to the main
view.
I've removed some small features as part of this work, namely the little headers
that were at the top of the main view for some situations. For example, we no
longer show the upstream of a selected branch. I want to re-introduce this in
the future, but I didn't want to make this tasks system too complicated, and in
order to facilitate a header section in the main view we'd need to have a task
that gets the upstream for the current branch, writes it to the header, then
tells another task to write the branch log to the main view, but without
clearing inbetween. So it would get messy. I'm thinking instead of having a
separate 'header' view atop the main view to render that kind of thing (which
can happen in another PR)
I've also simplified the 'git show' to just call 'git show' and not do anything
fancy when it comes to merge commits.
I considered using this tasks approach whenever we write to a view. The only
thing is that the renderString method currently resets the origin of a view and
I don't want to lose that. So I've left some in there that I consider harmless,
but we should probably be just using tasks now for all rendering, even if it's
just strings we can instantly make.
2020-01-12 11:17:20 +11:00
Jesse Duffield
282f08df36
lazyload commits
2020-01-12 10:10:56 +11:00
Jesse Duffield
9b32e99eb8
add reflog tab in commits panel
2020-01-09 22:36:07 +11:00
Jesse Duffield
1ce5c69cd2
improve file watching
...
By default, macs have 256 open files allowed by a given process.
This sucks when you end up with over 256 files modified in a repo
because after you've watched all of them, lots of other calls to
the command line will fail due to violating the limit.
Given there's no easy platform agnostic way to see what you've got
configured for how many files a process can have open, I'm going to
arbitrarily set the max to 200 and when we hit the limit we start
unwatching older files to make way for new ones.
WIP
2020-01-08 21:34:02 +11:00
David Chen
3e875cc593
fix display of menu option keybindings
2020-01-07 13:26:29 -08:00
Yasuhiro Matsumoto
d914d40b2e
Use ASCII on Windows with east asian locale
2020-01-07 11:32:11 +09:00
Jesse Duffield
033c21754b
fix commit message char count
2019-12-07 16:21:26 +11:00
Jesse Duffield
3c13229145
add tags panel
2019-11-21 22:07:14 +11:00