Function: hs--make-indicators-overlays
hs--make-indicators-overlays is a byte-compiled function defined in
hideshow.el.gz.
Signature
(hs--make-indicators-overlays BEG)
Documentation
Helper function to make the indicators overlays.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/hideshow.el.gz
(defun hs--make-indicators-overlays (beg)
"Helper function to make the indicators overlays."
(let ((hiddenp (eq 'hs (get-char-property (pos-eol) 'invisible))))
;; If we are going to use the EOL indicators, then
;; ignore the invisible lines which mostly are already
;; hidden blocks.
(when (or hs-indicator-type (not hiddenp))
(let* ((o (make-overlay
(if hs-indicator-type beg (pos-eol))
(1+ (if hs-indicator-type beg (pos-eol)))))
(fringe-type (if hiddenp 'hs-show 'hs-hide))
(face-or-icon (if hiddenp 'hs-indicator-show 'hs-indicator-hide)))
(overlay-put o 'hs-indicator t)
(overlay-put o 'hs-indicator-block-start beg)
(overlay-put o 'evaporate t)
(overlay-put o 'priority -50)
(overlay-put
o 'before-string
(pcase hs-indicator-type
;; Fringes
('fringe
(propertize
"+" 'display
`(left-fringe ,fringe-type ,face-or-icon)))
;; Margins
('margin
(propertize
"+" 'display
`((margin left-margin)
,(or (plist-get (icon-elements face-or-icon) 'image)
(propertize (icon-string face-or-icon)
'keymap hs-indicators-map)))
'face face-or-icon
'keymap hs-indicators-map))
;; EOL string
('nil
(concat
(propertize " " 'cursor t)
(propertize
(icon-string face-or-icon)
'mouse-face 'highlight
'keymap hs-indicators-map)))))))))