IDEE - Integrated development environment in emacs
- Implement an IDE configuration for at least one of the follow
languages (and framework), as a separate init, major-mode or
minor-mode for emacs.
- Make compatible with evil-mode for users more familiar with vim.
- Program this in emacs lisp.
- Installation of the base IDEE without knowing anything about emacs beyond
reading the welcome screen.
- Give users a way to group together their own IDE settings for undefined
languages or frameworks.
Stakeholders
- Full stack developers
- Remote login developers
- Telecommute developers
Why?
- Too many IDEs to install. Time, space, uniformity across systems.
- Developers, especially full stack, use various languages and connect to
multiple system in a single project.
- Most developers already know emacs or vim.
Stories
- Developers would like to easily install their IDE on any posix-friendly system.
- Users want to use familiar keybindings, whether emacs, vim, etc.
- Users would like to only need to install a single IDE, rather than one per language.
- Some developers would like to not need to install a JVM when not developing for a JVM.
Target Languages (and frameworks)
Select some of the most popular languages:
- python (django)
- java
- groovy (grails)
- csharp (.NET)
- sql
- javascript (jquery or angular)
- c/cpp
- PHP
Keybindings
Include emacs and vim defaults for typical text editing:
- Save or discard changes
- Quit the editor
- Toggle to or from evil-mode
- Highlight trailing whitespace
- Highlight chars after column 80
- Region line comments
- Region block comments
- Region or line indentation
IDE features
Emacs already has some of these, but it lacks straightfoward configuration,
specifically per language and framework.
- Easy to install and uninstall without knowing emacs, as a vim user
- Documentation for all dependencies
- Jump to Definition
- Auto-completion
- On-the-fly syntax highlighting
- Find file in project
- Compile with one key press
- Run with one key binding
- Graphical debugger
- Code beautification/formatting
- Keybindings for different window layouts
- Refactorization
Nice to haves
- evil-mode
- multiple language support
- extensible language support
Suggestions
- Install using a shell script users call that sets up the emacs init file,
adds pertinent documentation to override the emacs welcome screen, and sets
whether to use evil-mode or not.
- Add keybindings modes for OSX or Windows users.
- Target the most popular language(s) first.
- Reuse where others have started. See emacswiki.
- If not lisp, could also write in another scripting language that generates
the .el files.
- Option or default run in the terminal outside emacs; the ansi-term has some
limitations.
- As a dependency or an homage, examine the emacs-ide project for keybindings
and window layout.
- If reusing the servers design from other implementation, keep a simple
codebase. For example, only use a JVM if the target language is java.
Or don't mix virtual machines with interpreters.
References
- growth of python use
- popular programming languages
- python-3
- c-language
- emacs-ide etc.
- emacs-ide