https://github.com/JDevlieghere created 
https://github.com/llvm/llvm-project/pull/169101

Using Python's built-in help shows an empty screen when the statusline is 
enabled. The issue is the pydoc pager (e.g. less) which doesn't play nice with 
the statusline. Use the "plain" pager instead.

I considered making this conditional on the statusline, but to do that right 
you would need to register a callback that toggles it every time the setting 
changes and that doesn't seem worth the complexity.

Fixes #166610

>From 022752aefebdb4339a3831dcd71a204715944955 Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <[email protected]>
Date: Fri, 21 Nov 2025 13:49:59 -0800
Subject: [PATCH] [lldb] Fix help/pydoc output when the statusline is enabled

Using Python's built-in help shows an empty screen when the statusline
is enabled. The issue is the pydoc pager (e.g. less) which doesn't play
nice with the statusline. Use the "plain" pager instead.

I considered making this conditional on the statusline, but to do that
right you would need to register a callback that toggles it every time
the setting changes and that doesn't seem worth the complexity.

Fixes #166610
---
 .../ScriptInterpreter/Python/ScriptInterpreterPython.cpp  | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git 
a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp 
b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
index 35a772c1454df..b4e11d20609d0 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
@@ -416,6 +416,14 @@ 
ScriptInterpreterPythonImpl::ScriptInterpreterPythonImpl(Debugger &debugger)
   RunSimpleString(run_string.GetData());
   run_string.Clear();
 
+  // Configure pydoc (built-in module) to use the "plain" pager. The default 
one
+  // doesn't play nice with the statusline.
+  run_string.Printf("run_one_line (%s, 'import pydoc; pydoc.pager = "
+                    "pydoc.plainpager')",
+                    m_dictionary_name.c_str());
+  RunSimpleString(run_string.GetData());
+  run_string.Clear();
+
   run_string.Printf("run_one_line (%s, 'lldb.debugger_unique_id = %" PRIu64
                     "')",
                     m_dictionary_name.c_str(), m_debugger.GetID());

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to