To install this package from Emacs, use package-install or list-packages.
Use dape-configs to set up your debug adapter configurations.
To initiate debugging sessions, use the command dape.
For complete functionality, activate eldoc-mode in your source buffers and enable repeat-mode for ergonomics.
eldochexlcompile integration
With (setq dape-buffer-window-arrangement 'right):
And with (setq dape-buffer-window-arrangement 'gud) + corfu as completion-in-region-function:
And with minibuffer config hints:
Screenshots taken with modus-operandi-tinted.
Currently Dape does not come with any debug adapter configuration.
(use-package dape ;; To use window configuration like gud (gdb-mi) ;; :init ;; (setq dape-buffer-window-arrangement 'gud) :config ;; Info buffers to the right ;; (setq dape-buffer-window-arrangement 'right) ;; To not display info and/or buffers on startup ;; (remove-hook 'dape-on-start-hooks 'dape-info) ;; (remove-hook 'dape-on-start-hooks 'dape-repl) ;; To display info and/or repl buffers on stopped ;; (add-hook 'dape-on-stopped-hooks 'dape-info) ;; (add-hook 'dape-on-stopped-hooks 'dape-repl) ;; By default dape uses gdb keybinding prefix ;; If you do not want to use any prefix, set it to nil. ;; (setq dape-key-prefix "\C-x\C-a") ;; Kill compile buffer on build success ;; (add-hook 'dape-compile-compile-hooks 'kill-buffer) ;; Save buffers on startup, useful for interpreted languages ;; (add-hook 'dape-on-start-hooks ;; (defun dape--save-on-start () ;; (save-some-buffers t t))) ;; Projectile users ;; (setq dape-cwd-fn 'projectile-project-root) )
Dape has no dependencies outside of packages included in emacs, and tries to use get as much out of them possible.
Dape takes a slightly different approach to configuration.
launch.json files, if per project configuration is needed use dir-locals.dape completing-read by using options to change/add plist entries in an already existing config, example: adapter-config :program "/home/user/b.out" compile "gcc -g -o b.out main.c".
In theory all debug adapters should be compatible with Dape.
nodejs-debug-dap-<version>.tar.gzmkdir -p ~/.emacs.d/debug-adapters && tar -xvzf js-debug-dap-<version>.tar.gz -C ~/.emacs.d/debug-adaptersFor more information see OPTIONS.md.
See delve installation. For more information see documentation.
Download latesnd unpack vsix file with your favorite unzipper.
vsix release for your platform cpptools-<platform>-<os>.vsixmkdir -p ~/.emacs.d/debug-adapters && unzip cpptools-<os>-<platform>.vsix -d ~/.emacs.d/debug-adapters/cpptoolschmod +x ~/.emacs.d/debug-adapters/cpptools/extension/debugAdapters/bin/OpenDebugAD7chmod +x ~/.emacs.d/debug-adapters/cpptools/extension/debugAdapters/lldb-mi/bin/lldb-miSee options.
Install debugpy with pip pip install debugpy
See options.
Configure debug adapter port under "Editor" -> "Editor Settings" -> "Debug Adapter".
See for installation https://docs.flutter.dev/get-started/install
See https://github.com/Samsung/netcoredbg for installation
Install with gem install debug.
See https://github.com/ruby/debug for more information
See https://github.com/eclipse-jdtls/eclipse.jdt.ls for installation of JDTLS.
See https://github.com/microsoft/java-debug for installation of the Java Debug Server plugin.
The Java config depends on Eglot running JDTLS with the plugin prior to starting Dape.
Extend eglot-server-programs as follows to have JDTLS load the plugin:
(add-to-list 'eglot-server-programs
`((java-mode java-ts-mode) .
("jdtls"
:initializationOptions
(:bundles ["/PATH/TO/java-debug/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-VERSION.jar"]))))
If you find a working configuration for any other debug adapter please submit a PR.
See microsofts list for other adapters, your mileage will vary.
If your are having issues with adapter output in *dape-repl* and startup time jsonrpc.el could be the culprit.
This has been reported upstream (#69241), but until the issue has been fixed there exists an fork of jsonrpc.el.
(use-package jsonrpc :straight (jsonrpc :type git :host github :repo "svaante/jsonrpc"))
Before reporting any issues (setq dape-debug t) and take a look at *dape-repl* buffer. Please share your *dape-repl* and *dape-connection events* in the buffer contents with the bug report.
Master is used is for all case and purposes a development branch still and releases on elpa should be more stable so in the mean time use elpa if the bug is a breaking you workflow.
Big thanks to João Távora for the input and jsonrpc; the project wouldn't be where it is without João.
| dape-0.6.1.tar.lz | 2024-Feb-12 | 47.3 KiB |
| dape-0.6.0.tar.lz | 2024-Feb-10 | 47.3 KiB |
| dape-0.5.0.tar.lz | 2024-Jan-23 | 46.3 KiB |
| dape-0.4.0.tar.lz | 2024-Jan-17 | 45.6 KiB |
| dape-0.3.0.tar.lz | 2023-Dec-22 | 41.1 KiB |
| dape-0.2.2.tar.lz | 2023-Dec-05 | 39.0 KiB |
| dape-0.2.tar.lz | 2023-Dec-05 | 38.8 KiB |