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
Jesse Duffield
1f3e1720a3
split RemoteBranch out from Branch
2019-11-21 22:07:14 +11:00
Jesse Duffield
6bd0979b4a
only refresh branches panel on focus lost when in the local-branches context
2019-11-21 22:07:14 +11:00
Jesse Duffield
986abc1e45
support viewing a remote branch
2019-11-21 22:07:14 +11:00
Jesse Duffield
61dac10bb9
support navigating remotes view
2019-11-21 22:07:14 +11:00
Jesse Duffield
8aa1062e06
extract out some logic for list views
2019-11-21 22:07:14 +11:00
Jesse Duffield
7e0a8f235e
add contexts to views
2019-11-21 22:07:14 +11:00
Jesse Duffield
e6be849eb2
add remotes context to branches view
2019-11-21 22:07:14 +11:00
Jesse Duffield
f15e47bb67
add file watching for modified files
...
log createErrorPanel error
swallow error when adding file to watcher
2019-11-14 22:22:47 +11:00
Jesse Duffield
cbc82cd3c1
allow for changing the current directory on exit
...
For this to work you'll need to put this in your ~/.zshrc (or equivalent rc file):
lg()
{
export LAZYGIT_NEW_DIR_FILE=/Users/jesseduffieldduffield/Library/Application\ Support/jesseduffield/lazygit/.lastd
lazygit "$@"
if [ -f $LAZYGIT_NEW_DIR_FILE ]; then
cd "$(cat $LAZYGIT_NEW_DIR_FILE)"
rm -f $LAZYGIT_NEW_DIR_FILE > /dev/null
fi
}
2019-11-11 21:45:31 +11:00
Jesse Duffield
de5bcb8b9c
add some shameless self promotion
2019-11-10 22:32:13 +11:00
Jesse Duffield
941d3c6648
allow secondary view to be scrolled
2019-11-10 22:32:13 +11:00
Jesse Duffield
df72eee201
don't try to give a logrus entry object to gocui
2019-11-10 22:32:13 +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
10fe88a2cf
more work on managing focus when applying patch command
2019-11-05 19:22:01 +11:00
Jesse Duffield
1a38bfb76d
do not return focus to commitsFiles view after selecting to start a new patch
2019-11-05 19:22:01 +11:00
Jesse Duffield
6d5d054c30
support line by line additions in staging and patch building contexts
2019-11-05 19:22:01 +11:00
Jesse Duffield
f285d80d0e
move PatchManager to GitCommand
2019-11-05 19:22:01 +11:00
Jesse Duffield
d5e443e8e3
Support building and moving patches
...
WIP
2019-11-05 19:22:01 +11:00
Jesse Duffield
cc039d1f9b
don't unsplit main panel unconditionally on focus lost
2019-11-05 19:22:01 +11:00
Jesse Duffield
820f3d5cbb
support split view in staging panel and staging ranges
2019-11-05 19:22:01 +11:00
Giorgio Previtera
ac5cbc1d2c
#480 Allow cycling side panels with number keys
2019-10-27 12:39:08 +11:00
mjarkk
a045313e08
Removed the pkg/gui/theme.go file
...
Moved most functions to the new theme/theme.go
2019-10-20 12:32:57 +11:00
mjarkk
02fef3136f
Added light theme option to the settings
2019-10-20 12:32:57 +11:00
matejcik
600112780c
use git.autoFetch config option
2019-09-08 11:20:15 +10:00
matejcik
68d5c2bc10
use gui.g directly
2019-09-08 11:20:15 +10:00
matejcik
7db1fee877
startBackgroundFetch does not return errors
2019-09-08 11:20:15 +10:00
matejcik
8f786e3fd9
configurable auto-fetch
2019-09-08 11:20:15 +10:00
Jesse Duffield
bd2170a99c
request explicit return from subprocess
...
Previously we were recording output from subprocesses using a multiwriter
and hooking that up to the cmd's stdout to write to both os.Stdout and
a buffer. We would then display the output after the program finished.
This worked well for commands like 'ls' but not for commands like 'vi'
which expect you to be in a tty, and when you've got the cmd's stdout
pointing at a multiwriter, the subprogram thinks we're not in a tty
and then things like terminal corruption can happen. This was the case
with neovim, and even in vim a warning was given with a pause before
starting the program.
Now we're chucking out the multiwriter and instead making it that you
need to press enter after the program has finished to return to lazygit.
This allows you to view the output of the program (e.g. if it's ls) and
then decide that you want to return. It's one level of unnecessary
redirection for editors like vim, but even they could potentially have
output to stderr/stdout that you want to look at before returning.
Please enter the commit message for your changes. Lines starting
2019-05-26 21:19:54 +10:00
Jesse Duffield
c039e5bed0
support going to start/end of line and deleting lines in simple editor
2019-05-26 12:42:17 +10:00
Jesse Duffield
4a4dc676fc
simplify code for logging output of subprocess
2019-05-18 11:30:10 +10:00
mjarkk
8754d766e2
Made not enough space pannel looks better on 1 height
2019-05-07 08:47:41 +02:00
mjarkk
2388c3ee9a
Fixed some sugestions from jesseduffield
2019-05-06 20:04:54 +02:00
mjarkk
19a6368377
Changed the way how the view height are set
2019-05-05 15:57:35 +02:00
mjarkk
492614ebc7
Made the ui even smaller
2019-04-26 08:24:14 +02:00
mjarkk
6ba05c94ea
Added another resizing step
2019-04-25 21:37:19 +02:00
mjarkk
07fec6d00e
Made the go bot happy
2019-04-20 16:51:50 +02:00
mjarkk
a69b985086
Better UI on small screens
2019-04-20 15:56:23 +02:00
Jesse Duffield
0d3a193ab5
Add 'w' keybinding in files panel to commit as a WIP
...
If your git.skipHookPrefix is set to, say, WIP, in your config, then
hitting 'w' in the files panel will bring up the commit message panel
with 'WIP' pre-filled, so you just need to hit enter to confirm
(or add some more to the message) in order to commit your changes
with the --no-verify flag, meaning the pre-commit hook will be skipped
2019-04-13 14:38:17 +10:00
Jesse Duffield
0f1abcb10c
remove subprocess channel stuff
2019-04-07 17:15:01 +10:00
Jesse Duffield
55538a3695
support custom commands
2019-04-07 17:15:01 +10:00
skanehira
f34be1896a
fixed some #397
2019-04-06 13:02:20 +11:00
skanehira
c350cdba43
add feature of display diff between specific commits #397
2019-04-06 13:02:20 +11:00
Jesse Duffield
d84dfc23e7
Rely on model rather than view to focus a point
...
Currently when we want to focus a point on a view (i.e. highlight a
line and ensure it's within the bounds of a view's box, we use the
LinesHeight method on the view to work out how many lines in total
there are.
This is bad because for example if we come back from editing a file,
the view will have no contents so LinesHeight == 0, but we might
be trying to select line 10 because there are actual ten things we
expect to be rendered already. This causes a crash when e.g. 10 is
greater than the height of the view.
So we need to pass in to our FocusPoint method the actual number of
items we want to render, rather than having the method rely on the
LinesHeight, so that the method knows to scroll a bit before setting
the cursor's y position.
Unfortunately this makes for some awkward code with our current setup.
We don't have a good interface type on these state objects so we now
need to explicitly obtain the len() of whatever array we're rendering.
In the case of the menu panel this is even more awkward because the items
list is just an interface{} and it's not easy to get the list of that, so
now when we instantiate a menu we need to pass in the count of items
as well.
The better solution would be to define an interface with a getItems
and getLength method and have all these item arrays become structs
implementing the interface, but I am too lazy to do this right now :)
2019-03-23 11:54:25 +11:00
Jesse Duffield
c98eddc185
appease golangci
2019-03-16 10:20:27 +11:00
Jesse Duffield
4f7f6a073c
allow user to discard old file changes for a given commit
2019-03-16 10:20:27 +11:00
Jesse Duffield
1ad9c6faac
minor cleanup
2019-03-16 10:20:27 +11:00
skanehira
06fe726ee7
Add feature of display committed file list #383
2019-03-16 10:20:27 +11:00
Jesse Duffield
e36899d5c5
prevent crashes when scrolling up
2019-03-03 23:08:07 +11:00
Jesse Duffield
a5d27764cd
support user configuring mouse events to be enabled
2019-03-03 16:15:20 +11:00
Jesse Duffield
f07fc31f8b
fixup layout issue that was causing crashes when the window was too small
2019-03-03 15:34:53 +11:00
Jesse Duffield
8305d8e72f
hide donate button if mouse events are disabled
2019-03-03 15:21:20 +11:00
Jesse Duffield
399346c2ee
disable mouse feature until its ready
2019-03-02 20:00:17 +11:00
Jesse Duffield Duffield
8c0ea8f45f
mouse support
2019-03-02 17:49:30 +11:00
Jesse Duffield
1337f6e76a
appease golangci
2019-03-02 17:45:53 +11:00
Jesse Duffield Duffield
f4938deaae
change type of cherryPickedCommits from []string to []*Commit
2019-02-24 17:34:19 +11:00
Jesse Duffield Duffield
a8858cbd12
support cherry picking commits
2019-02-24 13:51:52 +11:00
Jesse Duffield
adc2529019
dealing better with errors at the top level
2019-02-18 19:42:23 +11:00
Jesse Duffield
43ab7318d3
remove HasMergeConflicts struct instance variables
2019-02-18 19:28:02 +11:00
Jesse Duffield
cb372d469f
fix golangci errors
2019-02-16 21:30:29 +11:00
Jesse Duffield
e011e9bc42
more work on rebasing feature
2019-02-16 21:01:17 +11:00
Jesse Duffield
ad93b4c863
consider whether the view has focus when rendering the contents of a view
2019-02-16 15:17:44 +11:00
Jesse Duffield
198cbee498
introduce panel contexts and more work on rebasing
2019-02-16 12:07:27 +11:00
Jesse Duffield
daca07eaca
add loading panel
2019-02-16 12:03:22 +11:00
Jesse Duffield
6430ab6ac9
Merge branch 'master' into feature/rebasing
2019-02-11 22:46:27 +11:00
Jesse Duffield
cfe3605e6b
use go-errors package to display stacktrace of errors that cause panics
2019-02-11 22:39:17 +11:00
Jesse Duffield
77faf85cfc
post-merge cleanup
2019-02-11 21:07:12 +11:00
Jesse Duffield
3d343e9b57
Merge branch 'master' into feature/rebasing
2019-02-11 21:02:53 +11:00
Jesse Duffield
3a607061a2
Only reset origin in main view when handling the selection of a new file
2019-01-18 09:32:15 +11:00
Jesse Duffield
160af3bb99
fix typo
2018-12-18 22:29:07 +11:00
Jesse Duffield
276ac3a92e
decrease frequency of refreshing files because it's causing index lock errors
2018-12-18 21:28:09 +11:00
Jesse Duffield
a26c15dafa
some fixes for issues around the credentials panel
2018-12-12 22:34:20 +11:00
Jesse Duffield
9489a94473
Make merge panel its own panel
2018-12-11 22:02:12 +11:00
Jesse Duffield
e0ff46fe53
more work on rebasing including visual indicators
2018-12-11 09:39:54 +11:00
mjarkk
76e9582739
Not always git fetch
2018-12-10 13:45:03 +01:00
mjarkk
8e3f5e19e0
Changed some other names
2018-12-10 08:04:22 +01:00
mjarkk
61c2778de1
Changed pushPassUname name to credentials
2018-12-10 07:51:06 +01:00
mjarkk
3c17bf761a
Better name for this function
2018-12-10 07:46:26 +01:00
Mark Kopenga
19a6a32625
Merge branch 'master' into https-ask-for-username-password
2018-12-08 16:41:39 +01:00
mjarkk
270658fc00
Made code ready to merge to master's latest commit
2018-12-08 16:40:22 +01:00
Jesse Duffield
ff856b7630
fetching branches without checking out
2018-12-08 11:51:47 +11:00
Jesse Duffield
ca3afa2a39
standardising how list panels deal with cursor movement
2018-12-08 11:51:47 +11:00
Jesse Duffield
99a8b1ae8b
making a start on unidirectional data binding to fix these UI bugs
2018-12-08 11:51:47 +11:00
mjarkk
cf5a85b80f
Intro message stays on screen now
2018-12-07 19:22:22 +01:00
mjarkk
8f904ffd72
Working popup
2018-12-07 14:56:29 +01:00
mjarkk
ced81e11f0
Only show private repo popup when opening repo for first time
2018-12-06 22:05:16 +01:00
mjarkk
6d0fa8bc29
Made some small inprovements
2018-12-06 09:05:51 +01:00
Mark Kopenga
1b6d34e76a
Merge branch 'master' into https-ask-for-username-password
2018-12-06 08:31:12 +01:00
mjarkk
6711543634
Made the gobot happy again
2018-12-06 08:28:56 +01:00
mjarkk
f6e83cdbdf
Started working on the popup
2018-12-06 08:26:05 +01:00
Jesse Duffield
c0f9795910
staging lines and hunks
2018-12-05 19:33:46 +11:00
Jesse Duffield
658e5a9faf
initial support for staging individual lines
2018-12-04 22:11:48 +11:00
mjarkk
2edd2b74ff
Removed a lot of useless code
2018-12-02 14:58:18 +01:00
mjarkk
d91493b587
Forgot to set the git fetch timeout back to 60s
2018-11-25 13:23:32 +01:00
mjarkk
9da1382e09
Added credentials popup
2018-11-25 13:15:36 +01:00
Mark Kopenga
6d2bf0b0b5
Merge branch 'master' into https-ask-for-username-password
2018-11-14 11:34:39 +01:00
mjarkk
8742c4c110
Removed some variables and placed them inside the gui struct
2018-11-10 09:27:03 +01:00
mjarkk
32ecc6d745
Removed getPushPassUnameView function
2018-11-10 09:09:18 +01:00
KOREAN139
9d79d32c94
add scroll-past-bottom configuration option
...
with gui.scrollPastBottom option true, lazygit let user scroll past the
bottom - which is default
if option is false, user cannot scroll further when bottom of file has
appeared in mainView
2018-11-08 19:35:05 +09:00
Mark Kopenga
17b4b4cb33
Merge branch 'master' into https-ask-for-username-password
2018-11-08 10:31:10 +01:00
Glenn Vriesman
abd0803ef4
Set current view to limit view
2018-10-28 19:15:34 +01:00
mjarkk
b72841ca0c
Fixed golangcibot surgestions
2018-10-20 18:58:37 +02:00
mjarkk
12425f0aa7
First good success
2018-10-20 17:37:55 +02:00
Jesse Duffield
e91fb21233
add recent repos menu option
2018-09-19 19:15:29 +10:00
Jesse Duffield
768b9453f8
Merge branch 'hotfix/cursor-positioning' into feature/recent-repos
2018-09-19 18:40:41 +10:00
Jesse Duffield
b384fcf6af
generalise popup menu panel
2018-09-18 21:07:25 +10:00
Jesse Duffield
c00c834b35
standardise rendering of lists in panels
2018-09-17 21:02:30 +10:00
Dawid Dziurla
6f7de83bce
Merge branch 'master' into feature/help
...
conflicts resolved
2018-09-09 10:41:01 +02:00
Jesse Duffield
ca715c5b23
support switching to recent repo
2018-09-07 09:41:15 +10:00
Dawid Dziurla
e9268d1828
add confirmOnQuit config option
2018-09-05 19:56:11 +02:00
Dawid Dziurla
db2e2160a9
change menu keybinding from ? to x
2018-09-05 15:55:24 +02:00
Dawid Dziurla
906f8e252e
include global keybindings in menu
2018-09-05 13:16:40 +02:00
Jesse Duffield
986774e5c7
add commit count via gocui subtitle
2018-09-05 20:43:45 +10:00
Dawid Dziurla
98763e98cb
initial commit message counter
2018-09-05 11:26:54 +02:00
Dawid Dziurla
557009e660
help -> menu
2018-09-05 11:12:11 +02:00
Jesse Duffield
422b263df4
fix popup panel resizing
2018-09-05 19:10:46 +10:00
Dawid Dziurla
e21f739f4f
add renderGlobalOptions
...
render only global options for all panels
2018-09-04 16:07:31 +02:00
Dawid Dziurla
cbafadd48e
move keys slice to guiState struct
2018-09-04 15:29:43 +02:00
Jesse Duffield
04735d0601
update call to update user config function
2018-08-27 20:49:47 +10:00
Jesse Duffield
23a9f41d9d
Merge branch 'feature/anonymous-reporting'
2018-08-27 20:35:55 +10:00
Jesse Duffield
f861175f83
move update quit confirmation function into updates file
2018-08-27 20:26:49 +10:00
Jesse Duffield
96eef7838e
better auto update logic
2018-08-27 20:08:10 +10:00
Jesse Duffield
540edc0c35
anonymous reporting data
2018-08-26 16:53:31 +10:00
Jesse Duffield
57decdd11d
check error from setViewOnBottom
2018-08-25 17:38:03 +10:00
Jesse Duffield
21f6e9ba87
auto-updates
2018-08-25 17:32:34 +10:00
Jesse Duffield
f24c95aede
Merge branch 'master' into feature/auto-updates
2018-08-25 11:02:46 +10:00
Dawid Dziurla
bcbeec1a56
Sirupsen -> sirupsen
2018-08-23 14:22:03 +02:00
Jesse Duffield
5628eae502
WIP
2018-08-23 18:43:16 +10:00
Jesse Duffield
37029f7db3
support empty version string
2018-08-20 20:52:32 +10:00
Jesse Duffield
d938a437a2
WIP auto updates
2018-08-20 19:52:20 +10:00
Jesse Duffield
a1a828a781
support opening and editing config file
2018-08-18 14:54:05 +10:00
Jesse Duffield
6b150a4be0
bump dependencies
2018-08-18 14:20:19 +10:00
Jesse Duffield
284c534251
user configurable border colors
2018-08-18 13:53:58 +10:00
Jesse Duffield
10fdb5a609
support writing back to user config
2018-08-18 13:22:05 +10:00
Jesse Duffield
4dc6d40b5a
merge master
2018-08-18 12:08:21 +10:00
Mark Kopenga
fcf616bd62
Fixed it
2018-08-16 13:35:04 +02:00
Mark Kopenga
90746502df
Fixed comments from jesseduffield on issue #137
2018-08-16 11:31:03 +02:00
Mark Kopenga
88e1a815fe
Fixed comment on issue #137 from @jesseduffield
2018-08-16 07:16:32 +02:00
Jesse Duffield
29ed971558
add user configuration in json file
2018-08-15 22:06:37 +10:00
Mark Kopenga
7e926cf41d
Added translation for pkg/gui/ confirmation_panel.go gui.go merge_panel.go
2018-08-15 10:53:05 +02:00
Jesse Duffield
d923796cff
Merge branch 'master' of https://github.com/mjarkk/lazygit
2018-08-14 23:48:18 +10:00
Jesse Duffield
ba2b6fbf1f
pull errors out of package scope and store sentinel errors on the gui struct
2018-08-14 23:47:14 +10:00
Mark Kopenga
73a1682540
fixed package naming and added tr object to file_panel.go
2018-08-14 15:26:25 +02:00
Mark Kopenga
8e22d569a0
Merge pull request #2 from jesseduffield/master
...
Updated to latest master
2018-08-14 15:10:59 +02:00
Jesse Duffield
5cbacb0c67
make local i18n package confirm to project structure
2018-08-14 22:12:07 +10:00
Mark Kopenga
5ad97add08
Added the translation to some words again
2018-08-14 11:27:46 +02:00
Jesse Duffield
6a3f8eefa5
send version number through app
2018-08-14 19:22:38 +10:00
Mark Kopenga
dfafb98871
tried to update to latest master
2018-08-14 11:05:26 +02:00
Andrei Miulescu
842ceec9b0
Platform should only be present once
2018-08-14 12:24:32 +10:00
Jesse Duffield
047892962a
centralise subprocess code to gui.go
2018-08-14 08:33:40 +10:00
Jesse Duffield
12de0345e4
minor cleanup
2018-08-13 21:35:54 +10:00
Jesse Duffield
9e725ae24e
got this bad boy compiling again
2018-08-13 21:16:21 +10:00
Jesse Duffield
97cff65612
progress on refactor
2018-08-13 20:26:02 +10:00
Andrei Miulescu
e8eb78617c
Mid refactor change some more stuff
2018-08-12 21:04:47 +10:00
Andrei Miulescu
dcd461d29f
Restrucure project in a way where it is more modular
2018-08-12 19:31:27 +10:00