annotate man/speedbar.texi @ 34674:79dde983f45b

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