Introduction

Emacs-IDE is an Integrated Development Environment (IDE) interface for Emacs (code browsing, compilation, debug...).
The purpose is to provide a user-friendly interface, with dedicated windows (source, menu and output) and convenient shortcuts.
It is suitable for almost all languages (as long as they are supported by Ctags). Cscope provides additional browsing facility for C/C++ files.
Please note that Emacs-IDE does not stand as a regular package for Emacs. It should be considered as an IDE built on top of Emacs.
A package is supposed not to modify standard Emacs behaviour, but only add new features that can be enabled or disabled.
Emacs-IDE intentionally changes Emacs behaviour - in order to manage display in dedicated windows - and redefines reserved keys - in order to provide a wide range of convenient shortcuts.
License: GPLv3 or later
Programming language: Emacs Lisp
Dependencies: Emacs, Ctags, Cscope.
Supported OS: GNU/Linux
Download
Emacs-IDE is released as a compressed archive (.tar.xz) of the source code. See INSTALL file for installation instructions, and README file for quick start instructions.
All versions are signed with PGP key 0xB24B750D (fingerprint: 8DDF 4E53 D02D 3511 91A5 872E 1D85 988C B24B 750D).
Version 1.10 (2013-02) (signature)
Enhancements:
- Add the possibility to change the project name (in project configuration)
- Execute external diff commands in subprocesses (in order not to freeze Emacs)
Bug fixes:
- Project creation fails when a desktop was loaded before
- Comparison with another project should not be in the action list if the file is out of project
- Default directory is not updated when changing root directory
Version 1.9 (2013-01) (signature)
Enhancements:
- Add fullscreen mode (F11)
- Add uninstall script
- Add the possibility to switch to another root directory
- Create projects list and add the possibility to switch to another project
- Create workspaces to manage different projects lists
- Use projects list to select another project for comparison
- Enable F4 (global grep) even if there is no current project
- New options:
- Use a specific background color in menu (default behaviour)
- Insert a blank line between directories in menu (used to be the default behaviour)
- Start with maximized frame (now the default behaviour)
Bug fixes:
- Some C/C++ symbols are not present in menu
- Frame size and position are changed at startup
- Git status is not shown at startup (F5 is necessary to update status)
- DOS/Unix conversions fail (dos2unix/unix2dos must be replaced with fromdos/todos)
Warning: The projects that you have created with previous versions will not automatically appear in your workspace. You have to open them first (either run Emacs from project root directory, or use 'Change root directory' command in menu).
Version 1.8 (2012-05) (signature)
Enhancements:
- Add "Close all files" command
- No windows layout at startup in terminal mode (emacs -nw)
- Use vc-diff for svn/git diff commands
- Add svn/git blame commands (vc-annotate)
- Reload all open files with F5 (not only current file)
Bug fixes:
- Desktop is not loaded when Emacs-IDE is loaded in a file after init (emacs -l)
- Compatibility with Emacs 24
Version 1.7 (2011-12) (signature)
Enhancements:
- Changes in dark theme colors
- Use of Emacs customization (instead of ~/.emacs-ide.cfg) for configuration
- Git support (status, diff, checkout)
- Local installation
- New options:
- Show menu bar
- Show tool bar
- Scroll bar position
- Cscope database update (always, never, or auto)
- Indentation offset
- Indentation mode (spaces or tabs)
- Default tab width
Bug fixes:
- Unwanted scrolling when clicking in the margin (because of scroll-margin)
- Compilation output doesn't scroll
Warning: Configuration is not migrated from previous versions. If you have modified some options, you will have to do it again with the new configuration system (customization). Old configuration file (~/.emacs-ide.cfg) is not deleted: you can check the values.
Version 1.6 (2011-04) (signature)
- Keep default font (change size only)
- Support for imenu folders in menu
- Distinguish Emacs options from Emacs-IDE options
- Create tags and cscope list of files in subprocesses
- Add search for man pages
Version 1.5 (2010-11) (signature)
- Support for several "source" windows (split)
- Provide Emacs-IDE as a package to install
- Remove Emacs-IDE update in menu (impossible with installed package)
- Option to keep user colors
Version 1.4 (2010-07) (signature)
- Use gdb graphical interface
Version 1.3 (2010-03) (signature)
- Support for spaces in file and directory names
- Show svn modified status of files in menu
- Add Emacs-IDE update in menu (if Emacs-IDE is under svn)
- Improve performance:
- Reduce useless disk accesses and menu rebuilds
- Use recursive grep instead of find/grep
Version 1.2 (2009-08) (signature)
- Use ctags instead of etags
- Updates for emacs22-gtk
- Remove toolbar (quite useless and not well supported on emacs22-gtk)
- Use dired mode instead of speedbar for file browsing
Version 1.1 (2009-04) (signature)
- Generic project type:
- tags are built for all languages
- cscope is available if C/C++ files are present
- Project deletion
- Customizable dark and light color themes
- Popup menu on directories (actions on several files at once)
Version 1.0 (2008-12) (signature)
First release
Support
There is no bug tracking system. To report a bug, send an email to eide@tuxfamily.org.
Feel free to send any feedback or suggestion as well.
Development
Emacs-IDE is hosted by TuxFamily. The project page lists the services provided by TuxFamily.
Source code
You can browse the Git repository of the source code: eide/emacs-ide.git.
You can subscribe to its
RSS feed to be notified of commits.
To install up-to-date development version, get the source code from the Git repository:
git clone git://git.tuxfamily.org/gitroot/eide/emacs-ide.git
See README file for installation instructions.
The source code of this website is also available in a Git repository: eide/emacs-ide-website.git.
Work in progress
These developments are planned for the next versions:
- Add keyboard shortcuts to access and use the menus.
- Give the possibility to customize F1-F12 bindings.
- Get rid of all remaining personal settings (use options).
Ideas
- Check if SemanticDB can be used as an alternative to ctags/cscope/imenu. This could solve several problems at once:
- When a symbol is defined in several places, find-tag shows the first one without asking.
- Cscope is limited to C/C++ source files.
- Imenu - which is used to build the list of symbols of a file in the menu - is not supported by several languages (Python and Ruby for instance).
Contributions
If you like this project, and feel like contributing, send an email to eide@tuxfamily.org.