Commit b736cf67df6f

Vincent Demeester <vincent@sbr.pm>
2020-01-02 19:15:13
setup-completion.el: setup dap-mode 🎯
… with go support initially, most likely Python soon. Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 0012601
lisp/setup-completion.el
@@ -313,7 +313,7 @@ repository, then the corresponding root is used instead."
 ;; https://github.com/emacs-lsp/lsp-ui
 (use-package lsp-ui
   :after lsp-mode
-  :hook ((lsp-mode . lsp-ui-mode) 
+  :hook ((lsp-mode . lsp-ui-mode)
          (lsp-ui-mode . lsp-ui-peek-mode))
   :config
   (define-key lsp-ui-mode-map [remap xref-find-definitions] #'lsp-ui-peek-find-definitions)
@@ -338,6 +338,37 @@ repository, then the corresponding root is used instead."
       (setq projectile-project-root (lsp--workspace-root lsp--cur-workspace))))
   (add-hook 'lsp-before-open-hook #'my-set-projectile-root))
 
+(use-package dap-mode
+  :after lsp-mode
+  ;; :bind (:map dap-server-log-mode-map
+  ;;             ("g" . recompile)
+  ;;             :map dap-mode-map
+  ;;             ([f9] . dap-continue)
+  ;;             ([S-f9] . dap-disconnect)
+  ;;             ([f10] . dap-next)
+  ;;             ([f11] . dap-step-in)
+  ;;             ([S-f11] . dap-step-out)
+  ;;             ([f12] . dap-hide/show-ui))
+  :hook (dap-stopped-hook . (lambda (arg) (call-interactively #'dap-hydra)))
+  :config
+  ;; FIXME: Create nice solution instead of a hack
+  (defvar dap-hide/show-ui-hidden? t)
+  (defun dap-hide/show-ui ()
+    "Hide/show dap ui. FIXME"
+    (interactive)
+    (if dap-hide/show-ui-hidden?
+        (progn
+          (setq dap-hide/show-ui-hidden? nil)
+          (dap-ui-locals)
+          (dap-ui-repl))
+      (dolist (buf '("*dap-ui-inspect*" "*dap-ui-locals*" "*dap-ui-repl*" "*dap-ui-sessions*"))
+        (when (get-buffer buf)
+          (kill-buffer buf)))
+      (setq dap-hide/show-ui-hidden? t)))
+
+  (dap-mode)
+  (dap-ui-mode))
+
 (provide 'setup-completion)
 
 ;; Local Variables:
lisp/setup-go.el
@@ -23,10 +23,8 @@
   :hook (go-mode . flycheck-golangci-lint-setup)
   :config (setq flycheck-golangci-lint-tests t))
 
-;; (use-package lsp-go
-;;   :defer 2
-;;   :after lsp-mode
-;;   :hook ((go-mode . lsp-go-enable)))
+(use-package dap-go
+  :after dap-mode)
 
 (provide 'setup-go)