Skip to content

Commit f93f907

Browse files
committed
Use dolist for docstring position property assignments
Extract the list of forms with docstrings into a named constant `clojure--docstring-def-forms' and use dolist to set the `clojure-doc-string-elt' property for each.
1 parent ae76510 commit f93f907

1 file changed

Lines changed: 24 additions & 17 deletions

File tree

clojure-mode.el

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1324,21 +1324,21 @@ locking in def* forms that are not at top level."
13241324

13251325
(defun clojure-font-lock-extend-region-def ()
13261326
"Set region boundaries to include the first four elements of def* forms."
1327-
(let ((changed nil))
1328-
(let ((def (clojure-font-lock-def-at-point font-lock-beg)))
1329-
(when def
1330-
(cl-destructuring-bind (def-beg . def-end) def
1331-
(when (and (< def-beg font-lock-beg)
1332-
(< font-lock-beg def-end))
1333-
(setq font-lock-beg def-beg
1334-
changed t)))))
1335-
(let ((def (clojure-font-lock-def-at-point font-lock-end)))
1336-
(when def
1337-
(cl-destructuring-bind (def-beg . def-end) def
1338-
(when (and (< def-beg font-lock-end)
1339-
(< font-lock-end def-end))
1340-
(setq font-lock-end def-end
1341-
changed t)))))
1327+
(let* ((changed nil)
1328+
(def-beg-region (clojure-font-lock-def-at-point font-lock-beg))
1329+
(def-end-region (clojure-font-lock-def-at-point font-lock-end)))
1330+
(when def-beg-region
1331+
(cl-destructuring-bind (def-beg . def-end) def-beg-region
1332+
(when (and (< def-beg font-lock-beg)
1333+
(< font-lock-beg def-end))
1334+
(setq font-lock-beg def-beg
1335+
changed t))))
1336+
(when def-end-region
1337+
(cl-destructuring-bind (def-beg . def-end) def-end-region
1338+
(when (and (< def-beg font-lock-end)
1339+
(< font-lock-end def-end))
1340+
(setq font-lock-end def-end
1341+
changed t))))
13421342
changed))
13431343

13441344
(defun clojure--font-locked-as-string-p (&optional regexp)
@@ -1408,8 +1408,15 @@ point) to check."
14081408
found))
14091409

14101410
;; Docstring positions
1411-
(dolist (sym '(ns def defn defn- defmulti defmacro definline defprotocol
1412-
deftask)) ;; deftask is a common Boot macro
1411+
(defconst clojure--docstring-def-forms
1412+
'(ns def defn defn- defmulti defmacro definline defprotocol
1413+
deftask) ;; deftask is a common Boot macro
1414+
"Forms whose second argument position is a docstring.
1415+
The `clojure-doc-string-elt' property is set for each of these
1416+
so that `font-lock-syntactic-face-function' can recognize
1417+
docstrings and apply `font-lock-doc-face'.")
1418+
1419+
(dolist (sym clojure--docstring-def-forms)
14131420
(put sym 'clojure-doc-string-elt 2))
14141421

14151422
;;; Vertical alignment

0 commit comments

Comments
 (0)