IlanCosman / tide

🌊 The ultimate Fish prompt.
MIT License
2.95k stars 110 forks source link

Add a method to temporarily disable git portion of prompt #537

Open wjl opened 3 hours ago

wjl commented 3 hours ago

Is your feature request related to a problem? Please describe

I love the Tide prompt. However, when I cd into a directory with a extremely large Git repository, or even a relatively small Git repository that is being accessed over NFS or SMB, the prompt can get annoyingly slow, taking several seconds (sometimes more than 10 seconds) to display the prompt.

Describe the solution you'd like

I don't in general want to turn off the Git part of the prompt, it's very useful. But sometimes I want to turn it off just in one terminal. I would like to do this in an easy way, such as by just setting an environment variable, or alternately, by setting something in the Git configuration (perhaps similar to built-in Fish prompt which looks at bash.* variables)

Additional context

Alternately, if generating the Git portion of the prompt was 100% asynchronous, this might not be an issue. I think that parts of it might be asynchronous now, but not completely. I can work around this by removing "git" from tide_left_prompt_items and restarting the shell, but that makes global changes to the prompt and I have to manually change it and then revert it.

wjl commented 2 hours ago

Just to note, I'd also be happy if the prompt just didn't show Git info if it timed out, I was playing with Starship to see if it had this same behavior, and it just prints a warning about git timing out, and then only shows limited Git info (it seems like just the branch, which is still useful on its own). Running Starship on the same large repository only gives a delay of ~ 0.5 s between each prompt -- still slightly slow, as it's Git on an NFS drive, but much better than I'm getting with Tide.