I have written a number of packages which work with emacs, which do a variety of different things. Most of the packages are available on Marmalade or MELPA. They are versioned on github.
- This is my abbreviation expansion mode. I called it pabbrev for predictive abbreviation. It works by gathering words as you type, and then offering them as expansions, as you type in the buffer. It seems fairly useful to me, and is particularly nice in program buffers. I'm really quite pleased with this. I didn't know whether it was going to be useful or not when I wrote it, but I use is heavily all the time.
- omn-mode is an major mode support the Manchester syntax OWL. It mostly provides integration with other packages, supporting better abbreviation support, syntax highlighting and imenu or ECB code browsing.
- Lazy Desktop interacts with the standards desktop.el package. I really like desktop but it means my Emacs takes a long time to load (partly because loading the desktop forces a lot of autoloads). This package opens a few files to be going on with, and does the rest in the idle cycle. This package should make it into core Emacs sometime soon (or perhaps it already has).
- This is a relatively simple package that I wrote, for keeping my code lines relatively short. It changes the cursor colour the longer the line gets, although its generic enough to call any function when the line gets too long. Its called wide-column.el
- This is a minor mode which does things depending on the current font-lock symbol at point. This means that you can use it to toggle for instance auto-fill-mode on when on comments and off for the rest of the time. Its based on a more generic form of jde-auto-abbrev.el, which I shall retire at some time, or change to being a wrapper around tmmofl. There are two files which are tmmofl.el which provides the core functionality, and tmmofl-x.el which customises tmmofl for different major modes. At the moment the latter is pretty small, but it may grow.
- This is one of my occasional use packages that it none the less pretty useful when you need it. It translates between English language variants (British, Canadian and some other, less common, ones). The basic file is called variant.el, but you will also need variant-abbc.el which contains the data, borrowed from Kevin Atkinson
- Keeping the cursor centered is great when trying to take screen shots or you want to get a lot on screen and then read it without using the keyboard. It's not great the rest of the time, because half the screen is empty and this implementation makes the screen flicker somewhat when scrolling.
- Early days for this package at the moment. In essence it opens a shell buffer (or reuses an existing one) and shifts it's current working directory to somewhere else. Such as the current working directory of the buffer being worked on. This is really useful when you are developing Java code!
The following are my more dodgy works in progress:
- This seems such an obvious thing to me that I am sure that there is standard functionality for it, but I can't find it for the life of me. Essentially it allows you to jump to the function or variable defintion of the form at point.
- This mode uses pgg from Gnus to encrypt/decrypt buffers using gpg. I used to use crypt++ with mailcrypt for this, but these seem to be getting old. This mode is not for the security conscious. I no nothing about security, and I am sure this is full of holes. But it works for me.
- Flyspell doesn't work as I think it should, which is in the idle timer. The result is that it can be quite disruptive in terms of CPU usage to normal editing. This package adds idle support for it. It's code base has been partly hacked from pabbrev, and it appears to conflict it. I need to write something more generic, to abstract away from the handling of the idle cycle.
- This package is fairly trivial at the moment. It contains a number of poorly documented files. The idea though is I want to use Emacs to help me learn a new language. There is one tool for generated a language file (which is a list of words and phrases with translations), and another asking questions. At the moment it's biased toward teaching Spanish. It interfaces with the Festival Speech Synthesis System, so you get auditory feedback.
- A cheap and cheerful package sa-learn-invoke runs sa-learn from spamassassin from within RMAIL, or gnus, which are the two mail readers I use.
- I use this one as an addition to JDE, but it is useful for any derivative of cc-mode. I didnt write this one. Credit here goes to Klaus Berndl, who posted it after I stuck up a request on one of the emacs boards. This allows tempo templates to insert electric characters and have them behave electrically. Its called cc-tempo-electric-support.
I write lots of stuff in muse mode. I've written a few add-on packages for this. These are of varying quality. The first works great, though.
- muse-settings allows configuration of muse projects in the same directory as the muse files. You can also evaluate arbitrary code when you first open a project.
- muse-trail allows "trails" through a set of HTML files. Essentially, it provides ordering, with next/previous buttons.
- muse-definition enables words to be defined with tooltips which pop up when the clicked on.
These are some packages that I wrote which add to JDEE. I rarely develop in Java these days so, mostly, I leave these here for historical purposes.
- Jfolding is the most widely used package. It allows folding of comments, and methods, reducing them to a single line, which can be expanded with a mouse click. Its useful for navigating through source code quickly. It fulfils some of the same functionality as speedbar, but in a totally different way. Its actually a hack, using two existing emacs packages, which are hide-show and folding. The last uses old style selective display, and will no doubt break at some stage, but at the moment it all works well.
- jserial which inserts serialverUID statements into the current source, by invoking the serialver tool.
- jde-stack has been removed as the code has now been migrated into the JDE core.
- jde-import handled import sorting and so on. This functionality has now moved into JDE core
Disclaimer: This is my personal website, and represents my opinion. My formal pages and those of the school and university are linked above.