emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 18c83ae 3/4: Avoid using registerv-make in senator.


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 18c83ae 3/4: Avoid using registerv-make in senator.el
Date: Fri, 14 Jun 2019 10:57:49 -0400 (EDT)

branch: master
commit 18c83aedd91023a677153abeafe561eddb430146
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    Avoid using registerv-make in senator.el
    
    * lisp/cedet/semantic/senator.el (senator-register): New class.
    (register-val-jump-to, register-val-describe)
    (register-val-insert): New methods.
    (senator-copy-tag-to-register): Use this instead of the deprecated
    registerv-make function.
---
 lisp/calendar/cal-bahai.el     |  3 ++-
 lisp/cedet/semantic/senator.el | 24 +++++++++++++++++-------
 2 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el
index ec491ec..8aa1eed 100644
--- a/lisp/calendar/cal-bahai.el
+++ b/lisp/calendar/cal-bahai.el
@@ -313,7 +313,8 @@ Prefix argument ARG will make the entry nonmarking."
                         diary-bahai-entry-symbol
                         'calendar-bahai-from-absolute))
 
-(defvar date)
+(with-suppressed-warnings ((lexical date))
+  (defvar date))
 
 ;; To be called from diary-list-sexp-entries, where DATE is bound.
 ;;;###diary-autoload
diff --git a/lisp/cedet/semantic/senator.el b/lisp/cedet/semantic/senator.el
index 2d858dd..ebe171a 100644
--- a/lisp/cedet/semantic/senator.el
+++ b/lisp/cedet/semantic/senator.el
@@ -717,6 +717,22 @@ yanked to."
             (message "Use C-y to recover the yank the text of %s."
                      (semantic-tag-name ft))))))
 
+(cl-defstruct (senator-register
+               (:constructor nil)
+               (:constructor senator-make-register (foreign-tag)))
+  foreign-tag)
+
+(cl-defmethod register-val-jump-to ((data senator-register) _arg)
+  (let ((ft (senator-register-foreign-tag data)))
+    (switch-to-buffer (semantic-tag-buffer ft))
+    (goto-char (semantic-tag-start ft))))
+
+(cl-defmethod register-val-describe ((data senator-register) _verbose)
+  (cl-prin1-to-string (senator-register-foreign-tag data)))
+
+(cl-defmethod register-val-insert ((data senator-register))
+  (semantic-insert-foreign-tag (senator-register-foreign-tag data)))
+
 ;;;###autoload
 (defun senator-copy-tag-to-register (register &optional kill-flag)
   "Copy the current tag into REGISTER.
@@ -732,13 +748,7 @@ if available."
   (semantic-fetch-tags)
   (let ((ft (semantic-obtain-foreign-tag)))
     (when ft
-      (set-register
-       register (registerv-make
-                 ft
-                 :insert-func #'semantic-insert-foreign-tag
-                 :jump-func (lambda (v)
-                              (switch-to-buffer (semantic-tag-buffer v))
-                              (goto-char (semantic-tag-start v)))))
+      (set-register register (senator-make-register ft))
       (if kill-flag
           (kill-region (semantic-tag-start ft)
                        (semantic-tag-end ft))))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]