Index: slime.el =================================================================== RCS file: /project/slime/cvsroot/slime/slime.el,v retrieving revision 1.425 diff -r1.425 slime.el 203a204,215 > (defcustom slime-do-indent-complete t > "Have slime-indent do symbol completion when the line is already indented > property and the point is next to a symbol." > :group 'slime-mode > :type 'boolean) > > (defcustom slime-show-arglist-on-indent t > "Have slime-indent show arglists when the line is already indented and > the point isn't next to a symbol." > :group 'slime-mode > :type 'boolean) > 1018,1023c1035,1043 < (defun slime-indent-and-complete-symbol () < "Indent the current line and perform symbol completion. < First indent the line; if indenting doesn't move point, complete the < symbol." < (interactive) < (let ((pos (point))) --- > (defun slime-indent (&optional do-complete show-arglist) > "Indent the current line and perform symbol completion and arglist help. > First indent the line. If indenting doesn't move the point, try to > complete the current symbol. If there's no symbol at the point, show the > arglist for the most recently enclosed macro or function." > (interactive) > (let ((pos (point)) > (do-complete (or do-complete slime-do-indent-complete)) > (show-arglist (or show-arglist slime-show-arglist-on-indent))) 1026,1029c1046,1055 < (when (and (= pos (point)) < (save-excursion < (re-search-backward "[^ \n\t\r]+\\=" nil t))) < (slime-complete-symbol)))) --- > (when (= pos (point)) > (if (or (save-excursion > (backward-char) > (or (looking-at " ") (looking-at (char-to-string ?\t)))) > (save-excursion > (not (re-search-backward "[^ )\n\t\r]+\\=" nil t)))) > (when show-arglist > (slime-echo-arglist-for-enclosing)) > (when do-complete > (slime-complete-symbol)))))) 4121,4129c4161 < (let ((names (slime-enclosing-operator-names))) < (when names < (slime-eval-async < `(swank:arglist-for-echo-area (quote ,names)) < (lexical-let ((buffer (current-buffer))) < (lambda (message) < (if message < (with-current-buffer buffer < (slime-message "%s" message))))))))) --- > slime-echo-arglist-for-enclosing) 4149a4182,4191 > (defun slime-echo-arglist-for-enclosing () > (let ((names (slime-enclosing-operator-names))) > (when names > (slime-eval-async > `(swank:arglist-for-echo-area (quote ,names)) > (lexical-let ((buffer (current-buffer))) > (lambda (message) > (if message > (with-current-buffer buffer > (slime-message "%s" message)))))))))