diff --git a/README.org b/README.org index 2ed364d..c4fcd34 100644 --- a/README.org +++ b/README.org @@ -180,6 +180,14 @@ Install with ~opam install earlybird~. 2. Place breakpoints inside of =_build/default/*= See [[https://github.com/hackwaly/ocamlearlybird][ocamlearlybird]] for more information. + +** Bash - bash-debug +1. Install =node= +2. Download latest =vsix= [[https://github.com/rogalmic/vscode-bash-debug/releases][release]] of DAP adapter =bash-debug-.vsix= +3. Unpack ~mkdir -p ~/.emacs.d/debug-adapters && unzip bash-debug-.vsix -d ~/.emacs.d/debug-adapters/bash-debug~ + +See [[https://github.com/rogalmic/vscode-bash-debug][bash-debug]] for more information. + ** Other untested adapters If you find a working configuration for any other debug adapter please submit a PR. diff --git a/dape.el b/dape.el index 97ff458..05148dc 100644 --- a/dape.el +++ b/dape.el @@ -103,6 +103,33 @@ (unless (plist-get config 'command) (user-error "Missing `command' property"))) :request "launch") + ,(let* ((extension-directory + (expand-file-name + (file-name-concat dape-adapter-dir "bash-debug" "extension"))) + (bashdb-dir (file-name-concat extension-directory "bashdb_dir"))) + `(bash-debug + modes (sh-mode bash-ts-mode) + ensure (lambda (config) + (dape-ensure-command config) + (let ((dap-debug-server-path + (car (plist-get config 'command-args)))) + (unless (file-exists-p dap-debug-server-path) + (user-error "File %S does not exist" dap-debug-server-path)))) + command "node" + command-args (,(file-name-concat extension-directory "out" "bashDebug.js")) + fn (lambda (config) + (thread-first config + (plist-put :pathBashdbLib ,bashdb-dir) + (plist-put :pathBashdb (file-name-concat ,bashdb-dir "bashdb")) + (plist-put :env `(:BASHDB_HOME ,,bashdb-dir . ,(plist-get config :env))))) + :type "bashdb" + :cwd dape-cwd + :program dape-buffer-default + :args [] + :pathBash "bash" + :pathCat "cat" + :pathMkfifo "mkfifo" + :pathPkill "pkill")) ,@(let ((codelldb `(ensure dape-ensure-command command-cwd dape-command-cwd