[Lldb-commits] [lldb] [lldb] Implement a statusline in LLDB (PR #121860)

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Fri Mar 7 09:27:57 PST 2025


JDevlieghere wrote:

Thanks for taking the time to review and try this out, @DavidSpickett! 

> I will find this out looking at the code shortly, but - does this mean that if you disable the statusline, you get the current progress reporting implementation, or no progress reporting at all?

I'll answer for everyone following along: my proposal is to have the statusline replace the old inline progress reports. In other words, if you disable the statusline, you get none. 

> I was going to bikeshed (or indeed bike shed) "statusline" vs. "status line" but I see that NeoVim spells it this way. That's popular already, so one word is fine with me.

That's the exact reason I went with "statusline" :-) I tried really hard to be consistent to use "statusline" and "Statusline" consistently, so if you see anything different somewhere it's a typo. 

> Is that empty line meant to be there on initial startup? Some visual space between commands and statusline is nice though, so it's not bad but it isn't always there after you run a few commands.

Because we resize the scroll window, everything above the statusline should behave exactly as it would without the statusline, so to me this is not expected. I'll see what's causing the newline. I bet it'd Editline but I'll need to understand why. It might have something to do with computing the terminal dimensions. 

> When I disable it, the statusline line is cleared but not reclaimed or moved or whatever, giving me a second blank line.

This one is expected, because it's as if you made your terminal one row taller.

> Probably expected because imagine you had a 24" monitor worth of output, we don't want to shift every line up and down 1 do we.
> 
> What does seem to be a bug is that tab complete hides the status bar, not just during but after:

Yes, this is the known bug that I mentioned in the RFC. I have two ways to fix it, but didn't want to include it in this PR, so maybe this is the perfect time to discuss them:

 - Make Editline aware of the "virtual" height of the terminal.
 - Have a callback from Editline to redraw the statusline.

I was leaning towards the second approach but the bug where there's a spurious newline might require the former.

>  ```
> <n>
> More (Y/n/a):
> (lldb)
>  << empty line where the status line was
> ```

Likely the same issue as the first one. I'll try to tackle these together. 

https://github.com/llvm/llvm-project/pull/121860


More information about the lldb-commits mailing list