We've got a whole lot of stuff in this release: improvements to the editor, better custom commands support, snappier staging of files, a tonne of bug fixes, and lots more.
One particularly cool thing that we've added is Github codespaces support (in the repo, not within the Lazygit program itself), so if you've got your eye on an open issue and want to move things along, consider spinning up the lazygit codebase in a code_space_ and having a go at adding a feature / fixing a bug all from the comfort of your browser! See here for more info.
As you can see @Ryooooooga and @mark2185 continue to kick goals with a heap of features and bug fixes in this release, but we also have a whole host of new contributors too. If you want to get involved in contributing, you can peruse the issues board for issues with the good-first-issue label, or jump into the Fortress of Laziness, our new discord server
What's Changed
Features:
Editor stuff
- add support for emacs keybindings in editor by @Ryooooooga in #2183
- allow emacs character navigation in the commit editor (jump word left/right). by @LiamKearn in #2104
- navigate by word in the editor by @Ryooooooga in #2204
Custom commands stuff
- Add showOutput option to custom commands (fixes #1163) by @sportshead in #2059
- Improve custom commands interface by @Mihai22125 in #2109
- Allow
OSCommand.Quote
to be invoked within a custom command by @Ryooooooga in #2193 - add SelectedPath to the list of placeholder values by @mark2185 in #2070
Other stuff
- add stash option to include untracked files by @ajhynes7 in #1980
- add optimistic rendering for staging and unstaging files by @jesseduffield in #2072
- rename stash by @Ryooooooga in #2220
- Show active branch for recent repo by @mark2185 in #2005
- Support custom SSH usernames on BitBucket by @xxdavid in #2087
- Preserve trailing newline setting when adding to gitignore by @mark2185 in #2004
- Add
notARepository: quit
config option to exit Lazygit if run from outside a git repo by @Ryooooooga in #2098 - add stash icon by @Ryooooooga in #2219
- allow
null
in keybindings by @Ryooooooga in #2222
Bug fixes:
- Fix rewording a merge commit with editor by @mark2185 in #2065
- Improved mouse behaviour with international text @mark2185 in #2064
- No more 'unversioned' in the bottom right: add build info when building from source by @jesseduffield in #2076
- fix initial origin of commit message panel by @Ryooooooga in #2221
- fix issue caused by opening a menu over a prompt by @jesseduffield in #2079
- fix hidden suggestions by @jesseduffield in #2093
- Gracefully error on bare repositories by @nullishamy in #2067
- Fix open commit in browser for some Gitlab repos by @jtraub in #2132
- fix initial scroll position of edit box by @Ryooooooga in #2123
- fix initial origin of editor box by @Ryooooooga in #2146
- Validate --path argument when starting lazygit by @mark2185 in #2092
- Ignore stderr when loading git status by @Ryooooooga in #2081
- fix: read one line before resuming TUI to prevent unintentional operations by @kawaemon in #1636
- allow amending merge commits by @mark2185 in #2164
- various improvements to text rendering by @Ryooooooga in #2195
- fix glitchy render of stale data by @jesseduffield in #2196
- fix stash with empty message by @Ryooooooga in #2218
- fix could-not-access error by @jesseduffield in #2260
- use better colour defaults (note: theme.lightTheme is no longer a thing) by @jesseduffield in #2257
- Update go-git to handle negative refspecs by @lukaspiatkowski in #2232
- Fix/show loading state when bottomline disabled by @artvi in #2273
- fix ambiguous branch name by @Ryooooooga in #2224
Docs:
- docs(readme): Added lazygit install method on ubuntu #2125 by @yofreee in #2126
- fix: document link by @eetann in #2108
- fix typo in README.md by @luzpaz in #2086
- fix: how to change the config dir for MacOS by @0123takaokeita in #2169
Maintenance:
- Fix github linter errors by @mark2185 in #2069
- Add better support for OpensMenu option when creating a menu by @jesseduffield in #2071
- Update bug_report.md by @mark2185 in #2062
- refactor to use generics for file nodes by @jesseduffield in #2075
- handle nil properly with file nodes by @jesseduffield in #2077
- Refactor: one context per view by @jesseduffield in #2023
- refactor merge conflicts code by @jesseduffield in #2088
- allow rendering to main panels from anywhere by @jesseduffield in #2089
- Add new integration test pattern by @jesseduffield in #2094
- even better structure by @jesseduffield in #2113
- give menu formatting to ignore-or-exclude keybinding option by @mark2185 in #2110
- add more integration tests by @jesseduffield in #2114
- fail on vendor directory mismatch by @jesseduffield in #2116
- improve integration test portability by @Ryooooooga in #2124
- chore: remove duplicate word in comments by @Abirdcfly in #2143
- Migrate some more integration tests by @jesseduffield in #2137
- remove deprecated function calls by @xiaoliwang in #2167
- strip NUL bytes instead of replacing with space by @jesseduffield in #2197
- Replace regex for retrieving latest version by @TomBaxter in #2199
- use boxlayout from lazycore by @jesseduffield in #2210
- Use lazycore utils: Clamp and GetLazyRootDirectory by @gusandrioli in #2223
- add devcontainer folder by @jesseduffield in #2266
- disable underscores in vscode by @jesseduffield in #2269
- use tempdir in tests to prevent polluting worktree by @jesseduffield in #2271
- stop switching focus to commits view when resetting by @jesseduffield in #2272
- added gitVersion to version flag by @nitinmewar in #2265
- Merge loaders package into git_commands package by @sudoburt in #2261
New Contributors
- @sportshead made their first contribution in #2059
- @luzpaz made their first contribution in #2086
- @xxdavid made their first contribution in #2087
- @eetann made their first contribution in #2108
- @nullishamy made their first contribution in #2067
- @yofreee made their first contribution in #2126
- @jtraub made their first contribution in #2132
- @Abirdcfly made their first contribution in #2143
- @0123takaokeita made their first contribution in #2169
- @Mihai22125 made their first contribution in #2109
- @xiaoliwang made their first contribution in #2167
- @LiamKearn made their first contribution in #2104
- @kawaemon made their first contribution in #1636
- @TomBaxter made their first contribution in #2199
- @gusandrioli made their first contribution in #2223
- @lukaspiatkowski made their first contribution in #2232
- @nitinmewar made their first contribution in #2265
- @sudoburt made their first contribution in #2261
- @ajhynes7 made their first contribution in #1980
- @artvi made their first contribution in #2273
Full Changelog: v0.35.0...v0.36.0