Skip to content

Commit 09f018e

Browse files
committed
Add paredit setup for edn-mode
Like clojure-mode, edn-mode needs to coax paredit to auto-pair curly braces.
1 parent d58686d commit 09f018e

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## master (unreleased)
44

5+
* Add edn-paredit-setup to allow paredit to auto-pair curly braces
6+
57
## 5.22.0 (2026-03-03)
68

79
### New features

clojure-mode.el

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3490,6 +3490,17 @@ With universal argument \\[universal-argument], act on the \"top-level\" form."
34903490
Only exposes data-appropriate commands: alignment, keyword-string
34913491
toggle, collection conversion, and #_ toggle.")
34923492

3493+
3494+
(defun edn-paredit-setup (&optional keymap)
3495+
"Make \"paredit-mode\" play nice with `edn-mode'.
3496+
3497+
If an optional KEYMAP is passed the changes are applied to it,
3498+
instead of to `edn-mode-map'."
3499+
(when (>= paredit-version 21)
3500+
(let ((keymap (or keymap edn-mode-map)))
3501+
(define-key keymap "{" #'paredit-open-curly)
3502+
(define-key keymap "}" #'paredit-close-curly))))
3503+
34933504
;;;###autoload
34943505
(define-derived-mode edn-mode clojure-mode "EDN"
34953506
"Major mode for editing EDN data files.
@@ -3500,7 +3511,8 @@ indentation appropriate for data structures rather than code.
35003511
35013512
\\{edn-mode-map}"
35023513
(setq-local clojure-indent-style 'always-align)
3503-
(setq-local clojure-enable-indent-specs nil))
3514+
(setq-local clojure-enable-indent-specs nil)
3515+
(add-hook 'paredit-mode-hook #'edn-paredit-setup))
35043516

35053517
;;;###autoload
35063518
(progn

0 commit comments

Comments
 (0)