Here is a fix for an annoyance similar to the one I described in my previous email: Pressing M-. on the first position of the *slime-apropos* raises a "args out of range error".
Marco, I'm cc'ing you, since I believe the error stems from the interaction of your `slime-fancy-inspector' contrib with `slime-inspector-property-at-point'.
It could be a easy fix in slime.el
diff --git a/slime.el b/slime.el index 106b0fa..857e68f 100644 --- a/slime.el +++ b/slime.el @@ -6636,7 +6636,8 @@ position of point in the current buffer." when value return (list property value))))) (or (funcall find-property (point)) - (funcall find-property (1- (point)))))) + (and (> (point) (point-min)) + (funcall find-property (1- (point)))))))
(defun slime-inspector-operate-on-point () "Invoke the command for the text at point.
But the real problem is that `slime-fancy-inspector' contrib places its `slime-edit-inspector-part' in `slime-edit-definition-hooks', thus causing `slime-inspector-operate-on-point' to be called uselessly in non-inspector contexts.
So maybe there's a better fix within the spirit of `slime-edit-definition-hooks'
diff --git a/contrib/slime-fancy-inspector.el b/contrib/slime-fancy-inspector.el index 8918f90..bef8d1c 100644 --- a/contrib/slime-fancy-inspector.el +++ b/contrib/slime-fancy-inspector.el @@ -22,6 +22,7 @@ ,(slime-definition-at-point t))))
(defun slime-edit-inspector-part (name &optional where) + (and (eq major-mode 'slime-inspector-mode) (destructuring-bind (&optional property value) (slime-inspector-property-at-point) (when (eq property 'slime-part-number) @@ -34,6 +35,6 @@ (list (make-slime-xref :dspec `(,name) :location location)) name - where)))))) + where)))))))