• Stefan Monnier's avatar
    Deprecate `intangible' and `point-entered' properties · 84e0b7da
    Stefan Monnier authored
    * lisp/emacs-lisp/cursor-sensor.el: New file.
    
    * lisp/simple.el (pre-redisplay-functions): New hook.
    (redisplay--pre-redisplay-functions): New function.
    (pre-redisplay-function): Use it.
    (minibuffer-avoid-prompt): Mark obsolete.
    (redisplay--update-region-highlight): Adapt it to work as a function on
    pre-redisplay-functions.
    
    * lisp/cus-start.el (minibuffer-prompt-properties--setter): New fun.
    (minibuffer-prompt-properties): Use it.  Use cursor-intangible rather
    than point-entered to make the prompt intangible.
    
    * lisp/forms.el: Move `provide' calls to the end.
    (forms-mode): Don't use `run-hooks' on a local var.
    (forms--make-format, forms--make-format-elt-using-text-properties):
    Use cursor-intangible rather than `intangible'.
    (forms-mode): Enable cursor-intangible-mode.
    
    * lisp/isearch.el (isearch-mode): Use defvar-local.
    (cursor-sensor-inhibit): Declare.
    (isearch-mode): Set cursor-sensor-inhibit.
    (isearch-done): Set it back.
    (isearch-open-overlay-temporary, isearch-open-necessary-overlays)
    (isearch-close-unnecessary-overlays): Don't bother with `intangible'
    any more.
    
    * lisp/ses.el (ses-localvars): Remove `mode-line-process'.
    (ses-sym-rowcol, ses-cell-value, ses-col-width, ses-col-printer):
    Add Edebug spec.
    (ses-goto-print, ses-print-cell, ses-adjust-print-width)
    (ses-goto-data, ses-setup, ses-copy-region): Don't let-bind
    inhibit-point-motion-hooks any more.
    (ses--cell-at-pos, ses--curcell): New functions, extracted from
    ses-set-curcell.
    (ses-set-curcell): Use them.
    (ses-print-cell, ses-setup): Use cursor-intangible instead of
    `intangible'.  Make sure cursor-intangible isn't sticky at BOB.
    (ses-print-cell-new-width, ses-reprint-all, ses-recalculate-all):
    Use ses--cell-at-pos.
    (ses--mode-line-process, ses--cursor-sensor-highlight): New functions,
    extracted from ses-command-hook.  Make them work with multiple windows
    displaying the same buffer.
    (ses-mode): Use them via mode-line-process and pre-redisplay-functions.
    Enable cursor-intangible-mode.
    (ses-command-hook): Remove cell highlight and mode-line update code.
    (ses-forward-or-insert, ses-copy-region-helper, ses-sort-column):
    Update for new name of text-property holding the cell name.
    (ses-rename-cell): Don't mess with mode-line-process.
    
    * lisp/erc/erc-stamp.el (erc-add-timestamp): Use the new
    cursor-sensor-functions property instead of point-entered.
    (erc-insert-timestamp-right, erc-format-timestamp):
    Use cursor-intangible rather than `intangible'.
    (erc-munge-invisibility-spec): Use add-to-invisibility-spec and
    remove-from-invisibility-spec.  Enable cursor-intangible-mode and
    cursor-sensor-mode if needed.
    (erc-echo-timestamp): Adapt to calling convention of
    cursor-sensor-functions.
    (erc-insert-timestamp-right): Remove unused vars `current-window' and
    `indent'.
    
    * lisp/gnus/gnus-group.el (gnus-tmp-*): Declare.
    (gnus-update-group-mark-positions): Remove unused `topic' var.
    (gnus-group-insert-group-line): Remove unused var `header'.
    (gnus-group--setup-tool-bar-update): New function.
    (gnus-group-insert-group-line): Use it.
    (gnus-group-update-eval-form): Declare local
    dynamically-bound variables.
    (gnus-group-unsubscribe-group): Use \` and \' to match string bounds.
    
    * lisp/gnus/gnus-topic.el (gnus-topic-jump-to-topic)
    (gnus-group-prepare-topics, gnus-topic-update-topic)
    (gnus-topic-change-level, gnus-topic-catchup-articles)
    (gnus-topic-remove-group, gnus-topic-delete, gnus-topic-indent):
    Use inhibit-read-only.
    (gnus-topic-prepare-topic): Use gnus-group--setup-tool-bar-update.
    (gnus-topic-mode): Use define-minor-mode and derived-mode-p.
    
    * lisp/textmodes/reftex-index.el (reftex-display-index):
    Use cursor-intangible-mode if available.
    (reftex-index-post-command-hook): Check cursor-intangible.
    
    * lisp/textmodes/reftex-toc.el (reftex-toc):
    Use cursor-intangible-mode if available.
    (reftex-toc-recenter, reftex-toc-post-command-hook):
    Check cursor-intangible.
    
    * lisp/textmodes/sgml-mode.el: Use lexical-binding.
    (sgml-tag): Use cursor-sensor-functions instead of point-entered.
    (sgml-tags-invisible): Use with-silent-modifications and
    inhibit-read-only.  Enable cursor-sensor-mode.
    (sgml-cursor-sensor): Rename from sgml-point-entered and adjust to
    calling convention of cursor-sensor-functions.
    
    * lisp/textmodes/table.el (table-cell-map-hook, table-load-hook)
    (table-point-entered-cell-hook, table-point-left-cell-hook):
    Don't autoload.
    (table-cell-entered-state): Remove var.
    (table--put-cell-point-entered/left-property)
    (table--remove-cell-properties):
    Use cursor-sensor-functions rather than point-entered/left.
    (table--point-entered/left-cell-function): Merge
    table--point-entered-cell-function and table--point-left-cell-function
    and adjust to calling convention of cursor-sensor-functions.
    84e0b7da
forms.el 67.1 KB