combobulate-envelope bug
I'm getting the error below running combobulate-envelope in TSX. I'm using Emacs 29.2 on a M1, transient version 0.5.3 (that might be important).
To reproduce use this example:
const Component = () => (
<div>
<h1>Component</h1>
</div>
);
Put your cursor just before the <h1>, or select the entire h1 element; the bug happens either way.
I get this error (with debug-on-error set to t):
Debugger entered--Lisp error: (invalid-slot-name "#<transient-suffix transient-suffix-4a0a2148>" pad-keys)
apply(debug (error (invalid-slot-name "#<transient-suffix transient-suffix-4a0a2148>" pad-keys)))
transient--exit-and-debug(error (invalid-slot-name "#<transient-suffix transient-suffix-4a0a2148>" pad-keys))
signal(invalid-slot-name ("#<transient-suffix transient-suffix-4a0a2148>" pad-keys))
#f(compiled-function (object slot-name operation &optional new-value) #<bytecode 0x9818c69bceba921>)(#<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
apply(#f(compiled-function (object slot-name operation &optional new-value) #<bytecode 0x9818c69bceba921>) #<transient-suffix transient-suffix-4a0a2148> (pad-keys oref))
#f(compiled-function (arg &rest args) #<bytecode 0x1f52eae4681d937>)(#<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
apply(#f(compiled-function (arg &rest args) #<bytecode 0x1f52eae4681d937>) #<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
#f(compiled-function (arg0 arg &rest args) #<bytecode 0x158943f7e54e5a4a>)(#<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
apply(#f(compiled-function (arg0 arg &rest args) #<bytecode 0x158943f7e54e5a4a>) #<transient-suffix transient-suffix-4a0a2148> pad-keys oref nil)
slot-missing(#<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
#<subr eieio-oref>(#<transient-suffix transient-suffix-4a0a2148> pad-keys)
eieio-oref--closql-oref(#<subr eieio-oref> #<transient-suffix transient-suffix-4a0a2148> pad-keys)
apply(eieio-oref--closql-oref #<subr eieio-oref> (#<transient-suffix transient-suffix-4a0a2148> pad-keys))
eieio-oref(#<transient-suffix transient-suffix-4a0a2148> pad-keys)
transient--maybe-pad-keys(#<transient-suffix transient-suffix-4a0a2148> #<transient-columns transient-columns-4a1a16c4>)
#f(compiled-function (column) #<bytecode -0x88b60c68aebe7a4>)(#<transient-suffix transient-suffix-4a0a2148>)
mapcar(#f(compiled-function (column) #<bytecode -0x88b60c68aebe7a4>) (#<transient-suffix transient-suffix-4a0a2148> #<transient-suffix transient-suffix-45c20cc8> #<transient-suffix transient-suffix-45c79e00> #<transient-suffix transient-suffix-45c7e9f0> #<transient-suffix transient-suffix-45c9130a> #<transient-suffix transient-suffix-45ce77ae> #<transient-suffix transient-suffix-45d8150a> #<transient-suffix transient-suffix-45df5dda> #<transient-suffix transient-suffix-45ea6f0a> #<transient-suffix transient-suffix-466760f8> #<transient-suffix transient-suffix-4a35560e> #<transient-suffix transient-suffix-d16ac43e> #<transient-suffix transient-suffix-cbd72fe2> #<transient-suffix transient-suffix-f8bae39c> #<transient-suffix transient-suffix-f8b33d98> #<transient-suffix transient-suffix-f95a52a0>))
#f(compiled-function (group) #<bytecode 0xe25bdf38118d9f9>)(#<transient-columns transient-columns-4a1a16c4>)
apply(#f(compiled-function (group) #<bytecode 0xe25bdf38118d9f9>) #<transient-columns transient-columns-4a1a16c4>)
#f(compiled-function (&rest args) #<bytecode -0x176c41c139d0e8c5>)(#<transient-columns transient-columns-4a1a16c4>)
#f(compiled-function (cl--cnm group) #<bytecode 0x13aa5e91646b518c>)(#f(compiled-function (&rest args) #<bytecode -0x176c41c139d0e8c5>) #<transient-columns transient-columns-4a1a16c4>)
apply(#f(compiled-function (cl--cnm group) #<bytecode 0x13aa5e91646b518c>) #f(compiled-function (&rest args) #<bytecode -0x176c41c139d0e8c5>) #<transient-columns transient-columns-4a1a16c4>)
#f(compiled-function (group) "Insert GROUP's description, if any." #<bytecode -0x49d4d213b5dd4e8>)(#<transient-columns transient-columns-4a1a16c4>)
apply(#f(compiled-function (group) "Insert GROUP's description, if any." #<bytecode -0x49d4d213b5dd4e8>) #<transient-columns transient-columns-4a1a16c4> nil)
transient--insert-group(#<transient-columns transient-columns-4a1a16c4>)
transient--insert-groups()
transient--show()
transient--redisplay()
transient-setup(combobulate-envelop)
combobulate-envelop()
funcall-interactively(combobulate-envelop)
command-execute(combobulate-envelop record)
#<subr execute-extended-command>(nil "combobulate-envelop" nil)
ad-Advice-execute-extended-command(#<subr execute-extended-command> nil "combobulate-envelop" nil)
apply(ad-Advice-execute-extended-command #<subr execute-extended-command> (nil "combobulate-envelop" nil))
execute-extended-command(nil "combobulate-envelop" nil)
funcall-interactively(execute-extended-command nil "combobulate-envelop" nil)
command-execute(execute-extended-command)
Hi Steve,
HAving a hard time reproducing this. Does it happen when you pop up the envelope transient only? Can you execute envelopes without it? (C-c o e t as an example)
Hi Mickey I downgraded transient to version 0.4.3 and combobulate-envelope worked. When I updated to transient version 0.5.3 comboulate-envelope broke again as described above.
So I think something changed in transient. 0.4.3 is the version of transient that comes stock with Emacs 29.2.
EDIT: The bug happens even if I invoke M-x combobulate-envelope outside of the transient.
Thanks for the bug report.