• Stars
    star
    587
  • Rank 76,145 (Top 2 %)
  • Language
    Emacs Lisp
  • Created over 15 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This project brings some of the great eclipse features to emacs developers. It is based on the eclim project, which provides eclipse features for vim.

License GPL 3 Build Status MELPA MELPA Stable

Development has moved to https://github.com/emacs-eclim/emacs-eclim !!!

Overview

Join the chat at https://gitter.im/senny/emacs-eclim

Please Note: Development has moved to https://github.com/emacs-eclim/emacs-eclim

Eclim is an Eclipse plugin which exposes Eclipse features through a server interface. When this server is started, the command line utility eclim can be used to issue requests to that server.

Emacs-eclim uses the eclim server to integrate eclipse with emacs. This project wants to bring some of the invaluable features from eclipse to emacs. Please note, emacs-eclim is limited to mostly java support at this time.

It is also possible to start and stop the eclim daemon from emacs using the eclimd package.

You can ask questions or discuss new features at our Google Group

A note about Eclim versions

Prior to version 1.7.3, eclim used a proprietary protocol for communication with the eclim server. If you are running one of these older versions, you need version 0.1 of emacs-eclim.

Eclim versions 1.7.3 and later however, serves responses using a standard JSON format. These are supported by emacs-eclim versions 0.2 and later.

Emacs-eclim versions are tagged with the appropriate version number. You can see and download previous releases here.

