Have split python_(remote_)debugger keybinds

python_debugger (shift+F1) will now always start pdb, and
python_remote_debugger will always start remote_pdb.
Since the new autoreload.py script doesn't break stdin like entr with
live-reload.sh did, we can now use pdb if the app is connected to a
terminal.
This commit is contained in:
miruka 2021-01-16 08:15:49 -04:00
parent e4959f503c
commit 0dadf7de97
3 changed files with 19 additions and 17 deletions

View File

@ -133,10 +133,10 @@ class QMLBridge:
self._cancelled_early.add(uuid) self._cancelled_early.add(uuid)
def pdb(self, additional_data: Sequence = ()) -> None: def pdb(self, extra_data: Sequence = (), remote: bool = False) -> None:
"""Call the RemotePdb debugger; define some conveniance variables.""" """Call the RemotePdb debugger; define some conveniance variables."""
ad = additional_data # noqa ad = extra_data # noqa
ba = self.backend # noqa ba = self.backend # noqa
mo = self.backend.models # noqa mo = self.backend.models # noqa
cl = self.backend.clients cl = self.backend.clients
@ -151,21 +151,13 @@ class QMLBridge:
except ModuleNotFoundError: except ModuleNotFoundError:
pass pass
try: if remote:
# Run `socat readline tcp:127.0.0.1:4444` in a terminal to connect
import remote_pdb import remote_pdb
except ModuleNotFoundError: remote_pdb.RemotePdb("127.0.0.1", 4444).set_trace()
log.warning( else:
"\nThe remote_pdb python package is not installed, falling "
"back to pdb.",
)
import pdb import pdb
pdb.set_trace() pdb.set_trace()
else:
log.info(
"\n=> Run `socat readline tcp:127.0.0.1:4444` in a terminal "
"to connect to the debugger.",
)
remote_pdb.RemotePdb("127.0.0.1", 4444).set_trace()
def exit(self) -> None: def exit(self) -> None:

View File

@ -219,13 +219,18 @@ class Keys:
# Switch to the last opened page/chat, similar to Alt+Tab on most desktops. # Switch to the last opened page/chat, similar to Alt+Tab on most desktops.
last_page = ["Ctrl+Tab"] last_page = ["Ctrl+Tab"]
# Toggle the QML developer console. Type ". help" in it for more info. # Toggle the QML developer console. Type ". help" inside it for more info.
qml_console = ["F1"] qml_console = ["F1"]
# Start the Python backend debugger. Unless the "remote-pdb" pip package is # Start the Python backend debugger.
# installed, Mirage must be started from a terminal for this to work. # Mirage must be connected to a terminal for this to work.
python_debugger = ["Shift+F1"] python_debugger = ["Shift+F1"]
# Start the Python backend debugger in remote access mode.
# The remote-pdb Python package must be installed.
# From any terminal, run `socat readline tcp:127.0.0.1:4444` to connect.
python_remote_debugger = ["Alt+F1"]
class Scrolling: class Scrolling:
# Pages and chat timeline scrolling # Pages and chat timeline scrolling
up = ["Alt+Up", "Alt+K"] up = ["Alt+Up", "Alt+K"]

View File

@ -39,6 +39,11 @@ Item {
onActivated: py.call("BRIDGE.pdb") onActivated: py.call("BRIDGE.pdb")
} }
HShortcut {
sequences: window.settings.Keys.python_remote_debugger
onActivated: py.call("BRIDGE.pdb", [[], true])
}
HShortcut { HShortcut {
sequences: window.settings.Keys.zoom_in sequences: window.settings.Keys.zoom_in
onActivated: { onActivated: {