jesseduffield / jesseduffield/lazygit

Abstract the GUI logic into it's own package

Open
#965 6 comments 4 reactions 0 assignees View on GitHub
discussion maintenance
Dominant language
Go
Stars
82.4k
Forks
3k
Avg merge
2d 18h
Merged PRs (30d)
19

Description

**Topic**
Lazygit has become quite complicated over time and to understand the UI logic in the code is also becoming quite a bit more complicated than just understanding GoCui.
If someone wants to add something to lazygit with a tiny bit UI complication they have to understand GoCui and the Lazygit's UI system and i guess that this doesn't help a lot with attracting new developers.
Beside that there is also a point to make about the amount of layers lazygit now has before something is drawn to the terminal (lazygit code > lazygit ui system > gocui > termbox)

**Your thoughts**
To reduce the complexity it would be nice if lazygit had one package like lazyui that does all the UI work so in lazygit there is no code for building the UI only the definition code for the UI.

My second point was just something to think about i don't think it's necessarily needed to be reduced but usually more layers in code means slower programs and more places for errors to occur.

Currently the lazygit UI works but the code gives me the impression from that simpsons dad meme:

![image](https://user-images.githubusercontent.com/15320763/91046399-a4666900-e618-11ea-8f83-1ce2b8caa649.png)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.