[slime-devel] Fancy, yes, pleasant, no: slime-complete-symbol*-fancy-bit

Steven E. Harris seh at panix.com
Fri Mar 18 18:00:52 UTC 2005


I have my '[' key bound to `insert-parentheses' so that any open-paren
I type gets a symmetric closing paren inserted. Consider what happens
now when I type, say,

  [ user-home TAB

Just before hitting tab, the buffer contains the following text, with
extra spaces inserted to show the point's location:

  ( u s e r - h o m e )
                     |
                   point

Hitting tab completes the symbol, but decides, since this looks like a
function call position and there are no arguments for this function,
to insert a closing paren:

  (user-homedir-pathname))

Now I have an extra closing paren hanging out there.

That's `slime-complete-symbol*-fancy-bit' doing its job.
A corrective patch is simple:

-------------- next part --------------
A non-text attachment was scrubbed...
Name: slime.el.diff
Type: text/x-patch
Size: 550 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/slime-devel/attachments/20050318/ca8884b1/attachment.bin>
-------------- next part --------------

However, this may not play nicely for those who do not use
`insert-parentheses' in a situation such as this:

Existing code:

  (foo 1 2)

Decide to add a third argument (spaced out again):

  ( f o o  1  2  ( b a )
                      |
                    point

Hit tab at the indicated point position and wind up with:

  (foo 1 2 (bar)

Now the originally balanced parens are not balanced, because my patch
disabled the auto-insert-paren behavior.

Is there a way to satisfy both use cases without adding another
configuration variable?

-- 
Steven E. Harris


More information about the slime-devel mailing list