The Light Table editor, shown at http://www.kickstarter.com/projects/ibdknox/light-table/, has some pretty neat ideas on coding, in part inspired by http://vimeo.com/36579366. Emacs wouldn't be Emacs if it wasn't constantly amassing the features of every other real or potential editor in the multiverse, so how can these ideas be implemented in Emacs? ==Existing packages== https://github.com/Fuco1/litable and https://github.com/Fuco1/blablabla try to give live coding / live programming in Emacs. (https://github.com/Wilfred/suggest.el seems relevant too) ==docstrings as you type== Already exists in e.g. auto-complete-mode, slime. ==The side-by-side instant REPL with values flowing through== (is there a good name for this?) Would be very neat for Python, emacs-lisp, etc. Here's an example for python! https://github.com/donkirkby/live-py-plugin Also see http://www.kickstarter.com/projects/568774734/emacsy-an-embeddable-emacs [new] I've started a project implementing this: https://github.com/Fuco1/litable . The name will probably change to something more emacsy, the old repo will stay there for redirect. -- Fuco ===Rendering html within emacs=== ==Picking and showing function definitions side-by-side regardless of files== "the smallest unit is a function, not a file" Emacs does abstract away from files by the use of buffers, which can be cloned and narrowed, but you still need to find the functions. You use the key sequence C-x 4 c C-M-h C-x n n to create a clone of the buffer, mark the function you're at, and narrow to the function. Putting it into a quick-and-dirty function: (defun clone-buffer-and-narrow-to-function () (interactive) (clone-indirect-buffer-other-window (which-function) 'pop-to-buffer) (mark-defun) ; works not only in emacs-lisp, but C++, Python, ... (narrow-to-region (mark) (point)) (pop-mark) (other-window 1)) (define-key global-map (kbd "C-x 4 n") 'clone-buffer-and-narrow-to-function) ; or whatever key you prefer This is useful when you've already found the function, and want to "stash it" visually (PROTIP: you can also ediff cloned and narrowed buffers). The cloned indirect buffer will be named based on the function you are narrowing to. What's missing is a way to quickly show a list of all project functions ("linked" to their implementations) to pick and choose from. If you use CEDET or ropemacs-mode, it should be possible to keep a live-updating buffer showing the implementations of called functions as you type calls to them. You can use Speedbar for this. For example, with Python it will display the list of files and then for each file it will list the functions within it. You could modify it so that instead of opening the file in a buffer and going to the function, it can narrow to that function and display it in a buffer instead.