mirror of
https://github.com/evennia/evennia.git
synced 2026-04-04 15:07:16 +02:00
Update Changelog and contrib docs
This commit is contained in:
parent
671cab5cfd
commit
867b8c68cf
8 changed files with 226 additions and 27 deletions
121
docs/source/Contribs/Contrib-Debugpy.md
Normal file
121
docs/source/Contribs/Contrib-Debugpy.md
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
# DebugPy VSCode debugger integration
|
||||
|
||||
Contribution by electroglyph, 2025
|
||||
|
||||
This registers an in-game command `debugpy` which starts the debugpy debugger and listens on port 5678.
|
||||
For now this is only available for Visual Studio Code (VS Code).
|
||||
|
||||
If you are a JetBrains PyCharm user and would like to use this, make some noise at:
|
||||
https://youtrack.jetbrains.com/issue/PY-63403/Support-debugpy
|
||||
|
||||
|
||||
Credit for this goes to Moony on the Evennia Discord getting-help channel, thx Moony!
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
This requires VS Code and debugpy, so make sure you're using VS Code.
|
||||
|
||||
From the venv where you installed Evennia run:
|
||||
|
||||
`pip install debugpy`
|
||||
|
||||
### Enable the command in Evennia
|
||||
|
||||
In your Evennia mygame folder, open up `/commands/default_cmdsets.py`
|
||||
|
||||
add `from evennia.contrib.utils.debugpy import CmdDebugPy` somewhere near the top.
|
||||
|
||||
in `CharacterCmdSet.at_cmdset_creation` add this under `super().at_cmdset_creation()`:
|
||||
|
||||
`self.add(CmdDebugPy)`
|
||||
|
||||
|
||||
### Add "remote attach" option to VS Code debugger
|
||||
|
||||
Start VS Code and open your launch.json like this:
|
||||
|
||||

|
||||
|
||||
Add this to your configuration:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Python Debugger: Remote Attach",
|
||||
"justMyCode": false,
|
||||
"type": "debugpy",
|
||||
"request": "attach",
|
||||
"connect": {
|
||||
"host": "127.0.0.1",
|
||||
"port": 5678
|
||||
},
|
||||
"pathMappings": [
|
||||
{
|
||||
"localRoot": "${workspaceFolder}",
|
||||
"remoteRoot": "${workspaceFolder}"
|
||||
}
|
||||
]
|
||||
},
|
||||
```
|
||||
|
||||
Use `127.0.0.1` for the host if you are running Evennia from the same machine you'll be debugging from. Otherwise, if you want to debug a remote server, change host (and possibly remoteRoot mapping) as necessary.
|
||||
|
||||
Afterwards it should look something like this:
|
||||
|
||||
```json
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Python Debugger: Current File",
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"console": "integratedTerminal",
|
||||
},
|
||||
{
|
||||
"name": "Python Debugger: Remote Attach",
|
||||
"justMyCode": false,
|
||||
"type": "debugpy",
|
||||
"request": "attach",
|
||||
"connect": {
|
||||
"host": "127.0.0.1",
|
||||
"port": 5678
|
||||
},
|
||||
"pathMappings": [
|
||||
{
|
||||
"localRoot": "${workspaceFolder}",
|
||||
"remoteRoot": "${workspaceFolder}"
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
(notice the comma between the curly braces)
|
||||
|
||||
## Usage
|
||||
|
||||
Set a breakpoint in VS Code where you want the debugger to stop at.
|
||||
|
||||
In Evennia run `debugpy` command.
|
||||
|
||||
You should see "Waiting for debugger attach..."
|
||||
|
||||
Back in VS Code attach the debugger:
|
||||
|
||||

|
||||
|
||||
Back in Evennia you should see "Debugger attached."
|
||||
|
||||
Now trigger the breakpoint you set and you'll be using a nice graphical debugger.
|
||||
|
||||
|
||||
----
|
||||
|
||||
<small>This document page is generated from `evennia/contrib/utils/debugpy/README.md`. Changes to this
|
||||
file will be overwritten, so edit that file rather than this one.</small>
|
||||
Loading…
Add table
Add a link
Reference in a new issue