spacemacs/contrib/!lang/java
2015-07-04 00:10:30 -04:00
..
config.el
funcs.el
packages.el
README.md

Java contribution layer for Spacemacs

Description

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

Layer Installation

Table of Contents

Add this layer to your ~/.spacemacs.

(setq-default dotspacemacs-configuration-layers '(java))

and also in ~/.spacemacs set eclipse and eclim paths:

(custom-set-variables
  '(eclim-eclipse-dirs '("~/opt/eclipse"))
  '(eclim-executable "~/opt/eclipse/eclim"))

Eclim

Eclim provides the ability to access Eclipse code editing features (code completion, searching, code validation, and many more) via the command line or a local network connection, allowing those features to be integrated with your favorite editor.

Installation

For installation check official page

Usage

Currently you have to have eclimd already started. This layer doesn't try to control eclimd in no way although there's that option in emacs-eclim itself.

This layer uses company as a completion framework. If you want to use auto-complete I encourage you to make it configurable.

Key bindings

Eclim key bindings in java-mode

Project management

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m p j | Information about project SPC m p o | Open project SPC m p b | Build 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 c | Create project SPC m p k | Close project SPC m p s | Open project management buffer SPC m p u | Update project

Maven

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m m p | Run one already goal from list SPC m m R | Run one maven goal SPC m m r | Run maven goals SPC m m t | Run maven test SPC m m i | Run maven clean install SPC m m I | Run maven install

Goto

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m g g or M-. | go to declaration M-, | jump back from go to declaration/definition SPC m g t | go to type definition

Refactoring

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m r f | Format file SPC m r r | Rename symbol SPC m r i | optimize imports

Documentation, Find

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m h h | show documentation for symbol at point SPC m h u | show usages for symbol at point SPC m f f | general find in project

Problems

Key Binding       |                 Description

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

Tests

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m t t | run JUnit tests for current method or current file or project SPC m t T | run maven test phase

Eclim keybindings in problems buffer

Key Binding       |                 Description

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

Eclim keybindings in projects buffer

Key Binding       |                 Description

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