Skip to content

tatfook/vscode-npl-debug

Repository files navigation

VS Code NPL Debug

NPL Debug uses NPL HTTP Debugger adapter for Visual Studio Code. It supports step, continue, breakpoints, etc.

More information about how to develop a new debug adapter can be found here. Here is a good reference of chrome debugger

Using NPL Debug In Attach Mode

  • Install the NPL Debug extension in VS Code.
  • Run NPL program in the current workspace directory with HTTP debug enabled.
  • Switch to the debug viewlet and press the gear dropdown.
  • Select the debug environment "NPL Debug Attach".
  • Press the green 'play' button to start debugging.

One can specify searchpath for additional folders when opening source files. Your launch.json could look like this one: The ${workspaceFolder} is always added to search path by default.

  {
    "type": "NPL",
    "request": "attach",
    "name": "NPL Http Attach",
    "port": 8099,
    "trace": false,
    "searchpath": [
      "${workspaceFolder}/npl_packages/main",
      "${workspaceFolder}/npl_packages/paracraft"
    ]
  }

vscode support multiple debug sessions, so one can install Chrome Debugger and start it alongside NPL debugger, so that one can debug both frontend and backend code in the same vscode ide.

parameters:

  • port: this is the NPL http debugger port on the target running application.
  • searchpath: where the debugger should look for corresponding source code when a breakpoint is hit.
  • trace: output more information to the debug console.

Using Launch Mode

Attach mode is always recommended for advanced users. Because, when no debugger is detached, the app is running in full speed. And one can attach,detach multiple times to the same running application.

For users who want to debug the first script loaded, we also provide the launch mode. The difference is that one no longer needs to start the NPL runtime manually, instead one must specify the runtimeExecutable, bootstrapper, etc in launch.json like below.

{
    "type": "NPL",
    "request": "launch",
    "name": "Launch NPL",
    "runtimeExecutable": "D:\\lxzsrc\\ParaCraftSDK\\redist\\paraengineclient.exe",
    "bootstrapper": "script/apps/Aries/main_loop.lua", // or use "current_open_file"
    "cmdlineParams": "mc=true noupdate=true",
    "port": 8099,
    "searchpath": [
      "${workspaceFolder}/npl_packages/main",
      "${workspaceFolder}/npl_packages/paracraft"
    ],
    "exitAppOnStop": true,
    "trace": false
},

parameters:

  • runtimeExecutable: if not specified or "npl", we will search in environment path variable for a installed NPL runtime executable. Under linux or mac, this is usually /usr/local/bin/npl
  • bootstrapper: the main NPL script file relative to working directory, such as main_loop.lua. if this is current_open_file, it will use the file that is currently open in the editor.
  • cmdlineParams: additional command line parameters without bootstrapper and port.
  • exitAppOnStop: whether to exit the application when the user stopped debugging

Build and Debug

git clone https://github.com/tatfook/vscode-npl-debug.git
cd vscode-npl-debug
npm install
  • Open the project folder in VS Code.
  • In debug panel, select Extension + Server, Press F5 to build and launch NPL Debug in another VS Code window. In that window:
    • Run NPL program in the current workspace directory with HTTP debug enabled.
    • Switch to the debug viewlet and press the gear dropdown.
    • Select the debug environment "NPL Debug Attach" (add debugServer:4711 to launch.json).
    • Press F5 to start debugging.

Or in launch.json

  {
    "type": "NPL",
    "request": "launch",
    "name": "NPL Sample",
    "port": 8099,
    "debugServer": 4711,
    "trace": true,
    "program": "${workspaceFolder}/readme.md",
    "stopOnEntry": true
  }

It is very important to enable debugServer on port 4711, otherwise you can not debug the NPL adapter. If you are not debugging the server, you should remove debugServer line. For more information, please read carefully this doc

Publish the extension

Refer to this We need to register a token and create a publisher called tatfook.

npm install -g vsce
vsce package
vsce publish minor

About

npl debugger for vscode

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published