java: improve maven and gradle support (also for groovy)
Add new packages `mvn` and `maven-test-mode`. Move `gradle-mode` configuration from groovy layer to java layer New prefix commands `SPC m m` for maven and `SPC m l` for gradle. Make maven and gradle commands available in java-mode. Update documentation.
This commit is contained in:
parent
a8340a0262
commit
17fc89f9e7
|
@ -7,7 +7,6 @@
|
|||
- [[#features][Features:]]
|
||||
- [[#install][Install]]
|
||||
- [[#key-bindings][Key bindings]]
|
||||
- [[#gradle][Gradle]]
|
||||
- [[#repl][REPL]]
|
||||
|
||||
* Description
|
||||
|
@ -24,17 +23,6 @@ add =groovy= to the existing =dotspacemacs-configuration-layers= list in this
|
|||
file.
|
||||
|
||||
* Key bindings
|
||||
** Gradle
|
||||
|
||||
| Key Binding | Description |
|
||||
|-------------+--------------------------|
|
||||
| ~SPC m c c~ | Compile |
|
||||
| ~SPC m c r~ | Clean and compile |
|
||||
| ~SPC m c t~ | Execute a Gradle task |
|
||||
| ~SPC m t a~ | Run all tests |
|
||||
| ~SPC m t b~ | Run current buffer tests |
|
||||
| ~SPC m t t~ | Run a specific test |
|
||||
|
||||
** REPL
|
||||
|
||||
| Key Binding | Description |
|
||||
|
|
|
@ -10,19 +10,6 @@
|
|||
;;; License: GPLv3
|
||||
|
||||
|
||||
;; Gradle
|
||||
|
||||
(when (configuration-layer/package-used-p 'gradle-mode)
|
||||
(defun spacemacs/gradle-clean-build ()
|
||||
"Execute 'gradle clean build' command."
|
||||
(interactive)
|
||||
(gradle-execute "clean build"))
|
||||
|
||||
(defun spacemacs/gradle-test-buffer ()
|
||||
"Execute 'gradle test' command against current buffer tests."
|
||||
(interactive)
|
||||
(gradle-single-test (file-name-base (buffer-file-name)))))
|
||||
|
||||
;; REPL
|
||||
|
||||
(defun spacemacs/groovy-send-region-switch (start end)
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
(setq groovy-packages
|
||||
'(
|
||||
company
|
||||
gradle-mode
|
||||
groovy-imports
|
||||
groovy-mode
|
||||
org
|
||||
|
@ -21,19 +20,6 @@
|
|||
(defun groovy/post-init-company ()
|
||||
(spacemacs|add-company-backends :modes groovy-mode))
|
||||
|
||||
(defun groovy/init-gradle-mode ()
|
||||
(use-package gradle-mode
|
||||
:defer t
|
||||
:config
|
||||
(progn
|
||||
(spacemacs/set-leader-keys-for-minor-mode 'gradle-mode
|
||||
"cc" 'gradle-build
|
||||
"cr" 'spacemacs/gradle-clean-build
|
||||
"ct" 'gradle-execute
|
||||
"ta" 'gradle-test
|
||||
"tb" 'spacemacs/gradle-test-buffer
|
||||
"tt" 'gradle-single-test))))
|
||||
|
||||
(defun groovy/init-groovy-imports ()
|
||||
(use-package groovy-imports
|
||||
:defer t))
|
||||
|
@ -44,10 +30,6 @@
|
|||
:init
|
||||
(progn
|
||||
(spacemacs/declare-prefix-for-mode 'groovy-mode "ms" "REPL")
|
||||
(when (configuration-layer/package-used-p 'gradle-mode)
|
||||
(add-hook 'groovy-mode-hook 'gradle-mode)
|
||||
(spacemacs/declare-prefix-for-mode 'groovy-mode "mc" "build")
|
||||
(spacemacs/declare-prefix-for-mode 'groovy-mode "mt" "test"))
|
||||
(spacemacs/set-leader-keys-for-major-mode 'groovy-mode
|
||||
"'" 'run-groovy
|
||||
"sB" 'spacemacs/groovy-load-file-switch
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
- [[#ant][Ant]]
|
||||
- [[#project-management][Project management]]
|
||||
- [[#eclim-daemon][Eclim daemon]]
|
||||
- [[#maven][Maven]]
|
||||
- [[#goto][Goto]]
|
||||
- [[#refactoring-1][Refactoring]]
|
||||
- [[#documentation-find][Documentation, Find]]
|
||||
|
@ -58,6 +57,8 @@
|
|||
- [[#refactoring-2][Refactoring]]
|
||||
- [[#tests-1][Tests]]
|
||||
- [[#repl][REPL]]
|
||||
- [[#maven][Maven]]
|
||||
- [[#gradle][Gradle]]
|
||||
|
||||
* Description
|
||||
This layer adds support for the Java language.
|
||||
|
@ -310,17 +311,6 @@ particular refactoring doesn't work.
|
|||
| ~SPC m D k~ | Kill daemon |
|
||||
| ~SPC m D s~ | Start daemon |
|
||||
|
||||
**** Maven
|
||||
|
||||
| Key Binding | Description |
|
||||
|-------------+--------------------------------|
|
||||
| ~SPC m m i~ | Run maven clean install |
|
||||
| ~SPC m m I~ | Run maven install |
|
||||
| ~SPC m m p~ | Run one already goal from list |
|
||||
| ~SPC m m r~ | Run maven goals |
|
||||
| ~SPC m m R~ | Run one maven goal |
|
||||
| ~SPC m m t~ | Run maven test |
|
||||
|
||||
**** Goto
|
||||
|
||||
| Key Binding | Description |
|
||||
|
@ -530,3 +520,30 @@ particular refactoring doesn't work.
|
|||
| ~SPC m s i~ | start or switch to the REPL inferior process |
|
||||
| ~SPC m s r~ | send region to the REPL |
|
||||
| ~SPC m s R~ | send region to the REPL and focus the REPL buffer in =insert state= |
|
||||
|
||||
** Maven
|
||||
|
||||
| Key Binding | Description |
|
||||
|-----------------+------------------------------------------------------|
|
||||
| ~SPC m m c c~ | Compile |
|
||||
| ~SPC m m c C~ | Clean |
|
||||
| ~SPC m m c r~ | Clean and compile |
|
||||
| ~SPC m m g a~ | Switch between class and test file |
|
||||
| ~SPC m m g A~ | Switch between class and test file in another window |
|
||||
| ~SPC m m t a~ | Run all tests |
|
||||
| ~SPC m m t C-a~ | Clean and run all tests |
|
||||
| ~SPC m m t b~ | Run current buffer tests |
|
||||
| ~SPC m m t i~ | Test and install |
|
||||
| ~SPC m m t t~ | Run a specific test |
|
||||
|
||||
** Gradle
|
||||
|
||||
| Key Binding | Description |
|
||||
|---------------+--------------------------|
|
||||
| ~SPC m l c c~ | Compile |
|
||||
| ~SPC m l c C~ | Clean |
|
||||
| ~SPC m l c r~ | Clean and compile |
|
||||
| ~SPC m l t a~ | Run all tests |
|
||||
| ~SPC m l t b~ | Run current buffer tests |
|
||||
| ~SPC m l t t~ | Run a specific test |
|
||||
| ~SPC m l x~ | Execute a Gradle task |
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
("mg" . "goto")
|
||||
("mr" . "refactor")
|
||||
("mh" . "documentation")
|
||||
("mm" . "maven")
|
||||
("ma" . "ant")
|
||||
("mp" . "project")
|
||||
("mt" . "test")))
|
||||
|
@ -258,17 +257,29 @@
|
|||
|
||||
;; Maven
|
||||
|
||||
(defun spacemacs/java-maven-test ()
|
||||
(defun spacemacs/mvn-clean-compile ()
|
||||
"Recompile using maven."
|
||||
(interactive)
|
||||
(eclim-maven-run "test"))
|
||||
(mvn-clean)
|
||||
(mvn-compile))
|
||||
|
||||
(defun spacemacs/java-maven-clean-install ()
|
||||
(interactive)
|
||||
(eclim-maven-run "clean install"))
|
||||
|
||||
;; Gradle
|
||||
|
||||
(defun spacemacs/java-maven-install ()
|
||||
(defun spacemacs/gradle-clean ()
|
||||
"Execute 'gradle clean' command."
|
||||
(interactive)
|
||||
(eclim-maven-run "install"))
|
||||
(gradle-execute "clean"))
|
||||
|
||||
(defun spacemacs/gradle-clean-build ()
|
||||
"Execute 'gradle clean build' command."
|
||||
(interactive)
|
||||
(gradle-execute "clean build"))
|
||||
|
||||
(defun spacemacs/gradle-test-buffer ()
|
||||
"Execute 'gradle test' command against current buffer tests."
|
||||
(interactive)
|
||||
(gradle-single-test (file-name-base (buffer-file-name))))
|
||||
|
||||
|
||||
;; Misc
|
||||
|
|
|
@ -25,7 +25,9 @@
|
|||
gradle-mode
|
||||
helm-gtags
|
||||
(java-mode :location built-in)
|
||||
maven-test-mode
|
||||
(meghanada :toggle (not (version< emacs-version "25.1")))
|
||||
mvn
|
||||
))
|
||||
|
||||
(defun java/post-init-company ()
|
||||
|
@ -64,7 +66,6 @@
|
|||
("mg" . "goto")
|
||||
("mh" . "help/doc")
|
||||
("mi" . "issues")
|
||||
("mm" . "maven")
|
||||
("mp" . "project")
|
||||
("mr" . "refactor")
|
||||
("mt" . "test")))
|
||||
|
@ -90,13 +91,6 @@
|
|||
"hh" 'eclim-java-show-documentation-for-current-element
|
||||
"hi" 'eclim-java-hierarchy
|
||||
"hu" 'eclim-java-find-references
|
||||
;; maven
|
||||
"mi" 'spacemacs/java-maven-clean-install
|
||||
"mI" 'spacemacs/java-maven-install
|
||||
"mp" 'eclim-maven-lifecycle-phases
|
||||
"mr" 'eclim-maven-run
|
||||
"mR" 'eclim-maven-lifecycle-phase-run
|
||||
"mt" 'spacemacs/java-maven-test
|
||||
;; project
|
||||
"pb" 'eclim-project-build
|
||||
"pc" 'eclim-project-create
|
||||
|
@ -323,7 +317,30 @@
|
|||
|
||||
(defun java/init-gradle-mode ()
|
||||
(use-package gradle-mode
|
||||
:defer t))
|
||||
:defer t
|
||||
:init
|
||||
(progn
|
||||
(when (configuration-layer/package-used-p 'groovy-mode)
|
||||
(add-hook 'groovy-mode-hook 'gradle-mode)
|
||||
(spacemacs/declare-prefix-for-mode 'groovy-mode "ml" "gradle")
|
||||
(spacemacs/declare-prefix-for-mode 'groovy-mode "mc" "compile")
|
||||
(spacemacs/declare-prefix-for-mode 'groovy-mode "mlt" "tests"))
|
||||
(when (configuration-layer/package-used-p 'java-mode)
|
||||
(add-hook 'java-mode-hook 'gradle-mode)
|
||||
(spacemacs/declare-prefix-for-mode 'java-mode "ml" "gradle")
|
||||
(spacemacs/declare-prefix-for-mode 'groovy-mode "mc" "compile")
|
||||
(spacemacs/declare-prefix-for-mode 'java-mode "mlt" "tests")))
|
||||
:config
|
||||
(progn
|
||||
(spacemacs|hide-lighter gradle-mode)
|
||||
(spacemacs/set-leader-keys-for-minor-mode 'gradle-mode
|
||||
"lcc" 'gradle-build
|
||||
"lcC" 'spacemacs/gradle-clean
|
||||
"lcr" 'spacemacs/gradle-clean-build
|
||||
"lta" 'gradle-test
|
||||
"ltb" 'spacemacs/gradle-test-buffer
|
||||
"ltt" 'gradle-single-test
|
||||
"lx" 'gradle-execute))))
|
||||
|
||||
(defun java/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'java-mode))
|
||||
|
@ -337,6 +354,27 @@
|
|||
(put 'java-backend 'safe-local-variable 'symbolp)
|
||||
(spacemacs//java-define-command-prefixes))))
|
||||
|
||||
(defun java/init-maven-test-mode ()
|
||||
(use-package maven-test-mode
|
||||
:defer t
|
||||
:init
|
||||
(when (configuration-layer/package-used-p 'java-mode)
|
||||
(add-hook 'java-mode-hook 'maven-test-mode)
|
||||
(spacemacs/declare-prefix-for-mode 'java-mode "mm" "maven")
|
||||
(spacemacs/declare-prefix-for-mode 'java-mode "mmg" "goto")
|
||||
(spacemacs/declare-prefix-for-mode 'java-mode "mmt" "tests"))
|
||||
:config
|
||||
(progn
|
||||
(spacemacs|hide-lighter maven-test-mode)
|
||||
(spacemacs/set-leader-keys-for-minor-mode 'maven-test-mode
|
||||
"mga" 'maven-test-toggle-between-test-and-class
|
||||
"mgA" 'maven-test-toggle-between-test-and-class-other-window
|
||||
"mta" 'maven-test-all
|
||||
"mtC-a" 'maven-test-clean-test-all
|
||||
"mtb" 'maven-test-file
|
||||
"mti" 'maven-test-install
|
||||
"mtt" 'maven-test-method))))
|
||||
|
||||
(defun java/init-meghanada ()
|
||||
(use-package meghanada
|
||||
:defer t
|
||||
|
@ -389,3 +427,15 @@
|
|||
;; meghanada-local-variable
|
||||
|
||||
"x:" 'meghanada-run-task))))
|
||||
|
||||
(defun java/init-mvn ()
|
||||
(use-package mvn
|
||||
:defer t
|
||||
:init
|
||||
(when (configuration-layer/package-used-p 'java-mode)
|
||||
(spacemacs/declare-prefix-for-mode 'java-mode "mm" "maven")
|
||||
(spacemacs/declare-prefix-for-mode 'java-mode "mmc" "compile")
|
||||
(spacemacs/set-leader-keys-for-major-mode 'java-mode
|
||||
"mcc" 'mvn-compile
|
||||
"mcC" 'mvn-clean
|
||||
"mcr" 'spacemacs/mvn-clean-compile))))
|
||||
|
|
Loading…
Reference in a new issue