Improve documentation of cursor-sensor.el (bug#33664)

* doc/lispref/text.texi (Special Properties): Mention cursor-sensor-inhibit.
* lisp/emacs-lisp/cursor-sensor.el (Commentary): Add cursor-sensor-mode.
(cursor-sensor-inhibit): Add docstring.
This commit is contained in:
Stefan Monnier 2018-12-09 08:59:20 -05:00
parent d817d2cfb9
commit 505ac9a0b1
2 changed files with 25 additions and 7 deletions

View file

@ -3398,6 +3398,9 @@ When the minor mode @code{cursor-intangible-mode} is turned on, point
is moved away from any position that has a non-@code{nil}
@code{cursor-intangible} property, just before redisplay happens.
When the variable @code{cursor-sensor-inhibit} is non-@code{nil}, the
@code{cursor-intangible} property is ignored.
@item field
@kindex field @r{(text property)}
Consecutive characters with the same @code{field} property constitute a
@ -3579,6 +3582,9 @@ depending on whether the cursor is entering the text that has this
property or leaving it. The functions are called only when the minor
mode @code{cursor-sensor-mode} is turned on.
When the variable @code{cursor-sensor-inhibit} is non-@code{nil}, the
@code{cursor-sensor-functions} property is ignored.
@item composition
@kindex composition @r{(text property)}
This text property is used to display a sequence of characters as a

View file

@ -22,17 +22,29 @@
;;; Commentary:
;; This package implements the `cursor-intangible' property, which is
;; meant to replace the old `intangible' property. To use it, just enable the
;; `cursor-intangible-mode', after which this package will move point away from
;; any position that has a non-nil `cursor-intangible' property. This is only
;; done just before redisplay happens, contrary to the old `intangible'
;; property which was done at a much lower level.
;; This package implements the `cursor-intangible' and
;; `cursor-sensor-functions' properties, which are meant to replace
;; the old `intangible', `point-entered', and `point-left' properties.
;; To use `cursor-intangible', just enable the
;; `cursor-intangible-mode' minor mode, after which this package will
;; move point away from any position that has a non-nil
;; `cursor-intangible' property. This is only done just before
;; redisplay happens, contrary to the old `intangible' property which
;; was done at a much lower level.
;; To use `cursor-sensor-functions', enable the `cursor-sensor-mode'
;; minor mode, after which the `cursor-sensor-functions' will be
;; called just before redisplay happens, according to the movement of
;; the cursor since the last redisplay.
;;; Code:
;;;###autoload
(defvar cursor-sensor-inhibit nil)
(defvar cursor-sensor-inhibit nil
"When non-nil, suspend `cursor-sensor-mode' and `cursor-intangible-mode'.
By convention, this is a list of symbols where each symbol stands for the
\"cause\" of the suspension.")
(defun cursor-sensor--intangible-p (pos)
(let ((p (get-pos-property pos 'cursor-intangible)))