Function: dape--breakpoint-make-overlay

dape--breakpoint-make-overlay is a natively compiled function defined in dape.el.

Signature

(dape--breakpoint-make-overlay BREAKPOINT)

Documentation

Create and set overlay for BREAKPOINT.

Source Code

;; Defined in /nix/store/1fiaif8pifqj2jh65rbg3fkhg3i56q42-emacs-packages-deps/share/emacs/site-lisp/elpa/dape-0.27.1/dape.el
(defun dape--breakpoint-make-overlay (breakpoint)
  "Create and set overlay for BREAKPOINT."
  (add-hook 'kill-buffer-hook #'dape--breakpoint-buffer-kill-hook nil t)
  (let ((ov (apply #'make-overlay (dape--overlay-region)))
        (disabled-face (when (dape--breakpoint-disabled breakpoint)
                         'shadow)))
    (overlay-put ov 'modification-hooks '(dape--breakpoint-freeze))
    (overlay-put ov 'category 'dape-breakpoint)
    (overlay-put ov 'window t)
    (cl-flet ((make-after-string (label face mouse-1-help mouse-1-def)
                (concat " "
                        (propertize
                         (format "%s: %s" label
                                 (dape--source-breakpoint-value breakpoint))
                         'face face
                         'mouse-face 'highlight
                         'help-echo (format "mouse-1: %s" mouse-1-help)
                         'keymap (let ((map (make-sparse-keymap)))
                                   (define-key map [mouse-1] mouse-1-def)
                                   map)))))
      (pcase (dape--source-breakpoint-type breakpoint)
        ('log
         (overlay-put ov 'after-string
                      (make-after-string
                       "Log"
                       (or disabled-face 'dape-log-face)
                       "edit log message"
                       #'dape-mouse-breakpoint-log)))
        ('expression
         (overlay-put ov 'after-string
                      (make-after-string
                       "Cond"
                       (or disabled-face 'dape-expression-face)
                       "edit break condition"
                       #'dape-mouse-breakpoint-expression)))
        ('hits
         (overlay-put ov 'after-string
                      (make-after-string
                       "Hits"
                       (or disabled-face 'dape-hits-face)
                       "edit break hit condition"
                       #'dape-mouse-breakpoint-hits)))
        ('until
         (overlay-put ov 'before-string
                      (dape--indicator
                       dape-breakpoint-margin-string
                       'breakpoint
                       'dape-breakpoint-until-face)))
        (_
         (overlay-put ov 'before-string
                      (dape--indicator
                       dape-breakpoint-margin-string
                       'breakpoint
                       (or disabled-face 'dape-breakpoint-face))))))
    (setf (dape--source-breakpoint-location breakpoint) ov)))