~raiguard/pesticide

A TUI front-end for the Debug Adapter Protocol.
22 days ago
23 days ago

#Pesticide

A TUI front-end for the Debug Adapter Protocol. Can be used as a standalone program, or integrated with terminal text editors.

#Status

This project is in early alpha. It currently shows variables, the call stack, and the debugee stdout. It expects there to be a kakoune session given by --session, and does not have a built-in source viewer yet.

Two-way comms between kakoune and pesticide are working, so it should be fairly usable soon. Then the UI code needs to be overhauled.

#Motivation

I am an avid Kakoune user. Kak is a very niche text editor with few users. As such, it does not have a mature Debug Adapter Protocol plugin.

Kakoune's philosophy is one of orthogonality. A text editor should be just that - a text editor. It should be easy to integrate with other tools in a POSIX environment. As such, Kakoune itself should not be used as a debugging interface, but only as the text editor portion of a debugging interface. Thus, everything except for the text editor itself should be handled by another program or programs. This is where Pesticide fits in.

#Goals

  • Start, manage, and stop DAP sessions
  • Show variables, watch, stack trace, breakpoints, and all other DAP views
  • Simple built-in text view for setting breakpoints
  • Easily integrate with terminal text editors for setting breakpoints and moving around the project
  • Client-server architecture to allow multiple terminals to show different views

#Non-goals

  • Integrate with GUI text editors
  • Manage debug adapters
  • Windows support

#Inspirations

#Attributions

DAP types and framed codec were borrowed from vscode-lldb under the MIT license, with modifications to custom extensions.