lispy icon indicating copy to clipboard operation
lispy copied to clipboard

Bug? lispy-unbind-variable does not replace the unbound variable with its value as described in docs

Open pierre-rouleau opened this issue 4 years ago • 5 comments

  • Lispy version: lispy-20210121.926
  • Tested on Emacs 26.3 and 27.1
  • Wanted behavior description: lispy-unbind-variable doc
  • Observed behavior:

Start with the following code and placing the cursor at the same position as described in the linked document above:

defun foobar ()
  (let ((x 10)
	(y 20)
	(z 30))
    (foo1 x y z)
    (foo2 x z y)
    (foo3 y x z)
    (foo4 y z x)
    (foo5 z x y)
    (foo6 z y x)))

Type xu and the result currently is:

(defun foobar ()
  (let ((y 20)
        (z 30))
    (foo1 x y z)
    (foo2 x z y)
    (foo3 y x z)
    (foo4 y z x)
    (foo5 z x y)
    (foo6 z y x)))

Notice that the variable x has been left as-is inside the code instead of being replaced by it's previously bound value of 10 as described in the documentation.

I have not yet looked into the code, but is it possible some statements were removed since the original code tested to write the documentation was done?

--

Despite this minor problem, this package is great! Thanks!!

pierre-rouleau avatar Mar 06 '21 21:03 pierre-rouleau

xu works fine for me - Emacs 28, current lispy 0.27.0 (from git or melpa).

ComedyTomedy avatar Mar 31 '21 01:03 ComedyTomedy

Good to know, thanks. It would seem to mean that a regression showed up between 0.27.0 done on May 8, 2019 and the version I use, which goes to Jan 21 2021.

pierre-rouleau avatar Mar 31 '21 13:03 pierre-rouleau

I too am facing this bug.

Lispy version 0.27.0 (20210702.1206 from MELPA)

GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0) of 2021-03-28, modified by Debian

contrapunctus-1 avatar Jul 10 '21 02:07 contrapunctus-1

Still an issue, Emacs 29.0.50 and lispy-20211020.907. The pull request doesn't quite fix it. Something about (iedit-mode) is off, evaluating it manually after previous lines in the function has the intended effect.

joshcho avatar Apr 18 '22 02:04 joshcho

You're right, it's related to iedit-mode. I noticed just now that I'm using a pretty old fork: https://github.com/abo-abo/iedit. lispy-unbind-variable works fine for me with that fork.

abo-abo avatar Sep 12 '22 05:09 abo-abo