annotate man/speedbar.texi @ 38212:6b14cc47a4f2

Major rewrite. Sections Tags, Emerge, Change Log and Authors moved to maintaining.texi. Some sections reordered. Node Misc for Programs moved to just before the language-specific sections. New node Defuns contains an intro plus the old Defuns node (now renamed Moving by Defuns) as well as Imenu, Which Function, and a node Left Margin Paren to explain the convention about this. New node Parentheses now documents M-x check-parens. It contains subnodes Expressions, Moving by Parens, and Matching. Expressions and Moving by Parens contain the material formerly in Lists and List Commands, but divided up differently. The section Balanced Editing has been deleted. Most of the C indentation customization (all except c-set-style), has been replaced with a reference to the C Modes manual. Documentation now is divided into three subsections. Some rewrites in the Program Indent section about C-u TAB and C-M-q.
author Richard M. Stallman <rms@gnu.org>
date Tue, 26 Jun 2001 13:43:32 +0000
parents b0a0856aa1c1
children 62e02f5ae533
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
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
3 @c $Id: speedbar.texi,v 1.6 2000/12/05 23:06:42 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
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
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
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
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.
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
365 @item Mouse-2
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
366 @itemx Double-Mouse-1
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
367 Activate the current button. @kbd{Double-Mouse-1} is called a @dfn{double
32702
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.
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
370 @c Isn't it true that with two-button mice, the right button is Mouse-2?
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
371 @c On GNU/Linux, the right button is Mouse-3.
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
372 @item S-Mouse-2
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
373 @itemx S-Double-Mouse-1
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
374 @cindex power click
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
375 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
376 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
377 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
378 it will be opened in a new frame.
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
379 @item Mouse-3
33079
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
380 Activate the speedbar menu. The item selected affects the line clicked,
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
381 not the line where the cursor was.
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
382 @item Mouse-1 @r{(mode line)}
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
383 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
384 click, since the mouse was not clicked on anything.
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
385 @item C-Mouse-1
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
386 Buffers sub-menu. The buffer in the attached frame is switched.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
387 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
388
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
389 When the mouse moves over buttons in speedbar, details of that item
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
390 should be displayed in the minibuffer of the attached frame. Sometimes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
391 this can contain extra information such as file permissions, or tag
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
392 location.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
393
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
394 @node Displays Submenu, , Mouse Bindings, Basic Navigation
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
395 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
396 @section Displays Submenu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
397 @cindex displays submenu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
398
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
399 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
400 specialized modes make it easier to navigate the relevant pieces of
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
401 information, such as files and directories, or buffers.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
402
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
403 In the main menu, found by clicking @kbd{Mouse-3}, there is a submenu
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
404 labeled @samp{Displays}. This submenu lets you easily choose between
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
405 different display modes.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
406
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
407 The contents are modes currently loaded into emacs. By default, this
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
408 would include Files, Quick Buffers, and Buffers. Other major display
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
409 modes such as Info are loaded separately.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
410
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
411 @node File Mode, Buffer Mode, Basic Navigation, Top
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
412 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
413 @chapter File Mode
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
414 @cindex file mode
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
415
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
416 File mode displays a summary of your current directory. You can display
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
417 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
418 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
419 has some associated object file.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
420
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
421 Advanced behavior, like copying and renaming files, is also provided.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
422
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
423 @menu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
424 * Directory Display:: What the display means.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
425 * Hidden Files:: How to display hidden files.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
426 * File Keybindings:: Performing file operations.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
427 @end menu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
428
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
429 @node Directory Display, Hidden Files, File Mode, File Mode
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
430 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
431 @section Directory Display
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
432 @cindex directory display
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
433
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
434 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
435 the root directory speedbar is currently viewing. You can jump to one
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
436 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
437 wish to jump to.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
438
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
439 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
440 indicator button @samp{<+>}. Clicking the directory name makes speedbar
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
441 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
442 @samp{<+>} button will list all directories and files beneath.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
443
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
444 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
445 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
446 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
447 clicking on the @samp{[+]} symbol near the file name.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
448
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
449 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
450
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
451 @example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
452 ~/lisp/
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
453 <+> checkdoc
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
454 <+> eieio
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
455 <-> speedbar
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
456 [+] Makefile
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
457 [+] rpm.el #
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
458 [+] sb-gud.el #
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
459 [+] sb-info.el #
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
460 [+] sb-rmail.el #
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
461 [+] sb-w3.el
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
462 [-] speedbar.el *!
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
463 @{+@} Types
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
464 @{+@} Variables
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
465 @{+@} def (group)
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
466 @{+@} speedbar-
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
467 [+] speedbar.texi *
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
468 <+> testme
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
469 [+] align.el
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
470 [+] autoconf.el
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
471 @end example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
472
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
473 In this example, you can see several directories. The directory
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
474 @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
475 @file{speedbar}, the file @file{speedbar.el} has its tags exposed.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
476 These tags are extensive, and they are summarized into tag groups.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
477
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
478 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
479
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
480 @cindex file flags
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
481 @table @code
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
482 @item *
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
483 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
484 system. @xref{Version Control}.
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
485 @cindex @code{speedbar-obj-alist}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
486 @item #
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
487 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
488 variable @code{speedbar-obj-alist} defines how speedbar determines this
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
489 value.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
490 @item !
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
491 This file has an out of date object file associated with it.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
492 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
493
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
494 A Tag group is prefixed with the symbol @samp{@{+@}}. Clicking this
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
495 symbol will show all symbols that have been organized into that group.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
496 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
497 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
498 through the @code{etags} interface.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
499
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
500 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
501 tag you are looking for. Imenu keywords explicitly create groups, and
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
502 speedbar will automatically create groups if tag lists are too long.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
503
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
504 In our example, Imenu created the groups @samp{Types} and
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
505 @samp{Variables}. All remaining top-level symbols are then regrouped
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
506 based on the variable @code{speedbar-tag-hierarchy-method}. The
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
507 subgroups @samp{def} and @samp{speedbar-} are groupings where the first
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
508 few characters of the given symbols are specified in the group name.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
509 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
510 indicating that all symbols which alphabetically fall between those
33079
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
511 categories are included in that sub-group. @xref{Tag Hierarchy Methods}.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
512
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
513 @node Hidden Files, File Keybindings, Directory Display, File Mode
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
514 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
515 @section Hidden Files
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
516 @cindex hidden files
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
517
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
518 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
519 are hidden from a regular directory listing because the user is not
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
520 generally interested in them.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
521
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
522 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
523 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
524 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
525 speedbar. The first level of uninterest are files which have no
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
526 expansion method, or way of extracting tags. The second level is any
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
527 file that matches the same pattern used for completion in
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
528 @code{find-file}. This is derived from the variable
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
529 @code{completion-ignored-extensions}.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
530
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
531 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
532 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
533 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
534 files will still not be shown.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
535
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
536 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
537 determine their presence by the @samp{#} and @samp{!} file indicators.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
538 @xref{Directory Display}.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
539
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
540 @node File Keybindings, , Hidden Files, File Mode
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
541 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
542 @section File Keybindings
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
543 @cindex file keybindings
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
544
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
545 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
546 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
547 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
548 on when pulling up the menu.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
549
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
550 @table @kbd
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
551 @item U
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
552 Move the entire speedbar display up one directory.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
553 @item I
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
554 Display information in the minibuffer about this line. This is the same
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
555 information shown when navigating with @kbd{n} and @kbd{p}, or moving
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
556 the mouse over an item.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
557 @item B
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
558 Byte compile the Emacs Lisp file on this line.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
559 @item L
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
560 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
561 optionally load that.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
562 @item C
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
563 Copy the current file to some other location.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
564 @item R
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
565 Rename the current file, possibly moving it to some other location.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
566 @item D
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
567 Delete the current file.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
568 @item O
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
569 Delete the current file's object file. Use the symbols @samp{#} and
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
570 @samp{!} to determine if there is an object file available.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
571 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
572
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
573 One menu item toggles the display of all available files. By default,
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
574 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
575 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
576 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
577 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
578
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
579 @node Buffer Mode, Minor Modes, File Mode, Top
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
580 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
581 @chapter Buffer Mode
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
582 @cindex buffer mode
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
583
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
584 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
585 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
586 current list of Emacs buffers is shown.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
587
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
588 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
589 and uses the same unknown file indicator (@pxref{File Mode}).
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
590
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
591 Buffer mode does not have file operation bindings, but the following
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
592 buffer specific keybindings are available:
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
593
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
594 @table @kbd
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
595 @item k
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
596 Kill this buffer. Do not touch its file.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
597 @item r
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
598 Revert this buffer, reloading from disk.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
599 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
600
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
601 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
602 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
603 Buffers and Quick Buffers is that after one operation is performed
33079
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
604 which affects the attached frame, the display is immediately reverted to
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
605 the last displayed mode.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
606
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
607 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
608 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
609 back to File mode.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
610
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
611 @node Minor Modes, Customizing, Buffer Mode, Top
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
612 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
613 @chapter Minor Display Modes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
614 @cindex minor display modes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
615
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
616 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
617 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
618 that the files you might be interested have special properties (such as
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
619 email folders.)
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
620
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
621 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
622 will override any major display mode currently being displayed for the
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
623 duration of the specialized buffer's use. Minor display modes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
624 will follow the general rules of their major counterparts in terms of
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
625 keybindings and visuals, but will have specialized behaviors.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
626
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
627 @menu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
628 * RMAIL:: Managing folders in speedbar
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
629 * Info:: Browsing topics in speedbar
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
630 * GDB:: Managing the current stack trace in speedbar
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
631 @end menu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
632
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
633 @node RMAIL, Info, Minor Modes, Minor Modes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
634 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
635 @section RMAIL
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
636 @cindex RMAIL
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
637
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
638 When using RMAIL, speedbar will display two sections. The first is a
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
639 layer one reply button. Clicking here will initialize a reply buffer
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
640 showing only this email address in the @samp{To:} field.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
641
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
642 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
643 main RMAIL folder. The general rule is that RMAIL folders always appear
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
644 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
645 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
646 without opening them all.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
647
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
648 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
649 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
650 @samp{<M>} button. The @samp{M} stands for Move.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
651
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
652 In this way you can manage your existing RMAIL folders fairly easily
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
653 using the mouse.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
654
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
655 @node Info, GDB, RMAIL, Minor Modes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
656 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
657 @section Info
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
658 @cindex Info
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
659
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
660 When browsing Info files, all local relevant information is displayed in
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
661 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
662 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
663 jumped to by clicking the name.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
664
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
665 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
666 are available. Since these sub-topics are not examined until you click
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
667 the @samp{[+]} button, sometimes a @samp{[?]} will appear when you click on
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
668 a @samp{[+]}, indicating that there are no sub-topics.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
669
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
670 @node GDB, , Info, Minor Modes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
671 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
672 @section GDB
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
673 @cindex gdb
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
674 @cindex gud
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
675
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
676 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
677 you the current stack when the current buffer is the @file{*gdb*}
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
678 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
679 the application is stopped, the current stack will be shown.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
680
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
681 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
682 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
683 prompt.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
684
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
685 This mode has the unfortunate side-effect of breaking GDB's repeat
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
686 feature when you hit @kbd{RET} since your previous command is overridden
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
687 with a stack fetching command.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
688
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
689 @node Customizing, Extending, Minor Modes, Top
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
690 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
691 @chapter Customizing
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
692 @cindex customizing
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
693
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
694 Speedbar is highly customizable, with a plethora of control elements.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
695 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
696 important aspect of its behavior.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
697
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
698 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
699 speedbar's behavior.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
700
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
701 @table @code
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
702 @item speedbar
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
703 Basic speedbar behaviors.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
704 @item speedbar-vc
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
705 Customizations regarding version control handling.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
706 @item speedbar-faces
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
707 Customize speedbar's many colors and fonts.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
708 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
709
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
710 @menu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
711 * Frames and Faces:: Visible behaviors.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
712 * Tag Hierarchy Methods:: Customizing how tags are displayed.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
713 * Version Control:: Adding new VC detection modes.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
714 * Hooks:: The many hooks you can use.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
715 @end menu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
716
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
717 @node Frames and Faces, Tag Hierarchy Methods, Customizing, Customizing
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
718 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
719 @section Frames and Faces
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
720 @cindex faces
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
721 @cindex frame parameters
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
722
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
723 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
724 color scheme across display types. You can customize these faces using
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
725 your favorite method. They are:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
726
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
727 @table @asis
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
728 @cindex @code{speedbar-button-face}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
729 @item speedbar-button-face
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
730 Face used on expand/contract buttons.
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
731 @cindex @code{speedbar-file-face}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
732 @item speedbar-file-face
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
733 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
734 @cindex @code{speedbar-directory-face}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
735 @item speedbar-directory-face
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
736 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
737 @cindex @code{speedbar-tag-face}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
738 @item speedbar-tag-face
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
739 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
740 @cindex @code{speedbar-selected-face}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
741 @item speedbar-selected-face
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
742 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
743 file being edited.
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
744 @cindex @code{speedbar-highlight-face}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
745 @item speedbar-highlight-face
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
746 Face used when the mouse passes over a button.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
747 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
748
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
749 You can also customize speedbar's initial frame parameters. How this is
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
750 accomplished is dependent on your platform being Emacs or XEmacs.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
751
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
752 @cindex @code{speedbar-frame-parameters}, Emacs
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
753 In Emacs, change the alist @code{speedbar-frame-parameters}. This
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
754 variable is used to set up initial details. Height is also
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
755 automatically added when speedbar is created, though you can override
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
756 it.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
757
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
758 @cindex @code{speedbar-frame-plist}, XEmacs
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
759 In XEmacs, change the plist @code{speedbar-frame-plist}. This is the
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
760 XEmacs way of doing the same thing.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
761
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
762 @node Tag Hierarchy Methods, Version Control, Frames and Faces, Customizing
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
763 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
764 @section Tag Hierarchy Methods
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
765 @cindex tag hierarchy
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
766 @cindex tag groups
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
767 @cindex tag sorting
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
768
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
769 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
770 long list of entries. Imenu (which generates the tag list in Emacs)
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
771 will group some classes of items automatically. Even here, however,
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
772 some tag groups can be quite large.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
773
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
774 @cindex @code{speedbar-tag-hierarchy-method}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
775 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
776 hierarchy processor. The specific variable to use is
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
777 @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
778 can be applied in any order. They are:
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
779
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
780 @table @code
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
781 @cindex @code{speedbar-trim-words-tag-hierarchy}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
782 @item speedbar-trim-words-tag-hierarchy
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
783 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
784 @cindex @code{speedbar-prefix-group-tag-hierarchy}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
785 @item speedbar-prefix-group-tag-hierarchy
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
786 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
787 prefixes.
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
788 @cindex @code{speedbar-simple-group-tag-hierarchy}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
789 @item speedbar-simple-group-tag-hierarchy
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
790 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
791 a @samp{Tags} group.
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
792 @cindex @code{speedbar-sort-tag-hierarchy}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
793 @item speedbar-sort-tag-hierarchy
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
794 Sort all items, leaving groups on top.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
795 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
796
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
797 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
798
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
799 Some other control variables are:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
800
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
801 @table @code
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
802 @cindex @code{speedbar-tag-group-name-minimum-length}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
803 @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
804 Default value: 4.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
805
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
806 The minimum length of a prefix group name before expanding. Thus, if
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
807 the @code{speedbar-tag-hierarchy-method} includes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
808 @code{speedbar-prefix-group-tag-hierarchy} and one such group's common
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
809 characters is less than this number of characters, then the group name
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
810 will be changed to the form of:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
811
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
812 @example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
813 worda to wordb
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
814 @end example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
815
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
816 instead of just
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
817
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
818 @example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
819 word
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
820 @end example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
821
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
822 This way we won't get silly looking listings.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
823
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
824 @cindex @code{speedbar-tag-split-minimum-length}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
825 @item speedbar-tag-split-minimum-length
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
826 Default value: 20.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
827
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
828 Minimum length before we stop trying to create sub-lists in tags.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
829 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
830 sub-lists.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
831
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
832 @cindex @code{speedbar-tag-regroup-maximum-length}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
833 @item speedbar-tag-regroup-maximum-length
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
834 Default value: 10.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
835
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
836 Maximum length of submenus that are regrouped.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
837 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
838 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
839 items is reached.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
840 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
841
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
842 @node Version Control, Hooks, Tag Hierarchy Methods, Customizing
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
843 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
844 @section Version Control
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
845 @cindex version control
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
846 @cindex vc extensions
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
847
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
848 When using the file mode in speedbar, information regarding a version
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
849 control system adds small details to the display. If a file is in a
36154
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
850 version control system, and is ``checked out'' or ``locked'' locally, an
b0a0856aa1c1 Minor cleanup.
Richard M. Stallman <rms@gnu.org>
parents: 34238
diff changeset
851 asterisk @samp{*} appears at the end of the file name. In addition,
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
852 the directory name for Version Control systems are left out of the
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
853 speedbar display.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
854
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
855 @cindex @code{speedbar-directory-unshown-regexp}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
856 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
857 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
858 @code{speedbar-directory-unshown-regexp}.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
859
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
860 @cindex @code{speedbar-vc-path-enable-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
861 Next, you need to write entries for two hooks. The first is
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
862 @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
863 current directory for the group of files being checked. Your hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
864 function should take one parameter (the directory to check) and return
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
865 @code{t} if your VC method is in control here.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
866
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
867 @cindex @code{speedbar-vc-in-control-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
868 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
869 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
870 @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
871 placed near this file.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
872
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
873 @cindex @code{speedbar-vc-indicator}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
874 Lastly, you can change the VC indicator using the variable
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
875 @code{speedbar-vc-indicator}, and specify a single character string.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
876
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
877 @node Hooks, , Version Control, Customizing
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
878 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
879 @section Hooks
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
880 @cindex hooks
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
881
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
882 There are several hooks in speedbar allowing custom behaviors to be
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
883 added. Available hooks are:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
884
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
885 @table @code
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
886 @cindex @code{speedbar-visiting-file-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
887 @item speedbar-visiting-file-hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
888 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
889 @cindex @code{speedbar-visiting-tag-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
890 @item speedbar-visiting-tag-hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
891 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
892 @cindex @code{speedbar-load-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
893 @item speedbar-load-hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
894 Hooks run when speedbar is loaded.
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
895 @cindex @code{speedbar-reconfigure-keymaps-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
896 @item speedbar-reconfigure-keymaps-hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
897 Hooks run when the keymaps are regenerated. Keymaps are reconfigured
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
898 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
899 @cindex @code{speedbar-before-popup-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
900 @item speedbar-before-popup-hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
901 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
902 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
903 it.
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
904 @cindex @code{speedbar-before-delete-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
905 @item speedbar-before-delete-hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
906 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
907 @cindex @code{speedbar-mode-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
908 @item speedbar-mode-hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
909 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
910 @cindex @code{speedbar-timer-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
911 @item speedbar-timer-hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
912 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
913 @cindex @code{speedbar-scanner-reset-hook}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
914 @item speedbar-scanner-reset-hook
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
915 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
916 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
917 state data.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
918 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
919
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
920 @node Extending, Index, Customizing, Top
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
921 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
922 @chapter Extending
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
923 @cindex extending
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
924
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
925 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
926 (@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
927 different minor display modes for use with buffers handling specialized
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
928 data.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
929
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
930 These major and minor display modes are handled through an extension
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
931 system which permits specialized keymaps and menu extensions, in
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
932 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
933 range of tagging functions. The default uses @code{imenu}, but new
33079
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
934 tagging methods can be easily added. In this chapter, you will
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
935 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
936 create specialized tagging functions.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
937
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
938 @menu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
939 * Minor Display Modes:: How to create a minor display mode.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
940 * Major Display Modes:: How to create a major display mode.
33079
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
941 * Tagging Extensions:: How to create your own tagging methods.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
942 * Creating a display:: How to insert buttons and hierarchies.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
943 @end menu
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
944
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
945 @node Minor Display Modes, Major Display Modes, Extending, Extending
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
946 @section Minor Display Modes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
947 @cindex create minor display mode
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
948
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
949 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
950 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
951 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
952 working with a specialized mode.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
953
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
954 Examples that already exist for speedbar include RMAIL, Info, and gdb.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
955 These modes display information specific to the major mode shown in the
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
956 attached frame.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
957
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
958 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
959 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
960 augmented with speedbar.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
961
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
962 @enumerate
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
963 @item
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
964 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
965
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
966 @item
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
967 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
968 keymap. Use this command to create the keymap before assigning
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
969 bindings:
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
970
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
971 @smallexample
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
972 (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
973 @end smallexample
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
974
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
975 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
976
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
977 @item
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
978 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
979
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
980 @smallexample
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
981 (if (featurep 'speedbar)
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
982 (@var{name}-install-speedbar-variables)
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
983 (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
984 @end smallexample
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
985
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
986 @item
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
987 Create an easymenu compatible vector named
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
988 @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
989 speedbar's control menu.
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
990
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
991 @item
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
992 Create a function called @code{@var{name}-speedbar-buttons}. This function
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
993 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
994 buttons. At this time @code{(current-buffer)} will point to the
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
995 uncleared speedbar buffer.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
996 @end enumerate
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
997
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
998 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
999 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
1000 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
1001 buffer yourself, and start drawing buttons. @xref{Creating a display}.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1002
33079
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
1003 @node Major Display Modes, Tagging Extensions, Minor Display Modes, Extending
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1004 @section Major Display Modes
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1005 @cindex create major display mode
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1006
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1007 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
1008 an easy-menu segment, and writing several functions. These items can be
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1009 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
1010 (@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
1011 registered.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1012
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1013 Because this setup activity may or may not have speedbar available when
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1014 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
1015 function should create and initialize the keymap, and add your
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1016 expansions into the customization tables.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1017
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1018 @cindex @code{speedbar-make-specialized-keymap}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1019 When creating the keymap, use the function
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1020 @code{speedbar-make-specialized-keymap} instead of other keymap making
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1021 functions. This will provide you with the initial bindings needed.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1022 Some common speedbar functions you might want to bind are:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1023
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1024 @table @code
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1025 @cindex @code{speedbar-edit-line}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1026 @item speedbar-edit-line
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1027 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
1028 @cindex @code{speedbar-expand-line}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1029 @item speedbar-expand-line
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1030 Expand the item under the cursor.
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1031 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
1032 @cindex @code{speedbar-contract-line}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1033 @item speedbar-contract-line
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1034 Contract the item under the cursor.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1035 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1036
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1037 @cindex @code{speedbar-line-path}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1038 These function require that function @code{speedbar-line-path} be
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1039 correctly overloaded to work.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1040
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1041 Next, register your extension like this;
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1042
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1043 @example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1044 (speedbar-add-expansion-list '("MyExtension"
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1045 MyExtension-speedbar-menu-items
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1046 MyExtension-speedbar-key-map
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1047 MyExtension-speedbar-buttons))
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1048 @end example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1049
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1050 There are no limitations to the names you use.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1051
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1052 The first parameter is the string representing your display mode.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1053 The second parameter is a variable name containing an easymenu compatible
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1054 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
1055 The third parameter is the variable name containing the keymap we
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1056 discussed earlier.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1057 The last parameter is a function which draws buttons for your mode.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1058 This function must take two parameters. The directory currently being
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1059 displayed, and the depth at which you should start rendering buttons.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1060 The function will then draw (starting at the current cursor position)
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1061 any buttons deemed necessary based on the input parameters.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1062 @xref{Creating a display}.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1063
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1064 Next, you need to register function overrides. This may look something
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1065 like this:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1066
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1067 @example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1068 (speedbar-add-mode-functions-list
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1069 '("MYEXTENSION"
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1070 (speedbar-item-info . MyExtension-speedbar-item-info)
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1071 (speedbar-line-path . MyExtension-speedbar-line-path)))
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1072 @end example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1073
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1074 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
1075 is an alist of functions to overload. The function to overload is
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1076 first, followed by what you want called instead.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1077
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1078 For @code{speedbar-line-path} your function should take an optional DEPTH
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1079 parameter. This is the starting depth for heavily indented lines. If
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1080 it is not provided, you can derive it like this:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1081
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1082 @example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1083 (save-match-data
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1084 (if (not depth)
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1085 (progn
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1086 (beginning-of-line)
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1087 (looking-at "^\\([0-9]+\\):")
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1088 (setq depth (string-to-int (match-string 1)))))
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1089 @end example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1090
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1091 @noindent
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1092 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
1093 line.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1094
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1095 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
1096 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
1097 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
1098 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
1099 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
1100
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1101 @cindex @code{speedbar-item-info}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1102 The function @code{speedbar-item-info}, however, is very likely to need
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1103 overloading. This function takes no parameters and must derive a text
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1104 summary to display in the minibuffer.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1105
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1106 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
1107 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
1108 returns non-nil if it displays a message. They are:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1109
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1110 @table @code
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1111 @cindex @code{speedbar-item-info-file-helper}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1112 @item speedbar-item-info-file-helper
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1113 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
1114 filename, or it will derive it using a (possibly overloaded) function
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1115 @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
1116 @cindex @code{speedbar-item-info-tag-helper}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1117 @item speedbar-item-info-tag-helper
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1118 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
1119 such as its parent file, and location.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1120 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1121
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1122 Your custom function might look like this:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1123
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1124 @example
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1125 (defun MyExtension-item-info ()
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1126 "Display information about the current line."
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1127 (or (speedbar-item-info-tag-helper)
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1128 (message "Interesting detail.")))
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1129 @end example
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1130
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1131 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
1132 @samp{Displays} menu declaring that your extension is available.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1133
33079
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
1134 @node Tagging Extensions, Creating a display, Major Display Modes, Extending
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
1135 @section Tagging Extensions
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1136
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1137 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
1138 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
1139 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
1140
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1141 @defun my-fetch-dynamic-tags file
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1142 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
1143 an error.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1144 @end defun
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1145
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1146 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
1147 inserted by its paired function:
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1148
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1149 @defun my-insert-tag-list level lst
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1150 Insert a list of tags @var{lst} started at indentation level
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1151 @var{level}. Creates buttons for each tag, and provides any other
33079
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
1152 display information required.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1153 @end defun
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1154
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1155 @cindex @code{speedbar-create-tag-hierarchy}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1156 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
1157 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
1158 requires.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1159
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1160 @cindex @code{speedbar-dynamic-tags-function-list}
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1161 Once these two functions are written, modify the variable
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1162 @code{speedbar-dynamic-tags-function-list} to include your parser at the
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1163 beginning, like this:
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1164
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1165 @example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1166 (add-to-list 'speedbar-dynamic-tags-function-list
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1167 '(my-fetch-dynamic-tags . my-insert-tag-list))
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1168 @end example
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1169
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1170 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
1171 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
1172 @code{t} for non valid buffers.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1173
33079
678eca93205c Speling &c.
Dave Love <fx@gnu.org>
parents: 32702
diff changeset
1174 @node Creating a display, , Tagging Extensions, Extending
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1175 @section Creating a display
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1176 @cindex creating a display
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1177
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1178 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
1179 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
1180 Display Modes}, you have control to @code{insert} anything you want.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1181
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1182 The conventions allow almost anything to be inserted, but several helper
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1183 functions are provided to make it easy to create the standardized
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1184 buttons.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1185
34238
17ee7879735a Fix double quotes.
Dave Love <fx@gnu.org>
parents: 34235
diff changeset
1186 To understand the built in functions, each `button' in speedbar consists
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1187 of four important pieces of data. The text to be displayed, token
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1188 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
1189 display it in.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1190
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1191 When a function is provided, then that text becomes mouse activated,
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1192 meaning the mouse will highlight the text.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1193
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1194 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
1195 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
1196 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
1197 the navigation commands.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1198
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1199 @defun speedbar-insert-button text face mouse function &optional token prevline
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1200 This function inserts one button into the current location.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1201 @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
1202 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
1203 when the mouse passes over it. @var{function} is called whenever the
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1204 user clicks on the text.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1205
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1206 The optional argument @var{token} is extra data to associated with the
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1207 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
1208 appear directly after the last button which was created instead of on
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1209 the next line.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1210 @end defun
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1211
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1212 @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
1213
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1214 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
1215 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
1216 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
1217 @samp{-}, @samp{?},
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1218 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
1219 on. Button types are @code{'bracket}, @code{'angle}, @code{'curly},
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1220 @code{'expandtag}, @code{'statictag}, or nil. @var{exp-button-data} is
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1221 extra data attached to the text forming the expansion button.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1222
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1223 Next, @var{tag-button} is the text of the tag.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1224 @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
1225 @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
1226 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
1227 type of tag.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1228
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1229 Lastly, @var{depth} shows the depth of expansion.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1230
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1231 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
1232 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
1233 @end defun
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1234
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1235 @defun speedbar-insert-generic-list level list expand-fun find-fun
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1236
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1237 At @var{level}, (the current indentation level desired) insert a generic
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1238 multi-level alist @var{list}. Associations with lists get @samp{@{+@}}
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1239 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
1240 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
1241 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
1242 token name will have the function @var{find-fun} and not token.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1243
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1244 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
1245
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1246 @table @code
32702
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1247 @item (@var{name} . marker-or-number)
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1248 One tag at this level.
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1249 @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
1250 One group of tags.
788c194fbcd1 Correct typos, fix markup, add index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 32674
diff changeset
1251 @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
1252 One Group of tags where the group has a starting position.
32674
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1253 @end table
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1254
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1255 When you use @code{speedbar-insert-generic-list}, there are some
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1256 variables you can set buffer-locally to change the behavior. The most
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1257 obvious is @code{speedbar-tag-hierarchy-method}.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1258 @xref{Tag Hierarchy Methods}.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1259
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1260 @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
1261 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
1262 or added in via a hierarchy method. Two good values are
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1263 @code{'curly} and @code{'expandtag}. Curly is the default button, and
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1264 @code{'expandtag} is useful if the groups also has a position.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1265 @end defvar
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1266
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1267 @defvar speedbar-generic-list-tag-button-type
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1268 This is the button type used for a single tag.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1269 Two good values are @code{nil} and @code{'statictag}.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1270 @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
1271 @code{'expandtag}.
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1272 @end defvar
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1273
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1274 @end defun
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1275
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1276 @node Index, , Extending, Top
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1277 @comment node-name, next, previous, up
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1278 @unnumbered Concept Index
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1279 @printindex cp
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1280
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1281 @bye
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1282 @c LocalWords: speedbar's xref Keybindings slowbar kbd subsubsection
4cbd3d907ee5 First Edition.
Eric M. Ludlam <zappo@gnu.org>
parents:
diff changeset
1283 @c LocalWords: keybindings