annotate lisp/progmodes/idlw-help.el @ 69478:e8bb5df2ba7a

Add index entries around each paragraph rather than depend on entries from beginning of node. Doing so ensures that index entries are less likely to be forgotten if text is cut and pasted, and are necessary anyway if the references are on a separate page. It seems that makeinfo is now (v. 4.8) only producing one index entry per node, so there is no longer any excuse not to. Use subheading instead of heading. The incorrect use of heading produced very large fonts in Info--as large as the main heading. (From Bill Wohler): MH-E never did appear in Emacs 21--MH-E versions 6 and 7 appeared *around* the time of these Emacs releases.
author Bill Wohler <wohler@newt.com>
date Wed, 15 Mar 2006 00:26:12 +0000
parents dc49655f57ae
children 5baeec79c0cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1 ;;; idlw-help.el --- HTML Help code for IDLWAVE
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
2 ;; Copyright (c) 2000 Carsten Dominik
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
3 ;; Copyright (c) 2001, 2002 J.D. Smith
68773
dc49655f57ae Update copyright for 2006.
Nick Roberts <nickrob@snap.net.nz>
parents: 65235
diff changeset
4 ;; Copyright (c) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
5 ;;
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
6 ;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
7 ;; Carsten Dominik <dominik@science.uva.nl>
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
8 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
9 ;; Version: 5.7_22
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
10
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
11 ;; This file is part of GNU Emacs.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
12
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
13 ;; This file is free software; you can redistribute it and/or modify
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
14 ;; it under the terms of the GNU General Public License as published by
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
15 ;; the Free Software Foundation; either version 2, or (at your option)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
16 ;; any later version.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
17
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
18 ;; This file is distributed in the hope that it will be useful,
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
21 ;; GNU General Public License for more details.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
22
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
23 ;; You should have received a copy of the GNU General Public License
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
24 ;; along with GNU Emacs; see the file COPYING. If not, write to the
64085
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64001
diff changeset
25 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64001
diff changeset
26 ;; Boston, MA 02110-1301, USA.
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
27
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
28 ;;; Commentary:
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
29
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
30 ;; The help link information for IDLWAVE's online help feature for
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
31 ;; system routines is extracted automatically from the IDL
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
32 ;; documentation, and is available, along with general routine
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
33 ;; information, in the file idlw-rinfo.el. The HTML help file
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
34 ;; themselves are not distributable with Emacs, but are available,
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
35 ;; along with new versions of IDLWAVE, documentation, and more
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
36 ;; information, at:
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
37 ;;
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
38 ;; http://idlwave.org
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
39 ;;
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
40 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
41
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
42
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
43 ;;; Code:
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
44 (defvar browse-url-generic-args)
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
45
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
46 (defvar idlwave-help-browse-url-available nil
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
47 "Whether browse-url is available")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
48
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
49 (setq idlwave-help-browse-url-available
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
50 (condition-case nil
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
51 (require 'browse-url)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
52 (error nil)))
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
53
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
54 (defgroup idlwave-online-help nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
55 "Online Help options for IDLWAVE mode."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
56 :group 'idlwave)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
57
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
58 (defcustom idlwave-html-help-pre-v6 nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
59 "Whether pre or post-v6.0 IDL help documents are being used."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
60 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
61 :type 'boolean)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
62
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
63 (defvar idlwave-html-link-sep
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
64 (if idlwave-html-help-pre-v6 "#" "#wp"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
65
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
66 (defcustom idlwave-html-help-location
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
67 (if (memq system-type '(ms-dos windows-nt))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
68 nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
69 "/usr/local/etc/")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
70 "The directory where the idl_html_help/ dir or idl.chm help file
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
71 (Windows only) lives."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
72 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
73 :type 'directory)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
74
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
75 (defcustom idlwave-help-use-hh nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
76 "Whether to use the HTMLHelp viewer with idl.chm (Windows only)."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
77 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
78 :type '(choice :tag "use help viewer"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
79 (const :tag "<none>" nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
80 (const :tag "hh" 'hh)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
81 (const :tag "keyhh" 'keyhh)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
82
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
83 (defcustom idlwave-help-browser-function browse-url-browser-function
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
84 "Function to use to display html help.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
85 Defaults to `browse-url-browser-function', which see."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
86 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
87 :type 'function)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
88
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
89 (defcustom idlwave-help-browser-generic-program browse-url-generic-program
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
90 "Program to run if using browse-url-generic-program."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
91 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
92 :type 'string)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
93
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
94 (defcustom idlwave-help-browser-generic-args
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
95 (if (boundp 'browse-url-generic-args)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
96 browse-url-generic-args "")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
97 "Program args to use if using browse-url-generic-program."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
98 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
99 :type 'string)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
100
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
101 (defcustom idlwave-help-browser-is-local nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
102 "Whether the browser will display locally in an Emacs window.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
103 Several browsers run and/or display inside Emacs windows, but most are
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
104 external programs. If the browser name contains \"-w3\", it is
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
105 assumed to be local to Emacs. For other local browsers, this variable
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
106 must be explicitly set non-nil in order for the variable
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
107 `idlwave-help-use-dedicated-frame' to function."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
108 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
109 :type 'boolean)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
110
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
111 (defvar idlwave-help-directory ""
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
112 "Obsolete variable. See idlwave-html-help-location.")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
113
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
114 (defcustom idlwave-help-use-dedicated-frame t
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
115 "*Non-nil means, use a separate frame for Online Help if possible."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
116 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
117 :type 'boolean)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
118
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
119 (defcustom idlwave-help-frame-parameters
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
120 '((height . 32) (unsplittable . t))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
121 "The frame parameters for the special Online Help frame.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
122 See also `idlwave-help-use-dedicated-frame'.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
123 If you do not set the frame width here, the value specified in
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
124 `idlw-help.el' will be used."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
125 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
126 :type '(repeat
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
127 (cons symbol sexp)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
128
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
129 (defcustom idlwave-max-popup-menu-items 20
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
130 "Maximum number of items per pane in popup menus.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
131 Currently only used for class selection during completion help."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
132 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
133 :type 'integer)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
134
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
135 (defcustom idlwave-extra-help-function 'idlwave-help-with-source
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
136 "The function to call for online help if the normal help fails.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
137 Online help works only for system routines which are described in the
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
138 IDL manuals. A function may be specified to access help from other sources.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
139
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
140 The function must accept four arguments: NAME, TYPE, CLASS, KEYWORD.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
141 The Help buffer is current when this function is called, and the help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
142 text should be loaded into this buffer. If help is found, the
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
143 function should return the buffer position which should be used as
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
144 `window-start' in the help window. Also, the variable
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
145 `idlwave-help-mode-line-indicator' should be set to a useful string,
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
146 which will be displayed in the mode line of the help window. If
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
147 should also set the variable `idlwave-help-min-frame-width' to a
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
148 positive integer. IDLWAVE will ensure that the help frame is at least
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
149 that many columns wide. Failure to find help should be indicated by
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
150 throwing an error.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
151
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
152 When this variable is non-nil, IDLWAVE will allow the mouse-3 help click
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
153 for every routine and keyword, even though the item may not be highlighted
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
154 in blue (indicating the availability of system documentation).
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
155
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
156 The default value for this function is `idlwave-help-with-source' which
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
157 loads the routine source file into the help buffer. If you try to write
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
158 a different function which accesses a special help file or so, it is
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
159 probably a good idea to still call this function as a fallback."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
160 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
161 :type 'symbol)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
162
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
163 (defcustom idlwave-help-fontify-source-code nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
164 "*Non-nil means, fontify source code displayed as help like normal code."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
165 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
166 :type 'boolean)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
167
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
168 (defcustom idlwave-help-source-try-header t
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
169 "*Non-nil means, try to find help in routine header when displaying source.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
170 Routines which are not documented in the system manual use their source as
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
171 help text. When this variable is non-nil, we try to find a description of
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
172 the help item in the first routine doclib header above the routine definition.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
173 If the variable is nil, or if we cannot find/parse the header, the routine
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
174 definition is displayed instead."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
175 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
176 :type 'boolean)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
177
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
178
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
179 (defcustom idlwave-help-doclib-name "name"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
180 "*A regexp for the heading word to search for in doclib headers
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
181 which specifies the `name' section. Can be used for localization
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
182 support."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
183 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
184 :type 'string)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
185
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
186 (defcustom idlwave-help-doclib-keyword "KEYWORD"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
187 "*A regexp for the heading word to search for in doclib headers
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
188 which specifies the `keywords' section. Can be used for localization
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
189 support."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
190 :group 'idlwave-online-help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
191 :type 'string)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
192
63450
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 62772
diff changeset
193 (defface idlwave-help-link
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
194 '((((class color)) (:foreground "Blue"))
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
195 (t (:weight bold)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
196 "Face for highlighting links into IDLWAVE online help."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
197 :group 'idlwave-online-help)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
198
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
199 (defvar idlwave-help-activate-links-aggressively nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
200 "Obsolete variable.")
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
201
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
202 (defvar idlwave-completion-help-info)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
203
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
204 (defvar idlwave-help-frame nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
205 "The frame for display of IDL online help.")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
206 (defvar idlwave-help-frame-width 102
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
207 "The default width of the help frame.")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
208
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
209 (defvar idlwave-html-help-is-available nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
210 "Is the system online help text avaiable?")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
211
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
212 (defvar idlwave-help-mode-line-indicator ""
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
213 "Used for the special mode line in the idlwave-help-mode.")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
214
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
215 (defvar idlwave-help-window-configuration nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
216 (defvar idlwave-help-special-topic-words nil) ; defined by get_rinfo
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
217
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
218 ;; Define the key bindings for the Help application
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
219
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
220 (defvar idlwave-help-mode-map (make-sparse-keymap)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
221 "The keymap used in idlwave-help-mode.")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
222
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
223 (define-key idlwave-help-mode-map "q" 'idlwave-help-quit)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
224 (define-key idlwave-help-mode-map "w" 'widen)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
225 (define-key idlwave-help-mode-map "\C-m" (lambda (arg)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
226 (interactive "p")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
227 (scroll-up arg)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
228 (define-key idlwave-help-mode-map " " 'scroll-up)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
229 (define-key idlwave-help-mode-map [delete] 'scroll-down)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
230 (define-key idlwave-help-mode-map "h" 'idlwave-help-find-header)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
231 (define-key idlwave-help-mode-map "H" 'idlwave-help-find-first-header)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
232 (define-key idlwave-help-mode-map "." 'idlwave-help-toggle-header-match-and-def)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
233 (define-key idlwave-help-mode-map "F" 'idlwave-help-fontify)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
234 (define-key idlwave-help-mode-map "\M-?" 'idlwave-help-return-to-calling-frame)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
235 (define-key idlwave-help-mode-map "x" 'idlwave-help-return-to-calling-frame)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
236
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
237 ;; Define the menu for the Help application
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
238
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
239 (easy-menu-define
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
240 idlwave-help-menu idlwave-help-mode-map
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
241 "Menu for Help IDLWAVE system"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
242 '("IDLHelp"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
243 ["Definition <-> Help Text" idlwave-help-toggle-header-match-and-def t]
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
244 ["Find DocLib Header" idlwave-help-find-header t]
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
245 ["Find First DocLib Header" idlwave-help-find-first-header t]
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
246 ["Fontify help buffer" idlwave-help-fontify t]
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
247 "--"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
248 ["Quit" idlwave-help-quit t]))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
249
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
250 (defvar idlwave-help-def-pos)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
251 (defvar idlwave-help-args)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
252 (defvar idlwave-help-in-header)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
253
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
254 (defun idlwave-help-mode ()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
255 "Major mode for displaying IDL Help.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
256
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
257 This is a VIEW mode for the ASCII version of IDL Help files,
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
258 with some extras. Its main purpose is speed - so don't
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
259 expect a fully hyper-linked help.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
260
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
261 Scrolling: SPC DEL RET
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
262 Text Searches: Inside Topic: Use Emacs search functions
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
263 Exit: [q]uit or mouse button 3 will kill the frame
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
264
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
265 When the hep text is a source file, the following commands are available
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
266
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
267 Fontification: [F]ontify the buffer like source code
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
268 Jump: [h] to function doclib header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
269 [H] to file doclib header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
270 [.] back and forward between header and definition
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
271
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
272 Here are all keybindings.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
273 \\{idlwave-help-mode-map}"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
274 (kill-all-local-variables)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
275 (buffer-disable-undo)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
276 (setq major-mode 'idlwave-help-mode
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
277 mode-name "IDLWAVE Help")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
278 (use-local-map idlwave-help-mode-map)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
279 (easy-menu-add idlwave-help-menu idlwave-help-mode-map)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
280 (setq truncate-lines t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
281 (setq case-fold-search t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
282 (setq mode-line-format
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
283 (list ""
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
284 'mode-line-modified
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
285 'mode-line-buffer-identification
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
286 ": " 'idlwave-help-mode-line-indicator
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
287 " -%-"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
288 (setq buffer-read-only t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
289 (set (make-local-variable 'idlwave-help-def-pos) nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
290 (set (make-local-variable 'idlwave-help-args) nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
291 (set (make-local-variable 'idlwave-help-in-header) nil)
62772
f2892faa87d4 * progmodes/ada-mode.el (ada-mode):
Lute Kamstra <lute@gnu.org>
parents: 62121
diff changeset
292 (run-mode-hooks 'idlwave-help-mode-hook))
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
293
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
294 (defvar idlwave-system-directory)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
295 (defun idlwave-html-help-location ()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
296 "Return the help directory where HTML files are, or nil if that is unknown."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
297 (or (and (stringp idlwave-html-help-location)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
298 (> (length idlwave-html-help-location) 0)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
299 (file-directory-p idlwave-html-help-location)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
300 idlwave-html-help-location)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
301 (getenv "IDLWAVE_HELP_LOCATION")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
302 (and (memq system-type '(ms-dos windows-nt)) ; Base it on sysdir
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
303 idlwave-help-use-hh
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
304 (stringp idlwave-system-directory)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
305 (> (length idlwave-system-directory) 0)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
306 (file-directory-p idlwave-system-directory)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
307 (expand-file-name "HELP" idlwave-system-directory))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
308
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
309 (defvar idlwave-current-obj_new-class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
310 (defvar idlwave-help-diagnostics)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
311 (defvar idlwave-experimental)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
312 (defvar idlwave-last-context-help-pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
313 (defun idlwave-do-context-help (&optional arg)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
314 "Wrapper around the call to idlwave-context-help1.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
315 It collects and prints the diagnostics messages."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
316 (let ((marker (list (current-buffer) (point)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
317 (idlwave-help-diagnostics nil))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
318 ;; Check for frame switching. When the command is invoked twice
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
319 ;; at the same position, we try to switch to the help frame
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
320 ;; FIXME: Frame switching works only on XEmacs
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
321 (if (and idlwave-experimental
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
322 (equal last-command this-command)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
323 (equal idlwave-last-context-help-pos marker))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
324 (idlwave-help-select-help-frame)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
325 ;; Do the real thing.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
326 (setq idlwave-last-context-help-pos marker)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
327 (idlwave-do-context-help1 arg)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
328 (if idlwave-help-diagnostics
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
329 (message "%s" (mapconcat 'identity
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
330 (nreverse idlwave-help-diagnostics)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
331 "; "))))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
332
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
333 (defvar idlwave-help-do-class-struct-tag nil)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
334 (defvar idlwave-structtag-struct-location)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
335 (defvar idlwave-help-do-struct-tag nil)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
336 (defvar idlwave-system-variables-alist)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
337 (defvar idlwave-executive-commands-alist)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
338 (defvar idlwave-system-class-info)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
339 (defun idlwave-do-context-help1 (&optional arg)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
340 "The work-horse version of `idlwave-context-help', which see."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
341 (save-excursion
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
342 (if (equal (char-after) ?/)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
343 (forward-char 1)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
344 (if (equal (char-before) ?=)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
345 (backward-char 1)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
346 (let* ((idlwave-query-class nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
347 (idlwave-force-class-query (equal arg '(4)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
348 (chars "a-zA-Z0-9_$.!")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
349 (beg (save-excursion (skip-chars-backward chars) (point)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
350 (end (save-excursion (skip-chars-forward chars) (point)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
351 (this-word (buffer-substring-no-properties beg end))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
352 (st-ass (assoc (downcase this-word)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
353 idlwave-help-special-topic-words))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
354 (classtag (and (string-match "self\\." this-word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
355 (< beg (- end 4))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
356 (structtag (and (fboundp 'idlwave-complete-structure-tag)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
357 (string-match "\\`\\([^.]+\\)\\." this-word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
358 (< beg (- end 4))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
359 module keyword cw mod1 mod2 mod3)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
360 (if (or arg
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
361 (and (not st-ass)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
362 (not classtag)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
363 (not structtag)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
364 (not (member (string-to-char this-word) '(?! ?.)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
365 ;; Need the module information
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
366 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
367 ;; MODULE is (name type class), for this or any inheriting class
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
368 (setq module (idlwave-what-module-find-class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
369 cw (nth 2 (idlwave-where))) ;what would we complete here?
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
370 ;; Correct for OBJ_NEW, we may need an INIT method instead.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
371 (if (equal (idlwave-downcase-safe (car module)) "obj_new")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
372 (let* ((bos (save-excursion (idlwave-beginning-of-statement)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
373 (point)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
374 (str (buffer-substring bos (point))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
375 (if (string-match "OBJ_NEW([ \t]*['\"]\\([a-zA-Z][a-zA-Z0-9$_]+\\)['\"]" str)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
376 (setq module (list "init" 'fun (match-string 1 str))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
377 idlwave-current-obj_new-class (match-string 1 str))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
378 )))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
379 (cond
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
380 (arg (setq mod1 module))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
381
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
382 ;; A special topic -- only system help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
383 (st-ass (setq mod1 (list (cdr st-ass))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
384
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
385 ;; A system variable -- only system help
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
386 ((string-match
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
387 "\\`!\\([a-zA-Z0-9_]+\\)\\(\.\\([A-Za-z0-9_]+\\)\\)?"
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
388 this-word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
389 (let* ((word (match-string-no-properties 1 this-word))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
390 (entry (assq (idlwave-sintern-sysvar word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
391 idlwave-system-variables-alist))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
392 (tag (match-string-no-properties 3 this-word))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
393 (tag-target (if tag
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
394 (cdr
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
395 (assq (idlwave-sintern-sysvartag tag)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
396 (cdr (assq 'tags entry))))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
397 (link (nth 1 (assq 'link entry))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
398 (if tag-target
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
399 (setq link (idlwave-substitute-link-target link
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
400 tag-target)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
401 (setq mod1 (list link))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
402
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
403 ;; An executive command -- only system help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
404 ((string-match "^\\.\\([A-Z_]+\\)" this-word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
405 (let* ((word (match-string 1 this-word))
62121
9d18baf82550 (idlwave-do-context-help1, idlwave-highlight-linked-completions): Replace
Juanma Barranquero <lekktu@gmail.com>
parents: 61394
diff changeset
406 (link (cdr (assoc-string
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
407 word
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
408 idlwave-executive-commands-alist t))))
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
409 (setq mod1 (list link))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
410
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
411 ;; A class -- system OR in-text help (via class__define).
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
412 ((and (eq cw 'class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
413 (or (idlwave-in-quote) ; e.g. obj_new
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
414 (re-search-backward "\\<inherits[ \t]+[A-Za-z0-9_]*\\="
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
415 (max (point-min) (- (point) 40)) t)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
416 ;; Class completion inside string delimiters must be
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
417 ;; the class inside OBJ_NEW.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
418 (let* ((entry (assq
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
419 (idlwave-sintern-class this-word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
420 idlwave-system-class-info))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
421 (name (concat (downcase this-word) "__define"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
422 (link (nth 1 (assq 'link entry))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
423 (setq mod1 (list link name 'pro))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
424
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
425 ;; A class structure tag (self.BLAH) -- only in-text help available
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
426 (classtag
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
427 (let ((tag (substring this-word (match-end 0)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
428 class-with found-in)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
429 (when (setq class-with
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
430 (idlwave-class-or-superclass-with-tag
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
431 (nth 2 (idlwave-current-routine))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
432 tag))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
433 (setq found-in (idlwave-class-found-in class-with))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
434 (if (assq (idlwave-sintern-class class-with)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
435 idlwave-system-class-info)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
436 (error "No help available for system class tags"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
437 (setq idlwave-help-do-class-struct-tag t)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
438 (setq mod1 (list nil
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
439 (if found-in
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
440 (cons (concat found-in "__define") class-with)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
441 (concat class-with "__define"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
442 'pro
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
443 nil ; no class.... it's a procedure!
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
444 tag)))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
445
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
446 ;; A regular structure tag -- only in text, and if
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
447 ;; optional `complete-structtag' loaded.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
448 (structtag
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
449 (let ((var (match-string 1 this-word))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
450 (tag (substring this-word (match-end 0))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
451 ;; Check if we need to update the "current" structure
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
452 (idlwave-prepare-structure-tag-completion var)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
453 (setq idlwave-help-do-struct-tag
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
454 idlwave-structtag-struct-location
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
455 mod1 (list nil nil nil nil tag))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
456
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
457 ;; A routine keyword -- in text or system help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
458 ((and (memq cw '(function-keyword procedure-keyword))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
459 (stringp this-word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
460 (string-match "\\S-" this-word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
461 (not (string-match "!" this-word)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
462 (cond ((or (= (char-before beg) ?/)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
463 (save-excursion (goto-char end)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
464 (looking-at "[ \t]*=")))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
465 ;; Certainly a keyword. Check for abbreviation etc.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
466 (setq keyword (idlwave-expand-keyword this-word module))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
467 (cond
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
468 ((null keyword)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
469 (idlwave-help-diagnostics
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
470 (format "%s does not accept `%s' kwd"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
471 (idlwave-make-full-name (nth 2 module)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
472 (car module))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
473 (upcase this-word))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
474 'ding))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
475 ((consp keyword)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
476 (idlwave-help-diagnostics
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
477 (format "%d matches for kwd abbrev `%s'"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
478 (length keyword) this-word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
479 'ding)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
480 ;; We continue anyway with the first match...
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
481 (setq keyword (car keyword))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
482 ;; Keyword, or just module
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
483 (setq mod1 (append (list t) module (list keyword)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
484 (setq mod2 (append (list t) module)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
485 ((equal (char-after end) ?\()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
486 ;; A function - what-module will have caught this
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
487 (setq mod1 (append (list t) module)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
488 (t
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
489 ;; undecided - try function, keyword, then enclosing mod.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
490 ;; Check for keyword abbreviations, but do not report
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
491 ;; errors, because it might be something else.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
492 ;; FIXME: is this a good way to handle this?
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
493 (setq keyword (idlwave-expand-keyword this-word module))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
494 (if (consp keyword) (setq keyword (car keyword)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
495 (setq mod1 (append (list t) module (list keyword))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
496 mod2 (list t this-word 'fun nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
497 mod3 (append (list t) module)))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
498
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
499 ;; Everything else
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
500 (t
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
501 (setq mod1 (append (list t) module))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
502 (if mod3
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
503 (condition-case nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
504 (apply 'idlwave-online-help mod1)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
505 (error (condition-case nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
506 (apply 'idlwave-online-help mod2)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
507 (error (apply 'idlwave-online-help mod3)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
508 (if mod2
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
509 (condition-case nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
510 (apply 'idlwave-online-help mod1)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
511 (error (apply 'idlwave-online-help mod2)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
512 (if mod1
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
513 (apply 'idlwave-online-help mod1)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
514 (error "Don't know which item to show help for")))))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
515
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
516 (defun idlwave-do-mouse-completion-help (ev)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
517 "Display online help on an item in the *Completions* buffer.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
518 Needs additional info stored in global `idlwave-completion-help-info'."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
519 (let* ((cw (selected-window))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
520 (info idlwave-completion-help-info) ; global passed in
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
521 (what (nth 0 info))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
522 (name (nth 1 info))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
523 (type (nth 2 info))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
524 (class (nth 3 info))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
525 (need-class class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
526 (kwd (nth 4 info))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
527 (sclasses (nth 5 info))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
528 word link)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
529 (mouse-set-point ev)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
530
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
531
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
532 ;; See if we can also find help somewhere, e.g. for multiple classes
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
533 (setq word (idlwave-this-word))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
534 (if (string= word "")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
535 (error "No help item selected"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
536 (setq link (get-text-property 0 'link word))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
537 (select-window cw)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
538 (cond
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
539 ;; Routine name
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
540 ((memq what '(procedure function routine))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
541 (setq name word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
542 (if (or (eq class t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
543 (and (stringp class) sclasses))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
544 (let* ((classes (idlwave-all-method-classes
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
545 (idlwave-sintern-method name)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
546 type)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
547 (setq link t) ; No specific link valid yet
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
548 (if sclasses
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
549 (setq classes (idlwave-members-only
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
550 classes (cons class sclasses))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
551 (setq class (idlwave-popup-select ev classes
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
552 "Select Class" 'sort))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
553
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
554 ;; XXX is this necessary, given all-method-classes?
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
555 (if (stringp class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
556 (setq class (idlwave-find-inherited-class
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
557 (idlwave-sintern-routine-or-method name class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
558 type (idlwave-sintern-class class)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
559
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
560 ;; Keyword
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
561 ((eq what 'keyword)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
562 (setq kwd word)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
563 (if (or (eq class t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
564 (and (stringp class) sclasses))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
565 (let ((classes (idlwave-all-method-keyword-classes
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
566 (idlwave-sintern-method name)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
567 (idlwave-sintern-keyword kwd)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
568 type)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
569 (setq link t) ; Link can't be correct yet
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
570 (if sclasses
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
571 (setq classes (idlwave-members-only
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
572 classes (cons class sclasses))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
573 (setq class (idlwave-popup-select ev classes
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
574 "Select Class" 'sort))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
575 ;; XXX is this necessary, given all-method-keyword-classes?
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
576 (if (stringp class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
577 (setq class (idlwave-find-inherited-class
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
578 (idlwave-sintern-routine-or-method name class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
579 type (idlwave-sintern-class class)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
580 (if (string= (downcase name) "obj_new")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
581 (setq class idlwave-current-obj_new-class
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
582 name "Init"))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
583
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
584 ;; Class name
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
585 ((eq what 'class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
586 (setq class word
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
587 word nil))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
588
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
589 ;; A special named function to call which sets some of our variables
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
590 ((and (symbolp what)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
591 (fboundp what))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
592 (funcall what 'set word))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
593
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
594 (t (error "Cannot help with this item")))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
595 (if (and need-class (not class) (not (and link (not (eq link t)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
596 (error "Cannot help with this item"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
597 (idlwave-online-help link (or name word) type class kwd)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
598
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
599 (defvar idlwave-highlight-help-links-in-completion)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
600 (defvar idlwave-completion-help-links)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
601 (defun idlwave-highlight-linked-completions ()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
602 "Highlight all completions for which help is available and attach link.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
603 Those words in `idlwave-completion-help-links' have links. The
63450
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 62772
diff changeset
604 `idlwave-help-link' face is used for this."
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
605 (if idlwave-highlight-help-links-in-completion
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
606 (with-current-buffer (get-buffer "*Completions*")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
607 (save-excursion
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
608 (let* ((case-fold-search t)
63450
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 62772
diff changeset
609 (props (list 'face 'idlwave-help-link))
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
610 (info idlwave-completion-help-info) ; global passed in
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
611 (what (nth 0 info)) ; what was completed, or a func
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
612 (class (nth 3 info)) ; any class
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
613 word beg end doit)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
614 (goto-char (point-min))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
615 (re-search-forward "possible completions are:" nil t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
616 (while (re-search-forward "\\s-\\([A-Za-z0-9_.]+\\)\\(\\s-\\|\\'\\)"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
617 nil t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
618 (setq beg (match-beginning 1) end (match-end 1)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
619 word (match-string 1) doit nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
620 ;; Call special completion function test
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
621 (if (and (symbolp what)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
622 (fboundp what))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
623 (setq doit (funcall what 'test word))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
624 ;; Look for special link property passed in help-links
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
625 (if idlwave-completion-help-links
62121
9d18baf82550 (idlwave-do-context-help1, idlwave-highlight-linked-completions): Replace
Juanma Barranquero <lekktu@gmail.com>
parents: 61394
diff changeset
626 (setq doit (assoc-string
9d18baf82550 (idlwave-do-context-help1, idlwave-highlight-linked-completions): Replace
Juanma Barranquero <lekktu@gmail.com>
parents: 61394
diff changeset
627 word idlwave-completion-help-links t))))
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
628 (when doit
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
629 (if (consp doit)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
630 (setq props (append props `(link ,(cdr doit)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
631 (let ((buffer-read-only nil))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
632 (add-text-properties beg end props)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
633 (goto-char end)))))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
634
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
635 ;; Arrange for this function to be called after completion
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
636 (add-hook 'idlwave-completion-setup-hook
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
637 'idlwave-highlight-linked-completions)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
638
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
639 (defvar idlwave-help-return-frame nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
640 "The frame to return to from the help frame.")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
641
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
642 (defun idlwave-help-quit ()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
643 "Exit IDLWAVE Help buffer. Kill the dedicated frame if any."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
644 (interactive)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
645 (cond ((and idlwave-help-use-dedicated-frame
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
646 (eq (selected-frame) idlwave-help-frame))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
647 (if (and idlwave-experimental
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
648 (frame-live-p idlwave-help-return-frame))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
649 ;; Try to select the return frame.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
650 ;; This can crash on slow network connections, obviously when
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
651 ;; we kill the help frame before the return-frame is selected.
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
652 ;; To protect the workings, we wait for up to one second
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
653 ;; and check if the return-frame *is* now selected.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
654 ;; This is marked "eperimental" since we are not sure when its OK.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
655 (let ((maxtime 1.0) (time 0.) (step 0.1))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
656 (select-frame idlwave-help-return-frame)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
657 (while (and (sit-for step)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
658 (not (eq (selected-frame)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
659 idlwave-help-return-frame))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
660 (< (setq time (+ time step)) maxtime)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
661 (delete-frame idlwave-help-frame))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
662 ((window-configuration-p idlwave-help-window-configuration)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
663 (set-window-configuration idlwave-help-window-configuration)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
664 (select-window (previous-window)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
665 (t (kill-buffer (idlwave-help-get-help-buffer)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
666
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
667
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
668 (defvar default-toolbar-visible-p)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
669
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
670 (defun idlwave-help-display-help-window (&optional pos-or-func)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
671 "Display the help window.
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
672 Move window start to POS-OR-FUNC, if passed as a position, or call it
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
673 if passed as a function. See `idlwave-help-use-dedicated-frame'."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
674 (let ((cw (selected-window))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
675 (buf (idlwave-help-get-help-buffer)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
676 (if (and window-system idlwave-help-use-dedicated-frame)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
677 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
678 (idlwave-help-show-help-frame)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
679 (switch-to-buffer buf))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
680 ;; Do it in this frame and save the window configuration
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
681 (if (not (get-buffer-window buf nil))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
682 (setq idlwave-help-window-configuration
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
683 (current-window-configuration)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
684 (display-buffer buf nil (selected-frame))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
685 (select-window (get-buffer-window buf)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
686 (raise-frame)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
687 (if pos-or-func
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
688 (if (functionp pos-or-func)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
689 (funcall pos-or-func)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
690 (goto-char pos-or-func)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
691 (recenter 0)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
692 (select-window cw)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
693
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
694 (defun idlwave-help-select-help-frame ()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
695 "Select the help frame."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
696 (if (and (frame-live-p idlwave-help-frame)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
697 (not (eq (selected-frame) idlwave-help-frame)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
698 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
699 (setq idlwave-help-return-frame (selected-frame))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
700 (select-frame idlwave-help-frame))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
701
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
702 (defun idlwave-help-return-to-calling-frame ()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
703 "Select the frame from which the help frame was selected."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
704 (interactive)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
705 (if (and (frame-live-p idlwave-help-return-frame)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
706 (not (eq (selected-frame) idlwave-help-return-frame)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
707 (select-frame idlwave-help-return-frame)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
708
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
709 (defun idlwave-online-help (link &optional name type class keyword)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
710 "Display HTML or other special help on a certain topic.
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
711 Either loads an HTML link, if LINK is non-nil, or gets special-help on
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
712 the optional arguments, if any special help is defined. If LINK is
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
713 `t', first look up the optional arguments in the routine info list to
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
714 see if a link is set for it. Try extra help functions if necessary."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
715 ;; Lookup link
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
716 (if (eq link t)
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
717 (let ((entry (idlwave-best-rinfo-assoc name type class
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
718 (idlwave-routines) nil t)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
719 (cond
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
720 ;; Try keyword link
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
721 ((and keyword
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
722 (setq link (cdr (idlwave-entry-find-keyword entry keyword)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
723 ;; Default, regular entry link
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
724 (t (setq link (idlwave-entry-has-help entry))))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
725
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
726 (cond
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
727 ;; An explicit link
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
728 ((stringp link)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
729 (idlwave-help-html-link link))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
730
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
731 ;; Any extra help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
732 (idlwave-extra-help-function
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
733 (idlwave-help-get-special-help name type class keyword))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
734
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
735 ;; Nothing worked
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
736 (t (idlwave-help-error name type class keyword))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
737
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
738
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
739 (defun idlwave-help-get-special-help (name type class keyword)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
740 "Call the function given by `idlwave-extra-help-function'."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
741 (let* ((cw (selected-window))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
742 (help-pos (save-excursion
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
743 (set-buffer (idlwave-help-get-help-buffer))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
744 (let ((buffer-read-only nil))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
745 (funcall idlwave-extra-help-function
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
746 name type class keyword)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
747 (if help-pos
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
748 (idlwave-help-display-help-window help-pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
749 (idlwave-help-error name type class keyword))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
750 (select-window cw)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
751
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
752 (defun idlwave-help-html-link (link)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
753 "Get html help on a given LINK."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
754 (let ((browse-url-browser-function idlwave-help-browser-function)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
755 (help-loc (idlwave-html-help-location))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
756 (browse-url-generic-program idlwave-help-browser-generic-program)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
757 ;(browse-url-generic-args idlwave-help-browser-generic-args)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
758 full-link)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
759
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
760 (unless idlwave-help-browse-url-available
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
761 (error "browse-url is not available -- install it to use HTML help."))
62121
9d18baf82550 (idlwave-do-context-help1, idlwave-highlight-linked-completions): Replace
Juanma Barranquero <lekktu@gmail.com>
parents: 61394
diff changeset
762
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
763 (if (and (memq system-type '(ms-dos windows-nt))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
764 idlwave-help-use-hh)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
765 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
766 (setq browse-url-browser-function 'browse-url-generic
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
767 full-link (concat (expand-file-name "idl.chm" help-loc)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
768 "::/"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
769 link))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
770 (if (memq 'keyhh idlwave-help-use-hh)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
771 (setq browse-url-generic-program "KEYHH"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
772 browse-url-generic-args '("-IDLWAVE"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
773 (setq browse-url-generic-program "HH")))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
774 ;; Just a regular file name (+ anchor name)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
775 (unless (and (stringp help-loc)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
776 (file-directory-p help-loc))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
777 (error
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
778 "Invalid help location; customize `idlwave-html-help-location'."))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
779 (setq full-link (concat
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
780 "file://"
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
781 (expand-file-name
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
782 link
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
783 (expand-file-name "idl_html_help" help-loc)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
784
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
785 ;; Check for a local browser
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
786 (if (or idlwave-help-browser-is-local
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
787 (string-match "w3" (symbol-name idlwave-help-browser-function)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
788 (idlwave-help-display-help-window '(lambda () (browse-url full-link)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
789 (browse-url full-link))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
790
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
791 ;; A special help routine for source-level syntax help in files.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
792 (defvar idlwave-help-fontify-source-code)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
793 (defvar idlwave-help-source-try-header)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
794 (defvar idlwave-current-tags-buffer)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
795 (defvar idlwave-current-tags-class)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
796 (defun idlwave-help-with-source (name type class keyword)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
797 "Provide help for routines not documented in the IDL manuals. Works
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
798 by loading the routine source file into the help buffer. Depending on
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
799 the value of `idlwave-help-source-try-header', it attempts to show the
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
800 routine definition or the header description. If
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
801 `idlwave-help-do-class-struct-tag' is non-nil, keyword is a tag to
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
802 show help on from the class definition structure. If
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
803 `idlwave-help-do-struct-tag' is non-nil, show help from the matching
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
804 structure tag definition.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
805
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
806 This function can be used as `idlwave-extra-help-function'."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
807 (let* ((class-struct-tag idlwave-help-do-class-struct-tag)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
808 (struct-tag idlwave-help-do-struct-tag)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
809 (case-fold-search t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
810 (real-class (if (consp name) (cdr name)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
811 (name (if (consp name) (car name) name))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
812 (class-only (and (stringp class) (not (stringp name))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
813 file header-pos def-pos in-buf)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
814 (if class-only ;Help with class? Using "Init" as source.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
815 (setq name "Init"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
816 type 'fun))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
817 (if (not struct-tag)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
818 (setq file
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
819 (idlwave-routine-source-file
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
820 (nth 3 (idlwave-best-rinfo-assoc
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
821 name (or type t) class (idlwave-routines))))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
822 (setq idlwave-help-def-pos nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
823 idlwave-help-args (list name type class keyword)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
824 idlwave-help-in-header nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
825 idlwave-help-do-struct-tag nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
826 idlwave-help-do-class-struct-tag nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
827 (if (or struct-tag (stringp file))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
828 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
829 (setq in-buf ; structure-tag completion is always in current buffer
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
830 (if struct-tag
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
831 idlwave-current-tags-buffer
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
832 (idlwave-get-buffer-visiting file)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
833 ;; see if file is in a visited buffer, insert those contents
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
834 (if in-buf
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
835 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
836 (setq file (buffer-file-name in-buf))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
837 (erase-buffer)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
838 (insert-buffer-substring in-buf)
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
839 (goto-char (point-min)))
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
840 (if (file-exists-p file) ;; otherwise just load the file
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
841 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
842 (erase-buffer)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
843 (insert-file-contents file nil nil nil 'replace))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
844 (idlwave-help-error name type class keyword)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
845 (if (and idlwave-help-fontify-source-code (not in-buf))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
846 (idlwave-help-fontify)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
847 (idlwave-help-error name type class keyword))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
848 (setq idlwave-help-mode-line-indicator file)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
849
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
850 ;; Try to find a good place to display
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
851 (setq def-pos
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
852 ;; Find the class structure tag if that's what we're after
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
853 (cond
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
854 ;; Class structure tags: find the class or named structure
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
855 ;; definition
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
856 (class-struct-tag
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
857 (save-excursion
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
858 (setq class
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
859 (if (string-match "[a-zA-Z0-9]\\(__\\)" name)
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
860 (substring name 0 (match-beginning 1))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
861 idlwave-current-tags-class))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
862 (and
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
863 (idlwave-find-class-definition class nil real-class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
864 (idlwave-find-struct-tag keyword))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
865
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
866 ;; Generic structure tags: the structure definition
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
867 ;; location within the file has been recorded in
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
868 ;; `struct-tag'
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
869 (struct-tag
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
870 (save-excursion
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
871 (and
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
872 (integerp struct-tag)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
873 (goto-char struct-tag)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
874 (idlwave-find-struct-tag keyword))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
875
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
876 ;; Just find the routine definition
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
877 (t
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
878 (if class-only (point-min)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
879 (idlwave-help-find-routine-definition name type class keyword))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
880 idlwave-help-def-pos def-pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
881
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
882 (if (and idlwave-help-source-try-header
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
883 (not (or struct-tag class-struct-tag)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
884 ;; Check if we can find the header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
885 (save-excursion
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
886 (goto-char (or def-pos (point-max)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
887 (setq header-pos (idlwave-help-find-in-doc-header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
888 name type class keyword 'exact)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
889 idlwave-help-in-header header-pos)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
890
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
891 (if (or header-pos def-pos)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
892 (progn
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
893 (if (boundp 'idlwave-help-min-frame-width)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
894 (setq idlwave-help-min-frame-width 80))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
895 (goto-char (or header-pos def-pos)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
896 (idlwave-help-error name type class keyword))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
897
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
898 (point)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
899
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
900
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
901 (defun idlwave-help-find-routine-definition (name type class keyword)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
902 "Find the definition of routine CLASS::NAME in current buffer.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
903 KEYWORD is ignored. Returns the point of match if successful, nil otherwise."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
904 (save-excursion
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
905 (goto-char (point-max))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
906 (if (re-search-backward
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
907 (concat "^[ \t]*"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
908 (if (eq type 'pro) "pro"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
909 (if (eq type 'fun) "function"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
910 "\\(pro\\|function\\)"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
911 "[ \t]+"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
912 (regexp-quote (downcase (idlwave-make-full-name class name)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
913 "[, \t\r\n]")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
914 nil t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
915 (match-beginning 0)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
916 nil)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
917
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
918 (defvar idlwave-doclib-start)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
919 (defvar idlwave-doclib-end)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
920 (defun idlwave-help-find-in-doc-header (name type class keyword
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
921 &optional exact)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
922 "Find the requested help in the doc-header above point.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
923
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
924 First checks if there is a doc-lib header which describes the correct
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
925 routine. Then tries to find the KEYWORDS section and the KEYWORD, if
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
926 given. Returns the point which should be window start of the help
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
927 window. If EXACT is non-nil, the full help position must be found -
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
928 down to the keyword requested. This setting is for context help, if
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
929 the exact spot is needed.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
930
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
931 If EXACT is nil, the position of the header is returned if it
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
932 describes the correct routine - even if the keyword description cannot
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
933 be found. TYPE is ignored.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
934
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
935 This function expects a more or less standard routine header. In
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
936 particlar it looks for the `NAME:' tag, either with a colon, or alone
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
937 on a line. Then `NAME:' must be followed by the routine name on the
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
938 same or the next line. When KEYWORD is non-nil, looks first for a
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
939 `KEYWORDS' section. It is amazing how inconsisten this is through
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
940 some IDL libraries I have seen. We settle for a line containing an
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
941 upper case \"KEYWORD\" string. If this line is not fould we search
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
942 for the keyword anyway to increase the hit-rate
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
943
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
944 When one of these sections exists we check for a line starting with any of
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
945
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
946 /KEYWORD KEYWORD- KEYWORD= KEYWORD
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
947
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
948 with spaces allowed between the keyword and the following dash or equal sign.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
949 If there is a match, we assume it is the keyword description."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
950 (let* ((case-fold-search t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
951 (rname (if (stringp class)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
952 (concat
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
953 "\\("
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
954 ;; Traditional name or class::name
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
955 "\\("
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
956 "\\(" (regexp-quote (downcase class)) "::\\)?"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
957 (regexp-quote (downcase name))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
958 "\\>\\)"
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
959 (concat
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
960 "\\|"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
961 ;; class__define or just class
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
962 (regexp-quote (downcase class)) "\\(__define\\)?")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
963 "\\)")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
964 (regexp-quote (downcase name))))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
965
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
966 ;; NAME tag plus the routine name. The new version is from JD.
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
967 (name-re (concat
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
968 "\\(^;+\\*?[ \t]*"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
969 idlwave-help-doclib-name
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
970 "\\([ \t]*:\\|[ \t]*$\\)[ \t]*\\(\n;+[ \t]*\\)*"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
971 rname
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
972 "\\|"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
973 "^;+[ \t]*"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
974 rname
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
975 ":[ \t]*$\\)"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
976
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
977 ;; Header start plus name
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
978 (header-re (concat "\\(" idlwave-doclib-start "\\).*\n"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
979 "\\(^;+.*\n\\)*"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
980 "\\(" name-re "\\)"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
981 ;; A keywords section
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
982 (kwds-re (concat ; forgiving
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
983 "^;+\\*?[ \t]*"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
984 "\\([-A-Z_ ]*"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
985 idlwave-help-doclib-keyword
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
986 "[-A-Z_ ]*\\)"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
987 "\\(:\\|[ \t]*\n\\)"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
988
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
989 ;; The individual keyword description line.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
990 (kwd-re (if keyword ; hard (well...)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
991 (concat
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
992 "^;+[ \t]+"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
993 "\\(/" (regexp-quote (upcase keyword))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
994 "\\|" (regexp-quote (upcase keyword)) "[ \t]*[-=:\n]"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
995 "\\)")))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
996 (kwd-re2 (if keyword ; forgiving
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
997 (concat
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
998 "^;+[ \t]+"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
999 (regexp-quote (upcase keyword))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1000 "\\>")))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1001 dstart dend name-pos kwds-pos kwd-pos)
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
1002 (catch 'exit
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1003 (save-excursion
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1004 (goto-char (point-min))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1005 (while (and (setq dstart (re-search-forward idlwave-doclib-start nil t))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1006 (setq dend (re-search-forward idlwave-doclib-end nil t)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1007 ;; found a routine header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1008 (goto-char dstart)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1009 (if (setq name-pos (re-search-forward name-re dend t))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
1010 (progn
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1011 (if keyword
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1012 ;; We do need a keyword
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1013 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1014 ;; Try to find a keyword section, but don't force it.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1015 (goto-char name-pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1016 (if (let ((case-fold-search nil))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1017 (re-search-forward kwds-re dend t))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1018 (setq kwds-pos (match-beginning 0)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1019 ;; Find the keyword description
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1020 (if (or (let ((case-fold-search nil))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1021 (re-search-forward kwd-re dend t))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1022 (re-search-forward kwd-re dend t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1023 (let ((case-fold-search nil))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1024 (re-search-forward kwd-re2 dend t))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1025 (re-search-forward kwd-re2 dend t))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1026 (setq kwd-pos (match-beginning 0))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1027 (if exact
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1028 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1029 (idlwave-help-diagnostics
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1030 (format "Could not find description of kwd %s"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1031 (upcase keyword)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1032 (throw 'exit nil))))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1033 ;; Return the best position we got
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1034 (throw 'exit (or kwd-pos kwds-pos name-pos dstart)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1035 (goto-char dend))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1036 (idlwave-help-diagnostics "Could not find doclib header")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1037 (throw 'exit nil))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1038
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1039 (defun idlwave-help-diagnostics (string &optional ding)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1040 "Add a diagnostics string to the list.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1041 When DING is non-nil, ring the bell as well."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1042 (if (boundp 'idlwave-help-diagnostics)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1043 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1044 (setq idlwave-help-diagnostics
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1045 (cons string idlwave-help-diagnostics))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1046 (if ding (ding)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1047
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1048 (defun idlwave-help-toggle-header-top-and-def (arg)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1049 (interactive "P")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1050 (let (pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1051 (if idlwave-help-in-header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1052 ;; Header was the last thing displayed
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1053 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1054 (setq idlwave-help-in-header nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1055 (setq pos idlwave-help-def-pos))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1056 ;; Try to display header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1057 (setq pos (idlwave-help-find-in-doc-header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1058 (nth 0 idlwave-help-args)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1059 (nth 1 idlwave-help-args)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1060 (nth 2 idlwave-help-args)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1061 nil))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1062 (if pos
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1063 (setq idlwave-help-in-header t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1064 (error "Cannot find doclib header for routine %s"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1065 (idlwave-make-full-name (nth 2 idlwave-help-args)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1066 (nth 0 idlwave-help-args)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1067 (if pos
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1068 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1069 (goto-char pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1070 (recenter 0)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1071
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1072 (defun idlwave-help-find-first-header (arg)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1073 (interactive "P")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1074 (let (pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1075 (save-excursion
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1076 (goto-char (point-min))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1077 (if (re-search-forward idlwave-doclib-start nil t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1078 (setq pos (match-beginning 0))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1079 (if pos
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1080 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1081 (goto-char pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1082 (recenter 0))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1083 (error "No DocLib Header in current file"))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1084
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1085 (defun idlwave-help-find-header (arg)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1086 "Jump to the DocLib Header."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1087 (interactive "P")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1088 (if arg
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1089 (idlwave-help-find-first-header nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1090 (setq idlwave-help-in-header nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1091 (idlwave-help-toggle-header-match-and-def arg 'top)))
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
1092
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1093 (defun idlwave-help-toggle-header-match-and-def (arg &optional top)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1094 (interactive "P")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1095 (let ((args idlwave-help-args)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1096 pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1097 (if idlwave-help-in-header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1098 ;; Header was the last thing displayed
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1099 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1100 (setq idlwave-help-in-header nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1101 (setq pos idlwave-help-def-pos))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1102 ;; Try to display header
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1103 (setq pos (apply 'idlwave-help-find-in-doc-header
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
1104 (if top
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1105 (list (car args) (nth 1 args) (nth 2 args) nil)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1106 args)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1107 (if pos
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1108 (setq idlwave-help-in-header t)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1109 (error "Cannot find doclib header for routine %s"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1110 (idlwave-make-full-name (nth 2 idlwave-help-args)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1111 (nth 0 idlwave-help-args)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1112 (if pos
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1113 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1114 (goto-char pos)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1115 (recenter 0)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1116
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1117 (defvar font-lock-verbose)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1118 (defvar idlwave-mode-syntax-table)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1119 (defvar idlwave-font-lock-defaults)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1120 (defun idlwave-help-fontify ()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1121 "Fontify the Help buffer as source code.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1122 Useful when source code is displayed as help. See the option
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1123 `idlwave-help-fontify-source-code'."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1124 (interactive)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1125 (if (featurep 'font-lock)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1126 (let ((major-mode 'idlwave-mode)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1127 (font-lock-verbose
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1128 (if (interactive-p) font-lock-verbose nil))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1129 (syntax-table (syntax-table)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1130 (unwind-protect
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1131 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1132 (set-syntax-table idlwave-mode-syntax-table)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1133 (set (make-local-variable 'font-lock-defaults)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1134 idlwave-font-lock-defaults)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1135 (font-lock-fontify-buffer))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1136 (set-syntax-table syntax-table)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1137
65235
115e36d1b11e (browse-url-generic-args): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64993
diff changeset
1138
58295
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1139 (defun idlwave-help-error (name type class keyword)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1140 (error "Can't find help on %s%s %s"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1141 (or (and (or class name) (idlwave-make-full-name class name))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1142 "<unknown>")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1143 (if keyword (format ", keyword %s" (upcase keyword)) "")
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1144 (if idlwave-html-help-location
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1145 ""
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1146 "(help location unknown)")))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1147
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1148 (defun idlwave-help-show-help-frame ()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1149 "Show the help frame, creating it if necessary"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1150 ;; Use a special frame for this
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1151 (unless (frame-live-p idlwave-help-frame)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1152 (setq idlwave-help-frame
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1153 (make-frame idlwave-help-frame-parameters))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1154 ;; Strip menubar (?) and toolbar from the Help frame.
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1155 (if (fboundp 'set-specifier)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1156 (progn
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1157 ;; XEmacs
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1158 (let ((sval (cons idlwave-help-frame nil)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1159 ;; (set-specifier menubar-visible-p sval)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1160 (set-specifier default-toolbar-visible-p sval)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1161 ;; Emacs
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1162 (modify-frame-parameters idlwave-help-frame
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1163 '(;;(menu-bar-lines . 0)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1164 (tool-bar-lines . 0)))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1165 (select-frame idlwave-help-frame))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1166
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1167 (defun idlwave-help-get-help-buffer ()
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1168 "Return the IDLWAVE Help buffer. Make it first if necessary."
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1169 (let ((buf (get-buffer "*IDLWAVE Help*")))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1170 (if buf
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1171 nil
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1172 (setq buf (get-buffer-create "*IDLWAVE Help*"))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1173 (save-excursion
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1174 (set-buffer buf)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1175 (idlwave-help-mode)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1176 buf))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1177
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1178 (defun idlwave-grep (regexp list)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1179 (let (rtn)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1180 (while list
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1181 (if (string-match regexp (car list))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1182 (setq rtn (cons (car list) rtn)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1183 (setq list (cdr list)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1184 (nreverse rtn)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1185
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1186 (defun idlwave-entry-has-help (entry)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1187 (and entry (car (nth 5 entry))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1188
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1189 (defun idlwave-has-help (name type class)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1190 "Does this have help associated with it?"
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1191 (let ((entry (idlwave-best-rinfo-assoc name type class (idlwave-routines))))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1192 (idlwave-entry-has-help entry)))
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1193
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1194 (provide 'idlw-help)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1195 (provide 'idlwave-help)
fda404732a9a Initial checkin of HTML help support module.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
diff changeset
1196
58296
4773953f1a10 Restore arch taglines
Miles Bader <miles@gnu.org>
parents: 58295
diff changeset
1197 ;; arch-tag: d27b5505-59de-497f-ba3f-f199fd4fb911
4773953f1a10 Restore arch taglines
Miles Bader <miles@gnu.org>
parents: 58295
diff changeset
1198 ;;; idlw-help.el ends here