Stefan Haller
917eb88617
Bump gocui
2023-09-09 09:44:50 +02:00
Stefan Haller
ebdfd8046a
Bump gocui
2023-08-15 11:40:40 +02:00
Simon Whitaker
ed1547e0cb
Add a Click() primitive to the integration test library
2023-08-07 15:10:28 +01:00
Stefan Haller
7ccb871a45
Bump gocui
...
... and import stefanhaller's tcell fork for real rather than just replacing it
This solves the problem that people trying to
"go install github.com/jesseduffield/lazygit@latest" would get the error
go: github.com/jesseduffield/lazygit@latest (in github.com/jesseduffield/lazygit@v0.40.0):
The go.mod file for the module providing named packages contains one or
more replace directives. It must not contain directives that would cause
it to be interpreted differently than if it were the main module.
2023-08-06 12:03:23 +02:00
Jesse Duffield
92f0aa23cc
Remove file watcher code
...
Now that we refresh upon focus, we can scrap this file watching code.
Stefan says few git UIs use file watching, and I understand why: the
reason this code was problematic in the first place is that watching
files is expensive and if you have too many open file handles that
can cause problems.
Importantly: this code that's being removed was _already_ dead.
2023-08-02 21:50:44 +10:00
Stefan Haller
c5acbb6c7c
Bump gocui
2023-08-02 11:35:36 +02:00
Stefan Haller
4aca854b59
Point tcell at stefanhaller's fork
...
This is temporary as long as https://github.com/gdamore/tcell/pull/599 is not
merged. Once that PR is merged, we can revert this.
2023-08-02 11:35:36 +02:00
Jesse Duffield
975d2bedb6
Remove secureexec package
...
From the go 1.19 release notes:
Command and LookPath no longer allow results from a PATH search to be found relative to the current directory. This removes a common source of security problems but may also break existing programs that depend on using, say, exec.Command("prog") to run a binary named prog (or, on Windows, prog.exe) in the current directory. See the os/exec package documentation for information about how best to update such programs.
2023-07-30 19:59:51 +10:00
Jesse Duffield
e33fe37a99
Standardise on using lo for slice functions
...
We've been sometimes using lo and sometimes using my slices package, and we need to pick one
for consistency. Lo is more extensive and better maintained so we're going with that.
My slices package was a superset of go's own slices package so in some places I've just used
the official one (the methods were just wrappers anyway).
I've also moved the remaining methods into the utils package.
2023-07-30 18:51:23 +10:00
Jesse Duffield
7b302d8c29
Write unit tests with the help of afero
...
Afero is a package that lets you mock out a filesystem with an in-memory filesystem.
It allows us to easily create the files required for a given test without worrying about
a cleanup step or different tests tripping on eachother when run in parallel.
Later on I'll standardise on using afero over the vanilla os package
2023-07-30 18:35:36 +10:00
hatredholder
75674d819c
bring back yaml library fork
2023-07-26 12:50:39 +03:00
Jesse Duffield
8637587b82
Better word wrap
...
Word wrapping has been pretty bad so far so let's fix that.
2023-07-23 11:43:10 +10:00
Jesse Duffield
866e0a618b
Add integration test for accordion mode
2023-07-19 22:17:29 +10:00
Jesse Duffield
be02786dad
Fix accordion issue
...
This fixes the issue in accordion mode where the current line wasn't in the viewport upon focus.
It doesn't perfectly fix it: the current line always appears at the top of the view. But it's good enough
to cut a new release. The proper fix is to only focus the line after the view has had its height adjusted.
2023-07-19 20:39:10 +10:00
Jesse Duffield
6b9390409e
Use an interface for tasks instead of a concrete struct
...
By using an interface for tasks we can use a fake implementation in tests with extra methods
2023-07-10 17:12:21 +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
631cf1e873
Bump gocui
...
This includes new gocui logic for tracking busy/idle program state
2023-07-08 22:26:28 +10:00
Jesse Duffield
1a36cb9f3f
View filtering ( #2680 )
2023-07-03 12:57:11 +10:00
Jesse Duffield
4df353d006
Bump gocui
2023-07-02 15:47:04 +10:00
Gustavo Krieger
87fe30d50d
Bump git-todo-parser
2023-07-02 02:07:32 -03:00
Jesse Duffield
4ff02bd3b7
Add integration test for commit highlighting on focus
...
A better refactor would be to allow matchers to assert against either a string or a slice of cells, so that I could have
the same ergonomics that I have elsewhere, but this is a start.
2023-06-01 22:20:30 +10:00
Jesse Duffield
cc0edd42bb
Merge pull request #2508 from Ryooooooga/remove-jesseduffield-yaml
2023-05-30 17:39:25 +10:00
Stefan Haller
d210107caa
Bump github.com/fsmiamoto/git-todo-parser to latest version
2023-04-29 07:28:33 +02:00
Andre Mueller
07a22e69e7
bump clipboard package for WSL support
2023-04-24 13:33:27 +10:00
Stefan Haller
62c5c32fbb
Bump github.com/fsmiamoto/git-todo-parser to latest main version
2023-04-15 08:36:03 +02:00
Jesse Duffield
8121a0cc74
remove old integration test recording code
2023-03-24 18:42:11 +11:00
Jesse Duffield
c28e25524a
bump gocui to fix race condition
2023-03-19 16:30:39 +11:00
Jesse Duffield
b542579db3
Better escape code parsing (thanks to Ryooooooga) ( #2514 )
2023-03-19 15:41:47 +11:00
Ryooooooga
33f332e28d
build: remove github.com/jesseduffield/yaml package
2023-03-17 23:19:11 +09:00
Jesse Duffield
db011d8e34
Improve staging panel integration tests
2023-02-25 11:35:41 +11:00
Ryooooooga
90772e1eaa
build: bump tcell version
2023-02-21 21:53:55 +09:00
Jesse Duffield
a51f64814c
show snapshot of lazygit when test fails for easier investigation
2023-02-19 15:48:09 +11:00
Jesse Duffield
01bf7f21e6
bump gocui
2023-02-18 10:28:09 +11:00
Jesse Duffield
c517d1e0a2
update view cursor when selecting new line in patch explorer view
2023-02-18 10:19:34 +11:00
Ryooooooga
657b1e897f
build: bump gocui
2023-01-06 10:59:09 +09:00
Jesse Duffield
abbd598992
bump gocui
2022-12-20 22:06:44 +11:00
Ryooooooga
cf048e4807
bump gocui
2022-11-25 21:48:44 +09:00
Lukasz Piatkowski
4fa8586191
Update go-git to handle negative refspecs
2022-11-12 07:24:14 +01:00
Ryooooooga
4aa9147dfa
build: $ ./scripts/bump_gocui.sh
2022-10-18 22:20:04 +09:00
Gustavo Andrioli
39e84e13f4
Use lazycore utils: Clamp and GetLazyRootDirectory
2022-10-15 13:55:44 -03:00
Jesse Duffield
575afa1377
update vendor directory
2022-10-11 08:12:56 -07:00
Jesse Duffield
dba0edb998
use boxlayout from lazycore
2022-10-09 08:31:14 -07:00
Jesse Duffield
e3f21f0588
strip NUL bytes instead of replacing with space
2022-10-03 09:29:41 -07:00
Jesse Duffield
e76fa5a6cb
fix glitchy render of stale data when flicking through files and directories
2022-10-02 20:41:24 -07:00
Jesse Duffield
5670c0a301
bump gocui
2022-10-02 18:43:25 -07:00
Ryooooooga
1c82924307
build: $ ./scripts/bump_gocui.sh
2022-09-23 20:01:44 +09:00
Jesse Duffield
7af7af27c6
various changes to improve integration tests
2022-09-16 08:42:39 -07:00
Jesse Duffield
5173d7f5e1
better CLI interface
2022-08-14 17:20:52 +10:00
Jesse Duffield
225c563c63
another integration test
2022-08-11 21:24:16 +10:00
Jesse Duffield
77881a9c7d
add new integration test pattern
2022-08-11 21:24:15 +10:00
Jesse Duffield
755ae0ef84
add deadlock mutex package
...
write to deadlock stderr after closing gocui
more deadlock checking
2022-08-07 11:16:14 +10:00
Jesse Duffield
524bf83a4a
refactor to only have one context per view
2022-08-06 13:49:11 +10:00
Luka Markušić
83dfc3b28b
Update gocui
2022-07-29 06:59:52 +02:00
Jesse Duffield
c9d891a913
better process killing
2022-06-18 13:39:22 +10:00
Francisco Miamoto
0b08a0b298
build: add github.com/fsmiamoto/git-todo-parser
2022-06-12 20:01:32 -03:00
Jesse Duffield
3477cbc81f
better weight distribution in window arrangement
2022-04-17 12:48:04 +10:00
Jesse Duffield
e68093fe99
add scrollbars
2022-04-16 17:29:17 +10:00
Jesse Duffield
00afa30ebf
better appearance for reverse attribute
2022-04-16 15:19:32 +10:00
Jesse Duffield
6a153acc8f
clearer highlighting of current line
2022-04-16 15:19:32 +10:00
Jesse Duffield
336f2772e8
bump gocui
2022-04-08 12:15:23 +10:00
Jesse Duffield
43d3f2bcb6
refactor todo file generation
2022-03-24 20:14:41 +11:00
Jesse Duffield
cb26c7a1f2
more things
2022-03-24 20:14:41 +11:00
Jesse Duffield
94a53484a1
would you believe that I'm adding even more generics
2022-03-24 20:14:41 +11:00
Jesse Duffield
1b75ed3740
many more generics
2022-03-24 20:14:41 +11:00
Jesse Duffield
bf4f06ab4e
more generics
2022-03-24 20:14:41 +11:00
Jesse Duffield
eda8f4a5d4
lots more generics
2022-03-24 20:14:41 +11:00
Jesse Duffield
c7a629c440
make more use of generics
2022-03-24 20:14:41 +11:00
Jesse Duffield
4fde97b066
update go to v1.18
2022-03-18 21:36:28 +11:00
Jesse Duffield
729da3549a
go mod vendor
2022-03-17 19:13:40 +11:00
Jesse Duffield
59d4df2a44
fix click handling
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
2a1e3faa0c
resetting controllers on new repo
2022-03-17 19:13:40 +11:00
MATSUDA Takashi
2c7c99522b
chore: go mod vendor
2022-03-15 13:31:11 +11:00
Jesse Duffield
ce3bcfe37c
fix reflog failing to properly refresh
2022-01-26 10:58:33 +11:00
MATSUDA Takashi
b70075eba6
go mod vendor
2022-01-25 22:54:09 +11:00
Jesse Duffield
4a1d23dc27
bump gocui
2022-01-08 16:05:11 +11:00
Pieter van Loon
7539929703
use bright colors for highlighting
2022-01-08 16:05:11 +11:00
Jesse Duffield
06ca71e955
fix bug
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
f704707d29
stream output from certain git commands in command log panel
2021-10-30 18:26:06 +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
71fdc5c038
better title rendering
2021-10-18 09:21:33 +11:00
Jesse Duffield
a05f22efa2
support home/end keys in editors
2021-10-17 20:14:31 +11:00
Jesse Duffield
e7c27b6f4a
small fixes
2021-10-17 06:41:21 +00:00
Jesse Duffield
345c90ac05
fix editor
2021-10-17 04:17:59 +00:00
Jesse Duffield
c8e9d1b4fc
bump gocui
2021-09-27 19:58:24 +10: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
mjarkk
fc066d2f2e
parse github emoji config option
2021-07-16 14:06:01 +02:00
Jesse Duffield
3dd88d6138
bump dependencies
2021-06-15 08:12:38 +10:00
Jesse Duffield
82022615dd
bump tcell
2021-06-06 09:12:42 +10:00
Jesse Duffield
b28b2d05bd
force cursor to be at end of line when opening confirmation panel
2021-04-17 21:15:54 +10:00
Jesse Duffield
730a03a3b2
fix race condition
2021-04-12 23:40:20 +10:00
Jesse Duffield
76697280c9
fix rendering issues caused by resizing
2021-04-12 21:48:08 +10:00
Jesse Duffield
0df6ac6140
bump gocui to fix resizing issue
2021-04-12 21:48:08 +10:00
Jesse Duffield
e42e7e5cbd
fix commit amend
2021-04-10 11:54:38 +10:00
Jesse Duffield
93fac1f312
reduce flicker without worrying about carriage returns
2021-04-09 22:50:55 +10:00
Jesse Duffield
b03e2270a0
revert no-flicker due to carriage return weirdness
2021-04-08 23:17:27 +10:00
Jesse Duffield
1ae8523098
restore contents on resume from subprocess
...
The proper fix will come out of this PR but it's not yet merged:
https://github.com/gdamore/tcell/pull/439/files
In the meantime I'm just going to directly edit this from my vendor
directory. If it ends up stretching a while I'll fork tcell properly
and use the fork.
2021-04-06 19:34:32 +10:00
Jesse Duffield
8eb802d3a0
fix flicker issue in main view
2021-04-06 19:34:32 +10:00
Jesse Duffield
d7da6dde0e
allow decimal replay speeds for integration tests
2021-04-06 19:34:32 +10:00
Jesse Duffield
9593129e6a
remove caching of styles in gocui
2021-04-06 19:34:32 +10:00
Jesse Duffield
c9ded489c9
bump gocui
2021-04-06 19:34:32 +10:00
Jesse Duffield
4c73d070ac
ignore clicks on invisible views
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
32d170621c
remove mutex lock that caused deadlock
2021-04-06 19:34:32 +10:00
Jesse Duffield
464d022a86
minor refactor
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
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
39ae122304
more refactoring
2021-04-06 19:34:32 +10:00
Jesse Duffield
4197921465
WIP
2021-04-06 19:34:32 +10:00
Jesse Duffield
4b69ab08c1
WIP
2021-04-06 19:34:32 +10:00
Jesse Duffield
0898a7bb57
refactor
2021-04-06 19:34:32 +10:00
Jesse Duffield
5289d49f75
more efficient gocui
2021-04-06 19:34:32 +10:00
Jesse Duffield
1a5f380c00
support alt-enter for inserting newline when typing commit message within the app
2021-04-06 19:34:32 +10:00
Jesse Duffield
3ea5e4d4b2
allow scrolling when staging lines or building patch
2021-04-06 19:34:32 +10:00
Jesse Duffield
5f77ac8d6f
bump gocui
2021-04-06 19:34:32 +10:00
Jesse Duffield
5d0cf3d919
prioritise keybindings on editors
2021-04-06 19:34:32 +10:00
Jesse Duffield
4b1da0cf3c
bump gocui again
2021-04-06 19:34:32 +10:00
Jesse Duffield
862ced3bd0
bump gocui
2021-04-06 19:34:32 +10:00
Jesse Duffield
0d6ff7d1b7
support backtab key
2021-04-06 19:34:32 +10:00
Jesse Duffield
ecc5fe24a9
get tcell to cleanup the terminal if we panic
2021-04-06 19:34:32 +10:00
Jesse Duffield
6246eb9717
go mod tidy
2021-04-06 19:34:32 +10:00
Jesse Duffield
8f763c42b6
bum pgocui
2021-04-06 19:34:32 +10:00
Jesse Duffield
6472bda29e
bump gocui
2021-04-06 19:34:32 +10:00
Jesse Duffield
c0cad91cb6
no more termbox
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
049849264e
defend against race condition in editors
2021-03-30 09:26:06 +11:00
Jesse Duffield
56a573de86
support wide characters in the editor
2021-02-08 22:55:11 +00:00
Jesse Duffield
78867647d1
remove go-gitconfig package
2021-02-08 14:40:30 -08:00
Jesse Duffield
09f32d4f84
add secureexec file for getting around windows checking for a binary first in the current dir
2021-02-08 14:40:30 -08: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
b8ad1883f5
fix delta
2020-10-12 08:26:31 +11:00
Jesse Duffield
777ec0b36c
fix nil view keybinding panic
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
4912205adb
remove viper
...
WIP
2020-10-10 00:23:01 +11:00
Jesse Duffield
0aed47737c
bump go-git to fix invalid merge error
2020-10-06 21:58:41 +11:00
Jesse Duffield
6e076472b8
switch to fork of go-git
2020-10-06 21:58:41 +11:00
Jesse Duffield
c12752cf53
add mutex to views array
2020-10-01 07:01:39 +10:00
Jesse Duffield
fb09fb4472
bump gocui
2020-09-27 11:11:55 +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
afd669194a
use clipboard package to handle clipboard stuff
2020-08-26 07:53:43 +10:00
Jesse Duffield
2598ce1d4b
bump creack
2020-08-24 22:16:38 +00:00
Jesse Duffield
42479a75af
prevent moving cursor past last character in prompt modal
2020-08-24 20:11:32 +10:00
Jesse Duffield
22c7110349
prevent moving cursor past last character in prompt modal
2020-08-24 10:02:08 +00:00
Jesse Duffield
44ee28bb2e
support alacritty
2020-08-24 09:19:56 +10:00