Hi,
I am sending a tiny patch for the SLIME inspector. Because Emacs merges adjacent text properties of the same value, adjacent "action" buttons are glued together, so they are all highlighted when mouse is over one of them. (This can be seen, for instance, when one inspects an internal symbol.)
The patch below fixes this bug by separating all "action" buttons by whitespace without the `highlight' text property.
Cheers, Matthias
2005-07-17 Matthias Koeppe mkoeppe@mail.math.uni-magdeburg.de
* swank.lisp (inspect-for-emacs): Don't make whitespace surrounding :action buttons part of the highlighted region.
--- swank.lisp.~1.309.~ 2005-06-26 20:38:06.000000000 +0200 +++ swank.lisp 2005-07-17 16:58:41.000000000 +0200 @@ -3342,9 +3343,11 @@ " to the package: " (:value ,package ,(package-name package)) ,@(if (eq :internal status) - `((:action " [export it]" + `(" " + (:action "[export it]" ,(lambda () (export symbol package))))) - (:action " [unintern it]" + " " + (:action "[unintern it]" ,(lambda () (unintern symbol package))) (:newline)) '("It is a non-interned symbol." (:newline))) @@ -3356,7 +3359,8 @@ (if (find-class symbol nil) `("It names the class " (:value ,(find-class symbol) ,(string symbol)) - (:action " [remove]" + " " + (:action "[remove]" ,(lambda () (setf (find-class symbol) nil))) (:newline))) ;; @@ -3477,7 +3481,8 @@ `((:value ,method ,(inspector-princ ;; drop the name of the GF (cdr (method-for-inspect-value method)))) - (:action " [remove method]" + " " + (:action "[remove method]" ,(let ((m method)) ; LOOP reassigns method (lambda () (remove-method gf m))))