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
