Skip to content

Commit 500fa26

Browse files
authored
Merge pull request #691 from clojure-emacs/fix-edn-paren-indentation
Fix #610: Treat all paren lists as data in edn-mode
2 parents 2394e36 + 52782b8 commit 500fa26

2 files changed

Lines changed: 11 additions & 5 deletions

File tree

clojure-mode.el

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1725,7 +1725,8 @@ accepted by `clojure-indent-style'."
17251725

17261726
(defun clojure--not-function-form-p ()
17271727
"Non-nil if form at point doesn't represent a function call."
1728-
(or (member (char-after) '(?\[ ?\{))
1728+
(or (derived-mode-p 'edn-mode)
1729+
(member (char-after) '(?\[ ?\{))
17291730
(save-excursion ;; Catch #?@ (:cljs ...)
17301731
(skip-chars-backward "\r\n[:blank:]")
17311732
(when (eq (char-before) ?@)

test/edn-mode-indentation-test.el

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,22 +56,27 @@
5656
(it "should align let arguments instead of using body indentation"
5757
(with-edn-buffer "\n(let [x 1]\nx)"
5858
(indent-region (point-min) (point-max))
59-
(expect (buffer-string) :to-equal "\n(let [x 1]\n x)")))
59+
(expect (buffer-string) :to-equal "\n(let [x 1]\n x)")))
6060

6161
(it "should align if arguments instead of using body indentation"
6262
(with-edn-buffer "\n(if true\n1\n2)"
6363
(indent-region (point-min) (point-max))
64-
(expect (buffer-string) :to-equal "\n(if true\n 1\n 2)")))
64+
(expect (buffer-string) :to-equal "\n(if true\n 1\n 2)")))
6565

6666
(it "should align cond arguments instead of using body indentation"
6767
(with-edn-buffer "\n(cond a\nb)"
6868
(indent-region (point-min) (point-max))
69-
(expect (buffer-string) :to-equal "\n(cond a\n b)")))
69+
(expect (buffer-string) :to-equal "\n(cond a\n b)")))
7070

7171
(it "should align do arguments instead of using body indentation"
7272
(with-edn-buffer "\n(do a\nb)"
7373
(indent-region (point-min) (point-max))
74-
(expect (buffer-string) :to-equal "\n(do a\n b)"))))
74+
(expect (buffer-string) :to-equal "\n(do a\n b)")))
75+
76+
(it "should align keyword lists as data (issue #610)"
77+
(with-edn-buffer "\n(:key1 :value1\n:key2 :value2)"
78+
(indent-region (point-min) (point-max))
79+
(expect (buffer-string) :to-equal "\n(:key1 :value1\n :key2 :value2)"))))
7580

7681
(describe "maps, vectors, and sets indent normally"
7782

0 commit comments

Comments
 (0)