aboutsummaryrefslogtreecommitdiffstats
path: root/etc/NEWS
diff options
context:
space:
mode:
authorStefan Monnier2024-04-05 17:37:32 -0400
committerStefan Monnier2024-04-09 22:28:11 -0400
commit820011a254231d6255b0d7fe07ff4ab1314c3b6e (patch)
treeebee7d6bc1170be3a9ed50e6182c287d18292403 /etc/NEWS
parentdd6b9c9426c5d7dde66974c5790815c3520a755b (diff)
downloademacs-scratch/track-changes.tar.gz
emacs-scratch/track-changes.zip
lisp/emacs-lisp/track-changes.el: New filescratch/track-changes
This new package provides an API that is easier to use right than our `*-change-functions` hooks. The patch includes changes to `diff-mode.el` and `eglot.el` to make use of this new package. * lisp/emacs-lisp/track-changes.el: New file. * test/lisp/emacs-lisp/track-changes-tests.el: New file. * doc/lispref/text.texi (Tracking changes): New subsection. * lisp/progmodes/eglot.el: Require `track-changes`. (eglot--virtual-pos-to-lsp-position): New function. (eglot--track-changes): New var. (eglot--managed-mode): Use `track-changes-register` i.s.o `after/before-change-functions` when available. (eglot--track-changes-signal): New function, partly extracted from `eglot--after-change`. (eglot--after-change): Use it. (eglot--track-changes-fetch): New function. (eglot--signal-textDocument/didChange): Use it. * lisp/vc/diff-mode.el: Require `track-changes`. Also require `easy-mmode` before the `eval-when-compile`s. (diff-unhandled-changes): Delete variable. (diff-after-change-function): Delete function. (diff--track-changes-function): Rename from `diff-post-command-hook` and adjust to new calling convention. (diff--track-changes): New variable. (diff--track-changes-signal): New function. (diff-mode, diff-minor-mode): Use it with `track-changes-register`.
Diffstat (limited to 'etc/NEWS')
-rw-r--r--etc/NEWS18
1 files changed, 18 insertions, 0 deletions
diff --git a/etc/NEWS b/etc/NEWS
index a2a3fe494cb..2cf6477ba99 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -15,6 +15,12 @@ in older Emacs versions.
15You can narrow news to a specific version by calling 'view-emacs-news' 15You can narrow news to a specific version by calling 'view-emacs-news'
16with a prefix argument or by typing 'C-u C-h C-n'. 16with a prefix argument or by typing 'C-u C-h C-n'.
17 17
18Temporary note:
19+++ indicates that all relevant manuals in doc/ have been updated.
20--- means no change in the manuals is needed.
21When you add a new item, use the appropriate mark if you are sure it
22applies, and please also update docstrings as needed.
23
18 24
19* Installation Changes in Emacs 30.1 25* Installation Changes in Emacs 30.1
20 26
@@ -1586,6 +1592,18 @@ options of GNU 'ls'.
1586 1592
1587* New Modes and Packages in Emacs 30.1 1593* New Modes and Packages in Emacs 30.1
1588 1594
1595+++
1596** New package Track-Changes.
1597This library is a layer of abstraction above 'before-change-functions'
1598and 'after-change-functions' which provides a superset of
1599the functionality of 'after-change-functions':
1600- It provides the actual previous text rather than only its length.
1601- It takes care of accumulating and bundling changes until a time when
1602 its client finds it convenient to react to them.
1603- It detects most cases where some changes were not properly
1604 reported (calls to 'before/after-change-functions' that are
1605 incorrectly paired, missing, etc...) and reports them adequately.
1606
1589** New major modes based on the tree-sitter library 1607** New major modes based on the tree-sitter library
1590 1608
1591+++ 1609+++