Browse Source

feat(git)!: enable async git prompt (now for real)

BREAKING CHANGE: the new async prompt feature will render prompt information
asyncronously and degrade nicely when the calls take too long to finish, as
the prompt will already be first drawn and interactive. This is
enabled by default for the git prompt and themes that use it (`git_prompt_info`).
If you find that it's not working for you, please open an issue if one is
not already opened, and see https://github.com/ohmyzsh/ohmyzsh#disable-async-git-prompt
for how to turn it off.
Marc Cornellà 4 weeks ago
parent
commit
ec1afe9dd6
2 changed files with 13 additions and 1 deletions
  1. 12 0
      README.md
  2. 1 1
      lib/git.zsh

+ 12 - 0
README.md

@@ -43,6 +43,7 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi
   - [Custom Plugins And Themes](#custom-plugins-and-themes)
   - [Enable GNU ls In macOS And freeBSD Systems](#enable-gnu-ls-in-macos-and-freebsd-systems)
   - [Skip Aliases](#skip-aliases)
+  - [Disable async git prompt](#disable-async-git-prompt)
 - [Getting Updates](#getting-updates)
   - [Updates Verbosity](#updates-verbosity)
   - [Manual Updates](#manual-updates)
@@ -361,6 +362,17 @@ Instead, you can now use the following:
 zstyle ':omz:lib:directories' aliases no
 ```
 
+### Disable async git prompt
+
+Async prompt functions are an experimental feature (included on April 3, 2024) that allows Oh My Zsh to render prompt information
+asyncronously. This can improve prompt rendering performance, but it might not work well with some setups. We hope that's not an
+issue, but if you're seeing problems with this new feature, you can turn it of by setting the following in your .zshrc file,
+before Oh My Zsh is sourced:
+
+```sh
+zstyle ':omz:alpha:lib:git' async-prompt no
+```
+
 #### Notice <!-- omit in toc -->
 
 > This feature is currently in a testing phase and it may be subject to change in the future.

+ 1 - 1
lib/git.zsh

@@ -38,7 +38,7 @@ function _omz_git_prompt_status() {
 }
 
 # Enable async prompt by default unless the setting is at false / no
-if zstyle -t ':omz:alpha:lib:git' async-prompt; then
+if zstyle -T ':omz:alpha:lib:git' async-prompt; then
   function git_prompt_info() {
     if [[ -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]" ]]; then
       echo -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]"