-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add redshank (for lisps) to repository
- Loading branch information
Matthew Peddie
committed
Dec 27, 2011
1 parent
f265f13
commit 8f3fc84
Showing
6 changed files
with
1,425 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
Redshank - Common Lisp Editing Extensions (for Emacs) -*- outline -*- | ||
|
||
* Installation Instructions | ||
See file redshank.el for setting up Redshank mode. | ||
|
||
* External Dependencies | ||
Redshank is developed and tested with GNU Emacs 22.2.50.1. Patches to | ||
ensure interoperability with other versions of GNU Emacs and XEmacs | ||
are welcome. | ||
|
||
The number of Elisp library dependencies is fairly small: | ||
|
||
** Paredit | ||
Version 21 is required. Download from | ||
<http://mumble.net/~campbell/emacs/paredit.el>. | ||
|
||
** cl, skeleton, easymenu | ||
These come with GNU Emacs 22. | ||
|
||
** SLIME | ||
SLIME is optional, but recommended to activate all features of | ||
Redshank. As of this writing, the latest release of SLIME (2.0) is | ||
very outdated, thus Redshank requires a recent CVS snapshot of SLIME. | ||
Instructions can be found at <http://common-lisp.net/project/slime/>. | ||
|
||
* Common Lisp | ||
Some features require interoperation with a Common Lisp | ||
implementation, via SLIME. This has been tested and is known to work | ||
with at least SBCL 1.0.19, OpenMCL 1.1-pre-070722 (DarwinX8664), and | ||
CLISP 2.40, albeit with varying degrees of support. | ||
|
||
The currently best supported implementation is SBCL. Support for | ||
other implementations is very welcome. (See file redshank.lisp for the | ||
Lisp side support.) | ||
|
||
** Steel Bank Common Lisp (SBCL) | ||
Download SBCL from <http://www.sbcl.org/>. | ||
|
||
** OpenMCL | ||
Download OpenMCL from <http://openmcl.clozure.com/>. | ||
|
||
** CLISP | ||
Download CLISP from <http://clisp.cons.org/>. | ||
|
||
* Contact | ||
Send questions, bug reports, comments and feature suggestions to | ||
Michael Weber <[email protected]>. New versions can be | ||
found at <http://www.foldr.org/~michaelw/lisp/redshank/>. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# -*- outline -*- | ||
|
||
* Bugs | ||
|
||
`redshank-complete-form' on a slot | ||
(defclass a () | ||
((%foo |))) | ||
|
||
does not remove the leading ?%. Refactor | ||
`redshank-canonical-slot-name', `redshank-accessor-name', etc. | ||
|
||
* Ideas | ||
|
||
These are random ideas which I want to implement at some point. | ||
Contributors looking to help out are very welcome to get inspired. | ||
New ideas are welcome, too, of course. | ||
|
||
** break points | ||
<mathrick> is there any special reason SLIME doesn't have "insert breakpoint | ||
on this form" functionality? | ||
|
||
(beginning-of-defun) (down-list) (forward-sexp) ;name | ||
(set-marker ...) | ||
keep track of break points, redshank-unbreak-all | ||
|
||
Perhaps this is better done with break-on-enter (if the implementation | ||
supports it?) | ||
|
||
** redshank-extract-{flet,labels} | ||
(let ((context (parse-context))) | ||
(while (not (endp context)) | ||
(when (and (null (pop context)) | ||
(member (first context) '(flet labels))) | ||
; this is the beginning of the flet | ||
) | ||
|
||
A better way would be a more general partial parsing framework... | ||
|
||
** (declare (ignore ...)) | ||
<antifuchs> michaelw: declaring things to be ignored/ignorable is one thing | ||
redshank could do (: | ||
<tcr> michaelw: redshank-make-symbol-at-point-ignored | ||
|
||
** inline function/variable definitions | ||
This is the "inverse" operation to extract. | ||
|
||
** rename variables | ||
|
||
** mouse copy | ||
http://www.clozure.com/pipermail/openmcl-devel/2007-November/004092.html | ||
http://lispm.dyndns.org/news?ID=NEWS-2007-11-18-1 | ||
|
||
Add support to insert form templates with S-M-mouse-1. | ||
|
||
** COND to IF | ||
<antifuchs> michaelw: btw, could redshank include a command for turning a | ||
one-condition (+ optional T) cond back into an IF form? (: | ||
|
||
** DOLIST/DOTIMES to LOOP (and back?) | ||
|
||
** Treat DEFINE-CONDITION similar to DEFCLASS | ||
except the default slot accessor should be :reader | ||
|
||
** DEFCLASS vertical layout | ||
<Xach> michaelw: slot name on its own line, and every slot option/value pair | ||
on their own lines. | ||
|
||
** import symbols with explicitly mentioned package (add :import-from clause | ||
to defpackage form), and shorten them. | ||
|
||
** Context menus | ||
<http://web.media.mit.edu/~lieber/Lieberary/Softviz/CACM-Debugging/Already-Full/Already-Full.html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
;;; redshank-loader.el --- Loader for Redshank | ||
|
||
;; Copyright (C) 2008 Michael Weber | ||
|
||
;; Author: Michael Weber <[email protected]> | ||
;; Keywords: languages, lisp | ||
|
||
;;; Setup | ||
;; See file redshank.el | ||
|
||
;;; Code | ||
(let* ((redshank-file (or (locate-library "redshank") | ||
load-file-name)) | ||
(redshank-path (and redshank-file | ||
(file-name-directory redshank-file)))) | ||
(when redshank-path | ||
(add-to-list 'load-path redshank-path))) | ||
|
||
(autoload 'redshank-mode "redshank" | ||
"Minor mode for editing and refactoring (Common) Lisp code." | ||
t) | ||
(autoload 'turn-on-redshank-mode "redshank" | ||
"Turn on Redshank mode. Please see function `redshank-mode'." | ||
t) | ||
|
||
(autoload 'asdf-mode "redshank" | ||
"Minor mode for editing ASDF files." t) | ||
(autoload 'turn-on-asdf-mode "redshank" | ||
"Turn on ASDF mode. Please see function `asdf-mode'." t) | ||
|
||
;;;###autoload | ||
(defun redshank-setup (hooks &optional autoinsertp) | ||
"Installs `redshank-mode' on major mode hooks listed in HOOKS. | ||
If AUTOINSERTP is non-nil and `auto-insert-mode' is available, | ||
activate support for that, too." | ||
(dolist (hook hooks) | ||
(add-hook hook 'turn-on-redshank-mode)) | ||
(add-to-list 'auto-mode-alist '("\\.asdf?\\'" . asdf-mode)) | ||
(when autoinsertp | ||
(eval-after-load "autoinsert" | ||
'(progn | ||
(add-to-list 'auto-insert-alist | ||
'(lisp-mode . [redshank-mode-line-skeleton | ||
redshank-in-package-skeleton])) | ||
(add-to-list 'auto-insert-alist | ||
'(asdf-mode . [redshank-mode-line-skeleton | ||
redshank-asdf-defsystem-skeleton])))))) | ||
|
||
(provide 'redshank-loader) | ||
;;; redshank-loader.el ends here |
Oops, something went wrong.