Just put a new release of clips-mode out on Marmalade.
Changes are minor, just taking over Andrey’s wonderful contribution to the community. Cut over to GPLV3, added a build script, and started adding TODOs in the task list.
Tag: Ide
Pretty Mode Plus 1.2 Release
Pretty Mode Plus 1.2 is out with a couple changes.
Dmiti has kindly taken it over. He has great new ideas about flexibility, modularity, and test-ability. There are many great changes and more coming.
For CLIPS users, there are a couple of niceties that you will enjoy.
Deleting trailing whitespace for auto savers
real-auto-save is a great package if you like that sort of thing. For example, I like every file to always be saved without me worrying about doing it myself, so I stick with the default save occurring every 10 seconds. A really nice function to call on write-file-hooks is delete-trailing-whitespace, but, with 10s saves this means that in the middle of typing you have spaces eaten and this is clearly unacceptable!
Here is an attempt at a tweaked cleanup function that cleans up every line in the file but for the current line on which your cursor sits:
(defun gcr/delete-trailing-whitespace ()
"Apply delete-trailing-whitespace to everything but the current line."
(interactive)
(let ((first-part-start (point-min))
(first-part-end (point-at-bol))
(second-part-start (point-at-eol))
(second-part-end (point-max)))
(delete-trailing-whitespace first-part-start first-part-end)
(delete-trailing-whitespace second-part-start second-part-end)))
Cask for the truly impatient
Thanks to some kind Emacsers I’m now in the modern age using Cask, and what ease it brings to using Emacs. It is truly a joy; anyone not using Emacs for fear of difficulty pulling in packages can let go of their hesitation. It is as easy as writing one config file, installing the packages, and adding a couple lines to your Emacs init script. Here are the basic steps:
- Clone the cask repo.
- Add the bin dir to your path.
- Create a file named Cask, add it to your VCS, and create a link to it from your .emacs.d directory
- Add a repo and packages to the file.
- From your .emacs.d directory, run ‘cask’
- Add the cask load and init to your init file.
- Start Emacs.
Excellent work by that team.
Software Project Management for Emacs: Cask
Johan shared a link for Cask with me. Look like an excellent and well needed tool for serious Emacs development. Serious being open to definition of course.
Dependency and software project management tools seem to slowly drift across language and system stacks, always being re-invented. The study of such systems, and the development of a singular and unified approach in the form of a library looks like a lot of fun and serious hard work, probably only worth pursuing if the result were a PhD.
How to Choose Packages Between Two ELPA Repositories
ELPA makes Emacs v24 even more delightful to use. You may have run into a situation though where you wanted to install different packages from both Marmalade and MELPA. A common problem here is that because the newest version number always gets chosen for installation, MELPA packages always get chosen over Marmalade, and you may not want that. MELPA thankfully has a solution for that in the form of their own package.
The directions to set up MELPA are straightforward, but, one of my super-powers is not make any sense of directions, so I had a heck of a time getting it working. Aaron’s config gave me a clue, but I still didn’t have it working (I liked his namespace prefixing though so). Once I did get it working though it was really clear what I had done wrong, basically the package load and require order was incorrect, so, here is the right way to do it:
- Install the melpa package manually as directed; this gives you package you need to use the filtering functionality.
- Require ‘package to get the ELPA functionality and variables.
- Add the repo(s) to ‘package-archives so that you can pull from them.
- Call package-initialize to find the recently installed melpa package.
- Require ‘melpa to import it and be able to use it.
- Customize the enable and exclude melpa variables to specify what packages to include or exclude from which repositories.
- Call package-refresh-contents to update Emacs’s database of which packages it should use as available for installation.
- Your filtered package list is now available for use, call list-packages to verify.
Here is an example of my situation, I wanted to default to installing the newest package from either GNU or Marmalade for all but two cases where I only wanted the version that was available on MELPA: fill-column-indicator and melpa. Here is the configuration and correct order of calls to make:
(defvar gcr/packages
'(auto-complete
color-theme
color-theme-solarized
diminish
fill-column-indicator
fuzzy
geiser
graphviz-dot-mode
lexbind-mode
melpa
ob-sml
paredit
pretty-mode-plus
rainbow-mode
real-auto-save
sml-mode)
"Packages required at runtime.")
(require 'package)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/") t)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
(require 'melpa)
(setq package-archive-enable-alist '(("gnu")
("marmalade")
("melpa"
fill-column-indicator
melpa)))
(setq package-archive-exclude-alist '(("gnu"
fill-column-indicator
melpa)
("marmalade"
fill-column-indicator
melpa)))
(package-refresh-contents)
(dolist (package gcr/packages)
(when (not (package-installed-p package))
(condition-case err
(package-install package)
(error
(message "%s" (error-message-string err))))))
Org Mode Babel Support for SML
DIagrams Through Ascii Art
ditaa is a small command-line utility written in Java, that can convert diagrams drawn using ascii art (‘drawings’ that contain characters that resemble lines like | / – ), into proper bitmap graphics.
You have to see it to believe. For you text-heads out there, yet another great tool for us!
Guile-Emacs Continues Forward with GSoC
Guile-Emacs continues forward with GSoC.
Geiser 0.3 is Released
Excellent for use with Racket. Get it here.