Function: hs-make-overlay
hs-make-overlay is a byte-compiled function defined in hideshow.el.gz.
Signature
(hs-make-overlay B E KIND)
Documentation
Return a new overlay in region defined by B and E with type KIND.
KIND is either code or comment. The following properties are set in
the overlay: invisible hs. Also, depending on variable
hs-isearch-open, the following properties may be present:
isearch-open-invisible isearch-open-invisible-temporary.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/hideshow.el.gz
(defun hs-make-overlay (b e kind)
"Return a new overlay in region defined by B and E with type KIND.
KIND is either `code' or `comment'. The following properties are set in
the overlay: `invisible' `hs'. Also, depending on variable
`hs-isearch-open', the following properties may be present:
`isearch-open-invisible' `isearch-open-invisible-temporary'."
(let ((ov (make-overlay b e))
(io (if (eq 'block hs-isearch-open)
;; backward compatibility -- `block'<=>`code'
'code
hs-isearch-open)))
(overlay-put ov 'invisible 'hs)
(overlay-put ov 'display
(propertize
(hs--get-ellipsis b e)
'mouse-face
'highlight
'help-echo "mouse-1: show hidden lines"
'keymap '(keymap (mouse-1 . hs-toggle-hiding))))
;; Internal properties
(overlay-put ov 'hs kind)
;; Isearch integration
(when (or (eq io t) (eq io kind))
(overlay-put ov 'isearch-open-invisible 'hs-isearch-show)
(overlay-put ov 'isearch-open-invisible-temporary
'hs-isearch-show-temporary))
;; Remove overlay after modifications
(overlay-put ov 'modification-hooks '(hs--discard-overlay-before-changes))
(overlay-put ov 'insert-in-front-hooks '(hs--discard-overlay-before-changes))
(overlay-put ov 'insert-behind-hooks '(hs--discard-overlay-before-changes))
(when hs-set-up-overlay (funcall hs-set-up-overlay ov))
(hs--refresh-indicators b (1+ b))
ov))