[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-28 29fffbd: Revert field-related thingatpt changes
From: |
Lars Ingebrigtsen |
Subject: |
emacs-28 29fffbd: Revert field-related thingatpt changes |
Date: |
Wed, 22 Dec 2021 07:56:55 -0500 (EST) |
branch: emacs-28
commit 29fffbdd87391272e9131be63cf93f5067d6ae0d
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Revert field-related thingatpt changes
This reverts 7db376e560448e61485ba054def8c82b21f33d6a, which led to
severe performance regressions when being run in large buffers with no
fields (bug#52593)
---
etc/NEWS | 1 -
lisp/thingatpt.el | 38 ++++++++++++++++----------------------
test/lisp/thingatpt-tests.el | 8 --------
3 files changed, 16 insertions(+), 31 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 02b6f66..1664ccf 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -3038,7 +3038,6 @@ checkdoc will now check the format of 'yes-or-no-p'.
*** New command 'checkdoc-dired'.
This can be used to run checkdoc on files from a Dired buffer.
----
*** No longer checks for 'A-' modifiers.
Checkdoc recommends usage of command substitutions ("\\[foo-command]")
in favor of writing keybindings like 'C-c f'. It now no longer warns
diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el
index 32e6618..4d3e68e 100644
--- a/lisp/thingatpt.el
+++ b/lisp/thingatpt.el
@@ -162,30 +162,24 @@ Possibilities include `symbol', `list', `sexp', `defun',
When the optional argument NO-PROPERTIES is non-nil,
strip text properties from the return value.
-If the current buffer uses fields (see Info node `(elisp)Fields'),
-this function will narrow to the field before identifying the
-thing at point.
-
See the file `thingatpt.el' for documentation on how to define
a symbol as a valid THING."
- (save-restriction
- (narrow-to-region (field-beginning) (field-end))
- (let ((text
- (cond
- ((cl-loop for (pthing . function) in thing-at-point-provider-alist
- when (eq pthing thing)
- for result = (funcall function)
- when result
- return result))
- ((get thing 'thing-at-point)
- (funcall (get thing 'thing-at-point)))
- (t
- (let ((bounds (bounds-of-thing-at-point thing)))
- (when bounds
- (buffer-substring (car bounds) (cdr bounds))))))))
- (when (and text no-properties (sequencep text))
- (set-text-properties 0 (length text) nil text))
- text)))
+ (let ((text
+ (cond
+ ((cl-loop for (pthing . function) in thing-at-point-provider-alist
+ when (eq pthing thing)
+ for result = (funcall function)
+ when result
+ return result))
+ ((get thing 'thing-at-point)
+ (funcall (get thing 'thing-at-point)))
+ (t
+ (let ((bounds (bounds-of-thing-at-point thing)))
+ (when bounds
+ (buffer-substring (car bounds) (cdr bounds))))))))
+ (when (and text no-properties (sequencep text))
+ (set-text-properties 0 (length text) nil text))
+ text))
;;;###autoload
(defun bounds-of-thing-at-mouse (event thing)
diff --git a/test/lisp/thingatpt-tests.el b/test/lisp/thingatpt-tests.el
index 2a32dc5..dc108c7 100644
--- a/test/lisp/thingatpt-tests.el
+++ b/test/lisp/thingatpt-tests.el
@@ -223,12 +223,4 @@ position to retrieve THING.")
(should (equal (test--number "0xf00" 2) 3840))
(should (equal (test--number "0xf00" 3) 3840)))
-(ert-deftest test-fields ()
- (with-temp-buffer
- (insert (propertize "foo" 'field 1) "bar" (propertize "zot" 'field 2))
- (goto-char 1)
- (should (eq (symbol-at-point) 'foo))
- (goto-char 5)
- (should (eq (symbol-at-point) 'bar))))
-
;;; thingatpt-tests.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-28 29fffbd: Revert field-related thingatpt changes,
Lars Ingebrigtsen <=