0
|
1 ;;!emacs
|
|
2 ;;
|
|
3 ;; LCD-ENTRY: See "hversion.el".
|
|
4 ;;
|
|
5 ;; FILE: hyperbole.el
|
|
6 ;; SUMMARY: Sets up Hyperbole for autoloading and use.
|
|
7 ;; USAGE: GNU Emacs Lisp Library
|
|
8 ;; KEYWORDS: hypermedia
|
|
9 ;;
|
|
10 ;; AUTHOR: Bob Weiner
|
100
|
11 ;; ORG: InfoDock Associates
|
0
|
12 ;;
|
|
13 ;; ORIG-DATE: 6-Oct-92 at 11:52:51
|
114
|
14 ;; LAST-MOD: 15-Mar-97 at 17:09:40 by Bob Weiner
|
0
|
15 ;;
|
|
16 ;; This file is part of Hyperbole.
|
|
17 ;; Available for use and distribution under the same terms as GNU Emacs.
|
|
18 ;;
|
100
|
19 ;; Copyright (C) 1992-1996, Free Software Foundation, Inc.
|
0
|
20 ;; Developed with support from Motorola Inc.
|
|
21 ;;
|
|
22 ;; DESCRIPTION:
|
|
23 ;;
|
|
24 ;; See the "README" file for installation instructions.
|
|
25 ;;
|
|
26 ;; There is no need to manually edit this file unless there are specific
|
|
27 ;; customizations you would like to make, such as whether the Hyperbole
|
|
28 ;; mouse buttons are placed on shifted or unshifted mouse buttons.
|
|
29 ;; (See the call of the function, hmouse-shift-buttons, below.)
|
|
30 ;;
|
|
31 ;; Other site-specific customizations belong in "hsite.el" which is created
|
|
32 ;; from "hsite-ex.el" by the person who installs Hyperbole at your site.
|
|
33 ;;
|
|
34 ;; DESCRIP-END.
|
|
35
|
|
36 ;;; ************************************************************************
|
|
37 ;;; Hyperbole directory setting
|
|
38 ;;; ************************************************************************
|
|
39
|
|
40 ;; Defines hyperb:window-system, hyperb:kotl-p and
|
|
41 ;; (hyperb:path-being-loaded), which are used below.
|
|
42 ;; The Hyperbole distribution directory must either already be in
|
|
43 ;; load-path or an explicit load of "hversion" must have been
|
|
44 ;; done already or else the following line will fail to load hversion.
|
|
45 ;; This is all documented in the Hyperbole installation instructions.
|
|
46 (require 'hversion)
|
|
47
|
|
48 ;; Reinitialize hyperb:dir on reload if initialization failed for any reason.
|
|
49 (and (boundp 'hyperb:dir) (null hyperb:dir) (makunbound 'hyperb:dir))
|
|
50
|
|
51 (defvar hyperb:dir (if (fboundp 'backtrace-frame) (hyperb:path-being-loaded))
|
|
52 "Directory where the Hyperbole executable code is kept.
|
|
53 It must end with a directory separator character.")
|
|
54 (if (stringp hyperb:dir)
|
|
55 (setq hyperb:dir (file-name-directory hyperb:dir))
|
|
56 (error
|
|
57 "(hyperbole.el): Failed to set hyperb:dir. Try setting it manually."))
|
|
58
|
|
59 ;;; ************************************************************************
|
|
60 ;;; Other required Elisp libraries
|
|
61 ;;; ************************************************************************
|
|
62
|
|
63 (require 'set (expand-file-name "set" hyperb:dir))
|
|
64
|
|
65 ;; Add hyperb:dir and kotl subdirectory to load-path so other
|
|
66 ;; Hyperbole libraries can be found.
|
|
67 (setq load-path (set:add hyperb:dir load-path))
|
|
68 (if hyperb:kotl-p
|
|
69 (setq load-path (set:add (expand-file-name "kotl/" hyperb:dir) load-path)))
|
|
70
|
|
71 (require 'hvar) ;; Defines var:append function.
|
|
72
|
|
73 ;;; ************************************************************************
|
|
74 ;;; Public key bindings
|
|
75 ;;; ************************************************************************
|
|
76
|
|
77 ;;; Setup so Hyperbole can be autoloaded from a key.
|
|
78 ;;; Choose a key on which to place the Hyperbole menus.
|
|
79 ;;; For most people this key binding will work and will be equivalent
|
|
80 ;;; to {C-h h}.
|
|
81 ;;;
|
|
82 (or (where-is-internal 'hyperbole)
|
|
83 (where-is-internal 'hui:menu)
|
|
84 (define-key help-map "h" 'hyperbole))
|
|
85
|
|
86 ;;; Provides a site standard way of emulating most Hyperbole mouse drag
|
|
87 ;;; commands from the keyboard. This is most useful for rapidly creating
|
|
88 ;;; Hyperbole link buttons from the keyboard without invoking the Hyperbole
|
|
89 ;;; menu. Only works if Emacs is run under a window system.
|
|
90 ;;;
|
|
91 (or (not hyperb:window-system)
|
|
92 (global-key-binding "\M-o")
|
|
93 (where-is-internal 'hkey-operate)
|
|
94 (global-set-key "\M-o" 'hkey-operate))
|
|
95
|
|
96 ;;; Provides a site standard way of performing explicit button
|
|
97 ;;; renames without invoking the Hyperbole menu.
|
|
98 ;;;
|
|
99 (or (global-key-binding "\C-c\C-r")
|
|
100 (where-is-internal 'hui:ebut-rename)
|
|
101 (global-set-key "\C-c\C-r" 'hui:ebut-rename))
|
|
102
|
|
103 ;;; The following operations are now available through the Hyperbole Win/
|
|
104 ;;; menu. In earlier versions of Hyperbole, each of these operations had its
|
|
105 ;;; own keybindings. Uncomment the following code lines if you still want
|
|
106 ;;; to use those key bindings.
|
|
107 ;;; Key bindings for window configuration save/restore ring, like kill-ring
|
|
108 ;;; except holds the configuration of windows within a frame.
|
|
109 ;;; {C-x 4 w} to save config; {C-x 4 y} to restore successive
|
|
110 ;;; saves; {C-x 4 DEL} to delete successive saves.
|
|
111 ;;;
|
|
112 ;; (or (global-key-binding "\C-x4w")
|
|
113 ;; (global-set-key "\C-x4w" 'wconfig-ring-save))
|
|
114 ;; (or (global-key-binding "\C-x4y")
|
|
115 ;; (global-set-key "\C-x4y" 'wconfig-yank-pop))
|
|
116 ;; (or (global-key-binding "\C-x4\177")
|
|
117 ;; (global-set-key "\C-x4\177" 'wconfig-delete-pop))
|
|
118
|
|
119 ;;; Provides a site standard way to easily switch between the Hyperbole mouse
|
|
120 ;;; bindings and a set of personal mouse bindings. You may instead show
|
114
|
121 ;;; users how to bind this to a key via `hyperb:init-hook' (see
|
0
|
122 ;;; Hyperbole Manual).
|
|
123 ;;;
|
|
124 (or (global-key-binding "\C-ct")
|
|
125 (where-is-internal 'hmouse-toggle-bindings)
|
|
126 (global-set-key "\C-ct" 'hmouse-toggle-bindings))
|
|
127
|
|
128 (defun hkey-either (arg)
|
|
129 "Executes `action-key' or with non-nil ARG executes `assist-key'."
|
|
130 (interactive "P")
|
|
131 (if arg (assist-key) (action-key)))
|
|
132
|
114
|
133 ;;; A value of t for `hkey-init' below will cause the Hyperbole
|
0
|
134 ;;; context-sensitive keys to be bound to keyboard keys, in addition to any
|
|
135 ;;; mouse key bindings. Comment it out or set it to nil if you don't want
|
|
136 ;;; these bindings. Or change the bindings in the succeeding lines.
|
|
137 ;;;
|
|
138 (or (boundp 'hkey-init) (setq hkey-init t))
|
|
139 (and hkey-init
|
|
140 (not (global-key-binding "\M-\C-m"))
|
|
141 (global-set-key "\M-\C-m" 'hkey-either))
|
|
142 ;;
|
|
143 ;; Bind a key, {C-h A}, for Action Key help and {C-u C-h A} for Assist key
|
|
144 ;; help.
|
|
145 (and hkey-init
|
|
146 (not (where-is-internal 'hkey-help))
|
|
147 (define-key help-map "A" 'hkey-help))
|
|
148
|
|
149 ;;;
|
|
150 ;;; Hyperbole key bindings for many non-edit modes.
|
|
151 ;;; Set both to nil if unwanted.
|
|
152 ;;;
|
|
153 (defvar action-key-read-only "\C-m"
|
|
154 "Local Action Key binding for special read-only modes.")
|
|
155 (defvar assist-key-read-only "\M-\C-m"
|
|
156 "Local Assist Key binding for special read-only modes.")
|
|
157
|
|
158 ;;; ************************************************************************
|
|
159 ;;; URL Browsing
|
|
160 ;;; ************************************************************************
|
|
161
|
|
162 ;;;###autoload
|
|
163 (defvar action-key-url-function 'w3-fetch
|
|
164 "Value is a function of one argument, a url, which displays the url referent.
|
|
165 Possible values are:
|
|
166 w3-fetch - display using the W3 Emacs web browser;
|
|
167 highlight-headers-follow-url-netscape - display in Netscape;
|
|
168 highlight-headers-follow-url-mosaic - display in Mosaic.")
|
|
169
|
|
170 ;;; ************************************************************************
|
|
171 ;;; Koutliner mode and file suffix importation settings.
|
|
172 ;;; ************************************************************************
|
|
173
|
|
174 ;;;###autoload
|
|
175 (defvar kimport:mode-alist
|
|
176 '((t . kimport:text)
|
|
177 (outline-mode . kimport:star-outline))
|
|
178 "Alist of (major-mode . importation-function) elements.
|
|
179 This determines the type of importation done on a file when `kimport:file' is
|
|
180 called if the major mode of the import file matches the car of an element in
|
|
181 this list. If there is no match, then `kimport:suffix-alist' is checked. If
|
|
182 that yields no match, the element in this list whose car is 't is used. It
|
|
183 normally does an import of a koutline or text file.
|
|
184
|
|
185 Each importation-function must take two arguments, a buffer/file to import
|
|
186 and a buffer/file into which to insert the imported elements and a third
|
|
187 optional argument, CHILDREN-P, which when non-nil means insert imported cells
|
|
188 as the initial set of children of the current cell, if any.
|
|
189
|
|
190 outline-mode - imported as an Emacs outline whose entries begin with
|
|
191 asterisks;
|
|
192 .kot
|
|
193 .kotl - imported as a structured koutline
|
|
194
|
|
195 all others - imported as text.")
|
|
196
|
|
197 ;;;###autoload
|
|
198 (defvar kimport:suffix-alist
|
|
199 '(("\\.otl$". kimport:star-outline)
|
|
200 ("\\.aug$" . kimport:aug-post-outline))
|
|
201 "Alist of (buffer-name-suffix-regexp . importation-function) elements.
|
|
202 This determines the type of importation done on a file when `kimport:file' is
|
|
203 called. Each importation-function must take two arguments, a buffer/file to
|
|
204 import and a buffer/file into which to insert the imported elements and a
|
|
205 third optional argument, CHILDREN-P, which when non-nil means insert imported
|
|
206 cells as the initial set of children of the current cell, if any.
|
|
207
|
|
208 .otl - imported as an Emacs outline whose entries begin with asterisks;
|
|
209 .kot
|
|
210 .kotl - imported as a structured koutline
|
|
211 .aug - imported as an Augment post-numbered outline.")
|
|
212
|
|
213 ;;; ************************************************************************
|
|
214 ;;; You shouldn't need to modify anything below here.
|
|
215 ;;; ************************************************************************
|
|
216
|
|
217 (defun hkey-read-only-bindings ()
|
|
218 "Binds Action and Assist Keys in many read-only modes.
|
|
219 Uses values of `action-key-read-only' and `assist-key-read-only'. Does
|
|
220 nothing if either variable is nil."
|
|
221 (if (not (and action-key-read-only assist-key-read-only))
|
|
222 nil
|
|
223 (if (and (boundp 'Buffer-menu-mode-map)
|
|
224 (keymapp Buffer-menu-mode-map))
|
|
225 (progn
|
|
226 (define-key Buffer-menu-mode-map action-key-read-only 'action-key)
|
|
227 (define-key Buffer-menu-mode-map assist-key-read-only
|
|
228 'hkey-either)))
|
|
229 (if (and (boundp 'calendar-mode-map)
|
|
230 (keymapp calendar-mode-map))
|
|
231 (progn
|
|
232 (define-key calendar-mode-map action-key-read-only 'action-key)
|
|
233 (define-key calendar-mode-map assist-key-read-only
|
|
234 'hkey-either)))
|
|
235 (if (and (boundp 'dired-mode-map)
|
|
236 (keymapp dired-mode-map))
|
|
237 (progn
|
|
238 (define-key dired-mode-map action-key-read-only 'action-key)
|
|
239 (define-key dired-mode-map assist-key-read-only
|
|
240 'hkey-either)))
|
|
241 (if (and (boundp 'gnus-group-mode-map)
|
|
242 (keymapp gnus-group-mode-map))
|
|
243 (progn
|
|
244 (define-key gnus-group-mode-map action-key-read-only 'action-key)
|
|
245 (define-key gnus-group-mode-map assist-key-read-only
|
|
246 'hkey-either)))
|
|
247 (if (and (boundp 'gnus-summary-mode-map)
|
|
248 (keymapp gnus-summary-mode-map))
|
|
249 (progn
|
|
250 (define-key gnus-summary-mode-map action-key-read-only 'action-key)
|
|
251 (define-key gnus-summary-mode-map assist-key-read-only
|
|
252 'hkey-either)))
|
|
253 (if (and (boundp 'Info-mode-map)
|
|
254 (keymapp Info-mode-map))
|
|
255 (progn
|
|
256 (define-key Info-mode-map action-key-read-only 'action-key)
|
|
257 (define-key Info-mode-map assist-key-read-only
|
|
258 'hkey-either)))
|
|
259 (if (and (boundp 'oo-browse-mode-map)
|
|
260 (keymapp oo-browse-mode-map))
|
|
261 (progn
|
|
262 (define-key oo-browse-mode-map action-key-read-only 'action-key)
|
|
263 (define-key oo-browse-mode-map assist-key-read-only
|
|
264 'hkey-either)))
|
|
265 (if (and (boundp 'rmail-mode-map)
|
|
266 (keymapp rmail-mode-map))
|
|
267 (progn
|
|
268 (define-key rmail-mode-map action-key-read-only 'action-key)
|
|
269 (define-key rmail-mode-map assist-key-read-only
|
|
270 'hkey-either)))
|
|
271 (if (and (boundp 'rmail-summary-mode-map)
|
|
272 (keymapp rmail-summary-mode-map))
|
|
273 (progn
|
|
274 (define-key rmail-summary-mode-map action-key-read-only 'action-key)
|
|
275 (define-key rmail-summary-mode-map assist-key-read-only
|
|
276 'hkey-either)))
|
|
277 (if (and (boundp 'unix-apropos-map)
|
|
278 (keymapp unix-apropos-map))
|
|
279 (progn
|
|
280 (define-key unix-apropos-map action-key-read-only 'action-key)
|
|
281 (define-key unix-apropos-map assist-key-read-only
|
|
282 'hkey-either)))
|
|
283 ))
|
|
284
|
|
285 (hkey-read-only-bindings)
|
|
286
|
|
287 ;;; ************************************************************************
|
|
288 ;;; Setup Hyperbole mouse bindings
|
|
289 ;;; ************************************************************************
|
|
290
|
|
291 (require 'hmouse-key)
|
|
292 ;;; The following function call selects between shifted and unshifted Action
|
|
293 ;;; and Assist mouse buttons. With no argument or an argument of nil,
|
|
294 ;;; shifted buttons are used, and under InfoDock, the middle button also acts
|
|
295 ;;; as an Action Key. With a positive number as an argument, use shifted
|
|
296 ;;; buttons. With any other integer, use unshifted buttons.
|
|
297 (hmouse-shift-buttons)
|
|
298
|
|
299 ;;; Permits restore of the prior window configuration after any help buffer
|
|
300 ;;; is shown by pressing either the Action or Assist Key at the end of the
|
|
301 ;;; help buffer. (Help buffer names end with "Help*".)
|
|
302 ;;;
|
|
303 (setq temp-buffer-show-hook 'hkey-help-show
|
|
304 temp-buffer-show-function temp-buffer-show-hook)
|
|
305
|
|
306 ;;; ************************************************************************
|
|
307 ;;; Autoloads
|
|
308 ;;; ************************************************************************
|
|
309
|
|
310 ;;; Menu items could call this function before Info is loaded.
|
|
311 (autoload 'Info-goto-node "info" "Jump to specific Info node." t)
|
|
312
|
|
313 ;;; Hyperbole user interface entry points that trigger loading of the full
|
|
314 ;;; Hyperbole system.
|
|
315
|
|
316 ;; Action type definitions.
|
100
|
317 (autoload 'defact "hsite"
|
0
|
318 "Creates an action TYPE (an unquoted symbol) with PARAMS, described by DOC."
|
|
319 nil 'macro)
|
|
320 ;; Implicit button type definitions.
|
100
|
321 (autoload 'defib "hsite"
|
0
|
322 "Creates implicit button TYPE (unquoted sym) with PARAMS, described by DOC."
|
|
323 nil 'macro)
|
|
324
|
|
325 (autoload 'ebut:map "hsite" "Map over Hyperbole buffer buttons." nil)
|
100
|
326 (autoload 'hbut:key-src "hsite" "Called by {e} command in rolo match buffer.")
|
0
|
327 (autoload 'hui:ebut-rename "hsite" "Rename a Hyperbole button." t)
|
|
328 (autoload 'hyperbole "hsite" "Hyperbole info manager menus." t)
|
|
329
|
|
330 (autoload 'action-key "hsite"
|
|
331 "Context-sensitive Action Key command." t)
|
|
332 (autoload 'hkey-help "hsite"
|
|
333 "Display help for the Action Key command in current context.
|
|
334 With optional ASSIST-FLAG non-nil, display help for the Assist Key command.
|
|
335 Returns non-nil iff associated help documentation is found." t)
|
|
336 (autoload 'assist-key-help "hsite"
|
|
337 "Display help for the Assist Key command in current context." t)
|
|
338 (autoload 'hkey-help-hide "hsite"
|
|
339 "Restores frame to configuration prior to help buffer display." nil)
|
|
340 (autoload 'hkey-help-show "hsite"
|
|
341 "Saves prior frame configuration if BUFFER displays help." nil)
|
|
342 (autoload 'assist-key "hsite"
|
|
343 "Context-sensitive Assist Key command." t)
|
|
344 (autoload 'action-mouse-key "hsite"
|
|
345 "Context-sensitive Action Mouse Key command." t)
|
|
346 (autoload 'assist-mouse-key "hsite"
|
|
347 "Context-sensitive Assist Mouse Key command." t)
|
|
348 (autoload 'hkey-operate "hsite" "Emulate Hyperbole mouse key drags." t)
|
|
349 (autoload 'symset:add "hsite" "Adds ELT to SYMBOL's PROP set." nil)
|
|
350 (autoload 'hact "hsite" "Performs action formed from rest of ARGS."
|
|
351 nil)
|
|
352 (autoload 'actypes::exec-window-cmd "hsite"
|
|
353 "Executes an external window-based SHELL-CMD string asynchronously." nil)
|
|
354 (autoload 'hpath:absolute-to "hsite"
|
|
355 "Make PATH absolute from optional DEFAULT-DIRS." nil)
|
|
356 (autoload 'hpath:find "hsite"
|
|
357 "Edit file FILENAME, possibly using a special command." t)
|
100
|
358 (autoload 'hpath:find-other-frame "hsite"
|
|
359 "Edit file FILENAME in other frame, possibly using a special command." t)
|
0
|
360 (autoload 'hpath:find-other-window "hsite"
|
|
361 "Edit file FILENAME in other window, possibly using a special command." t)
|
|
362
|
|
363 ;;; Hyperbole entry points that trigger loading part of the system.
|
|
364
|
|
365 (autoload 'hypb:functionp "hypb" "Return t iff OBJ is a function." nil)
|
100
|
366 (autoload 'hypb:display-file-with-logo "hypb" "Display FILE with IDA logo." nil)
|
0
|
367
|
|
368 ;;; Hyperbole msg reader autoloads.
|
|
369 (autoload 'Rmail-init "hrmail" "Initializes Hyperbole Rmail support." t)
|
|
370 (autoload 'Mh-init "hmh" "Initializes Hyperbole Mh support." t)
|
|
371 (autoload 'Vm-init "hvm" "Initializes Hyperbole Vm support." t)
|
|
372 (autoload 'Pm-init "hpm" "Initializes Hyperbole PIEmail support." t)
|
|
373 (autoload 'Gnus-init "hgnus" "Initializes Hyperbole Gnus support." t)
|
|
374
|
|
375 ;;; Hyperbole msg composer autoloads.
|
|
376 (autoload 'hmail:compose "hmail"
|
|
377 "Compose mail with ADDRESS and evaluation of EXPR." t)
|
|
378 (autoload 'hmail:msg-narrow "hmail"
|
|
379 "Narrows buffer to displayable part of current message.
|
|
380 Its displayable part begins at optional MSG-START and ends at or before MSG-END.")
|
|
381
|
|
382 ;;; Hyperbole outliner main entry points.
|
|
383 (if (not hyperb:kotl-p)
|
|
384 nil
|
|
385 (autoload 'kfile:find "kfile" "Edit an autonumbered outline." t)
|
|
386 (autoload 'kfile:is-p "kfile" "Is an unformatted outline?" nil)
|
|
387 (autoload 'kfile:view "kfile"
|
|
388 "View an autonumbered outline in read-only mode." t)
|
|
389 (autoload 'kotl-mode "kfile" "Autonumbered outlining mode." t)
|
|
390 ;;
|
|
391 ;; Entry points from Hyperbole Otl/ menu.
|
|
392 (autoload 'klink:create "klink" "Insert an implicit link at point." t)
|
|
393 (autoload 'kotl-mode:is-p "kfile" "Test if within a Hyperbole outline.")
|
|
394 (autoload 'kotl-mode:hide-tree "kfile" "Hide sublevels of current tree." t)
|
|
395 (autoload 'kotl-mode:overview "kfile" "Show first line of each cell." t)
|
|
396 (autoload 'kotl-mode:show-all "kfile" "Expand all outline cells." t)
|
|
397 (autoload 'kotl-mode:show-tree "kfile" "Expand current tree cells." t)
|
|
398 (autoload 'kotl-mode:top-cells "kfile" "Hide all but top-level cells." t)
|
|
399 ;;
|
|
400 ;; Functions required from outline.el library.
|
|
401 (autoload 'show-all "outline" "Show all of the text in the buffer." t)
|
|
402 ;;
|
|
403 (autoload 'kimport:file "kfile" "Import different file types." t)
|
|
404 (autoload 'kimport:aug-post-outline "kfile" "Import Augment files." t)
|
|
405 (autoload 'kimport:star-outline "kfile" "Import * outline files." t)
|
|
406 (autoload 'kimport:text "kfile" "Import text or koutline files." t)
|
|
407 )
|
|
408
|
|
409 ;;; Hyperbole rolodex main entry points.
|
114
|
410 (autoload 'rolo-add "wrolo" "Add an entry to rolodex" t)
|
|
411 (autoload 'rolo-display-matches "wrolo" "Redisplay previous rolodex matches" t)
|
|
412 (autoload 'rolo-edit "wrolo" "Edit an existing rolodex entry" t)
|
|
413 (autoload 'rolo-fgrep "wrolo" "Rolodex string search" t)
|
|
414 (autoload 'rolo-grep "wrolo" "Rolodex regexp search" t)
|
|
415 (autoload 'rolo-kill "wrolo" "Delete an existing rolodex entry" t)
|
|
416 (autoload 'rolo-logic "wrolo-logic" "Logical rolodex search filters." t)
|
|
417 (autoload 'rolo-sort "wrolo" "Sort rolodex entries" t)
|
|
418 (autoload 'rolo-toggle-datestamps "wrolo" "Toggle datestamp insertion." t)
|
|
419 (autoload 'rolo-word "wrolo" "Rolodex string search for a word" t)
|
|
420 (autoload 'rolo-yank "wrolo" "Insert a rolodex entry into current buffer" t)
|
0
|
421
|
|
422 ;;; Hyperbole Key autoloads.
|
|
423 (autoload 'Info-handle-in-note "hmous-info"
|
|
424 "Follows Info documentation references.")
|
|
425 (autoload 'smart-info "hmous-info" "Follows Info documentation references." t)
|
|
426 (autoload 'smart-info-assist "hmous-info"
|
|
427 "Follows Info documentation references." t)
|
|
428 (autoload 'smart-asm-at-tag-p "hmouse-tag"
|
|
429 "Jumps to assembly identifier definitions.")
|
|
430 (autoload 'smart-c-at-tag-p "hmouse-tag" "Jumps to C identifier definitions.")
|
|
431 (autoload 'smart-lisp-mode-p "hmouse-tag"
|
|
432 "Jumps to Lisp identifier definitions.")
|
|
433 (autoload 'smart-c++ "hmouse-tag" "Jumps to C++ identifier definitions.")
|
100
|
434 (autoload 'smart-fortran-at-tag-p "hmouse-tag" "Jumps to Fortran identifier definitions.")
|
|
435 (autoload 'smart-java "hmouse-tag" "Jumps to Java identifier definitions.")
|
|
436 (autoload 'smart-java-at-tag-p "hmouse-tag" "Jumps to Java identifier definitions.")
|
0
|
437 (autoload 'smart-objc "hmouse-tag" "Jumps to Objective-C identifier definitions.")
|
|
438 (autoload 'smart-tags-file "hmouse-tag" "Determines nearest etags file.")
|
|
439 (autoload 'smart-tags-file-path "hmouse-tag" "Expands a filename from TAGS file.")
|
|
440
|
|
441 ;;; Window configuration save and restore autoloads.
|
|
442 (autoload 'wconfig-add-by-name "wconfig" "Save win config under name." t)
|
|
443 (autoload 'wconfig-delete-by-name "wconfig" "Delete win config under name." t)
|
|
444 (autoload 'wconfig-restore-by-name "wconfig" "Restore win config under name." t)
|
|
445 (autoload 'wconfig-ring-save "wconfig" "Save window-config to ring." t)
|
|
446 (autoload 'wconfig-yank-pop "wconfig" "Pop window-config from ring." t)
|
|
447 (autoload 'wconfig-delete-pop "wconfig" "Delete window-config from ring." t)
|
|
448
|
|
449 ;;; ************************************************************************
|
|
450 ;;; Auto mode file suffixes
|
|
451 ;;; ************************************************************************
|
|
452
|
|
453 ;;; Invoke kotl-mode for files ending in ".kotl". Also allow ".kot" for DOS
|
|
454 ;;; and Windows users.
|
|
455 (if hyperb:kotl-p
|
|
456 (setq auto-mode-alist (cons '("\\.kotl$\\|\\.kot$" . kotl-mode)
|
|
457 auto-mode-alist)))
|
|
458
|
|
459 ;;; ************************************************************************
|
|
460 ;;; MESSAGE SYSTEM SUPPORT CONFIGURATION
|
|
461 ;;; ************************************************************************
|
|
462
|
|
463 ;;; Even if you don't need some of the following hook settings, you might
|
|
464 ;;; as well leave them in so that if they ever become useful to you, you
|
|
465 ;;; need not reconfigure Hyperbole. These settings do nothing if the
|
|
466 ;;; corresponding subsystems are never invoked.
|
|
467 ;;;
|
|
468 ;;; GNUS USENET news reader/poster support.
|
|
469 ;;;
|
|
470 (var:append 'gnus-Startup-hook '(Gnus-init))
|
|
471 ;;;
|
|
472 ;;; Hyperbole mail reader support configuration.
|
|
473 ;;;
|
|
474 ;; Rmail
|
|
475 (var:append 'rmail-mode-hook '(Rmail-init))
|
|
476 ;; Mh-e
|
|
477 (var:append 'mh-inc-folder-hook '(Mh-init))
|
|
478 ;;
|
|
479 ;; VM support is based on V5.72 beta of VM. If you have a version of VM
|
|
480 ;; earlier than 5.70 beta, you should either upgrade or comment out the
|
|
481 ;; following line so that Hyperbole support for VM is not enabled.
|
|
482 (var:append 'vm-mode-hooks '(Vm-init))
|
|
483 ;;
|
|
484 ;; PIEmail
|
|
485 (var:append 'pm-hook '(Pm-init))
|
|
486 ;;;
|
|
487 ;;; Hyperbole mail composer support configuration.
|
|
488 ;;;
|
114
|
489 (var:append 'mail-mode-hook (list (function (lambda () (require 'hsmail)))))
|
|
490 (var:append 'mh-letter-mode-hook (list (function (lambda () (require 'hsmail)))))
|
|
491 (var:append 'vm-mail-mode-hook (list (function (lambda () (require 'hsmail)))))
|
0
|
492
|
|
493 ;;; ************************************************************************
|
|
494 ;;; Frame function aliases.
|
|
495 ;;; ************************************************************************
|
114
|
496 ;; Create all needed `frame-' aliases for all `screen-' functions, e.g.
|
0
|
497 ;; screen-width.
|
|
498 (if (fboundp 'selected-frame)
|
|
499 nil
|
|
500 (fset 'selected-frame 'selected-screen)
|
|
501 (mapcar
|
|
502 (function (lambda (func-name)
|
|
503 (or (fboundp (intern-soft (concat "frame" func-name)))
|
|
504 (fset (intern (concat "frame" func-name))
|
|
505 (intern-soft (concat "screen" func-name))))))
|
|
506 '("-width" "-height")))
|
|
507
|
100
|
508 ;;; ************************************************************************
|
|
509 ;;; Register Hyperbole Package
|
|
510 ;;; ************************************************************************
|
|
511
|
0
|
512 (provide 'hyperbole)
|