diff options
| author | Lars Ingebrigtsen <larsi@gnus.org> | 2019-06-14 16:51:27 +0200 |
|---|---|---|
| committer | Lars Ingebrigtsen <larsi@gnus.org> | 2019-06-14 16:51:27 +0200 |
| commit | 18c83aedd91023a677153abeafe561eddb430146 (patch) | |
| tree | 5c0834a9d18cc220f103d01ac8a0a0d5e22ab896 /lisp/cedet/semantic | |
| parent | 68b8980eee5683128035800d6a04c27c764fcc5f (diff) | |
| download | emacs-18c83aedd91023a677153abeafe561eddb430146.tar.gz | |
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.
Diffstat (limited to 'lisp/cedet/semantic')
| -rw-r--r-- | lisp/cedet/semantic/senator.el | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/lisp/cedet/semantic/senator.el b/lisp/cedet/semantic/senator.el index 2d858dd9851..ebe171a3a7a 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)))))) |
