Skip to content

Commit 333f619

Browse files
committed
Merge pull request #167 from technomancy/fix-paredit-breakage
Fix paredit breakage
2 parents a34c168 + 8699952 commit 333f619

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

clojure-mode.el

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -276,9 +276,9 @@
276276
"\\>")
277277
1 font-lock-type-face)
278278
;; Constant values (keywords), including as metadata e.g. ^:static
279-
("\\<^?:\\(\\sw\\)+\\>" 0 font-lock-constant-face)
279+
("\\<^?:\\(\\sw\\|\\s_\\)+\\(\\>\\|\\_>\\)" 0 font-lock-constant-face)
280280
;; Meta type annotation #^Type or ^Type
281-
("#?^\\sw+" 0 font-lock-preprocessor-face)
281+
("#?^\\(\\sw\\|\\s_\\)+" 0 font-lock-preprocessor-face)
282282
("\\<io\\!\\>" 0 font-lock-warning-face)
283283

284284
;;Java interop highlighting
@@ -367,7 +367,7 @@ Clojure to load that file."
367367
(modify-syntax-entry ?\] ")[" table)
368368
(modify-syntax-entry ?^ "'" table)
369369
;; Make hash a usual word character
370-
(modify-syntax-entry ?# "w" table)
370+
(modify-syntax-entry ?# "_ p" table)
371371
table))
372372

373373
(defvar clojure-mode-abbrev-table nil
@@ -401,6 +401,22 @@ numbers count from the end:
401401
(defalias 'clojure-parent-mode
402402
(if (fboundp 'prog-mode) 'prog-mode 'fundamental-mode))
403403

404+
(defun clojure-space-for-delimiter-p (endp delim)
405+
(if (eq major-mode 'clojure-mode)
406+
(save-excursion
407+
(backward-char)
408+
(if (and (or (char-equal delim ?\()
409+
(char-equal delim ?\")
410+
(char-equal delim ?{))
411+
(not endp))
412+
(if (char-equal (char-after) ?#)
413+
(and (not (bobp))
414+
(or (char-equal ?w (char-syntax (char-before)))
415+
(char-equal ?_ (char-syntax (char-before)))))
416+
t)
417+
t))
418+
t))
419+
404420
;;;###autoload
405421
(define-derived-mode clojure-mode clojure-parent-mode "Clojure"
406422
"Major mode for editing Clojure code - similar to Lisp mode.
@@ -435,7 +451,9 @@ if that value is non-nil."
435451
(lambda ()
436452
(when (>= paredit-version 21)
437453
(define-key clojure-mode-map "{" 'paredit-open-curly)
438-
(define-key clojure-mode-map "}" 'paredit-close-curly)))))
454+
(define-key clojure-mode-map "}" 'paredit-close-curly)
455+
(add-to-list 'paredit-space-for-delimiter-predicates
456+
'clojure-space-for-delimiter-p)))))
439457

440458
(defun clojure-display-inferior-lisp-buffer ()
441459
"Display a buffer bound to `inferior-lisp-buffer'."

0 commit comments

Comments
 (0)