Jesse Duffield
f4e552f982
prevent deadlocks.
...
Hard to choose between the lock with a defer unlock in an anonymous function
vs just having an explicit unlock at the end with additional unlocks before
any early returns. The former is less error prone, but the former is much more
readable, especially if the anonymous function would have needed to return
an error value.
2021-04-06 19:34:32 +10:00
Jesse Duffield
5e094c8a7c
marginally better logic for searching
2021-04-06 19:34:32 +10:00
Jesse Duffield
02f45b679f
do not double-append contexts to the stack
2021-04-06 19:34:32 +10:00
Jesse Duffield
b6ec667de0
add comment
2021-04-06 19:34:32 +10:00
Jesse Duffield
4d14af5d4b
more lint fixes
2021-04-06 19:34:32 +10:00
Jesse Duffield
d627b3bfc8
more refactoring
2021-04-06 19:34:32 +10:00
Jesse Duffield
952c62df37
fix bug where searching through view got stuck if you went over the upper bound
2021-04-06 19:34:32 +10:00
Jesse Duffield
b6cc1c9492
small refactor
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
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
cc9293b386
add mutex to prevent crashes with merge conflicts
2021-04-02 11:09:12 +11:00
Jesse Duffield
872cf0d726
hide commit files view upon losing focus because you probably don't want it lingering anyway
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
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
79e59d5460
add some safe goroutines
...
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
3b93b5dde4
make it easier to add a tab to a view
2020-10-02 08:09:42 +10:00
Jesse Duffield
c12752cf53
add mutex to views array
2020-10-01 07:01:39 +10:00
Jesse Duffield
a09bb5d4d8
better validation messages
2020-09-27 09:49:30 +10:00
Jesse Duffield
266d8bf0d5
minor fixup
2020-09-27 09:49:30 +10:00
Jesse Duffield
92183de29e
more lenient handling of views not existing
2020-09-26 19:33:22 +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
f172f20219
Return whether the context has a parent or not along with that parent
...
There has got to be a better way around this but if we're returning a Context
from a function (Context is an interface, not a concrete type), even if we
return nil, on the calling end it won't be equal to nil because an interface
value is a tuple of the type and the value meaning it's never itself nil,
unless both values in the tuple are nil.
So we're explicitly returning whether or not the underlying concrete type is nil.
2020-08-23 22:30:32 +00:00
Jesse Duffield
bd66162972
fix up patch manager
2020-08-23 14:29:18 +10:00
Jesse Duffield
a95fd581fd
fix logic for entering merging panel
2020-08-23 14:29:18 +10:00
Jesse Duffield
fda9f4ea7a
centralise logic for rendering options map
2020-08-23 14:29:18 +10:00
Jesse Duffield
f876d8fdc8
use constants
2020-08-23 14:29:18 +10:00
Jesse Duffield
4198bbae6c
ensure there is always a current context
2020-08-23 14:29:18 +10:00
Jesse Duffield
ade54b38c1
cleanup
2020-08-23 14:29:18 +10:00
Jesse Duffield
2c3f5be093
comment these things out because we're not using them yet
2020-08-23 14:29:18 +10:00
Jesse Duffield
5874529f43
deal with the fact that a nil wrapped in an interface is not equal to nil
2020-08-23 14:29:18 +10:00
Jesse Duffield
438abd6003
centralise code for copying to clipboard
2020-08-23 14:29:18 +10:00
Jesse Duffield
f63ec38aae
genericise creating new branches off things
2020-08-23 14:29:18 +10:00
Jesse Duffield
0ac402792b
allow getting the current item generically
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
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
48f1adad49
stop logging stack
2020-08-23 14:29:18 +10:00
Jesse Duffield
379d37a255
remove unnecessary function
2020-08-23 14:29:18 +10:00
Jesse Duffield
a59ac064d2
statically define context keys
2020-08-23 14:29:18 +10:00
Jesse Duffield
433d54fcec
WIP constants for context keys
2020-08-23 14:29:18 +10:00
Jesse Duffield
99707a527d
WIP
2020-08-23 14:29:18 +10:00
Jesse Duffield
bc410d8e4a
use camelCase
2020-08-23 14:29:18 +10:00
Jesse Duffield
dbf6bb5f27
some more things
2020-08-23 14:29:18 +10:00
Jesse Duffield
2fac2f9f1f
WIP
2020-08-23 14:29:18 +10:00
Jesse Duffield
2b812b01e9
more standardisation of rendering
2020-08-23 14:29:18 +10:00
Jesse Duffield
2f5d5034db
good progress
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
f0c3d3fc4d
centralise setting of main views context
2020-08-23 14:29:18 +10:00
Jesse Duffield
2488e0044d
concurrent-safe handling of context state
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
119d5be1a4
move into list context file
2020-08-23 14:29:18 +10:00
Jesse Duffield
4f4df8f9cc
move context specific keybindings into context file
2020-08-23 14:29:18 +10:00
Jesse Duffield
c730271e09
minor update
2020-08-23 14:29:18 +10:00
Jesse Duffield
ac0eedda91
lots more stuff
2020-08-23 14:29:18 +10:00
Jesse Duffield
dc183c0d82
no need to set views on top anymore
2020-08-23 14:29:18 +10:00
Jesse Duffield
fd8a455aff
small things
...
WIP
2020-08-23 14:29:18 +10:00
Jesse Duffield
c9ae54a8c8
remove previous view
2020-08-23 14:29:18 +10:00
Jesse Duffield
6fb83b740b
WIP
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
e47ad846c4
big golangci-lint cleanup
2020-03-09 12:23:13 +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
7e0a8f235e
add contexts to views
2019-11-21 22:07:14 +11:00
Jesse Duffield
131113b065
simplify how the context system works
2019-11-10 22:32:13 +11:00
Jesse Duffield
e85310c0a9
add mouse support
2019-11-10 22:32:13 +11:00
Jesse Duffield
326b1ca8c9
better titles
2019-11-05 19:22:01 +11:00
Jesse Duffield
2746b1bd38
Prevent crash when opening in small window
...
We were crashing when opening lazygit in a small window because the limit view
was the only view that got created, and there were two functions that referenced
either the 'current' view or the files view, neither of which existed.
Now those functions just return nil if the view does not exist
2019-05-06 22:39:35 +10:00
Jesse Duffield Duffield
8c0ea8f45f
mouse support
2019-03-02 17:49:30 +11:00
Jesse Duffield
e331dfcaf8
update i18n
2019-03-02 17:46:56 +11:00
Jesse Duffield
1337f6e76a
appease golangci
2019-03-02 17:45:53 +11:00
Jesse Duffield
88ba6efdd5
remove outdated TODO
2019-02-16 21:20:10 +11:00
Jesse Duffield
e011e9bc42
more work on rebasing feature
2019-02-16 21:01:17 +11:00