cljfmt icon indicating copy to clipboard operation
cljfmt copied to clipboard

Docstring/comment after defn name changes indentation of the body

Open holyjak opened this issue 3 years ago • 1 comments

Hello! I have a mystery. With :indents ^:replace {#"^\w" [[:inner 0]]} this is aligned as I want:

      (defn X
        ([args] 
         (doit)))

but if I put any line (normally I would have there a docstring) after the X, it changes and the body of the fn is indented by 1 space too many:

      (defn X
        ;; comment
        ([args]
          (doit)))

holyjak avatar Sep 06 '21 08:09 holyjak

I haven't tried it with the Leiningen plugin, but I can't reproduce it with tests:

    (is (reformats-to?
         ["(defn X"
          "([args]"
          "(doit)))"]
         ["(defn X"
          "  ([args]"
          "   (doit)))"]
         {:indents {#"^\w" [[:inner 0]]}}))
    (is (reformats-to?
         ["(defn X"
          "  ;; comment"
          "([args]"
          "(doit)))"]
         ["(defn X"
          "  ;; comment"
          "  ([args]"
          "   (doit)))"]
         {:indents {#"^\w" [[:inner 0]]}}))

Both of those pass. Strange.

@holyjak: is this still an issue for you?

or avatar May 10 '22 08:05 or