cursive 2026-01-26

Hitting return within a data structure doesn't seem to get the indentation right anymore. Is this a recent regression? Weirdly it's a bit unpredictable and seems to relate to where in the map you are (just before a key or just before a value) when you press enter, and possibly whether or not the map already spans multiple lines.

Repro case for me:

(def x
  (let []
    {:k1 :v1
     :k2 :v2}))
with the cursor where indicated I hit the shortcut to 'Barf forwards' and the map gets shifted to the left 2 spaces, but the value ':v1' within the map does not.

IntelliJ IDEA 2025.3.2
Build #IU-253.30387.90, built on January 22, 2026
Source revision: 61f1e2a0a8f30
Current Desktop: ubuntu:GNOME

it's pretty minor, but it suggests that something isn't quite right

I'm on 2025.3.2, but iirc it was present before I upgraded.

Yes, I'm not sure when it was introduced, but I've only noticed it relatively recently.

1

Yes, this is a recent regression, which I think must be something that's changed in IntelliJ. It also drives me nuts. I'll try to fix this for the next release.

1

which version of IJ are affected? im still on 2025.3.1.1, but i also just upgraded my EAP to 2025.3.2

Possibly related. Just barfed a map out of a let block and it did something odd with the whitespace (adding two spaces between the first key and the first value):

(let [some-value (::some-keyword-1 db)])
    {:db   (assoc-in db [::some-keyword-2 :some-keyword-3] some-value)
     :fx [[:dispatch [::some-keyword-4]]]}

before the barf:

(let [some-value (::some-keyword-1 db)]
      {:db (assoc-in db [::some-keyword-2 :some-keyword-3] some-value)
       :fx [[:dispatch [::some-keyword-4]]]})

@peterwestmacott Which Cursive version was that?

There have been some slurp/barf changes in 2026.1-eap1, but I have pretty extensive behaviour tests to try to ensure no regression.

BTW if anyone sees this indentation problem, I'm very interested in a repro case.