This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+lang/java
Eivind Fonn 5a869764dd Further improve gtags layer
- Add option to disable by default
- Use local-vars hook to allow per-project enable/disable
- Don’t enable helm-gtags-mode (no need)
- Move emacs bindings from helm-gtags-mode-map to ggtags-mode-map
2016-08-22 15:11:25 +02:00
..
img Use + instead of ! for layer categories 2015-09-11 00:13:51 -04:00
config.el Move all prefix names from config.el to init functions 2016-04-03 00:12:28 -04:00
funcs.el Clean copyrights and update for year 2016 2016-01-11 21:42:17 -05:00
packages.el Further improve gtags layer 2016-08-22 15:11:25 +02:00
README.org Shorter lines in java/README.org 2016-08-05 21:18:32 +02:00

Java layer

/TakeV/spacemacs/media/commit/734c87fb2410550fd4bae1f22dad322ae4475191/layers/+lang/java/img/java.png

Description

This layer adds support for the Java language using the Eclim client/server.

Layer Installation

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add java to the existing dotspacemacs-configuration-layers list in this file.

Eclim

Eclim provides the ability to access Eclipse features such as code completion, searching, code validation, and many more.

Installation

For installation check the official page.

Then set the Eclipse and Eclim paths in dotspacemacs/user-config, for instance:

  (setq eclim-eclipse-dirs "~/opt/eclipse"
        eclim-executable "~/opt/eclipse/eclim")

You can also configure other options, as shown below:

  (setq
   ;; Use another eclimd executable
   eclimd-executable "/path/to/another/executable"
   ;; Specify the workspace to use by default
   eclimd-default-workspace "/path/to/default/eclipse/workspace"
   ;; Whether or not to block emacs until eclimd is ready
   eclimd-wait-for-process t)

Usage

Start the eclim daemon with SPC m d s and stop it with SPC m d k. (See below.)

Key bindings

Java-mode

Project management

Key Binding Description
SPC m p b Build project
SPC m p c Create project
SPC m p d Delete project
SPC m p g Open file in current project
SPC m p i Import project
SPC m p j Information about project
SPC m p k Close project
SPC m p o Open project
SPC m p p Open project management buffer
SPC m p u Update project

Eclimd

Key Binding Description
SPC m d s Start daemon
SPC m d k Stop 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
M-, jump back from go to declaration/definition
SPC m g g go to declaration
SPC m g t go to type definition

Refactoring

Key Binding Description
SPC m r i optimize imports
SPC m r f Format file
SPC m r r Rename symbol

Documentation, Find

Key Binding Description
SPC m f f general find in project
SPC m h h show documentation for symbol at point
SPC m h u show usages for symbol at point

Problems

Key Binding Description
SPC m e a set all problems for next/prev action
SPC m e b open buffer with problems
SPC m e c show options with problem corrections
SPC m e e set only errors for next/prev action
SPC m e f set only current file for next/prev action
SPC m e n go to next problem
SPC m e o open buffer with problems
SPC m e p go to previous problem
SPC m e w set warnings for next/prev action

Tests

Key Binding Description
SPC m t t run JUnit tests for current method or current file or project

Problems buffer

Key Binding Description
RET go to problem place
a show all problems
e show only errors
f show problems only for current file
g refresh problems
q quit
w show only warnings

Projects buffer

Key Binding Description
RET go to current project
c go to problem place
D delete project
g refresh buffer
i info about current project
I import existing project into the workspace
m mark current project
M mark all projects
N create new project
o open project
p update project
q quit
R rename current project
u unmark current project
U unmark all projects