annotate doc/misc/speedbar.texi @ 108081:33a95d8ffa43

xdisp.c (pop_it): Fix last change.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 23 Apr 2010 18:24:39 +0300
parents 1d1d5d9bd884
children f1266b2f017e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
84317
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1 \input texinfo @c -*-texinfo-*-
84329
3d431f1997d8 (setfilename): Go up one more level to ../../info.
Glenn Morris <rgm@gnu.org>
parents: 84317
diff changeset
2 @setfilename ../../info/speedbar
84317
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
3 @settitle Speedbar: File/Tag summarizing utility
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
4 @syncodeindex fn cp
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
5
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
6 @copying
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
7 Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 104133
diff changeset
8 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
84317
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
9
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
10 @quotation
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
11 Permission is granted to copy, distribute and/or modify this document
99709
6de181810d0f Relicense all texi files under FDL 1.3 or later.
Glenn Morris <rgm@gnu.org>
parents: 95934
diff changeset
12 under the terms of the GNU Free Documentation License, Version 1.3 or
95934
beeefbf6b7d7 Update Back-Cover Text as per maintain.info.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
13 any later version published by the Free Software Foundation; with no
beeefbf6b7d7 Update Back-Cover Text as per maintain.info.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
14 Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
beeefbf6b7d7 Update Back-Cover Text as per maintain.info.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
15 and with the Back-Cover Texts as in (a) below. A copy of the license
beeefbf6b7d7 Update Back-Cover Text as per maintain.info.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
16 is included in the section entitled ``GNU Free Documentation License''.
84317
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
17
95934
beeefbf6b7d7 Update Back-Cover Text as per maintain.info.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
18 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
beeefbf6b7d7 Update Back-Cover Text as per maintain.info.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
19 modify this GNU manual. Buying copies from the FSF supports it in
beeefbf6b7d7 Update Back-Cover Text as per maintain.info.
Glenn Morris <rgm@gnu.org>
parents: 87903
diff changeset
20 developing GNU and promoting software freedom.''
84317
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
21 @end quotation
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
22 @end copying
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
23
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
24 @dircategory Emacs
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
25 @direntry
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
26 * Speedbar: (speedbar). File/Tag summarizing utility.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
27 @end direntry
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
28
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
29 @titlepage
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
30 @sp 10
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
31 @center @titlefont{Speedbar}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
32 @sp 2
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
33 @center Eric Ludlam
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
34 @vskip 0pt plus 1 fill
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
35 @page
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
36 @vskip 0pt plus 1filll
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
37 @insertcopying
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
38 @end titlepage
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
39
102059
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
40 @contents
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
41
84317
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
42 @node Top, , , (dir)Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
43 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
44
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
45 Speedbar is a program for Emacs which can be used to summarize
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
46 information related to the current buffer. Its original inspiration
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
47 is the `explorer' often used in modern development environments, office
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
48 packages, and web browsers.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
49
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
50 Speedbar displays a narrow frame in which a tree view is shown. This
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
51 tree view defaults to containing a list of files and directories. Files
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
52 can be `expanded' to list tags inside. Directories can be expanded to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
53 list the files within itself. Each file or tag can be jumped to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
54 immediately.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
55
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
56 Speedbar expands upon `explorer' windows by maintaining context with the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
57 user. For example, when using the file view, the current buffer's file
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
58 is highlighted. Speedbar also mimics the explorer windows by providing
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
59 multiple display modes. These modes come in two flavors. Major display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
60 modes remain consistent across buffers, and minor display modes appear
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
61 only when a buffer of the applicable type is shown. This allows
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
62 authors of other packages to provide speedbar summaries customized to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
63 the needs of that mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
64
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
65 Throughout this manual, activities are defined as `clicking on', or
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
66 `expanding' items. Clicking means using @kbd{Mouse-2} on a
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
67 button. Expanding refers to clicking on an expansion button to display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
68 an expanded summary of the entry the expansion button is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
69 on. @xref{Basic Navigation}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
70
102059
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
71 @ifnottex
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
72 @insertcopying
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
73 @end ifnottex
9bcea07061a8 consistently use @insertcopying, @direntry, @contents
Karl Berry <karl@gnu.org>
parents: 100974
diff changeset
74
84317
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
75 @menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
76 * Introduction:: Basics of speedbar.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
77 * Basic Navigation:: Basics of speedbar common between all modes.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
78 * File Mode:: Summarizing files.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
79 * Buffer Mode:: Summarizing buffers.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
80 * Minor Modes:: Additional minor modes such as Info and RMAIL.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
81 * Customizing:: Changing speedbar behavior.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
82 * Extending:: Extend speedbar for your own project.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
83 * GNU Free Documentation License:: The license for this documentation.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
84 * Index::
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
85 @end menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
86
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
87 @node Introduction, Basic Navigation, , Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
88 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
89 @chapter Introduction
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
90 @cindex introduction
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
91
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
92 To start using speedbar use the command @kbd{M-x speedbar RET} or
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
93 select it from the @samp{Options->Show/Hide} sub-menu. This command
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
94 will open a new frame to summarize the local files. On X Window
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
95 systems or on MS-Windows, speedbar's frame is twenty characters wide,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
96 and will mimic the height of the frame from which it was started. It
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
97 positions itself to the left or right of the frame you started it
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
98 from.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
99
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
100 To use speedbar effectively, it is important to understand its
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
101 relationship with the frame you started it from. This frame is the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
102 @dfn{attached frame} which speedbar will use as a reference point. Once
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
103 started, speedbar watches the contents of this frame, and attempts to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
104 make its contents relevant to the buffer loaded into the attached
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
105 frame. In addition, all requests made in speedbar that require the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
106 display of another buffer will display in the attached frame.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
107
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
108 When used in terminal mode, the new frame appears the same size as the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
109 terminal. Since it is not visible while working in the attached frame,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
110 speedbar will save time by using the @dfn{slowbar mode}, where no tracking is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
111 done until speedbar is requested to show itself (i.e., the speedbar's
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
112 frame becomes the selected frame).
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
113
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
114 @cindex @code{speedbar-get-focus}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
115 The function to use when switching between frames using the keyboard is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
116 @code{speedbar-get-focus}. This function will toggle between frames, and
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
117 it's useful to bind it to a key in terminal mode. @xref{Customizing}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
118
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
119 @node Basic Navigation, File Mode, Introduction, Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
120 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
121 @chapter Basic Navigation
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
122
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
123 Speedbar can display different types of data, and has several display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
124 and behavior modes. These modes all have a common behavior, menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
125 system, and look. If one mode is learned, then the other modes are easy
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
126 to use.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
127
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
128 @menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
129 * Basic Key Bindings::
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
130 * Basic Visuals::
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
131 * Mouse Bindings::
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
132 * Displays Submenu::
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
133 @end menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
134
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
135 @node Basic Key Bindings, Basic Visuals, Basic Navigation, Basic Navigation
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
136 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
137 @section Basic Key Bindings
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
138 @cindex key bindings
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
139
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
140 These key bindings are common across all modes:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
141
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
142 @table @kbd
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
143 @item Q
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
144 @cindex quitting speedbar
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
145 Quit speedbar, and kill the frame.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
146 @item q
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
147 Quit speedbar, and hide the frame. This makes it faster to restore the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
148 speedbar frame, than if you press @kbd{Q}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
149 @item g
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
150 @cindex refresh speedbar display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
151 Refresh whatever contents are in speedbar.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
152 @item t
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
153 @cindex slowbar mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
154 Toggle speedbar to and from slowbar mode. In slowbar mode, frame
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
155 tracking is not done.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
156 @item n
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
157 @itemx p
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
158 @cindex navigation
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
159 Move, respectively, to the next or previous item. A summary of that
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
160 item will be displayed in the attached frame's minibuffer.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
161 @item M-n
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
162 @itemx M-p
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
163 Move to the next or previous item in a restricted fashion. If a list is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
164 open, the cursor will skip over it. If the cursor is in an open list,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
165 it will not leave it.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
166 @item C-M-n
104133
6d40e5112f4e * speedbar.texi (Basic Key Bindings): Fix typo.
Chong Yidong <cyd@stupidchicken.com>
parents: 102059
diff changeset
167 @itemx C-M-p
84317
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
168 Move forwards and backwards across extended groups. This lets you
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
169 quickly skip over all files, directories, or other common sub-items at
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
170 the same current depth.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
171 @item C-x b
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
172 Switch buffers in the attached frame.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
173 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
174
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
175 Speedbar can handle multiple modes. Two are provided by default.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
176 These modes are File mode, and Buffers mode. There are accelerators to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
177 switch into these different modes.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
178
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
179 @cindex mode switching hotkeys
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
180 @table @kbd
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
181 @item b
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
182 Switch into Quick Buffers mode (@pxref{Buffer Mode}). After one use, the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
183 previous display mode is restored.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
184 @item f
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
185 Switch into File mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
186 @item r
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
187 Switch back to the previous mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
188 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
189
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
190 Some modes provide groups, lists and tags. @xref{Basic Visuals}. When
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
191 these are available, some additional common bindings are available.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
192
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
193 @cindex common keys
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
194 @table @kbd
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
195 @item RET
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
196 @itemx e
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
197 Edit/Open the current group or tag. This behavior is dependent on the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
198 mode. In general, files or buffers are opened in the attached frame,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
199 and directories or group nodes are expanded locally.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
200 @item +
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
201 @itemx =
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
202 Expand the current group, displaying sub items.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
203 When used with a prefix argument, any data that may have been cached is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
204 flushed. This is similar to a power click. @xref{Mouse Bindings}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
205 @item -
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
206 Contract the current group, hiding sub items.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
207 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
208
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
209 @node Basic Visuals, Mouse Bindings, Basic Key Bindings, Basic Navigation
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
210 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
211 @section Basic Visuals
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
212 @cindex visuals
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
213
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
214 Speedbar has visual cues for indicating different types of data. These
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
215 cues are used consistently across the different speedbar modes to make
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
216 them easier to interpret.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
217
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
218 At a high level, in File mode, there are directory buttons, sub
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
219 directory buttons, file buttons, tag buttons, and expansion buttons.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
220 This makes it easy to use the mouse to navigate a directory tree, and
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
221 quickly view files, or a summary of those files.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
222
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
223 The most basic visual effect used to distinguish between these button
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
224 types is color and mouse highlighting. Anything the mouse highlights
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
225 can be clicked on and is called a button (@pxref{Mouse Bindings}).
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
226 Anything not highlighted by the mouse will not be clickable.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
227
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
228 Text in speedbar consists of four different types of data. Knowing how
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
229 to read these textual elements will make it easier to navigate by
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
230 identifying the types of data available.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
231
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
232 @subsubsection Groups
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
233 @cindex groups
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
234
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
235 Groups summarize information in a single line, and provide a high level
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
236 view of more complex systems, like a directory tree, or manual chapters.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
237
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
238 Groups appear at different indentation levels, and are prefixed with a
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
239 @samp{+} in some sort of `box'. The group name will summarize the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
240 information within it, and the expansion box will display that
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
241 information inline. In File mode, directories and files are `groups'
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
242 where the @samp{+} is surrounded by brackets like this:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
243
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
244 @example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
245 <+> include
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
246 <-> src
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
247 [+] foo.c
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
248 @end example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
249
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
250 In this example, we see both open and closed directories, in addition to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
251 a file. The directories have a box consisting of angle brackets, and a
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
252 file uses square brackets.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
253
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
254 In all modes, a group can be `edited' by pressing @kbd{RET}, meaning a
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
255 file will be opened, or a directory explicitly opened in speedbar. A
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
256 group can be expanded or contracted using @kbd{+} or
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
257 @kbd{-}. @xref{Basic Key Bindings}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
258
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
259 Sometimes groups may have a @samp{?} in its indicator box. This means
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
260 that it is a group type, but there are no contents, or no known way of
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
261 extracting contents of that group.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
262
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
263 When a group has been expanded, the indicator button changes from
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
264 @samp{+} to @samp{-}. This indicates that the contents are being shown.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
265 Click the @samp{-} button to contract the group, or hide the contents
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
266 currently displayed.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
267
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
268 @subsubsection Tags
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
269 @cindex tags
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
270
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
271 Tags are the leaf nodes of the tree system. Tags are generally prefixed
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
272 with a simple character, such as @samp{>}. Tags can only be jumped to using
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
273 @kbd{RET} or @kbd{e}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
274
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
275 @subsubsection Boolean Flags
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
276
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
277 Sometimes a group or tag is given a boolean flag. These flags appear as
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
278 extra text characters at the end of the line. File mode uses boolean
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
279 flags, such as a @samp{*} to indicate that a file has been checked out
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
280 of a versioning system.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
281
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
282 For additional flags, see
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
283 @c Note to self, update these to sub-nodes which are more relevant.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
284 @ref{File Mode}, and @ref{Version Control}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
285
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
286 @subsubsection Unadorned Text
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
287
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
288 Unadorned text generally starts in column 0, without any special symbols
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
289 prefixing them. In Buffers mode different buffer groups are prefixed
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
290 with a description of what the following buffers are (Files, scratch
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
291 buffers, and invisible buffers.)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
292
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
293 Unadorned text will generally be colorless, and not clickable.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
294
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
295 @subsubsection Color Cues
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
296
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
297 Each type of Group, item indicator, and label is given a different
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
298 color. The colors chosen are dependent on whether the background color
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
299 is light or dark.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
300 Of important note is that the `current item', which may be a buffer or
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
301 file name, is highlighted red, and underlined.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
302
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
303 Colors can be customized from the group @code{speedbar-faces}. Some
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
304 modes, such as for Info, will use the Info colors instead of default
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
305 speedbar colors as an indication of what is currently being displayed.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
306
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
307 The face naming convention mirrors the File display mode. Modes which
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
308 do not use files will attempt to use the same colors on analogous
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
309 entries.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
310
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
311 @node Mouse Bindings, Displays Submenu, Basic Visuals, Basic Navigation
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
312 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
313 @section Mouse Bindings
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
314 @cindex mouse bindings
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
315
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
316 The mouse has become a common information navigation tool. Speedbar
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
317 will use the mouse to navigate file systems, buffer lists, and other
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
318 data. The different textual cues provide buttons which can be clicked
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
319 on (@pxref{Basic Visuals}). Anything that highlights can be clicked on
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
320 with the mouse, or affected by the menu.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
321
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
322 The mouse bindings are:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
323
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
324 @table @kbd
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
325 @item Mouse-1
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
326 Move cursor to that location.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
327 @item Mouse-2
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
328 @itemx Double-Mouse-1
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
329 Activate the current button. @kbd{Double-Mouse-1} is called a @dfn{double
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
330 click} on other platforms, and is useful for windows users with two
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
331 button mice.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
332 @c Isn't it true that with two-button mice, the right button is Mouse-2?
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
333 @c On GNU/Linux, the right button is Mouse-3.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
334 @item S-Mouse-2
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
335 @itemx S-Double-Mouse-1
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
336 @cindex power click
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
337 This has the same effect as @kbd{Mouse-2}, except it is called a power
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
338 click. This means that if a group with an expansion button @samp{+} is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
339 clicked, any caches are flushed, and subitems re-read. If it is a name,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
340 it will be opened in a new frame.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
341 @item Mouse-3
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
342 Activate the speedbar menu. The item selected affects the line clicked,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
343 not the line where the cursor was.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
344 @item Mouse-1 @r{(mode line)}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
345 Activate the menu. This affects the item the cursor is on before the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
346 click, since the mouse was not clicked on anything.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
347 @item C-Mouse-1
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
348 Buffers sub-menu. The buffer in the attached frame is switched.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
349 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
350
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
351 When the mouse moves over buttons in speedbar, details of that item
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
352 should be displayed in the minibuffer of the attached frame. Sometimes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
353 this can contain extra information such as file permissions, or tag
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
354 location.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
355
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
356 @node Displays Submenu, , Mouse Bindings, Basic Navigation
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
357 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
358 @section Displays Submenu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
359 @cindex displays submenu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
360
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
361 You can display different data by using different display modes. These
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
362 specialized modes make it easier to navigate the relevant pieces of
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
363 information, such as files and directories, or buffers.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
364
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
365 In the main menu, found by clicking @kbd{Mouse-3}, there is a submenu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
366 labeled @samp{Displays}. This submenu lets you easily choose between
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
367 different display modes.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
368
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
369 The contents are modes currently loaded into emacs. By default, this
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
370 would include Files, Quick Buffers, and Buffers. Other major display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
371 modes such as Info are loaded separately.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
372
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
373 @node File Mode, Buffer Mode, Basic Navigation, Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
374 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
375 @chapter File Mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
376 @cindex file mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
377
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
378 File mode displays a summary of your current directory. You can display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
379 files in the attached frame, or summarize the tags found in files. You
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
380 can even see if a file is checked out of a version control system, or
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
381 has some associated object file.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
382
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
383 Advanced behavior, like copying and renaming files, is also provided.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
384
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
385 @menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
386 * Directory Display:: What the display means.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
387 * Hidden Files:: How to display hidden files.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
388 * File Key Bindings:: Performing file operations.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
389 @end menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
390
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
391 @node Directory Display, Hidden Files, File Mode, File Mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
392 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
393 @section Directory Display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
394 @cindex directory display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
395
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
396 There are three major sections in the display. The first line or two is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
397 the root directory speedbar is currently viewing. You can jump to one
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
398 of the parent directories by clicking on the name of the directory you
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
399 wish to jump to.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
400
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
401 Next, directories are listed. A directory starts with the group
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
402 indicator button @samp{<+>}. Clicking the directory name makes speedbar
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
403 load that directory as the root directory for its display. Clicking the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
404 @samp{<+>} button will list all directories and files beneath.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
405
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
406 Next, files are listed. Files start with the group indicator @samp{[+]}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
407 or @samp{[?]}. You can jump to a file in the attached frame by clicking
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
408 on the file name. You can expand a file and look at its tags by
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
409 clicking on the @samp{[+]} symbol near the file name.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
410
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
411 A typical session might look like this:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
412
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
413 @example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
414 ~/lisp/
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
415 <+> checkdoc
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
416 <+> eieio
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
417 <-> speedbar
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
418 [+] Makefile
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
419 [+] rpm.el #
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
420 [+] sb-gud.el #
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
421 [+] sb-info.el #
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
422 [+] sb-rmail.el #
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
423 [+] sb-w3.el
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
424 [-] speedbar.el *!
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
425 @{+@} Types
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
426 @{+@} Variables
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
427 @{+@} def (group)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
428 @{+@} speedbar-
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
429 [+] speedbar.texi *
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
430 <+> testme
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
431 [+] align.el
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
432 [+] autoconf.el
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
433 @end example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
434
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
435 In this example, you can see several directories. The directory
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
436 @file{speedbar} has been opened inline. Inside the directory
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
437 @file{speedbar}, the file @file{speedbar.el} has its tags exposed.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
438 These tags are extensive, and they are summarized into tag groups.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
439
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
440 Files get additional boolean flags associated with them. Valid flags are:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
441
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
442 @cindex file flags
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
443 @table @code
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
444 @item *
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
445 This file has been checked out of a version control
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
446 system. @xref{Version Control}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
447 @cindex @code{speedbar-obj-alist}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
448 @item #
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
449 This file has an up to date object file associated with it. The
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
450 variable @code{speedbar-obj-alist} defines how speedbar determines this
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
451 value.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
452 @item !
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
453 This file has an out of date object file associated with it.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
454 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
455
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
456 A Tag group is prefixed with the symbol @samp{@{+@}}. Clicking this
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
457 symbol will show all symbols that have been organized into that group.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
458 Different types of files have unique tagging methods as defined by their
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
459 major mode. Tags are generated with either the @code{imenu} package, or
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
460 through the @code{etags} interface.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
461
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
462 Tag groups are defined in multiple ways which make it easier to find the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
463 tag you are looking for. Imenu keywords explicitly create groups, and
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
464 speedbar will automatically create groups if tag lists are too long.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
465
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
466 In our example, Imenu created the groups @samp{Types} and
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
467 @samp{Variables}. All remaining top-level symbols are then regrouped
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
468 based on the variable @code{speedbar-tag-hierarchy-method}. The
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
469 subgroups @samp{def} and @samp{speedbar-} are groupings where the first
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
470 few characters of the given symbols are specified in the group name.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
471 Some group names may say something like @samp{speedbar-t to speedbar-v},
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
472 indicating that all symbols which alphabetically fall between those
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
473 categories are included in that sub-group. @xref{Tag Hierarchy Methods}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
474
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
475 @node Hidden Files, File Key Bindings, Directory Display, File Mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
476 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
477 @section Hidden Files
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
478 @cindex hidden files
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
479
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
480 On GNU and Unix systems, a hidden file is a file whose name starts
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
481 with a period. They are hidden from a regular directory listing
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
482 because the user is not generally interested in them.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
483
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
484 In speedbar, a hidden file is a file which isn't very interesting and
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
485 might prove distracting to the user. Any uninteresting files are
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
486 removed from the File display. There are two levels of uninterest in
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
487 speedbar. The first level of uninterest are files which have no
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
488 expansion method, or way of extracting tags. The second level is any
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
489 file that matches the same pattern used for completion in
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
490 @code{find-file}. This is derived from the variable
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
491 @code{completion-ignored-extensions}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
492
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
493 You can toggle the display of uninteresting files from the toggle menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
494 item @samp{Show All Files}. This will display all level one hidden files.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
495 These files will be shown with a @samp{?} indicator. Level 2 hidden
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
496 files will still not be shown.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
497
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
498 Object files fall into the category of level 2 hidden files. You can
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
499 determine their presence by the @samp{#} and @samp{!} file indicators.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
500 @xref{Directory Display}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
501
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
502 @node File Key Bindings, , Hidden Files, File Mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
503 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
504 @section File Key Bindings
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
505 @cindex file key bindings
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
506
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
507 File mode has key bindings permitting different file system operations
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
508 such as copy or rename. These commands all operate on the @dfn{current
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
509 file}. In this case, the current file is the file at point, or clicked
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
510 on when pulling up the menu.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
511
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
512 @table @kbd
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
513 @item U
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
514 Move the entire speedbar display up one directory.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
515 @item I
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
516 Display information in the minibuffer about this line. This is the same
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
517 information shown when navigating with @kbd{n} and @kbd{p}, or moving
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
518 the mouse over an item.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
519 @item B
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
520 Byte compile the Emacs Lisp file on this line.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
521 @item L
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
522 Load the Emacs Lisp file on this line. If a @file{.elc} file exists,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
523 optionally load that.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
524 @item C
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
525 Copy the current file to some other location.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
526 @item R
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
527 Rename the current file, possibly moving it to some other location.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
528 @item D
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
529 Delete the current file.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
530 @item O
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
531 Delete the current file's object file. Use the symbols @samp{#} and
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
532 @samp{!} to determine if there is an object file available.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
533 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
534
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
535 One menu item toggles the display of all available files. By default,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
536 only files which Emacs understands, and knows how to convert into a tag
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
537 list, are shown. By showing all files, additional files such as text files are
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
538 also displayed, but they are prefixed with the @samp{[?]} symbol. This
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
539 means that it is a file, but Emacs doesn't know how to expand it.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
540
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
541 @node Buffer Mode, Minor Modes, File Mode, Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
542 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
543 @chapter Buffer Mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
544 @cindex buffer mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
545
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
546 Buffer mode is very similar to File mode, except that instead of
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
547 tracking the current directory and all files available there, the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
548 current list of Emacs buffers is shown.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
549
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
550 These buffers can have their tags expanded in the same way as files,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
551 and uses the same unknown file indicator (@pxref{File Mode}).
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
552
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
553 Buffer mode does not have file operation bindings, but the following
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
554 buffer specific key bindings are available:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
555
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
556 @table @kbd
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
557 @item k
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
558 Kill this buffer. Do not touch its file.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
559 @item r
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
560 Revert this buffer, reloading from disk.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
561 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
562
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
563 In addition to Buffer mode, there is also Quick Buffer mode. In fact,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
564 Quick Buffers is bound to the @kbd{b} key. The only difference between
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
565 Buffers and Quick Buffers is that after one operation is performed
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
566 which affects the attached frame, the display is immediately reverted to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
567 the last displayed mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
568
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
569 Thus, if you are in File mode, and you need quick access to a buffer,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
570 press @kbd{b}, click on the buffer you want, and speedbar will revert
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
571 back to File mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
572
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
573 @node Minor Modes, Customizing, Buffer Mode, Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
574 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
575 @chapter Minor Display Modes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
576 @cindex minor display modes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
577
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
578 For some buffers, a list of files and tags makes no sense. This could
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
579 be because files are not currently in reference (such as web pages), or
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
580 that the files you might be interested have special properties (such as
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
581 email folders.)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
582
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
583 In these cases, a minor display mode is needed. A minor display mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
584 will override any major display mode currently being displayed for the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
585 duration of the specialized buffer's use. Minor display modes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
586 will follow the general rules of their major counterparts in terms of
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
587 key bindings and visuals, but will have specialized behaviors.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
588
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
589 @menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
590 * RMAIL:: Managing folders.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
591 * Info:: Browsing topics.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
592 * GDB:: Watching expressions or managing the current
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
593 stack trace.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
594 @end menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
595
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
596 @node RMAIL, Info, Minor Modes, Minor Modes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
597 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
598 @section RMAIL
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
599 @cindex RMAIL
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
600
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
601 When using RMAIL, speedbar will display two sections. The first is a
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
602 layer one reply button. Clicking here will initialize a reply buffer
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
603 showing only this email address in the @samp{To:} field.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
604
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
605 The second section lists all RMAIL folders in the same directory as your
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
606 main RMAIL folder. The general rule is that RMAIL folders always appear
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
607 in all caps, or numbers. It is possible to save mail in folders with
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
608 lower case letters, but there is no clean way of detecting such RMAIL folders
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
609 without opening them all.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
610
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
611 Each folder can be visited by clicking the name. You can move mail from
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
612 the current RMAIL folder into a different folder by clicking the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
613 @samp{<M>} button. The @samp{M} stands for Move.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
614
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
615 In this way you can manage your existing RMAIL folders fairly easily
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
616 using the mouse.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
617
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
618 @node Info, GDB, RMAIL, Minor Modes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
619 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
620 @section Info
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
621 @cindex Info
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
622
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
623 When browsing Info files, all local relevant information is displayed in
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
624 the info buffer and a topical high-level view is provided in speedbar.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
625 All top-level info nodes are shown in the speedbar frame, and can be
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
626 jumped to by clicking the name.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
627
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
628 You can open these nodes with the @samp{[+]} button to see what sub-topics
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
629 are available. Since these sub-topics are not examined until you click
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
630 the @samp{[+]} button, sometimes a @samp{[?]} will appear when you click on
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
631 a @samp{[+]}, indicating that there are no sub-topics.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
632
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
633 @node GDB, , Info, Minor Modes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
634 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
635 @section GDB
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
636 @cindex gdb
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
637 @cindex gud
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
638
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
639 You can debug an application with GDB in Emacs using graphical mode or
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
640 text command mode (@pxref{GDB Graphical Interface,,, emacs, The
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
641 extensible self-documenting text editor}).
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
642
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
643 If you are using graphical mode you can see how selected variables
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
644 change each time your program stops (@pxref{Watch Expressions,,,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
645 emacs, The extensible self-documenting text editor}).
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
646
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
647 If you are using text command mode, speedbar can show
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
648 you the current stack when the current buffer is the @file{*gdb*}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
649 buffer. Usually, it will just report that there is no stack, but when
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
650 the application is stopped, the current stack will be shown.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
651
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
652 You can click on any stack element and gdb will move to that stack
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
653 level. You can then check variables local to that level at the GDB
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
654 prompt.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
655
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
656 @node Customizing, Extending, Minor Modes, Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
657 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
658 @chapter Customizing
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
659 @cindex customizing
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
660
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
661 Speedbar is highly customizable, with a plethora of control elements.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
662 Since speedbar is so visual and reduces so much information, this is an
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
663 important aspect of its behavior.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
664
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
665 In general, there are three custom groups you can use to quickly modify
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
666 speedbar's behavior.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
667
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
668 @table @code
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
669 @item speedbar
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
670 Basic speedbar behaviors.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
671 @item speedbar-vc
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
672 Customizations regarding version control handling.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
673 @item speedbar-faces
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
674 Customize speedbar's many colors and fonts.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
675 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
676
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
677 @menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
678 * Frames and Faces:: Visible behaviors.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
679 * Tag Hierarchy Methods:: Customizing how tags are displayed.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
680 * Version Control:: Adding new VC detection modes.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
681 * Hooks:: The many hooks you can use.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
682 @end menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
683
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
684 @node Frames and Faces, Tag Hierarchy Methods, Customizing, Customizing
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
685 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
686 @section Frames and Faces
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
687 @cindex faces
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
688 @cindex frame parameters
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
689
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
690 There are several faces speedbar generates to provide a consistent
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
691 color scheme across display types. You can customize these faces using
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
692 your favorite method. They are:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
693
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
694 @table @asis
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
695 @cindex @code{speedbar-button-face}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
696 @item speedbar-button-face
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
697 Face used on expand/contract buttons.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
698 @cindex @code{speedbar-file-face}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
699 @item speedbar-file-face
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
700 Face used on Files. Should also be used on non-directory like nodes.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
701 @cindex @code{speedbar-directory-face}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
702 @item speedbar-directory-face
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
703 Face used for directories, or nodes which consist of groups of other nodes.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
704 @cindex @code{speedbar-tag-face}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
705 @item speedbar-tag-face
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
706 Face used for tags in a file, or for leaf items.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
707 @cindex @code{speedbar-selected-face}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
708 @item speedbar-selected-face
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
709 Face used to highlight the selected item. This would be the current
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
710 file being edited.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
711 @cindex @code{speedbar-highlight-face}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
712 @item speedbar-highlight-face
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
713 Face used when the mouse passes over a button.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
714 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
715
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
716 You can also customize speedbar's initial frame parameters. How this is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
717 accomplished is dependent on your platform being Emacs or XEmacs.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
718
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
719 @cindex @code{speedbar-frame-parameters}, Emacs
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
720 In Emacs, change the alist @code{speedbar-frame-parameters}. This
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
721 variable is used to set up initial details. Height is also
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
722 automatically added when speedbar is created, though you can override
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
723 it.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
724
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
725 @cindex @code{speedbar-frame-plist}, XEmacs
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
726 In XEmacs, change the plist @code{speedbar-frame-plist}. This is the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
727 XEmacs way of doing the same thing.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
728
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
729 @node Tag Hierarchy Methods, Version Control, Frames and Faces, Customizing
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
730 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
731 @section Tag Hierarchy Methods
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
732 @cindex tag hierarchy
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
733 @cindex tag groups
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
734 @cindex tag sorting
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
735
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
736 When listing tags within a file, it is possible to get an annoyingly
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
737 long list of entries. Imenu (which generates the tag list in Emacs)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
738 will group some classes of items automatically. Even here, however,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
739 some tag groups can be quite large.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
740
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
741 @cindex @code{speedbar-tag-hierarchy-method}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
742 To solve this problem, tags can be grouped into logical units through a
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
743 hierarchy processor. The specific variable to use is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
744 @code{speedbar-tag-hierarchy-method}. There are several methods that
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
745 can be applied in any order. They are:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
746
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
747 @table @code
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
748 @cindex @code{speedbar-trim-words-tag-hierarchy}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
749 @item speedbar-trim-words-tag-hierarchy
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
750 Find a common prefix for all elements of a group, and trim it off.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
751 @cindex @code{speedbar-prefix-group-tag-hierarchy}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
752 @item speedbar-prefix-group-tag-hierarchy
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
753 If a group is too large, place sets of tags into bins based on common
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
754 prefixes.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
755 @cindex @code{speedbar-simple-group-tag-hierarchy}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
756 @item speedbar-simple-group-tag-hierarchy
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
757 Take all items in the top level list not in a group, and stick them into
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
758 a @samp{Tags} group.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
759 @cindex @code{speedbar-sort-tag-hierarchy}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
760 @item speedbar-sort-tag-hierarchy
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
761 Sort all items, leaving groups on top.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
762 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
763
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
764 You can also add your own functions to reorganize tags as you see fit.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
765
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
766 Some other control variables are:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
767
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
768 @table @code
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
769 @cindex @code{speedbar-tag-group-name-minimum-length}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
770 @item speedbar-tag-group-name-minimum-length
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
771 Default value: 4.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
772
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
773 The minimum length of a prefix group name before expanding. Thus, if
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
774 the @code{speedbar-tag-hierarchy-method} includes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
775 @code{speedbar-prefix-group-tag-hierarchy} and one such group's common
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
776 characters is less than this number of characters, then the group name
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
777 will be changed to the form of:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
778
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
779 @example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
780 worda to wordb
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
781 @end example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
782
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
783 instead of just
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
784
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
785 @example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
786 word
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
787 @end example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
788
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
789 This way we won't get silly looking listings.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
790
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
791 @cindex @code{speedbar-tag-split-minimum-length}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
792 @item speedbar-tag-split-minimum-length
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
793 Default value: 20.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
794
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
795 Minimum length before we stop trying to create sub-lists in tags.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
796 This is used by all tag-hierarchy methods that break large lists into
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
797 sub-lists.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
798
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
799 @cindex @code{speedbar-tag-regroup-maximum-length}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
800 @item speedbar-tag-regroup-maximum-length
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
801 Default value: 10.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
802
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
803 Maximum length of submenus that are regrouped.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
804 If the regrouping option is used, then if two or more short subgroups
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
805 are next to each other, then they are combined until this number of
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
806 items is reached.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
807 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
808
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
809 @node Version Control, Hooks, Tag Hierarchy Methods, Customizing
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
810 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
811 @section Version Control
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
812 @cindex version control
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
813 @cindex vc extensions
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
814
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
815 When using the file mode in speedbar, information regarding a version
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
816 control system adds small details to the display. If a file is in a
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
817 version control system, and is ``checked out'' or ``locked'' locally, an
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
818 asterisk @samp{*} appears at the end of the file name. In addition,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
819 the directory name for Version Control systems are left out of the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
820 speedbar display.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
821
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
822 @cindex @code{speedbar-directory-unshown-regexp}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
823 You can easily add new version control systems into speedbar's detection
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
824 scheme. To make a directory ``disappear'' from the list, use the variable
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
825 @code{speedbar-directory-unshown-regexp}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
826
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
827 @cindex @code{speedbar-vc-path-enable-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
828 Next, you need to write entries for two hooks. The first is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
829 @code{speedbar-vc-path-enable-hook} which will enable a VC check in the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
830 current directory for the group of files being checked. Your hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
831 function should take one parameter (the directory to check) and return
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
832 @code{t} if your VC method is in control here.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
833
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
834 @cindex @code{speedbar-vc-in-control-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
835 The second function is @code{speedbar-vc-in-control-hook}. This hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
836 takes two parameters, the @var{path} of the file to check, and the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
837 @var{file} name. Return @code{t} if you want to have the asterisk
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
838 placed near this file.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
839
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
840 @cindex @code{speedbar-vc-indicator}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
841 Lastly, you can change the VC indicator using the variable
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
842 @code{speedbar-vc-indicator}, and specify a single character string.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
843
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
844 @node Hooks, , Version Control, Customizing
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
845 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
846 @section Hooks
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
847 @cindex hooks
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
848
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
849 There are several hooks in speedbar allowing custom behaviors to be
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
850 added. Available hooks are:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
851
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
852 @table @code
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
853 @cindex @code{speedbar-visiting-file-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
854 @item speedbar-visiting-file-hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
855 Hooks run when speedbar visits a file in the selected frame.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
856 @cindex @code{speedbar-visiting-tag-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
857 @item speedbar-visiting-tag-hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
858 Hooks run when speedbar visits a tag in the selected frame.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
859 @cindex @code{speedbar-load-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
860 @item speedbar-load-hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
861 Hooks run when speedbar is loaded.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
862 @cindex @code{speedbar-reconfigure-keymaps-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
863 @item speedbar-reconfigure-keymaps-hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
864 Hooks run when the keymaps are regenerated. Keymaps are reconfigured
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
865 whenever modes change. This will let you add custom key bindings.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
866 @cindex @code{speedbar-before-popup-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
867 @item speedbar-before-popup-hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
868 Hooks called before popping up the speedbar frame.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
869 New frames are often popped up when ``power clicking'' on an item to view
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
870 it.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
871 @cindex @code{speedbar-before-delete-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
872 @item speedbar-before-delete-hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
873 Hooks called before deleting or hiding the speedbar frame.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
874 @cindex @code{speedbar-mode-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
875 @item speedbar-mode-hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
876 Hooks called after creating a speedbar buffer.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
877 @cindex @code{speedbar-timer-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
878 @item speedbar-timer-hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
879 Hooks called after running the speedbar timer function.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
880 @cindex @code{speedbar-scanner-reset-hook}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
881 @item speedbar-scanner-reset-hook
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
882 Hook called whenever generic scanners are reset.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
883 Set this to implement your own scanning or rescan safe functions with
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
884 state data.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
885 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
886
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
887 @node Extending, GNU Free Documentation License, Customizing, Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
888 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
889 @chapter Extending
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
890 @cindex extending
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
891
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
892 Speedbar can run different types of Major display modes such as Files
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
893 (@pxref{File Mode}), and Buffers (@pxref{Buffer Mode}). It can also manage
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
894 different minor display modes for use with buffers handling specialized
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
895 data.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
896
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
897 These major and minor display modes are handled through an extension
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
898 system which permits specialized keymaps and menu extensions, in
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
899 addition to a unique rendering function. You can also specify a wide
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
900 range of tagging functions. The default uses @code{imenu}, but new
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
901 tagging methods can be easily added. In this chapter, you will
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
902 learn how to write your own major or minor display modes, and how to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
903 create specialized tagging functions.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
904
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
905 @menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
906 * Minor Display Modes:: How to create a minor display mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
907 * Major Display Modes:: How to create a major display mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
908 * Tagging Extensions:: How to create your own tagging methods.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
909 * Creating a display:: How to insert buttons and hierarchies.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
910 @end menu
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
911
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
912 @node Minor Display Modes, Major Display Modes, Extending, Extending
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
913 @section Minor Display Modes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
914 @cindex create minor display mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
915
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
916 A @dfn{minor display mode} is a mode useful when using a specific type of
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
917 buffer. This mode might not be useful for any other kind of data or
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
918 mode, or may just be more useful that a files or buffers based mode when
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
919 working with a specialized mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
920
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
921 Examples that already exist for speedbar include RMAIL, Info, and gdb.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
922 These modes display information specific to the major mode shown in the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
923 attached frame.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
924
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
925 To enable a minor display mode in your favorite Major mode, follow these
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
926 steps. The string @samp{@var{name}} is the name of the major mode being
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
927 augmented with speedbar.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
928
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
929 @enumerate
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
930 @item
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
931 Create the keymap variable @code{@var{name}-speedbar-key-map}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
932
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
933 @item
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
934 Create a function, named whatever you like, which assigns values into your
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
935 keymap. Use this command to create the keymap before assigning
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
936 bindings:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
937
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
938 @smallexample
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
939 (setq @var{name}-speedbar-key-map (speedbar-make-specialized-keymap))
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
940 @end smallexample
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
941
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
942 This function creates a special keymap for use in speedbar.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
943
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
944 @item
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
945 Call your install function, or assign it to a hook like this:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
946
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
947 @smallexample
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
948 (if (featurep 'speedbar)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
949 (@var{name}-install-speedbar-variables)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
950 (add-hook 'speedbar-load-hook '@var{name}-install-speedbar-variables))
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
951 @end smallexample
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
952
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
953 @item
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
954 Create an easymenu compatible vector named
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
955 @code{@var{name}-speedbar-menu-items}. This will be spliced into
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
956 speedbar's control menu.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
957
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
958 @item
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
959 Create a function called @code{@var{name}-speedbar-buttons}. This function
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
960 should take one variable, which is the buffer for which it will create
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
961 buttons. At this time @code{(current-buffer)} will point to the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
962 uncleared speedbar buffer.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
963 @end enumerate
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
964
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
965 When writing @code{@var{name}-speedbar-buttons}, the first thing you will
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
966 want to do is execute a check to see if you need to re-create your
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
967 display. If it needs to be cleared, you need to erase the speedbar
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
968 buffer yourself, and start drawing buttons. @xref{Creating a display}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
969
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
970 @node Major Display Modes, Tagging Extensions, Minor Display Modes, Extending
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
971 @section Major Display Modes
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
972 @cindex create major display mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
973
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
974 Creating a @dfn{Major Display Mode} for speedbar requires authoring a keymap,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
975 an easy-menu segment, and writing several functions. These items can be
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
976 given any name, and are made the same way as in a minor display mode
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
977 (@pxref{Minor Display Modes}). Once this is done, these items need to be
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
978 registered.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
979
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
980 Because this setup activity may or may not have speedbar available when
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
981 it is being loaded, it is necessary to create an install function. This
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
982 function should create and initialize the keymap, and add your
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
983 expansions into the customization tables.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
984
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
985 @cindex @code{speedbar-make-specialized-keymap}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
986 When creating the keymap, use the function
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
987 @code{speedbar-make-specialized-keymap} instead of other keymap making
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
988 functions. This will provide you with the initial bindings needed.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
989 Some common speedbar functions you might want to bind are:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
990
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
991 @table @code
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
992 @cindex @code{speedbar-edit-line}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
993 @item speedbar-edit-line
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
994 Edit the item on the current line.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
995 @cindex @code{speedbar-expand-line}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
996 @item speedbar-expand-line
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
997 Expand the item under the cursor.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
998 With a numeric argument (@kbd{C-u}), flush cached data before expanding.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
999 @cindex @code{speedbar-contract-line}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1000 @item speedbar-contract-line
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1001 Contract the item under the cursor.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1002 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1003
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1004 @cindex @code{speedbar-line-path}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1005 These function require that function @code{speedbar-line-path} be
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1006 correctly overloaded to work.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1007
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1008 Next, register your extension like this;
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1009
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1010 @example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1011 (speedbar-add-expansion-list '("MyExtension"
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1012 MyExtension-speedbar-menu-items
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1013 MyExtension-speedbar-key-map
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1014 MyExtension-speedbar-buttons))
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1015 @end example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1016
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1017 There are no limitations to the names you use.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1018
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1019 The first parameter is the string representing your display mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1020 The second parameter is a variable name containing an easymenu compatible
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1021 menu definition. This will be stuck in the middle of speedbar's menu.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1022 The third parameter is the variable name containing the keymap we
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1023 discussed earlier.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1024 The last parameter is a function which draws buttons for your mode.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1025 This function must take two parameters. The directory currently being
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1026 displayed, and the depth at which you should start rendering buttons.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1027 The function will then draw (starting at the current cursor position)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1028 any buttons deemed necessary based on the input parameters.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1029 @xref{Creating a display}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1030
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1031 Next, you need to register function overrides. This may look something
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1032 like this:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1033
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1034 @example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1035 (speedbar-add-mode-functions-list
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1036 '("MYEXTENSION"
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1037 (speedbar-item-info . MyExtension-speedbar-item-info)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1038 (speedbar-line-path . MyExtension-speedbar-line-path)))
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1039 @end example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1040
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1041 The first element in the list is the name of you extension. The second
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1042 is an alist of functions to overload. The function to overload is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1043 first, followed by what you want called instead.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1044
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1045 For @code{speedbar-line-path} your function should take an optional DEPTH
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1046 parameter. This is the starting depth for heavily indented lines. If
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1047 it is not provided, you can derive it like this:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1048
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1049 @example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1050 (save-match-data
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1051 (if (not depth)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1052 (progn
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1053 (beginning-of-line)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1054 (looking-at "^\\([0-9]+\\):")
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1055 (setq depth (string-to-int (match-string 1)))))
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1056 @end example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1057
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1058 @noindent
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1059 where the depth is stored as invisible text at the beginning of each
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1060 line.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1061
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1062 The path returned should be the full path name of the file associated
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1063 with that line. If the cursor is on a tag, then the file containing
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1064 that tag should be returned. This is critical for built in file based
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1065 functions to work (meaning less code for you to write). If your display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1066 does not deal in files, you do not need to overload this function.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1067
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1068 @cindex @code{speedbar-item-info}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1069 The function @code{speedbar-item-info}, however, is very likely to need
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1070 overloading. This function takes no parameters and must derive a text
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1071 summary to display in the minibuffer.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1072
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1073 There are several helper functions you can use if you are going to use
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1074 built in tagging. These functions can be @code{or}ed since each one
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1075 returns non-@code{nil} if it displays a message. They are:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1076
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1077 @table @code
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1078 @cindex @code{speedbar-item-info-file-helper}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1079 @item speedbar-item-info-file-helper
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1080 This takes an optional @var{filename} parameter. You can derive your own
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1081 filename, or it will derive it using a (possibly overloaded) function
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1082 @code{speedbar-line-file}. It shows details about a file.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1083 @cindex @code{speedbar-item-info-tag-helper}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1084 @item speedbar-item-info-tag-helper
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1085 If the current line is a tag, then display information about that tag,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1086 such as its parent file, and location.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1087 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1088
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1089 Your custom function might look like this:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1090
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1091 @example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1092 (defun MyExtension-item-info ()
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1093 "Display information about the current line."
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1094 (or (speedbar-item-info-tag-helper)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1095 (message "Interesting detail.")))
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1096 @end example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1097
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1098 Once you have done all this, speedbar will show an entry in the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1099 @samp{Displays} menu declaring that your extension is available.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1100
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1101 @node Tagging Extensions, Creating a display, Major Display Modes, Extending
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1102 @section Tagging Extensions
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1103
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1104 It is possible to create new methods for tagging files in speedbar.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1105 To do this, you need two basic functions, one function to fetch the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1106 tags from a buffer, the other to insert them below the filename.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1107
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1108 @defun my-fetch-dynamic-tags file
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1109 Parse @var{file} for a list of tags. Return the list, or @code{t} if there was
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1110 an error.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1111 @end defun
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1112
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1113 The non-error return value can be anything, as long as it can be
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1114 inserted by its paired function:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1115
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1116 @defun my-insert-tag-list level lst
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1117 Insert a list of tags @var{lst} started at indentation level
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1118 @var{level}. Creates buttons for each tag, and provides any other
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1119 display information required.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1120 @end defun
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1121
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1122 @cindex @code{speedbar-create-tag-hierarchy}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1123 It is often useful to use @code{speedbar-create-tag-hierarchy} on your
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1124 token list. See that function's documentation for details on what it
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1125 requires.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1126
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1127 @cindex @code{speedbar-dynamic-tags-function-list}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1128 Once these two functions are written, modify the variable
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1129 @code{speedbar-dynamic-tags-function-list} to include your parser at the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1130 beginning, like this:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1131
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1132 @example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1133 (add-to-list 'speedbar-dynamic-tags-function-list
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1134 '(my-fetch-dynamic-tags . my-insert-tag-list))
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1135 @end example
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1136
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1137 If your parser is only good for a few types of files, make sure that it
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1138 is either a buffer local modification, or that the tag generator returns
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1139 @code{t} for non valid buffers.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1140
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1141 @node Creating a display, , Tagging Extensions, Extending
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1142 @section Creating a display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1143 @cindex creating a display
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1144
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1145 Rendering a display in speedbar is completely flexible. When your
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1146 button function is called, see @ref{Minor Display Modes}, and @ref{Major
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1147 Display Modes}, you have control to @code{insert} anything you want.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1148
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1149 The conventions allow almost anything to be inserted, but several helper
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1150 functions are provided to make it easy to create the standardized
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1151 buttons.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1152
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1153 To understand the built in functions, each `button' in speedbar consists
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1154 of four important pieces of data. The text to be displayed, token
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1155 data to be associated with the text, a function to call, and some face to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1156 display it in.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1157
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1158 When a function is provided, then that text becomes mouse activated,
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1159 meaning the mouse will highlight the text.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1160
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1161 Additionally, for data which can form deep trees, each line is given a
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1162 depth which indicates how far down the tree it is. This information is
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1163 stored in invisible text at the beginning of each line, and is used by
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1164 the navigation commands.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1165
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1166 @defun speedbar-insert-button text face mouse function &optional token prevline
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1167 This function inserts one button into the current location.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1168 @var{text} is the text to insert. @var{face} is the face in which it
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1169 will be displayed. @var{mouse} is the face to display over the text
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1170 when the mouse passes over it. @var{function} is called whenever the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1171 user clicks on the text.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1172
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1173 The optional argument @var{token} is extra data to associated with the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1174 text. Lastly @var{prevline} should be non-@code{nil} if you want this line to
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1175 appear directly after the last button which was created instead of on
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1176 the next line.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1177 @end defun
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1178
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1179 @defun speedbar-make-tag-line exp-button-type exp-button-char exp-button-function exp-button-data tag-button tag-button-function tag-button-data tag-button-face depth
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1180
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1181 Create a tag line with @var{exp-button-type} for the small expansion
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1182 button. This is the button that expands or contracts a node (if
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1183 applicable), and @var{exp-button-char} the character in it (@samp{+},
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1184 @samp{-}, @samp{?}, etc). @var{exp-button-function} is the function
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1185 to call if it's clicked on. Button types are @code{bracket},
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1186 @code{angle}, @code{curly}, @code{expandtag}, @code{statictag}, and
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1187 @code{nil}. @var{exp-button-data} is extra data attached to the text
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1188 forming the expansion button.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1189
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1190 Next, @var{tag-button} is the text of the tag.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1191 @var{tag-button-function} is the function to call if clicked on, and
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1192 @var{tag-button-data} is the data to attach to the text field (such a
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1193 tag positioning, etc). @var{tag-button-face} is a face used for this
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1194 type of tag.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1195
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1196 Lastly, @var{depth} shows the depth of expansion.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1197
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1198 This function assumes that the cursor is in the speedbar window at the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1199 position to insert a new item, and that the new item will end with a CR.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1200 @end defun
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1201
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1202 @defun speedbar-insert-generic-list level list expand-fun find-fun
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1203
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1204 At @var{level}, (the current indentation level desired) insert a generic
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1205 multi-level alist @var{list}. Associations with lists get @samp{@{+@}}
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1206 tags (to expand into more nodes) and those with positions or other data
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1207 just get a @samp{>} as the indicator. @samp{@{+@}} buttons will have the
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1208 function @var{expand-fun} and the token is the @code{cdr} list. The
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1209 token name will have the function @var{find-fun} and not token.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1210
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1211 Each element of the list can have one of these forms:
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1212
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1213 @table @code
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1214 @item (@var{name} . marker-or-number)
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1215 One tag at this level.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1216 @item (@var{name} (@var{name} . marker-or-number) (@var{name} . marker-or-number) ... )
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1217 One group of tags.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1218 @item (@var{name} marker-or-number (@var{name} . marker-or-number) ... )
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1219 One Group of tags where the group has a starting position.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1220 @end table
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1221
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1222 When you use @code{speedbar-insert-generic-list}, there are some
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1223 variables you can set buffer-locally to change the behavior. The most
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1224 obvious is @code{speedbar-tag-hierarchy-method}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1225 @xref{Tag Hierarchy Methods}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1226
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1227 @defvar speedbar-generic-list-group-expand-button-type
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1228 This is the button type used for groups of tags, whether expanded
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1229 or added in via a hierarchy method. Two good values are
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1230 @code{curly} and @code{expandtag}. Curly is the default button, and
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1231 @code{expandtag} is useful if the groups also has a position.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1232 @end defvar
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1233
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1234 @defvar speedbar-generic-list-tag-button-type
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1235 This is the button type used for a single tag.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1236 Two good values are @code{nil} and @code{statictag}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1237 @code{nil} is the default, and @code{statictag} has the same width as
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1238 @code{expandtag}.
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1239 @end defvar
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1240
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1241 @end defun
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1242
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1243 @node GNU Free Documentation License, Index, Extending, Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1244 @appendix GNU Free Documentation License
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1245 @include doclicense.texi
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1246
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1247
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1248 @node Index, , GNU Free Documentation License, Top
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1249 @comment node-name, next, previous, up
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1250 @unnumbered Concept Index
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1251 @printindex cp
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1252
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1253 @bye
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1254 @c LocalWords: speedbar's xref slowbar kbd subsubsection
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1255 @c LocalWords: keybindings
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1256
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1257 @ignore
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1258 arch-tag: e1fc85f0-1eeb-489f-a8d4-a2bfe711fa02
822bdc208d59 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1259 @end ignore