Skip to content

Commit

Permalink
Replace when-let/if-let with when-let*/if-let*
Browse files Browse the repository at this point in the history
  • Loading branch information
misohena committed Feb 12, 2025
1 parent 04887e5 commit 663130d
Show file tree
Hide file tree
Showing 14 changed files with 603 additions and 577 deletions.
42 changes: 21 additions & 21 deletions edraw-color-picker.el
Original file line number Diff line number Diff line change
Expand Up @@ -1333,7 +1333,7 @@
(mapcar
(lambda (area)
(when (edraw-color-picker-area-or-derived-p area)
(when-let ((image-map-id-props (oref area image-map-id-props)))
(when-let* ((image-map-id-props (oref area image-map-id-props)))
(let* ((x0 (oref area left))
(y0 (oref area top))
(x1 (+ x0 (oref area width)))
Expand All @@ -1360,7 +1360,7 @@
areas))

(defun edraw-color-picker-areas-click-by-name (areas name)
(when-let ((area (edraw-color-picker-areas-find-by-name areas name)))
(when-let* ((area (edraw-color-picker-areas-find-by-name areas name)))
(edraw-dispatch-click area)))

(defun edraw-color-picker-areas-on-down-mouse (areas down-event image-scale
Expand Down Expand Up @@ -1512,7 +1512,7 @@
(edraw-color-picker-areas-create-image-map areas image-scale))

;; Setup event routing
(when-let ((button (edraw-color-picker-areas-find-by-name areas "ok")))
(when-let* ((button (edraw-color-picker-areas-find-by-name areas "ok")))
(oset button on-click
(lambda (_area)
;; Add color to recent-colors
Expand All @@ -1521,17 +1521,17 @@
options
(edraw-get-current-color picker)))
;; Callback
(when-let ((fun (alist-get :ok options)))
(when-let* ((fun (alist-get :ok options)))
(funcall fun picker))
(edraw-hook-call (alist-get 'ok (oref picker hooks)) picker))))
(when-let ((button (edraw-color-picker-areas-find-by-name areas "cancel")))
(when-let* ((button (edraw-color-picker-areas-find-by-name areas "cancel")))
(oset button on-click
(lambda (_area)
;; Callback
(when-let ((fun (alist-get :cancel options)))
(when-let* ((fun (alist-get :cancel options)))
(funcall fun picker))
(edraw-hook-call (alist-get 'cancel (oref picker hooks)) picker))))
(when-let ((button (edraw-color-picker-areas-find-by-name areas "no-color")))
(when-let* ((button (edraw-color-picker-areas-find-by-name areas "no-color")))
(oset button on-click
(lambda (_area)
;; Callback
Expand All @@ -1544,7 +1544,7 @@
(cl-defmethod edraw-add-hook ((picker edraw-color-picker) hook-type
function &rest args)
(with-slots (hooks) picker
(when-let ((hook (alist-get hook-type hooks)))
(when-let* ((hook (alist-get hook-type hooks)))
(apply 'edraw-hook-add hook function args))))

(cl-defmethod edraw-closed-p ((picker edraw-color-picker))
Expand Down Expand Up @@ -1636,7 +1636,7 @@ but the reverse can also be done."

(defun edraw-color-picker-increase-color-x (n)
(interactive "p")
(when-let ((picker (edraw-color-picker-at-input last-command-event)))
(when-let* ((picker (edraw-color-picker-at-input last-command-event)))
(edraw-increase-color-xy picker (cons (/ n 256.0) 0))))
(defun edraw-color-picker-decrease-color-x (n)
(interactive "p")
Expand All @@ -1660,7 +1660,7 @@ but the reverse can also be done."

(defun edraw-color-picker-increase-color-y (n)
(interactive "p")
(when-let ((picker (edraw-color-picker-at-input last-command-event)))
(when-let* ((picker (edraw-color-picker-at-input last-command-event)))
(edraw-increase-color-xy picker (cons 0 (/ n 256.0)))))
(defun edraw-color-picker-decrease-color-y (n)
(interactive "p")
Expand All @@ -1684,7 +1684,7 @@ but the reverse can also be done."

(defun edraw-color-picker-increase-color-z (n)
(interactive "p")
(when-let ((picker (edraw-color-picker-at-input last-command-event)))
(when-let* ((picker (edraw-color-picker-at-input last-command-event)))
(edraw-increase-color-z picker (/ n 256.0))))
(defun edraw-color-picker-decrease-color-z (n)
(interactive "p")
Expand All @@ -1708,7 +1708,7 @@ but the reverse can also be done."

(defun edraw-color-picker-increase-opacity (n)
(interactive "p")
(when-let ((picker (edraw-color-picker-at-input last-command-event)))
(when-let* ((picker (edraw-color-picker-at-input last-command-event)))
(edraw-increase-opacity picker (/ n 256.0))))
(defun edraw-color-picker-decrease-opacity (n)
(interactive "p")
Expand Down Expand Up @@ -1921,7 +1921,7 @@ but the reverse can also be done."

(defun edraw-color-picker-select-palette-color (index)
(interactive "p")
(when-let ((picker (edraw-color-picker-at-input last-command-event)))
(when-let* ((picker (edraw-color-picker-at-input last-command-event)))
(edraw-select-palette-color picker index)))

(defun edraw-color-picker-select-palette-color-fname (i)
Expand Down Expand Up @@ -1950,7 +1950,7 @@ but the reverse can also be done."

(defun edraw-color-picker-select-recent-color (index)
(interactive "p")
(when-let ((picker (edraw-color-picker-at-input last-command-event)))
(when-let* ((picker (edraw-color-picker-at-input last-command-event)))
(edraw-select-recent-color picker index)))

(defun edraw-color-picker-select-recent-color-fname (i)
Expand Down Expand Up @@ -2140,7 +2140,7 @@ make-overlay. The rest is a plist to pass to overlay-put."
"Move OVERLAY above or below the current point.
OVERLAY uses the display property to display the color PICKER."
(when-let ((pos-in-win (pos-visible-in-window-p nil nil t)))
(when-let* ((pos-in-win (pos-visible-in-window-p nil nil t)))
(when (or (< (point-min) (line-beginning-position))
(< (line-end-position) (point-max)))
(let* (;; y
Expand Down Expand Up @@ -2176,7 +2176,7 @@ OVERLAY uses the display property to display the color PICKER."

(defun edraw-color-picker-on-down-mouse (down-event)
(interactive "e")
(when-let ((picker (edraw-color-picker-at-input down-event)))
(when-let* ((picker (edraw-color-picker-at-input down-event)))
(edraw-on-down-mouse picker down-event)))

;;;; Frame Display
Expand Down Expand Up @@ -3031,8 +3031,8 @@ H:%5.1fdeg, S:%5.1f%%, B:%5.1f%%, RL:%5.1f%%"
(when (or (member input allow-strings)
(edraw-color-picker-color-from-string input options))
(setq result input))))
(when-let ((result-color
(edraw-color-picker-color-from-string result options)))
(when-let* ((result-color
(edraw-color-picker-color-from-string result options)))
;; Avoid color name
(edraw-color-picker-add-recent-color options result-color))
result)
Expand Down Expand Up @@ -3132,9 +3132,9 @@ of input changes."
;; assert current-buffer is minibuffer
(unless (equal string edraw-color-picker-minibuffer--buffer-contents)
(setq edraw-color-picker-minibuffer--buffer-contents string)
(when-let ((picker edraw-color-picker-minibuffer--picker)
(options (edraw-options picker))
(callback (alist-get :on-input-change options)))
(when-let* ((picker edraw-color-picker-minibuffer--picker)
(options (edraw-options picker))
(callback (alist-get :on-input-change options)))
(funcall callback string color))))

(defun edraw-color-picker-minibuffer--on-color-change (picker)
Expand Down
78 changes: 39 additions & 39 deletions edraw-dom-svg.el
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ the DOM and quickly identify the parent."
node)

(defun edraw-dom-remove-by-id (dom id)
(when-let ((node (edraw-dom-get-by-id dom id)))
(when-let* ((node (edraw-dom-get-by-id dom id)))
(edraw-dom-remove-node dom node)))

(defun edraw-dom-remove-attr (node attr)
Expand Down Expand Up @@ -392,15 +392,15 @@ the DOM and quickly identify the parent."
(car (last (dom-children node))))

(defun edraw-dom-next-sibling (dom node)
(when-let ((parent (edraw-dom-parent dom node)))
(when-let* ((parent (edraw-dom-parent dom node)))
(let ((siblings (dom-children parent)))
(while (and siblings
(not (eq (car siblings) node)))
(setq siblings (cdr siblings)))
(cadr siblings))))

(defun edraw-dom-previous-sibling (dom node)
(when-let ((parent (edraw-dom-parent dom node)))
(when-let* ((parent (edraw-dom-parent dom node)))
(let ((siblings (dom-children parent)))
(if (eq (car siblings) node)
nil
Expand All @@ -412,17 +412,17 @@ the DOM and quickly identify the parent."
;;;; DOM Ordering

(defun edraw-dom-first-node-p (dom node)
(if-let ((parent (edraw-dom-parent dom node)))
(if-let* ((parent (edraw-dom-parent dom node)))
(eq (car (dom-children parent)) node)
t))

(defun edraw-dom-last-node-p (dom node)
(if-let ((parent (edraw-dom-parent dom node)))
(if-let* ((parent (edraw-dom-parent dom node)))
(eq (car (last (dom-children parent))) node)
t))

(defun edraw-dom-reorder-prev (dom node)
(when-let ((parent (edraw-dom-parent dom node)))
(when-let* ((parent (edraw-dom-parent dom node)))
(let ((index (seq-position (dom-children parent) node #'eq)))
(when (> index 0)
(let* ((prev-cell (nthcdr (1- index) (dom-children parent)))
Expand All @@ -433,7 +433,7 @@ the DOM and quickly identify the parent."
t))))

(defun edraw-dom-reorder-next (dom node)
(when-let ((parent (edraw-dom-parent dom node)))
(when-let* ((parent (edraw-dom-parent dom node)))
(let* ((index (seq-position (dom-children parent) node #'eq))
(curr-cell (nthcdr index (dom-children parent)))
(next-cell (cdr curr-cell))
Expand All @@ -445,15 +445,15 @@ the DOM and quickly identify the parent."
t))))

(defun edraw-dom-reorder-first (dom node)
(when-let ((parent (edraw-dom-parent dom node)))
(when-let* ((parent (edraw-dom-parent dom node)))
(when (not (eq (car (dom-children parent)) node))
;; The parent of NODE does not change.
(dom-remove-node parent node)
(dom-add-child-before parent node (car (dom-children parent)))
t)))

(defun edraw-dom-reorder-last (dom node)
(when-let ((parent (edraw-dom-parent dom node)))
(when-let* ((parent (edraw-dom-parent dom node)))
(when (not (eq (car (last (dom-children parent))) node))
;; The parent of NODE does not change.
(dom-remove-node parent node)
Expand Down Expand Up @@ -1355,10 +1355,10 @@ However, SVG2's transform attribute does not allow trailing dots.")
(/ (edraw-svg-attr-length-em element) 2.0))

(defun edraw-svg-attr-length-viewport-size (element)
(if-let ((svg (if (eq (dom-tag element) 'svg)
element
(edraw-dom-get-ancestor-by-tag element 'svg))))
(if-let ((vbox (dom-attr svg 'viewBox)))
(if-let* ((svg (if (eq (dom-tag element) 'svg)
element
(edraw-dom-get-ancestor-by-tag element 'svg))))
(if-let* ((vbox (dom-attr svg 'viewBox)))
;; viewBox="<min-x> <min-y> <width> <height>"
(let* ((vbox-vals
(save-match-data
Expand Down Expand Up @@ -1771,7 +1771,7 @@ are set as strings."
(edraw-matrix-mul-mat-mat
;;nil means identity matrix
matrix
(when-let ((transform-str (dom-attr element 'transform)))
(when-let* ((transform-str (dom-attr element 'transform)))
(ignore-errors
(edraw-svg-transform-to-matrix transform-str)))))

Expand Down Expand Up @@ -2436,23 +2436,23 @@ other purposes."

(defun edraw-svg-element-get-property (element prop-name deftbl
&optional prop-info-list)
(when-let ((prop-info-list
(or prop-info-list
(edraw-svg-element-get-property-info-list element)))
(prop-info (edraw-svg-prop-info-info-list-find prop-info-list
prop-name)))
(when-let* ((prop-info-list
(or prop-info-list
(edraw-svg-element-get-property-info-list element)))
(prop-info (edraw-svg-prop-info-info-list-find prop-info-list
prop-name)))
(let* ((source (edraw-svg-prop-info-source prop-info))
(getter (intern
(concat "edraw-svg-element-get-" (symbol-name source)))))
(funcall getter element prop-name deftbl))))

(defun edraw-svg-element-set-property (element prop-name value deftbl
&optional prop-info-list)
(when-let ((prop-info-list
(or prop-info-list
(edraw-svg-element-get-property-info-list element)))
(prop-info (edraw-svg-prop-info-info-list-find prop-info-list
prop-name)))
(when-let* ((prop-info-list
(or prop-info-list
(edraw-svg-element-get-property-info-list element)))
(prop-info (edraw-svg-prop-info-info-list-find prop-info-list
prop-name)))
(let* ((source (edraw-svg-prop-info-source prop-info))
(setter (intern
(concat "edraw-svg-element-set-" (symbol-name source)))))
Expand Down Expand Up @@ -3073,9 +3073,9 @@ DEFTBL records that REFERRER-ELEMENT refers to DEF-ELEMENT.
The string converted from ADDITIONAL-INFO is concatenated to the
end of the id attribute of DEF-ELEMENT.
See `edraw-svg-def-element-id' and `edraw-svg-def-element-url'."
(if-let ((defref (assoc def-element
(edraw-svg-deftbl-defrefs deftbl)
#'edraw-svg-def-element-equal-p)))
(if-let* ((defref (assoc def-element
(edraw-svg-deftbl-defrefs deftbl)
#'edraw-svg-def-element-equal-p)))
(progn
(edraw-svg-defref-add-referrer defref referrer-element)
(edraw-svg-def-element-url defref additional-info))
Expand Down Expand Up @@ -3112,15 +3112,15 @@ See `edraw-svg-def-element-id' and `edraw-svg-def-element-url'."
(edraw-svg-deftbl-defrefs deftbl)))

(defun edraw-svg-deftbl-add-ref-by-idnum (deftbl idnum referrer-element)
(when-let ((defref (edraw-svg-deftbl-get-defref-by-idnum deftbl idnum)))
(when-let* ((defref (edraw-svg-deftbl-get-defref-by-idnum deftbl idnum)))
(edraw-svg-defref-add-referrer defref referrer-element)))

(defun edraw-svg-deftbl-remove-ref-by-url (deftbl url element)
(when-let ((idnum (edraw-svg-def-element-url-to-idnum url)))
(when-let* ((idnum (edraw-svg-def-element-url-to-idnum url)))
(edraw-svg-deftbl-remove-ref-by-idnum deftbl idnum element)))

(defun edraw-svg-deftbl-get-defref-by-url (deftbl url)
(when-let ((idnum (edraw-svg-def-element-url-to-idnum url)))
(when-let* ((idnum (edraw-svg-def-element-url-to-idnum url)))
(edraw-svg-deftbl-get-defref-by-idnum deftbl idnum)))

(defun edraw-svg-deftbl-from-dom (defs-element body-node)
Expand All @@ -3139,7 +3139,7 @@ specified by the `edraw-svg-deftbl-target-attributes' constant."
defref-list)
;; Collect definitions
(dolist (def (dom-children defs-element))
(when-let ((idnum (edraw-svg-def-element-id-to-idnum (dom-attr def 'id))))
(when-let* ((idnum (edraw-svg-def-element-id-to-idnum (dom-attr def 'id))))
(push (edraw-svg-defref def idnum) defref-list)))
;; Sort and assign
(setcdr (edraw-svg-deftbl-defrefs--head deftbl)
Expand All @@ -3165,7 +3165,7 @@ attributes that are not limited to markers.")
;; Collect from attributes
(dolist (attr (dom-attributes dom))
(when (member (car attr) edraw-svg-deftbl-target-attributes)
(when-let ((idnum (edraw-svg-def-element-url-to-idnum (cdr attr))))
(when-let* ((idnum (edraw-svg-def-element-url-to-idnum (cdr attr))))
(edraw-svg-deftbl-add-ref-by-idnum deftbl idnum dom))))
;; Collect from children
(dolist (child (dom-children dom))
Expand Down Expand Up @@ -3193,9 +3193,9 @@ definition element (under SRC-DEFTBL) and set it again (under DEFTBL).

If SRC-DEFTBL is specified, the referenced defs element (deftbl)
can be changed."
(when-let ((value (edraw-svg-element-get-property element
prop-name
(or src-deftbl deftbl))))
(when-let* ((value (edraw-svg-element-get-property element
prop-name
(or src-deftbl deftbl))))
;; Remove reference to SRC-DEFTBL
(when (and src-deftbl (not (eq src-deftbl deftbl)))
(edraw-svg-element-set-property element prop-name nil src-deftbl))
Expand Down Expand Up @@ -3563,8 +3563,8 @@ PROPS is an alist of properties defined by the MARKER-TYPE."

(defun edraw-svg-update-marker-property (element prop-name deftbl
&optional src-deftbl)
(when-let ((marker (edraw-svg-marker-from-element element prop-name
(or src-deftbl deftbl))))
(when-let* ((marker (edraw-svg-marker-from-element element prop-name
(or src-deftbl deftbl))))
(edraw-svg-set-marker-property element prop-name marker deftbl)))

(defun edraw-svg-update-marker-properties (element deftbl
Expand Down Expand Up @@ -3735,7 +3735,7 @@ This function does not consider the effect of the transform attribute."
(cdr xy))))

(defun edraw-svg-path-translate-contents (element xy)
(when-let ((d (dom-attr element 'd)))
(when-let* ((d (dom-attr element 'd)))
(edraw-svg-set-attr-string element 'd (edraw-path-d-translate d xy))))

(defun edraw-svg-group-translate-contents (element xy)
Expand Down Expand Up @@ -4182,7 +4182,7 @@ This function does not consider the effect of the transform attribute."
(defun edraw-svg-element-contains-point-p (element xy pick-radius stroke-forced)
(let ((transform (edraw-svg-element-transform-get element)))
(unless (edraw-matrix-identity-p transform)
(when-let ((inv (edraw-matrix-inverse transform)))
(when-let* ((inv (edraw-matrix-inverse transform)))
(setq xy (edraw-matrix-mul-mat-xy inv xy))
(setq pick-radius (edraw-svg-element-contains-point--pick-radius-scale
pick-radius inv)))))
Expand Down
Loading

0 comments on commit 663130d

Please sign in to comment.