From: Michael Albinus Date: Fri, 6 Dec 2019 18:28:01 +0000 (+0100) Subject: Configure info-look.el to recognize Tramp symbols X-Git-Tag: emacs-27.0.90~423 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=99ad65eda44e3b6edcc51cf0fb70ea499c3ccb07;p=emacs.git Configure info-look.el to recognize Tramp symbols * lisp/net/tramp-integration.el (info-lookup->cache) (info-lookup->mode-value, info-lookup->other-modes) (info-lookup->topic-value, info-lookup-maybe-add-help) (info-lookup-cache): Declare. (info-look): Configure info-look.el to recognize Tramp symbols. --- diff --git a/lisp/net/tramp-integration.el b/lisp/net/tramp-integration.el index 0c3107603fb..f1d9f390e1b 100644 --- a/lisp/net/tramp-integration.el +++ b/lisp/net/tramp-integration.el @@ -31,12 +31,18 @@ ;; Pacify byte-compiler. (require 'cl-lib) +(declare-function info-lookup->cache "info-look") +(declare-function info-lookup->mode-value "info-look") +(declare-function info-lookup->other-modes "info-look") +(declare-function info-lookup->topic-value "info-look") +(declare-function info-lookup-maybe-add-help "info-look") (declare-function recentf-cleanup "recentf") (declare-function tramp-dissect-file-name "tramp") (declare-function tramp-file-name-equal-p "tramp") (declare-function tramp-tramp-file-p "tramp") (defvar eshell-path-env) (defvar ido-read-file-name-non-ido) +(defvar info-lookup-cache) (defvar ivy-completing-read-handlers-alist) (defvar recentf-exclude) (defvar tramp-current-connection) @@ -186,6 +192,35 @@ NAME must be equal to `tramp-current-connection'." (add-to-list 'ivy-completing-read-handlers-alist '(tramp-these-rename-files . completing-read-default))) +;;; Integration of info-look.el: + +(with-eval-after-load 'info-look + ;; Create a pseudo mode `tramp-info-lookup-mode' for Tramp symbol lookup. + (info-lookup-maybe-add-help + :mode 'tramp-info-lookup-mode :topic 'symbol + :regexp "[^][()`'‘’,\" \t\n]+" + :doc-spec '(("(tramp)Function Index" nil "^ -+ .*: " "\\( \\|$\\)") + ("(tramp)Variable Index" nil "^ -+ .*: " "\\( \\|$\\)"))) + + ;; Add it as `other-modes' to `emacs-lisp-mode' itself, and all + ;; modes which use it as `other-modes'. + (dolist (mode (mapcar 'car (info-lookup->topic-value 'symbol))) + (when (and (or (equal mode 'emacs-lisp-mode) + (member + 'emacs-lisp-mode (info-lookup->other-modes 'symbol mode))) + (not (member + 'tramp-info-lookup-mode + (info-lookup->other-modes 'symbol mode)))) + (setcdr + (info-lookup->mode-value 'symbol mode) + (append + (butlast (cdr (info-lookup->mode-value 'symbol mode))) + `(,(cons 'tramp-info-lookup-mode + (info-lookup->other-modes 'symbol mode))))))) + + ;; Reset cache. + (setq info-lookup-cache nil)) + ;;; Default connection-local variables for Tramp: (defconst tramp-connection-local-default-profile