calva 2025-07-23

I noticed that Slurp Sexp Forward regards the preprocessor discard reader macro (#_) as an sexp. So starting with

(do)
#_(def a :a)
(def b :b)
by doing Slurp Sexp Forward, I can get
(do
#_)(def a :a)
(def b :b)
Is this a (minor) bug? (video in thread)

Here's an approach that I liked better, it treats ignored sexps as if they are sexps

I prefer the 2nd - "treats ignored sexps like sexps"

There's a relatively easy fix for this that I put into the issue. It completely ignores the sexp following the discard reader macro. What do you think about the behavior? I was thinking that the ignored sexp would still be treated as an sexp, but now I'm not sure.

Note that this may be a somewhat desirable behavior with navigation or selection (although that may be up for debate - it was the navigation that was annoying me at first)

➕ 1

The video shows • Slurp Sexp Forward • navigation • selection

I second the notion that slurp and barf should not separate the ignore blot from its charge I am not certain how I feel about selection and motion...

What got me for navigation/motion and selection is that they are supposed to be forwardSexp (move cursor forward sexp/form) and selectForwardSexp (select forward sexp). I don't think the discard reader symbol is either an sexp or a form. I'll file a bug soon, unless someone objects.

Hopefully it won't break that "evaluate current form" at either #_|42 or #_42| produces 42

More moving pieces!

It’s complicated. 😀