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} is moved away from any position that has a non-@code{nil}
@code{cursor-intangible} property, just before redisplay happens. @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 @item field
@kindex field @r{(text property)} @kindex field @r{(text property)}
Consecutive characters with the same @code{field} property constitute a 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 property or leaving it. The functions are called only when the minor
mode @code{cursor-sensor-mode} is turned on. 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 @item composition
@kindex composition @r{(text property)} @kindex composition @r{(text property)}
This text property is used to display a sequence of characters as a This text property is used to display a sequence of characters as a

View file

@ -22,17 +22,29 @@
;;; Commentary: ;;; Commentary:
;; This package implements the `cursor-intangible' property, which is ;; This package implements the `cursor-intangible' and
;; meant to replace the old `intangible' property. To use it, just enable the ;; `cursor-sensor-functions' properties, which are meant to replace
;; `cursor-intangible-mode', after which this package will move point away from ;; the old `intangible', `point-entered', and `point-left' properties.
;; any position that has a non-nil `cursor-intangible' property. This is only
;; done just before redisplay happens, contrary to the old `intangible' ;; To use `cursor-intangible', just enable the
;; property which was done at a much lower level. ;; `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: ;;; Code:
;;;###autoload ;;;###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) (defun cursor-sensor--intangible-p (pos)
(let ((p (get-pos-property pos 'cursor-intangible))) (let ((p (get-pos-property pos 'cursor-intangible)))