diff --git a/layers/+lang/c-c++/packages.el b/layers/+lang/c-c++/packages.el index 0ac11b470..8c250a1b9 100644 --- a/layers/+lang/c-c++/packages.el +++ b/layers/+lang/c-c++/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- C/C++ Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs @@ -9,43 +9,43 @@ ;; ;;; License: GPLv3 -(setq c-c++-packages - '( - cc-mode - clang-format - (company-c-headers :requires company) - (cpp-auto-include - :location (recipe :fetcher github - :repo "syohex/emacs-cpp-auto-include")) - disaster - eldoc - flycheck - gdb-mi - google-c-style - helm-cscope - org - projectile - realgud - semantic - srefactor - stickyfunc-enhance - xcscope - ;; lsp - (ccls :requires lsp-mode) - dap-mode - ;; rtags - (company-rtags :requires (company rtags)) - counsel-gtags - (flycheck-rtags :requires (flycheck rtags)) - ggtags - helm-gtags - (helm-rtags :requires (helm rtags)) - (ivy-rtags :requires (ivy rtags)) - rtags - ;; ycmd - (company-ycmd :requires company) - (flycheck-ycmd :requires flycheck) - ycmd)) +(defconst c-c++-packages + '( + cc-mode + clang-format + (company-c-headers :requires company) + (cpp-auto-include + :location (recipe :fetcher github + :repo "syohex/emacs-cpp-auto-include")) + disaster + eldoc + flycheck + gdb-mi + google-c-style + helm-cscope + org + projectile + realgud + semantic + srefactor + stickyfunc-enhance + xcscope + ;; lsp + (ccls :requires lsp-mode) + dap-mode + ;; rtags + (company-rtags :requires (company rtags)) + counsel-gtags + (flycheck-rtags :requires (flycheck rtags)) + ggtags + helm-gtags + (helm-rtags :requires (helm rtags)) + (ivy-rtags :requires (ivy rtags)) + rtags + ;; ycmd + (company-ycmd :requires company) + (flycheck-ycmd :requires flycheck) + ycmd)) (defun c-c++/init-cc-mode () (use-package cc-mode @@ -117,8 +117,11 @@ "ri" #'spacemacs/c++-organize-includes)))) (defun c-c++/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'c-mode) - (add-to-list 'spacemacs--dap-supported-modes 'c++-mode) + (pcase (spacemacs//c-c++-backend) + (`lsp-clangd (add-to-list 'spacemacs--dap-supported-modes 'c-mode) + (add-to-list 'spacemacs--dap-supported-modes 'c++-mode)) + (`lsp-ccls (add-to-list 'spacemacs--dap-supported-modes 'c-mode) + (add-to-list 'spacemacs--dap-supported-modes 'c++-mode))) (add-hook 'c-mode-local-vars-hook #'spacemacs//c-c++-setup-dap) (add-hook 'c++-mode-local-vars-hook #'spacemacs//c-c++-setup-dap)) diff --git a/layers/+lang/elixir/packages.el b/layers/+lang/elixir/packages.el index 003ab7481..19ed42a88 100644 --- a/layers/+lang/elixir/packages.el +++ b/layers/+lang/elixir/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- Elixir Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs @@ -9,23 +9,22 @@ ;; ;;; License: GPLv3 -(setq elixir-packages - '( - alchemist - company - counsel-gtags - dap-mode - elixir-mode - evil-matchit - flycheck - flycheck-credo - flycheck-mix - ggtags - helm-gtags - ob-elixir - popwin - smartparens - )) +(defconst elixir-packages + '( + alchemist + company + counsel-gtags + dap-mode + elixir-mode + evil-matchit + flycheck + flycheck-credo + flycheck-mix + ggtags + helm-gtags + ob-elixir + popwin + smartparens)) (defun elixir/init-alchemist () (use-package alchemist @@ -38,7 +37,7 @@ (setq alchemist-project-compile-when-needed t alchemist-test-status-modeline nil) (add-to-list 'spacemacs-jump-handlers-elixir-mode - '(alchemist-goto-definition-at-point :async t))) + '(alchemist-goto-definition-at-point :async t))) :config (spacemacs/declare-prefix-for-mode 'elixir-mode "mX" "hex") (spacemacs/declare-prefix-for-mode 'elixir-mode "mc" "compile") @@ -153,7 +152,8 @@ (spacemacs/counsel-gtags-define-keys-for-mode 'elixir-mode)) (defun elixir/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'elixir-mode) + (pcase (spacemacs//elixir-backend) + (`lsp (add-to-list 'spacemacs--dap-supported-modes 'elixir-mode))) (add-hook 'elixir-mode-local-vars-hook #'spacemacs//elixir-setup-dap)) (defun elixir/post-init-evil-matchit () diff --git a/layers/+lang/go/funcs.el b/layers/+lang/go/funcs.el index 54ea83597..75157a7e7 100644 --- a/layers/+lang/go/funcs.el +++ b/layers/+lang/go/funcs.el @@ -66,6 +66,12 @@ (lsp)) (message "`lsp' layer is not installed, please add `lsp' layer to your dotfile."))) +(defun spacemacs//go-setup-dap () + "Conditionally setup go DAP integration." + ;; currently DAP is only available using LSP + (pcase (spacemacs//go-backend) + (`lsp (spacemacs//go-setup-lsp-dap)))) + (defun spacemacs//go-setup-lsp-dap () "Setup DAP integration." (require 'dap-go) diff --git a/layers/+lang/go/packages.el b/layers/+lang/go/packages.el index 24693bcbe..20cec2130 100644 --- a/layers/+lang/go/packages.el +++ b/layers/+lang/go/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- Go Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs @@ -9,29 +9,29 @@ ;; ;;; License: GPLv3 -(setq go-packages - '( - company - dap-mode - (company-go :requires company) - counsel-gtags - eldoc - flycheck - (flycheck-golangci-lint :toggle (and go-use-golangci-lint - (configuration-layer/package-used-p - 'flycheck))) - ggtags - helm-gtags - go-eldoc - go-fill-struct - go-gen-test - go-guru - go-impl - go-mode - go-rename - go-tag - godoctor - popwin)) +(defconst go-packages + '( + company + dap-mode + (company-go :requires company) + counsel-gtags + eldoc + flycheck + (flycheck-golangci-lint :toggle (and go-use-golangci-lint + (configuration-layer/package-used-p + 'flycheck))) + ggtags + helm-gtags + go-eldoc + go-fill-struct + go-gen-test + go-guru + go-impl + go-mode + go-rename + go-tag + godoctor + popwin)) (defun go/init-company-go () (use-package company-go @@ -45,8 +45,9 @@ (add-hook 'go-mode-local-vars-hook #'spacemacs//go-setup-company)) (defun go/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'go-mode) - (add-hook 'go-mode-local-vars-hook #'spacemacs//go-setup-lsp-dap)) + (pcase (spacemacs//go-backend) + (`lsp (add-to-list 'spacemacs--dap-supported-modes 'go-mode))) + (add-hook 'go-mode-local-vars-hook #'spacemacs//go-setup-dap)) (defun go/post-init-counsel-gtags () (spacemacs/counsel-gtags-define-keys-for-mode 'go-mode)) diff --git a/layers/+lang/java/packages.el b/layers/+lang/java/packages.el index a99841480..b515a7926 100644 --- a/layers/+lang/java/packages.el +++ b/layers/+lang/java/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- Java Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Lukasz Klich ;; URL: https://github.com/syl20bnr/spacemacs @@ -9,30 +9,30 @@ ;; ;;; License: GPLv3 -(setq java-packages - '( - company - dap-mode - flycheck - ggtags - gradle-mode - counsel-gtags - helm-gtags - (java-mode :location built-in) - maven-test-mode - (meghanada :toggle (not (version< emacs-version "25.1"))) - mvn - (lsp-java :requires lsp-mode) - org - smartparens - )) +(defconst java-packages + '( + company + dap-mode + flycheck + ggtags + gradle-mode + counsel-gtags + helm-gtags + (java-mode :location built-in) + maven-test-mode + (meghanada :toggle (not (version< emacs-version "25.1"))) + mvn + (lsp-java :requires lsp-mode) + org + smartparens)) (defun java/post-init-company () (add-hook 'java-mode-local-vars-hook #'spacemacs//java-setup-company)) (defun java/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'java-mode) - (add-hook 'java-mode-local-vars-hook #'spacemacs//java-setup-lsp-dap)) + (pcase (spacemacs//java-backend) + (`lsp (add-to-list 'spacemacs--dap-supported-modes 'java-mode))) + (add-hook 'java-mode-local-vars-hook #'spacemacs//java-setup-dap)) (defun java/post-init-flycheck () (add-hook 'java-mode-local-vars-hook #'spacemacs//java-setup-flycheck)) diff --git a/layers/+lang/javascript/packages.el b/layers/+lang/javascript/packages.el index 4d6d64342..ea088d2bb 100644 --- a/layers/+lang/javascript/packages.el +++ b/layers/+lang/javascript/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- Javascript Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs @@ -9,31 +9,30 @@ ;; ;;; License: GPLv3 -(setq javascript-packages - '( - add-node-modules-path - company - counsel-gtags - dap-mode - evil-matchit - flycheck - ggtags - helm-gtags - imenu - impatient-mode - import-js - js-doc - js2-mode - js2-refactor - livid-mode - nodejs-repl - org - prettier-js - skewer-mode - tern - tide - web-beautify - )) +(defconst javascript-packages + '( + add-node-modules-path + company + counsel-gtags + dap-mode + evil-matchit + flycheck + ggtags + helm-gtags + imenu + impatient-mode + import-js + js-doc + js2-mode + js2-refactor + livid-mode + nodejs-repl + org + prettier-js + skewer-mode + tern + tide + web-beautify)) (defun javascript/post-init-add-node-modules-path () (spacemacs/add-to-hooks #'add-node-modules-path '(css-mode-hook @@ -46,7 +45,8 @@ (spacemacs/counsel-gtags-define-keys-for-mode 'js2-mode)) (defun javascript/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'js2-mode) + (pcase (spacemacs//javascript-backend) + (`lsp (add-to-list 'spacemacs--dap-supported-modes 'js2-mode))) (add-hook 'js2-mode-local-vars-hook #'spacemacs//javascript-setup-dap)) (defun javascript/post-init-evil-matchit () @@ -221,8 +221,8 @@ (spacemacs/declare-prefix-for-mode 'js2-mode "msL" "nodejs-send-line-and-focus") (spacemacs/declare-prefix-for-mode 'js2-mode - "msR" "nodejs-send-region-and-focus") - )))) + "msR" "nodejs-send-region-and-focus"))))) + (defun javascript/pre-init-org () (spacemacs|use-package-add-hook org diff --git a/layers/+lang/php/funcs.el b/layers/+lang/php/funcs.el index b555fb97f..467236498 100644 --- a/layers/+lang/php/funcs.el +++ b/layers/+lang/php/funcs.el @@ -20,7 +20,6 @@ (pcase php-backend (`lsp (spacemacs//php-setup-lsp-dap)))) - (defun spacemacs//php-setup-lsp-dap () "Setup DAP integration." (require 'dap-php)) diff --git a/layers/+lang/php/packages.el b/layers/+lang/php/packages.el index fda4d7661..618edd81f 100644 --- a/layers/+lang/php/packages.el +++ b/layers/+lang/php/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- PHP Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs @@ -27,11 +27,11 @@ (phpactor :toggle (not (eq php-backend 'lsp))) (company-phpactor :requires company :toggle (not (eq php-backend 'lsp))) (company-php :requires company :toggle (not (eq php-backend 'lsp))) - (geben :toggle (not (eq php-backend 'lsp))) - )) + (geben :toggle (not (eq php-backend 'lsp))))) (defun php/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'php-mode) + (pcase php-backend + (`lsp (add-to-list 'spacemacs--dap-supported-modes 'php-mode))) (add-hook 'php-mode-local-vars-hook #'spacemacs//php-setup-dap)) (defun php/init-drupal-mode () diff --git a/layers/+lang/python/packages.el b/layers/+lang/python/packages.el index b73ade7d9..abf5d8f66 100644 --- a/layers/+lang/python/packages.el +++ b/layers/+lang/python/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- Python Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs @@ -9,44 +9,43 @@ ;; ;;; License: GPLv3 -(setq python-packages - '( - blacken - company - counsel-gtags - cython-mode - dap-mode - eldoc - evil-matchit - flycheck - ggtags - helm-cscope - helm-gtags - (helm-pydoc :requires helm) - importmagic - live-py-mode - (nose :location local) - org - pip-requirements - pipenv - pippel - py-isort - pyenv-mode - (pylookup :location local) - pytest - (python :location built-in) - pyvenv - semantic - smartparens - stickyfunc-enhance - xcscope - yapfify - ;; packages for anaconda backend - anaconda-mode - (company-anaconda :requires company) - ;; packages for Microsoft LSP backend - (lsp-python-ms :requires lsp-mode) - )) +(defconst python-packages + '( + blacken + company + counsel-gtags + cython-mode + dap-mode + eldoc + evil-matchit + flycheck + ggtags + helm-cscope + helm-gtags + (helm-pydoc :requires helm) + importmagic + live-py-mode + (nose :location local) + org + pip-requirements + pipenv + pippel + py-isort + pyenv-mode + (pylookup :location local) + pytest + (python :location built-in) + pyvenv + semantic + smartparens + stickyfunc-enhance + xcscope + yapfify + ;; packages for anaconda backend + anaconda-mode + (company-anaconda :requires company) + ;; packages for Microsoft LSP backend + (lsp-python-ms :requires lsp-mode))) (defun python/init-anaconda-mode () (use-package anaconda-mode @@ -95,9 +94,9 @@ (defun python/init-company-anaconda () (use-package company-anaconda :if (eq (spacemacs//python-backend) 'anaconda) - :defer t - ;; see `spacemacs//python-setup-anaconda-company' - )) + :defer t)) +;; see `spacemacs//python-setup-anaconda-company' + (defun python/init-blacken () (use-package blacken @@ -120,7 +119,8 @@ "gu" 'anaconda-mode-find-references)))) (defun python/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'python-mode) + (pcase (spacemacs//python-backend) + (`lsp (add-to-list 'spacemacs--dap-supported-modes 'python-mode))) (add-hook 'python-mode-local-vars-hook #'spacemacs//python-setup-dap)) (defun python/post-init-eldoc () diff --git a/layers/+lang/ruby/packages.el b/layers/+lang/ruby/packages.el index 9e61f0449..ccee70e2e 100644 --- a/layers/+lang/ruby/packages.el +++ b/layers/+lang/ruby/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- Ruby Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs @@ -37,8 +37,7 @@ ruby-tools rvm seeing-is-believing - smartparens - )) + smartparens)) (defun ruby/init-bundler () (use-package bundler @@ -70,8 +69,9 @@ (spacemacs/counsel-gtags-define-keys-for-mode 'enh-ruby-mode)) (defun ruby/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'ruby-mode) - (add-to-list 'spacemacs--dap-supported-modes 'enh-ruby-mode) + (pcase (spacemacs//ruby-backend) + (`lsp (add-to-list 'spacemacs--dap-supported-modes 'ruby-mode) + (add-to-list 'spacemacs--dap-supported-modes 'enh-ruby-mode))) (spacemacs/add-to-hooks #'spacemacs//ruby-setup-dap '(ruby-mode-local-vars-hook enh-ruby-mode-local-vars-hook))) diff --git a/layers/+lang/rust/packages.el b/layers/+lang/rust/packages.el index cb81a145c..0dfdfd408 100644 --- a/layers/+lang/rust/packages.el +++ b/layers/+lang/rust/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- Rust Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Chris Hoeppner ;; URL: https://github.com/syl20bnr/spacemacs @@ -9,21 +9,20 @@ ;; ;;; License: GPLv3 -(setq rust-packages - '( - cargo - company - counsel-gtags - dap-mode - flycheck - (flycheck-rust :requires flycheck) - ggtags - helm-gtags - racer - rust-mode - smartparens - toml-mode - )) +(defconst rust-packages + '( + cargo + company + counsel-gtags + dap-mode + flycheck + (flycheck-rust :requires flycheck) + ggtags + helm-gtags + racer + rust-mode + smartparens + toml-mode)) (defun rust/init-cargo () (use-package cargo @@ -64,7 +63,8 @@ (spacemacs/counsel-gtags-define-keys-for-mode 'rust-mode)) (defun rust/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'rust-mode) + (pcase (spacemacs//rust-backend) + (`lsp (add-to-list 'spacemacs--dap-supported-modes 'rust-mode))) (add-hook 'rust-mode-local-vars-hook #'spacemacs//rust-setup-dap)) (defun rust/post-init-flycheck () diff --git a/layers/+lang/scala/packages.el b/layers/+lang/scala/packages.el index 13d5651b4..48d12330c 100644 --- a/layers/+lang/scala/packages.el +++ b/layers/+lang/scala/packages.el @@ -1,6 +1,6 @@ ;;; packages.el --- Scala Layer packages File for Spacemacs ;; -;; Copyright (c) 2012-2018 Sylvain Benner & Contributors +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs @@ -9,21 +9,20 @@ ;; ;;; License: GPLv3 -(setq scala-packages - '( - lsp-mode - dap-mode - eldoc - flycheck - flyspell - lsp-treemacs - counsel-gtags - ggtags - helm-gtags - (ensime :toggle (spacemacs//scala-backend-ensime-p)) - sbt-mode - scala-mode - )) +(defconst scala-packages + '( + lsp-mode + dap-mode + eldoc + flycheck + flyspell + lsp-treemacs + counsel-gtags + ggtags + helm-gtags + (ensime :toggle (spacemacs//scala-backend-ensime-p)) + sbt-mode + scala-mode)) (defun scala/post-init-eldoc () (when (and scala-enable-eldoc (spacemacs//scala-backend-ensime-p)) @@ -270,7 +269,8 @@ If it's part of a left arrow (`<-'),replace it with the unicode arrow." scala-indent:operator-strategy)))) (defun scala/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'scala-mode) + (when (spacemacs//scala-backend-metals-p) + (add-to-list 'spacemacs--dap-supported-modes 'scala-mode)) (spacemacs//scala-setup-dap)) (defun scala/post-init-lsp-mode () diff --git a/layers/+tools/dap/README.org b/layers/+tools/dap/README.org index 29af2d4a9..aec7d7a58 100644 --- a/layers/+tools/dap/README.org +++ b/layers/+tools/dap/README.org @@ -47,17 +47,19 @@ file. * Configuration ** DAP configuration in supported layers -By default ~dap~ layer registers global key binding defined under ~SPC m~. If you +By default ~dap~ layer registers global key binding defined under ~SPC d~. If you want to have debug bindings under major mode leader you may do the following: For instance the =java= layer: #+BEGIN_SRC emacs-lisp (defun java/pre-init-dap-mode () - (add-to-list 'spacemacs--dap-supported-modes 'java-mode)) + (pcase (spacemacs//java-backend) + (`lsp (add-to-list 'spacemacs--dap-supported-modes 'java-mode))) + (add-hook 'java-mode-local-vars-hook #'spacemacs//java-setup-dap)) #+END_SRC -See the =java= layer for further example on how to setup correctly =dap-mode=. +See the =java= layer for further example on how to setup =dap-mode= correctly ** Variables @@ -73,10 +75,10 @@ The following prefixes have been declared: |-----------+-------------------| | ~SPC d~ | debug | | ~SPC d b~ | breakpoints | -| ~SPC d d~ | launching | +| ~SPC d d~ | debugging | | ~SPC d e~ | eval | | ~SPC d I~ | inspect | -| ~SPC d l~ | debug windows | +| ~SPC d w~ | debug windows | | ~SPC d S~ | context switching | | ~SPC d T~ | toggles |