From 531c0366dbbe3ac0dafa8b0bf98e524ec1d45d02 Mon Sep 17 00:00:00 2001 From: Reid 'arrdem' McKenzie Date: Fri, 25 Mar 2016 20:38:09 -0500 Subject: [PATCH 1/3] Treat , as a non-logical sexpr character This causes clojure-forward-logical-sexp to skip over , when for instance computing vertical alignments. Fixes #367 --- clojure-mode.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clojure-mode.el b/clojure-mode.el index df67875e..c3c5f909 100644 --- a/clojure-mode.el +++ b/clojure-mode.el @@ -1451,7 +1451,7 @@ Returns a list pair, e.g. (\"defn\" \"abc\") or (\"deftest\" \"some-test\")." Sexps that don't represent code are ^metadata or #reader.macros." (comment-normalize-vars) (comment-forward (point-max)) - (looking-at-p "\\^\\|#[?[:alpha:]]")) + (looking-at-p "\\^\\|#[?[:alpha:]]\\|,")) (defun clojure-forward-logical-sexp (&optional n) "Move forward N logical sexps. From 75d0fe4d06219a5a1711596bcb5f074c67530461 Mon Sep 17 00:00:00 2001 From: Reid 'arrdem' McKenzie Date: Sat, 26 Mar 2016 23:23:24 -0500 Subject: [PATCH 2/3] Skip training , --- clojure-mode.el | 1 + 1 file changed, 1 insertion(+) diff --git a/clojure-mode.el b/clojure-mode.el index c3c5f909..f84a0395 100644 --- a/clojure-mode.el +++ b/clojure-mode.el @@ -1465,6 +1465,7 @@ This will skip over sexps that don't represent objects, so that ^hints and (while (> n 0) (while (clojure--looking-at-non-logical-sexp) (forward-sexp 1)) + (skip-chars-forward ",") ;; The actual sexp (forward-sexp 1) (setq n (1- n)))))) From 786c74dd6e03023be2beb784469d2a8356220564 Mon Sep 17 00:00:00 2001 From: Reid 'arrdem' McKenzie Date: Sat, 26 Mar 2016 23:57:34 -0500 Subject: [PATCH 3/3] Add a test case --- test/clojure-mode-indentation-test.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/clojure-mode-indentation-test.el b/test/clojure-mode-indentation-test.el index a3df6cc9..05b801d2 100644 --- a/test/clojure-mode-indentation-test.el +++ b/test/clojure-mode-indentation-test.el @@ -540,6 +540,12 @@ x :b {:a :a :aa :a}}") +(def-full-align-test trailing-commas + "{:a {:a :a, + :aa :a}, + :b {:a :a, + :aa :a}}") + ;;; Misc