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)
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."""
ad = additional_data # noqa
ad = extra_data # noqa
ba = self.backend # noqa
mo = self.backend.models # noqa
cl = self.backend.clients
@ -151,21 +151,13 @@ class QMLBridge:
except ModuleNotFoundError:
pass
try:
if remote:
# Run `socat readline tcp:127.0.0.1:4444` in a terminal to connect
import remote_pdb
except ModuleNotFoundError:
log.warning(
"\nThe remote_pdb python package is not installed, falling "
"back to pdb.",
)
remote_pdb.RemotePdb("127.0.0.1", 4444).set_trace()
else:
import pdb
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:

View File

@ -219,13 +219,18 @@ class Keys:
# Switch to the last opened page/chat, similar to Alt+Tab on most desktops.
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"]
# Start the Python backend debugger. Unless the "remote-pdb" pip package is
# installed, Mirage must be started from a terminal for this to work.
# Start the Python backend debugger.
# Mirage must be connected to a terminal for this to work.
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:
# Pages and chat timeline scrolling
up = ["Alt+Up", "Alt+K"]

View File

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