Installation

  1. Download and install eclim.
  2. Install emacs-eclim. You have two options:
    • Installation from the MELPA package archive. Just add the archive to package-archives if you haven't already, and then install emacs-eclim with the package-install command.
    • Manual installation from GitHub.
      1. (git clone git://github.com/senny/emacs-eclim.git)
      2. Add (add-to-list 'load-path "/path/to/emacs-eclim/") to your startup script.
  3. Add the following code to your emacs startup script
(require 'eclim)
(global-eclim-mode)

If you want to control eclimd from emacs, also add:

(require 'eclimd)

Configuration

Eclipse installation

Emacs-eclim tries its best to locate your Eclipse installation. If you have Eclipse installed in a non-standard location (i.e. ~/nonStandard/eclipse or /opt/eclipse) you may specify the paths manually by adding this to your startup script:

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

Displaying compilation error messages in the echo area

When the cursor is positioned on an error marker in a code buffer, emacs-eclim uses the local help feature in emacs to display the corresponding error message in the echo area. You can either invoke (display-local-help) manually or activate automatic display of local help by adding the following to .emacs:

(setq help-at-pt-display-when-idle t)
(setq help-at-pt-timer-delay 0.1)
(help-at-pt-set-timer)

Configuring auto-complete-mode

If you wish to use auto-complete-mode with emacs-eclim, add the following to your .emacs:

;; regular auto-complete initialization
(require 'auto-complete-config)
(ac-config-default)

;; add the emacs-eclim source
(require 'ac-emacs-eclim-source)
(ac-emacs-eclim-config)

Configuring company-mode

Emacs-eclim can integrate with company-mode to provide pop-up dialogs for auto-completion. To activate this, you need to add the following to your .emacs:

(require 'company)
(require 'company-emacs-eclim)
(company-emacs-eclim-setup)
(global-company-mode t)

Emacs-eclim completions in company are case sensitive by default. To make completions case insensitive set company-emacs-eclim-ignore-case to t.

Configuring eclimd module

When emacs-eclim is configured correctly, you don't need to modify the configuration for the eclimd package. Still, there are some configurable variables you can tweak:

  1. eclimd-executable: This variable is used for locating the eclimd executable file. You can set it to nil ("Same directory as eclim-executable variable" choice in customization screen) to indicate that the executable is in the same directory as the eclim program. Alternatively, you can give it a string value ("Custom value" choice in customization screen) to specify the location of the executable.

  2. eclimd-default-workspace: When start-eclimd is executed, it will ask for the workspace directory to use. The default value for this question is controlled by this variable.

  3. eclimd-wait-for-process: Normally, when start-eclimd starts the eclimd process, it pauses emacs until eclimd is ready to accept commands. If you change the value of this variable to nil, start-eclimd will return as soon as eclimd is started. Eclimd startup takes several seconds, so if you change the default value of this variable, emacs-eclim commands will fail until eclimd is ready.

Dependencies

  • dash.el for list manipulation functions
  • s.el for string manipulation functions
  • json.el (part of emacs as of version 23)
  • popup.el for inplace popup menus

Optional dependencies

  • A recent version (0.6.0 or later) of yasnippet
  • A recent version (tested with 0.5) of company-mode
  • A recent version (tested with 1.4) version of auto-complete-mode
  • ido-mode (part of emacs as of version 22)

Usage

To get started just launch the eclim executable that the placed in your Eclipse installation directory.

Controlling eclimd

When you import the eclimd package, you will have access to two commands: start-eclimd, and stop-eclimd.

start-eclimd will ask for a workspace directory, and it will attempt to start eclimd program with the entered workspace directory. The configurable variable eclimd-default-workspace controls the default value of this directory. After start-eclimd runs the daemon, it will monitor its log output, and wait for the message that indicates that it is ready to accept commands. This is done to prevent failures with emacs-eclim commands while eclimd is starting up. While start-eclimd is waiting for the daemon to be ready, emacs will not accept any user input. To prevent this pause, you can modify the configurable variable eclimd-wait-for-process.

Normally, simply killing the buffer *eclimd* will allow you to stop the eclimd daemon. However, there is a command to perform a graceful shutdown: stop-eclimd. You should use this command when you wish to stop the eclimd program.

Press

Read more about emacs-eclim:

Contributing

Have a quick look at our Contribution Guidelines and hack away.

More Repositories

1

sablon

Ruby Document Template Processor based on docx templates and Mail Merge fields.
Ruby
446
star
2

rvm.el

use rvm to manage ruby versions within emacs
Emacs Lisp
214
star
3

cabbage

get the maximum out of emacs
Emacs Lisp
156
star
4

pdfjs_viewer-rails

PDF.js viewer packaged as a Rails engine.
JavaScript
114
star
5

rbenv.el

use rbenv to manage your Ruby versions within Emacs
Emacs Lisp
87
star
6

emacs-xcode

A set of tools to make OS-X and iPhone development with emacs pleasant. It simplifies writing objective-c applications and provides utilities to compile and lunch the project.
Emacs Lisp
39
star
7

corner_stones

capybara building blocks for acceptance tests.
Ruby
18
star
8

emacs-configs

moved to: https://github.com/senny/e-max
Emacs Lisp
16
star
9

emacs.d

Personal Emacs configuration
Emacs Lisp
15
star
10

theme-roller.el

a wrapper around color-theme to keep your themes in sync and up to date.
Emacs Lisp
14
star
11

dotfiles

My personal dotfiles (ruby, rails, zsh, git)
Emacs Lisp
10
star
12

dm-freebase-adapter

A DataMapper adapter to connect to Freebase. The goal of this project is to link any Freebase data into your existing database structure as needed.
Ruby
7
star
13

backyard

manage the models in your cucumbers with ease
Ruby
7
star
14

dm-isbndb-adapter

a DataMapper adapter for isbndb
Ruby
5
star
15

dumpster

Abstraction layer to export tabular data. Currently dumpster supports XLSX and CSV exports.
Ruby
4
star
16

qa-mode

Emacs Major mode to edit QA files for SuperMemo.
Emacs Lisp
4
star
17

git-showoff

Git Schulungsmaterial
Shell
3
star
18

asdf-postgres-app

asdf plugin to manage Postgres.app binaries
Shell
2
star
19

cucumber-i18n.el

translate i18n keys inside your cucumber features
Emacs Lisp
2
star
20

git-workshop-example

รœbungen zum Git-Workshop
JavaScript
2
star
21

cabbage-contrib

cabbage-contrib is a repository of common cabbage bundles, which are not shipped in the core cabbage distribution.
Emacs Lisp
1
star
22

ichnite

A structured logging library for Ruby
Ruby
1
star