|
276 | 276 | "\\>")
|
277 | 277 | 1 font-lock-type-face)
|
278 | 278 | ;; Constant values (keywords), including as metadata e.g. ^:static
|
279 |
| - ("\\<^?:\\(\\sw\\)+\\>" 0 font-lock-constant-face) |
| 279 | + ("\\<^?:\\(\\sw\\|\\s_\\)+\\(\\>\\|\\_>\\)" 0 font-lock-constant-face) |
280 | 280 | ;; Meta type annotation #^Type or ^Type
|
281 |
| - ("#?^\\sw+" 0 font-lock-preprocessor-face) |
| 281 | + ("#?^\\(\\sw\\|\\s_\\)+" 0 font-lock-preprocessor-face) |
282 | 282 | ("\\<io\\!\\>" 0 font-lock-warning-face)
|
283 | 283 |
|
284 | 284 | ;;Java interop highlighting
|
@@ -367,7 +367,7 @@ Clojure to load that file."
|
367 | 367 | (modify-syntax-entry ?\] ")[" table)
|
368 | 368 | (modify-syntax-entry ?^ "'" table)
|
369 | 369 | ;; Make hash a usual word character
|
370 |
| - (modify-syntax-entry ?# "w" table) |
| 370 | + (modify-syntax-entry ?# "_ p" table) |
371 | 371 | table))
|
372 | 372 |
|
373 | 373 | (defvar clojure-mode-abbrev-table nil
|
@@ -401,6 +401,22 @@ numbers count from the end:
|
401 | 401 | (defalias 'clojure-parent-mode
|
402 | 402 | (if (fboundp 'prog-mode) 'prog-mode 'fundamental-mode))
|
403 | 403 |
|
| 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 | + |
404 | 420 | ;;;###autoload
|
405 | 421 | (define-derived-mode clojure-mode clojure-parent-mode "Clojure"
|
406 | 422 | "Major mode for editing Clojure code - similar to Lisp mode.
|
@@ -435,7 +451,9 @@ if that value is non-nil."
|
435 | 451 | (lambda ()
|
436 | 452 | (when (>= paredit-version 21)
|
437 | 453 | (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))))) |
439 | 457 |
|
440 | 458 | (defun clojure-display-inferior-lisp-buffer ()
|
441 | 459 | "Display a buffer bound to `inferior-lisp-buffer'."
|
|
0 commit comments