emacs-devel
[Top][All Lists]
Advanced

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

Hyperlinks to documented but unbound variables.


From: Luc Teirlinck
Subject: Hyperlinks to documented but unbound variables.
Date: Sat, 12 Nov 2005 18:39:41 -0600 (CST)

Recently `C-h v' was changed to work for documented but unbound variables.
But, although doc is now available, no clickable hyperlinks to such
variables are made in Help mode buffers.  The patch below fixes this.
It also makes my patch to derived.el work better.  Without the patch below,
if you do `C-f paragraph-indent-text-mode", you get no hyperlink to
the mode hook doc.  After applying the patch below, you do.

I can install if desired.

===File ~/help-mode-diff====================================
*** help-mode.el        28 Oct 2005 18:57:17 -0500      1.39
--- help-mode.el        12 Nov 2005 17:53:52 -0600      
***************
*** 384,391 ****
                      (if sym
                          (cond
                           ((match-string 3)  ; `variable' &c
!                           (and (boundp sym) ; `variable' doesn't ensure
                                          ; it's actually bound
                                 (help-xref-button 8 'help-variable sym)))
                           ((match-string 4)   ; `function' &c
                            (and (fboundp sym) ; similarly
--- 384,392 ----
                      (if sym
                          (cond
                           ((match-string 3)  ; `variable' &c
!                           (and (or (boundp sym) ; `variable' doesn't ensure
                                          ; it's actually bound
+                                  (get sym 'variable-documentation))
                                 (help-xref-button 8 'help-variable sym)))
                           ((match-string 4)   ; `function' &c
                            (and (fboundp sym) ; similarly
***************
*** 406,417 ****
                             (facep sym)
                             (save-match-data (looking-at "[ \t\n]+face\\W")))
                            (help-xref-button 8 'help-face sym))
!                          ((and (boundp sym) (fboundp sym))
                            ;; We can't intuit whether to use the
                            ;; variable or function doc -- supply both.
                            (help-xref-button 8 'help-symbol sym))
                           ((and
!                          (boundp sym)
                           (or
                            (documentation-property
                             sym 'variable-documentation)
--- 407,421 ----
                             (facep sym)
                             (save-match-data (looking-at "[ \t\n]+face\\W")))
                            (help-xref-button 8 'help-face sym))
!                          ((and (or (boundp sym)
!                                  (get sym 'variable-documentation))
!                              (fboundp sym))
                            ;; We can't intuit whether to use the
                            ;; variable or function doc -- supply both.
                            (help-xref-button 8 'help-symbol sym))
                           ((and
!                          (or (boundp sym)
!                              (get sym 'variable-documentation))
                           (or
                            (documentation-property
                             sym 'variable-documentation)
***************
*** 518,524 ****
                                     ((or (memq sym '(t nil))
                                          (keywordp sym))
                                      nil)
!                                    ((and sym (boundp sym))
                                      'help-variable))))
                    (when type (help-xref-button 1 type sym)))
                  (goto-char (match-end 1)))
--- 522,531 ----
                                     ((or (memq sym '(t nil))
                                          (keywordp sym))
                                      nil)
!                                    ((and sym
!                                          (or (boundp sym)
!                                              (get sym
!                                                   'variable-documentation)))
                                      'help-variable))))
                    (when type (help-xref-button 1 type sym)))
                  (goto-char (match-end 1)))
***************
*** 542,548 ****
                  ;; Don't record the current entry in the stack.
                  (setq help-xref-stack-item nil)
                  (describe-function symbol)))
!         (sdoc (when (boundp symbol)
                  ;; Don't record the current entry in the stack.
                  (setq help-xref-stack-item nil)
                  (describe-variable symbol))))
--- 549,556 ----
                  ;; Don't record the current entry in the stack.
                  (setq help-xref-stack-item nil)
                  (describe-function symbol)))
!         (sdoc (when (or (boundp symbol)
!                         (get symbol 'variable-documentation))
                  ;; Don't record the current entry in the stack.
                  (setq help-xref-stack-item nil)
                  (describe-variable symbol))))
***************
*** 639,645 ****
              (buffer-substring (point)
                                (progn (skip-syntax-forward "w_")
                                       (point)))))))
!       (when (or (boundp sym) (fboundp sym) (facep sym))
        (help-do-xref pos #'help-xref-interned (list sym))))))
  
  
--- 647,655 ----
              (buffer-substring (point)
                                (progn (skip-syntax-forward "w_")
                                       (point)))))))
!       (when (or (boundp sym)
!               (get sym 'variable-documentation)
!               (fboundp sym) (facep sym))
        (help-do-xref pos #'help-xref-interned (list sym))))))
  
  
============================================================




reply via email to

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