Mercurial > emacs
annotate doc/misc/sem-user.texi @ 112384:f5af01a13248
Give read-expression-history a doc.
* lisp/simple.el (read-expression-history): Remove, it's in minibuf.c.
* src/minibuf.c (syms_of_minibuf) <read-expression-history>:
Give it a doc string.
* src/globals.h: Add Vread_expression_history.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Wed, 19 Jan 2011 22:40:36 -0800 |
parents | ef719132ddfa |
children |
rev | line source |
---|---|
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
1 @c This file is included by semantic.texi |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
2 |
109264 | 3 @c Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, |
112218
376148b31b5e
Add 2011 to FSF/AIST copyright years.
Glenn Morris <rgm@gnu.org>
parents:
109264
diff
changeset
|
4 @c 2010, 2011 Free Software Foundation, Inc. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
5 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
6 @c Permission is granted to copy, distribute and/or modify this |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
7 @c document under the terms of the GNU Free Documentation License, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
8 @c Version 1.3 or any later version published by the Free Software |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
9 @c Foundation; with no Invariant Sections, no Front-Cover Texts, and |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
10 @c no Back-Cover Texts. A copy of the license is included in the |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
11 @c section entitled ``GNU Free Documentation License''. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
12 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
13 You can begin using @semantic{} by enabling Semantic mode, a global |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
14 minor mode: type @kbd{M-x semantic-mode}, or open the @samp{Tools} |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
15 menu and click on the menu item named @samp{Source Code Parsers |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
16 (Semantic)}. @xref{Semantic mode}. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
17 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
18 When Semantic mode is turned on, Emacs automatically parses each file |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
19 you visit. You can then use @semantic{} user commands in those |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
20 buffers (@pxref{Semantic mode user commands}). You can also choose to |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
21 enable a number of ``helper'' minor modes for saving tags, displaying |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
22 tag information, and so forth. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
23 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
24 To enable Semantic mode each time you start Emacs, add the line |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
25 @code{(semantic-mode 1)} to your initialization file. @xref{Init |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
26 File,,,emacs,Emacs manual}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
27 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
28 @menu |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
29 * Semantic mode:: Global minor mode for @semantic{}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
30 * SemanticDB:: Caching parsed buffers between sessions. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
31 * Idle Scheduler:: @semantic{} actions that occur when idle. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
32 * Analyzer:: Semantic tools for analyzing code. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
33 * Speedbar:: Using @semantic{} with the Speedbar. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
34 * SymRef:: Interface to symbol reference tools. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
35 * MRU Bookmarks:: Managing tag ``bookmarks''. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
36 * Sticky Func Mode:: Showing declarations in the header line. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
37 * Highlight Func Mode:: Highlight the current function declaration. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
38 * Tag Decoration Mode:: Minor mode to decorate tags. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
39 @end menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
40 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
41 @node Semantic mode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
42 @section Semantic mode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
43 @cindex Semantic mode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
44 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
45 Semantic mode is a global minor mode for @semantic{} as a whole. When |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
46 enabled, each file you visit is automatically parsed, provided its |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
47 major mode is specified in the variable |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
48 @code{semantic-new-buffer-setup-functions} (the default value of this |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
49 variable sets up parsing for all the parsers included with Emacs, but |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
50 you may add to it if you install additional parsers). |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
51 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
52 In each parser-enabled buffer, a number of @semantic{} commands are |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
53 available for navigating, querying, and editing source code. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
54 @xref{Semantic mode user commands}. Enabling Semantic mode also |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
55 installs a @samp{Development} menu on the menu-bar, with many of these |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
56 commands. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
57 |
106076
e142b685cd90
* semantic.texi (Semantic Internals, Glossary):
Juanma Barranquero <lekktu@gmail.com>
parents:
106061
diff
changeset
|
58 In addition, enabling Semantic mode turns on certain auxiliary global |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
59 minor modes. The variable @code{semantic-default-submodes} determines |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
60 which auxiliary modes are enabled; the defaults are SemanticDB mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
61 (@pxref{SemanticDB}) and Global Semantic Idle Scheduler mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
62 (@pxref{Idle Scheduler}). You can also toggle the auxiliary minor |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
63 modes separately, using their mode functions (e.g. @kbd{M-x |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
64 semanticdb-minor-mode}), or via the @samp{Development} menu. The |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
65 various auxiliary minor modes are described in the following sections. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
66 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
67 @defvar semantic-new-buffer-setup-functions |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
68 The value of this variable is an alist of functions to call for |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
69 setting up @semantic{} parsing in the buffer. Each element has the |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
70 form @code{(@var{mode} . @var{fn})}, where @var{mode} is a value of |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
71 @code{major-mode} for the buffer and @var{fn} is the corresponding |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
72 function for setting up the parser. @var{fn} is called, with no |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
73 arguments, after the major mode is initialized (and after the mode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
74 hooks have been run). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
75 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
76 The default value enables @semantic{} for all supported major modes |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
77 (i.e., C, C++, Scheme, Javascript, Java, HTML, SRecode, and Make), but |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
78 you can remove modes from this list if you don't want to use |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
79 @semantic{} with them. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
80 @end defvar |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
81 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
82 @defvar semantic-default-submodes |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
83 The value of this variable is a list of symbols, specifying the |
106076
e142b685cd90
* semantic.texi (Semantic Internals, Glossary):
Juanma Barranquero <lekktu@gmail.com>
parents:
106061
diff
changeset
|
84 auxiliary minor modes to enable when enabling Semantic mode. The |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
85 valid mode symbols are: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
86 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
87 @itemize |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
88 @item @code{global-semantic-idle-scheduler-mode} (@pxref{Idle Scheduler}). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
89 @item @code{global-semanticdb-minor-mode} (@pxref{SemanticDB}). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
90 @item @code{global-semantic-idle-summary-mode} (@pxref{Idle Summary Mode}). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
91 @item @code{global-semantic-idle-completions-mode} (@pxref{Idle Completions Mode}). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
92 @item @code{global-semantic-highlight-func-mode} (@pxref{Highlight Func Mode}). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
93 @item @code{global-semantic-decoration-mode} (@pxref{Tag Decoration Mode}). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
94 @item @code{global-semantic-stickyfunc-mode} (@pxref{Sticky Func Mode}). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
95 @item @code{global-semantic-mru-bookmark-mode} (@pxref{MRU Bookmarks}). |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
96 @end itemize |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
97 @end defvar |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
98 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
99 @menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
100 * Semantic mode user commands:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
101 @end menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
102 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
103 @node Semantic mode user commands |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
104 @subsection Semantic mode user commands |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
105 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
106 Semantic mode provides a number of commands for navigating, querying, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
107 and editing source code in a language-aware manner. These commands |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
108 generally act on @dfn{tags}, which are the source-code units deemed |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
109 ``important'' by the present programming language (e.g. functions in |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
110 the C programming language). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
111 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
112 These commands may be used in any buffer that has been parsed by |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
113 @semantic{}. Several of them prompt for a tag name using the |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
114 minibuffer; here, the @kbd{TAB} key can be used to complete tag names. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
115 Others act on the @dfn{current tag}, meaning the tag at (or around) |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
116 point. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
117 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
118 @table @kbd |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
119 @item C-c , j |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
120 Prompt for a tag defined in the current file, and move point to it |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
121 (@code{semantic-complete-jump-local}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
122 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
123 @item C-c , J |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
124 Prompt for a tag defined in any file that Emacs has parsed, and move |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
125 point to it (@code{semantic-complete-jump}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
126 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
127 @item C-c , l |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
128 Display a list of the possible completions of the current tag |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
129 (@code{semantic-analyze-possible-completions}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
130 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
131 @item C-c , g |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
132 Prompt for a tag, and display a list of tags that call it |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
133 (@code{semantic-symref-symbol}). This relies on the presence of an |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
134 external symbol reference tool. @xref{SymRef}. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
135 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
136 @item C-c , G |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
137 Display a list of tags that call the current tag |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
138 (@code{semantic-symref}). This relies on the presence of an external |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
139 symbol reference tool. @xref{SymRef}. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
140 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
141 @item C-c , p |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
142 Move point to the previous tag (@code{senator-previous-tag}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
143 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
144 @item C-c , n |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
145 Move point to the next tag (@code{senator-next-tag}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
146 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
147 @item C-c , u |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
148 Move point ``up'' one reference (@code{senator-go-to-up-reference}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
149 The meaning of ``up'' is language-dependent; in C++, for instance, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
150 this means moving to the parent of the current tag. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
151 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
152 @item C-c, @key{SPC} |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
153 Display a list of possible completions for the symbol at point |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
154 (@code{semantic-complete-analyze-inline}). This also activates a |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
155 special set of keybindings for choosing a completion: @key{RET} |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
156 accepts the current completion, @kbd{M-n} and @kbd{M-p} cycle through |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
157 possible completions, @key{TAB} completes as far as possible and then |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
158 cycles, and @kbd{C-g} or any other key aborts the completion. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
159 @xref{Smart Completion}. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
160 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
161 @item C-c , C-w |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
162 Kill the current tag (@code{senator-kill-tag}). This removes the text |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
163 for that tag, placing it in the kill ring. You can retrieve the text |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
164 with @kbd{C-y}. This also places the tag in the @dfn{tag ring}, so |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
165 that you can yank it with @kbd{\C-c,\C-y}, below. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
166 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
167 @item C-c , M-w |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
168 Copy the current tag into the kill ring as well as the tag ring |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
169 (@code{senator-copy-tag}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
170 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
171 @item C-c , C-y |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
172 Yank a tag from the tag ring (@code{senator-yank-tag}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
173 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
174 @item C-c , r |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
175 Copy the current tag into a register |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
176 (@code{senator-copy-tag-to-register}). With an optional argument, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
177 kill it as well. This allows you to insert or jump to that tag with |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
178 the usual register commands. @xref{Registers,,,emacs,Emacs manual}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
179 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
180 @item \C-c , @kbd{up} |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
181 Transpose the current tag with the previous one |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
182 (@code{senator-transpose-tags-up}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
183 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
184 @item C-c , @kbd{down} |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
185 Transpose the current tag with the next one |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
186 (@code{senator-transpose-tags-down}). |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
187 @end table |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
188 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
189 @node SemanticDB |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
190 @section Semantic Database |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
191 @cindex SemanticDB |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
192 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
193 The Semantic Database (SemanticDB) caches the results of parsing |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
194 source code files. This data can be saved to disk when you exit |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
195 Emacs, and reloaded automatically when you subsequently revisit the |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
196 same source code files. This saves time by eliminating the need to |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
197 re-parse unmodified files. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
198 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
199 SemanticDB also provides an @acronym{API} that programs can use to |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
200 acquire information about source code tags. This information can be |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
201 accessed without loading the original the source files into memory. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
202 It can also be used to create alternate ``back-ends'' for storing tag |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
203 information in alternative on-disk formats. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
204 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
205 By default, SemanticDB is enabled together with Semantic mode. To |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
206 disable it, remove it from @code{semantic-default-submodes} |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
207 (@pxref{Semantic mode}). You can also enable or disable SemanticDB |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
208 with @kbd{M-x global-semanticdb-minor-mode}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
209 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
210 @deffn Command global-semanticdb-minor-mode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
211 Toggle SemanticDB mode. When enabled, any source code parsed by |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
212 @semantic{} is cached in a database. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
213 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
214 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
215 SemanticDB offers a large number of customizable options, which are |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
216 described in the following subsections. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
217 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
218 @menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
219 * Semanticdb Tag Storage:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
220 * Semanticdb Search Configuration:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
221 * Changing Backends:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
222 * Create System Databases:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
223 @end menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
224 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
225 @node Semanticdb Tag Storage |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
226 @subsection Semanticdb Tag Storage |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
227 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
228 Each time you exit Emacs, any data cached by SemanticDB is saved in |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
229 the directory @file{.emacs.d/semanticdb/}, located in your home |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
230 directory. Within this directory, the cache data is written into a |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
231 set of files according to a SemanticDB-specific filename convention. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
232 If the SemanticDB directory does not exist, Emacs first asks if you |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
233 want to create it. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
234 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
235 You can change the name of the SemanticDB directory by customizing the |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
236 variable @code{semanticdb-default-save-directory}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
237 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
238 @deffn Option semanticdb-default-save-directory |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
239 The name of the directory where SemanticDB cache files are saved. If |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
240 the value is @code{nil}, SemanticDB saves its data into a single file, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
241 in the current directory, whose filename is given by |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
242 @code{semanticdb-default-file-name}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
243 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
244 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
245 @deffn Option semanticdb-default-file-name |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
246 The name of a cache file in which to save SemanticDB, when |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
247 @code{semanticdb-default-save-directory} is @code{nil}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
248 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
249 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
250 You can force SemanticDB to save the data from only certain files, or |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
251 suppress saving altogether, by customizing |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
252 @code{semanticdb-persistent-path}: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
253 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
254 @deffn Option semanticdb-persistent-path |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
255 List of valid paths for SemanticDB to cache. Each element should be a |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
256 directory name (a string); then the parse data from any file in that |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
257 directory is saved. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
258 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
259 As a special exception, the value of this variable can be a list |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
260 containing a single symbol: @code{never}, @code{always}, or |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
261 @code{project}. The symbol @code{never} disables saving anywhere; |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
262 @code{always} enables saving everywhere; and @code{project} enables |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
263 saving directory based on the variable |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
264 @code{semanticdb-project-predicate-functions}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
265 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
266 The default value is @code{(always)}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
267 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
268 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
269 @defvar semanticdb-project-predicate-functions |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
270 The value of this variable is a list of predicates for indicating that |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
271 a directory belongs to a project. This list is used when the value of |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
272 @code{semanticdb-persistent-path} is @code{(project)}. If the list is |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
273 empty, all paths are considered valid. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
274 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
275 Project management packages, such as EDE (@pxref{Top,,,ede,EDE |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
276 manual}), may add their own predicates with @dfn{add-hook} to this |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
277 variable. This allows SemanticDB to save tag caches in directories |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
278 controlled by them. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
279 @end defvar |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
280 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
281 @deffn Option semanticdb-save-database-hooks |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
282 Abnormal hook run after a database is saved. Each function is called |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
283 with one argument, the object representing the database recently |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
284 written. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
285 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
286 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
287 @node Semanticdb Search Configuration |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
288 @subsection Semanticdb Search Configuration |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
289 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
290 When another part of @semantic{} (or another Emacs package using |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
291 @semantic{}) queries the SemanticDB library for a source code tag, the |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
292 search need not be limited to tags defined within the current file. |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
293 It can include tags defined elsewhere, such as @dfn{header files} |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
294 referenced by the current file (e.g., via the C/C++ @code{#include} |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
295 directive). While performing the search, the SemanticDB library may |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
296 even automatically visit other files and parse them, if necessary. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
297 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
298 The variable @code{semanticdb-find-default-throttle} determines how |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
299 aggressively SemanticDB searches for source code tags. @xref{Search |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
300 Throttle}. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
301 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
302 The details of SemanticDB searches can vary from language to |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
303 language. In C/C++ code, for example, SemanticDB distinguishes |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
304 between @dfn{project header files} and @dfn{system header files}, |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
305 based on whether the @code{#include} directive uses the @code{""} or |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
306 @code{<>} filename delimiter. SemanticDB looks for system header in |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
307 the @dfn{system include path} (@pxref{Include paths}). |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
308 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
309 @menu |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
310 * Search Throttle:: Controlling how semanticdb searches occur. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
311 * Semanticdb Roots:: Specifying the root of different projects. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
312 * Include paths:: Specifying the directories to search. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
313 * Semanticdb search debugging commands:: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
314 @end menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
315 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
316 @node Search Throttle |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
317 @subsubsection SemanticDB Search Throttle |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
318 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
319 The SemanticDB @dfn{search throttle} determines how aggressive |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
320 SemanticDB searches are. It is controlled by the variable |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
321 @code{semanticdb-find-default-throttle}. The default value of this |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
322 variable aims for maximum accuracy, at the expense of search time. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
323 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
324 Other parts of the @semantic{} package, particularly the different |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
325 language parsers, may change the value of |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
326 @code{semanticdb-find-default-throttle}. You can override its value, |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
327 for a given major mode, like this: |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
328 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
329 @example |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
330 (setq-mode-local c-mode |
109264 | 331 semanticdb-find-default-throttle |
332 '(project unloaded system recursive)) | |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
333 @end example |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
334 |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
335 @defvar semanticdb-find-default-throttle |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
336 The default throttle for @code{semanticdb-find} routines. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
337 The throttle controls how detailed the list of database |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
338 tables is for a symbol lookup. The value is a list with |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
339 the following keys: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
340 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
341 @table @code |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
342 @item file |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
343 The file the search is being performed from. This option is here for |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
344 completeness only, and is assumed to always be on. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
345 @item local |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
346 Tables from the same local directory are included. This includes |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
347 files directly referenced by a file name which might be in a different |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
348 directory. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
349 @item project |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
350 Tables from the same local project are included If @code{project} is |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
351 specified, then @code{local} is assumed. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
352 @item unloaded |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
353 If a table is not in memory, load it. If it is not cached on disk |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
354 either, get the source, parse it, and create the table. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
355 @item system |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
356 Tables from system databases. These are specifically tables |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
357 from system header files, or language equivalent. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
358 @item recursive |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
359 For include based searches, includes tables referenced by included |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
360 files. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
361 @item omniscience |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
362 Included system databases which are omniscience, or somehow know |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
363 everything. Omniscience databases are found in |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
364 @code{semanticdb-project-system-databases}. The Emacs Lisp system |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
365 @var{db} is an omniscience database. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
366 @end table |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
367 @end defvar |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
368 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
369 @node Semanticdb Roots |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
370 @subsubsection SemanticDB project roots |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
371 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
372 The @code{project} setting in the SemanticDB search throttle |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
373 (@pxref{Search Throttle}) tells SemanticDB to search within the |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
374 current single code project. For @semantic{}'s point of view, |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
375 @dfn{projects} are determined by their top-level directories, or |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
376 @dfn{project roots}; every subdirectory of a project root is |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
377 considered part of the same project. |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
378 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
379 If you use EDE for project management, it will set the project roots |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
380 automatically. @xref{Top,,,ede,EDE manual}. You can also specify |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
381 them yourself. |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
382 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
383 @deffn Option semanticdb-project-roots |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
384 The value of this variable is a list of directories (strings) that are |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
385 project roots. All subdirectories of a project root are considered |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
386 part of the same project. This variable can be overriden by |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
387 @code{semanticdb-project-root-functions}. |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
388 @end deffn |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
389 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
390 @defvar semanticdb-project-root-functions |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
391 The value of this variable is a list of functions to determine a given |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
392 directory's project root. These functions are called, one at a time, |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
393 with one argument (the directory name), and must return either |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
394 @code{nil}, a string (the project root), or a list of strings |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
395 (multiple project roots, for complex systems). The first |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
396 non-@code{nil} return value, if any, is taken to be the project root, |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
397 overriding @code{semanticdb-project-roots}. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
398 @end defvar |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
399 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
400 @node Include paths |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
401 @subsubsection Include Paths |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
402 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
403 System include paths are standard locations to find source code tags, |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
404 such as the @dfn{header files} in @file{/usr/include} and its |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
405 subdirectories on Unix-like operating systems. |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
406 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
407 You can add and remove system include paths using the following |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
408 commands: |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
409 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
410 @deffn Command semantic-add-system-include dir &optional mode |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
411 Prompts for a directory, @var{dir}, and add it as a system include |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
412 path for the current major mode. When called non-interactively, the |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
413 major mode can be specified with the @var{mode} argument. |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
414 @end deffn |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
415 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
416 @deffn Command semantic-remove-system-include dir &optional mode |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
417 Prompt for a directory, @var{dir}, and remove it from the system |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
418 include path for the current major mode (or @var{mode}). |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
419 @end deffn |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
420 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
421 @deffn Command semantic-customize-system-include-path &optional mode |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
422 Customize the system include path for the current major mode (or |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
423 @var{mode}). |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
424 @end deffn |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
425 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
426 @defun semanticdb-implied-include-tags |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
427 Include tags implied for all files of a given mode. You can set this |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
428 variable with @code{defvar-mode-local} for a particular mode so that |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
429 any symbols that exist for all files for that mode are included. |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
430 @end defun |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
431 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
432 @c @xref{Search Optimization}, for more information on include paths. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
433 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
434 @node Semanticdb search debugging commands |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
435 @subsubsection Semanticdb search debugging commands |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
436 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
437 You can use @kbd{M-x semanticdb-dump-all-table-summary} to see the |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
438 list of databases that will be searched from a given buffer. You can |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
439 follow up with @kbd{M-x semanticdb-find-test-translate-path} to then |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
440 make sure specific tables from the path are discovered correctly. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
441 Alternately, you can get a list of include files @semantic{} |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
442 encountered, but could not find on disk using @kbd{M-x |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
443 semanticdb-find-adebug-lost-includes}. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
444 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
445 @deffn Command semanticdb-dump-all-table-summary |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
446 Dump a list of all databases in Emacs memory. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
447 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
448 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
449 @deffn Command semanticdb-find-test-translate-path &optional arg |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
450 Call and output results of @dfn{semanticdb-find-translate-path}. In |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
451 the displayed buffer, you can type @key{SPC} to expand items. With |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
452 @var{arg} non-@code{nil}, specify a @var{brutish} translation. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
453 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
454 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
455 @deffn Command semanticdb-find-adebug-lost-includes |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
456 Translate the current path, then display the lost includes. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
457 Examines the variable @code{semanticdb-find-lost-includes}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
458 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
459 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
460 Lastly, you can test an explicit search term using this command: |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
461 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
462 @deffn Command semantic-adebug-searchdb regex |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
463 Search the semanticdb for @var{regex} for the current buffer. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
464 Display the results as a debug list. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
465 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
466 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
467 @node Changing Backends |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
468 @subsection Changing Backends |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
469 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
470 If you want to use some other form of backend, you can use this |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
471 variable to choose which back end class to use for your general tag |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
472 storage. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
473 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
474 The default is to save databases in flat files. Alternatively, you |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
475 could write a new database backend that stores tags into a database, |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
476 or other storage system. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
477 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
478 @defvar semanticdb-new-database-class |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
479 The default type of database created for new files. This can be |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
480 changed on a per file basis, so that some directories are saved using |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
481 one mechanism, and some directories via a different mechanism. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
482 @end defvar |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
483 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
484 @node Create System Databases |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
485 @subsection Create System Databases |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
486 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
487 If your supported language stores the system libraries in readily |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
488 available parsable source code, you can pre-generate database files |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
489 for them once, which will be used over and over for tools such as |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
490 summary-mode, or the analyzer. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
491 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
492 @deffn Command semanticdb-create-ebrowse-database dir |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
493 Create an @var{ebrowse} database for directory @var{dir}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
494 The database file is stored in ~/.semanticdb, or whichever directory |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
495 is specified by @code{semanticdb-default-system-save-directory}. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
496 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
497 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
498 @node Idle Scheduler |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
499 @section Idle Scheduler |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
500 @cindex Idle Scheduler |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
501 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
502 The @dfn{Semantic Idle Scheduler} is a part of @semantic{} that |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
503 performs various operations while Emacs is waiting for user input |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
504 (idle time). Its primary job is to perform buffer parsing during idle |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
505 time. You can also use the Idle Scheduler to display function |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
506 prototypes (@pxref{Idle Summary Mode}) or symbol completions |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
507 (@pxref{Idle Completions Mode}). |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
508 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
509 @deffn Command global-semantic-idle-scheduler-mode &optional arg |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
510 This command toggles Semantic Idle Scheduler mode in every |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
511 @semantic{}-enabled buffer. This minor mode ensures that the buffer |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
512 is automatically reparsed whenever Emacs is idle. If there is |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
513 additional idle time, it runs jobs scheduled by other parts of |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
514 @semantic{}, such as Semantic Idle Summary mode (@pxref{Idle Summary |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
515 Mode}) and Semantic Idle Completions mode (@pxref{Idle Completions |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
516 Mode}). |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
517 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
518 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
519 @deffn Option semantic-idle-scheduler-idle-time |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
520 The value of this variable is the amount of idle time, in seconds, |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
521 before the Semantic idle scheduler activates. The default is 1. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
522 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
523 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
524 @deffn Option semantic-idle-scheduler-verbose-flag |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
525 If this variable is non-@code{nil}, the idle scheduler prints verbose |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
526 messages while running, which are useful for debugging. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
527 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
528 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
529 @menu |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
530 * Reparsing Options:: Reparsing the current buffer in idle time. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
531 * Idle Working Options:: Options for extra work done at idle time. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
532 * Debugging Idle Time Issues:: How to produce good bug reports. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
533 * Idle Summary Mode:: Display prototype of symbol under cursor. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
534 * Idle Completions Mode:: Smart completion pop-up help. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
535 @end menu |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
536 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
537 @node Reparsing Options |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
538 @subsection Reparsing Options |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
539 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
540 When activated during idle time, the Semantic idle scheduler |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
541 automatically reparses all buffers that need it. Any arriving user |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
542 input cancels this, returning Emacs to its normal editing behavior. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
543 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
544 @deffn Option semantic-idle-scheduler-max-buffer-size |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
545 Maximum size in bytes of buffers automatically reparsed. If this |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
546 value is less than or equal to @var{0}, buffers are automatically |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
547 reparsed regardless of their size. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
548 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
549 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
550 @deffn Option semantic-idle-scheduler-no-working-message |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
551 If non-@code{nil}, disable display of working messages whie reparsing. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
552 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
553 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
554 @deffn Option semantic-idle-scheduler-working-in-modeline-flag |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
555 If non-@code{nil}, show working messages in the mode line. Normally, |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
556 re-parsing shows messages in the minibuffer; this moves the parse |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
557 message to the modeline instead. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
558 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
559 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
560 @defvar semantic-before-idle-scheduler-reparse-hook |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
561 This normal hook is run just before the idle scheduler begins |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
562 reparsing. If any hook function throws an error, the value of this |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
563 variable is reset to @code{nil}. This hook is not protected from |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
564 lexical errors. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
565 @end defvar |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
566 |
106151
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
567 @defvar semantic-after-idle-scheduler-reparse-hook |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
568 |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
569 This normal hook is run after the idle scheduler finishes reparsing. |
9c5f5e4df2ac
* sem-user.texi (Semanticdb Search Configuration): Rearrange nodes.
Chong Yidong <cyd@stupidchicken.com>
parents:
106084
diff
changeset
|
570 If any hook throws an error, this variable is reset to @code{nil}. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
571 This hook is not protected from lexical errors. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
572 @end defvar |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
573 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
574 @node Idle Working Options |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
575 @subsection Idle Working Options |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
576 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
577 In addition to reparsing buffers, the Semantic idle scheduler performs |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
578 additional operations, including the following: |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
579 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
580 @itemize |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
581 @item |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
582 Creating the include path caches required for symbol lookup. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
583 @item |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
584 Create data type caches. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
585 @item |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
586 Saving SemanticDB caches to disk. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
587 @item |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
588 Speculatively parsing the files in the same directory as the current |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
589 buffer. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
590 @end itemize |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
591 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
592 Because this extra work is quite time-consuming, it is only carried |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
593 out after a longer idle delay. The following features control how the |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
594 idle work is performed. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
595 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
596 @deffn Option semantic-idle-scheduler-work-idle-time |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
597 The value of this variable is the amount of idle time, in seconds, |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
598 before commencing idle work. The default is 60. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
599 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
600 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
601 @deffn Option semantic-idle-work-parse-neighboring-files-flag |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
602 If the value of this variable is non-@code{nil}, the Semantic idle |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
603 scheduler uses idle work time to parse files in the same directory as |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
604 the current buffer. This improves the accuracy of tag searches and |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
605 saves time when visiting those files later, at the cost of doing a lot |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
606 of parsing. The default is @code{t}. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
607 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
608 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
609 @node Debugging Idle Time Issues |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
610 @subsection Debugging Idle Time Issues |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
611 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
612 If you see an error signalled during idle time, it could be an |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
613 indication of a more serious issue elsewhere. It is not enough to |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
614 enable @code{debug-on-error}, because the idle scheduler inhibits the |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
615 debugger. Instead, use the following commands to debug the error: |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
616 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
617 @deffn Command semantic-debug-idle-function |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
618 Run the Semantic idle function with debugging turned on. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
619 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
620 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
621 @deffn Command semantic-debug-idle-work-function |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
622 Run the Semantic idle work function with debugging turned on. |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
623 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
624 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
625 @node Idle Summary Mode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
626 @subsection Idle Summary Mode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
627 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
628 Semantic Idle Summary mode is a minor mode that displays a short |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
629 summary of the symbol at point, such as its function prototype, in the |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
630 echo area. Its functionality is similar to what ElDoc mode provides |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
631 for Emacs Lisp (@pxref{Lisp Doc,,,emacs,Emacs manual}). |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
632 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
633 @deffn global-semantic-idle-summary-mode &optional arg |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
634 This command toggles Semantic Idle Summary mode in all |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
635 @semantic{}-enabled buffers. You can also toggle it via the |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
636 @samp{Show Tag Summaries} menu item in the @samp{Development} menu. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
637 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
638 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
639 When Semantic Idle Summary mode is active, a summary of the tag at |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
640 point is displayed in the echo area. This display takes place during |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
641 the idle time, as given by @code{semantic-idle-scheduler-idle-time} |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
642 (@pxref{Idle Scheduler}). |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
643 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
644 You can override the method for getting the current tag to display by |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
645 setting @code{idle-summary-current-symbol-info}. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
646 |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
647 @deffn Option semantic-idle-summary-function |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
648 The value of this variable should be a function to call to display tag |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
649 information during idle time. See the variable |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
650 @code{semantic-format-tag-functions} for a list of useful functions. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
651 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
652 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
653 @defvar semantic-idle-summary-out-of-context-faces |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
654 The value of this variable is a list of font-lock faces indicating |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
655 useless summary contexts. These are generally faces used to highlight |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
656 comments or strings. Semantic Idle Summary mode does not display its |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
657 usual summary if the text at point has one of these faces. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
658 @end defvar |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
659 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
660 @node Idle Completions Mode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
661 @subsection Idle Completions Mode |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
662 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
663 Semantic Idle Completions mode is a minor mode for performing |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
664 @dfn{code completions} during idle time. The completions are |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
665 displayed inline, with keybindings that allow you to cycle through |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
666 different alternatives. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
667 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
668 Semantic Idle Completions mode performs completion based on the |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
669 Semantic Analyzer (@pxref{Analyzer}). |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
670 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
671 @deffn global-semantic-idle-completions-mode &optional arg |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
672 This command toggles Semantic Idle Completions mode in every |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
673 @semantic{}-enabled buffer. You can also toggle it via the @samp{Show |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
674 Tag Completions} menu item in the @samp{Development} menu. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
675 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
676 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
677 If the tag at point has at least one completion, Semantic Idle |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
678 Completions mode displays that completion inline---i.e., as part of |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
679 the buffer text (you can change the display method by customizing |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
680 @code{semantic-complete-inline-analyzer-idle-displayor-class}, as |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
681 described below). The completed part is highlighted, to indicate that |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
682 it is not yet properly inserted into the buffer. The echo area shows |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
683 the completion, and whether there are other possible completions, like |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
684 this: |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
685 |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
686 @example |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
687 besselj [1 of 6 matches] |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
688 @end example |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
689 |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
690 @noindent |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
691 While the completion is being displayed, the following keybindings |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
692 take effect: |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
693 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
694 @table @kbd |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
695 @item @key{RET} |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
696 @itemx C-m |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
697 Accept the current completion (@code{semantic-complete-inline-done}), |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
698 placing it in the buffer and moving point to the end of the completed |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
699 tag. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
700 @item M-n |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
701 Select the next possible completion |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
702 (@code{semantic-complete-inline-down}). The new completion is shown |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
703 inline, replacing the old completion. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
704 @item M-p |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
705 Select the previous possible completion |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
706 (@code{semantic-complete-inline-up}). |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
707 @item @key{TAB} |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
708 @item C-i |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
709 Accept as much of the completion as possible. If no additional |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
710 completion can be accepted without ambiguity, select the next possible |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
711 completion (@code{semantic-complete-inline-TAB}). |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
712 @item C-g |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
713 Quit without completing (@code{semantic-complete-inline-quit}). |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
714 @end table |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
715 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
716 @noindent |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
717 You can also exit inline completion by issuing any other Emacs |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
718 command. The completion text then disappears from the buffer. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
719 |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
720 @deffn Command semantic-complete-analyze-inline-idle |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
721 This is the command for performing inline code completion. It is |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
722 called by Semantic Idle Completions mode during idle time, but you can |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
723 also call it yourself. It returns immediately, leaving the buffer in |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
724 a state for inline completion. |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
725 @end deffn |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
726 |
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
727 @deffn Option semantic-complete-inline-analyzer-idle-displayor-class |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
728 The value of this variable determines how |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
729 @code{semantic-complete-analyze-inline-idle} shows its completions. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
730 Possible values include: |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
731 |
106156
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
732 @table @code |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
733 @item semantic-displayor-ghost |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
734 Display completions ``inline'' with the buffer text, as described |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
735 above. This is the default value. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
736 |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
737 @item semantic-displayor-tooltip |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
738 Display completions in a tooltip. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
739 |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
740 @item semantic-displayor-traditional |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
741 Display completions in a separate window. |
cf329ff7daa6
* sem-user.texi (Idle Completions Mode): More copyedits.
Chong Yidong <cyd@stupidchicken.com>
parents:
106151
diff
changeset
|
742 @end table |
106061
014672c3a25f
* Makefile.in: Build the Semantic manual.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
743 @end deffn |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
744 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
745 @node Analyzer |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
746 @section Analyzer |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
747 @cindex Analyzer |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
748 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
749 The Semantic Analyzer is a library for performing context analysis on |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
750 source code. It provides user commands for displaying, completing, |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
751 and navigating through source code. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
752 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
753 @menu |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
754 * Smart Completion:: Performing code completion. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
755 * Smart Summary:: Displaying help on a symbol. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
756 * Smart Jump:: Jumping to the definition of a tag. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
757 * Analyzer Debug:: Debugging problems with the analyzer. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
758 @end menu |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
759 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
760 @node Smart Completion |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
761 @subsection Smart Completion |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
762 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
763 The Semantic Analyzer can be used to perform code completion in a |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
764 manner that takes the local context into account. (In addition to the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
765 user commands in this section, Semantic Idle Completions mode also |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
766 uses the Semantic Analyzer. @xref{Idle Completions Mode}.) |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
767 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
768 @deffn Command semantic-analyze-possible-completions context |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
769 This is the most basic command for Semantic Analyzer-based completion. |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
770 Called interactively, it displays a list of the possible completions |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
771 for the symbol at point. |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
772 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
773 When called from a Lisp program, |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
774 @code{semantic-analyze-possible-completions} does not display a |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
775 completions list. The argument @var{context} should be either a |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
776 buffer position, or a context object. The return value is a list of |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
777 @semantic{} tag objects that complete the symbol for @var{context}, |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
778 based on the following criteria: |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
779 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
780 @itemize |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
781 @item Elements currently in scope. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
782 @item Constants currently in scope. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
783 @item Elements matching the context's @code{:prefix}. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
784 @item Type of the completion matching the type of the context. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
785 @end itemize |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
786 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
787 Most of the other commands documented in this section call |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
788 @code{semantic-analyze-possible-completions} internally. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
789 @end deffn |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
790 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
791 @deffn Command semantic-complete-analyze-inline |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
792 This command is bound to @kbd{C-c , @key{SPC}} when Semantic mode is |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
793 enabled (@pxref{Semantic mode user commands}). It displays a list of |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
794 possible completions for the symbol at point, and activates a special |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
795 set of keybindings for choosing a completion. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
796 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
797 You can type @key{RET} to accept the current completion, @kbd{M-n} and |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
798 @kbd{M-p} to cycle through the possible completions, @key{TAB} to |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
799 complete as far as possible and then cycle through completions, and |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
800 either @kbd{C-g} or any other key to abort the completion. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
801 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
802 This command is similar to the completion performed by Semantic Idle |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
803 Completions mode. The main difference is that it is called |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
804 explicitly, whereas Semantic Idle Completions mode completes during |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
805 idle time (@pxref{Idle Completions Mode}). |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
806 @end deffn |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
807 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
808 @deffn Option semantic-complete-inline-analyzer-idle-displayor-class |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
809 The value of this variable determines how |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
810 @code{semantic-complete-analyze-inline} shows its completions. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
811 Possible values include: |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
812 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
813 @table @code |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
814 @item semantic-displayor-traditional |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
815 Display completions in a separate window. This is the default value. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
816 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
817 @item semantic-displayor-ghost |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
818 Display completions ``inline'' with the buffer text, similar to the |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
819 default behavior of Semantic Idle Completions mode (@pxref{Idle |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
820 Completions Mode}). |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
821 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
822 @item semantic-displayor-tooltip |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
823 Display completions in a tooltip. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
824 @end table |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
825 @end deffn |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
826 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
827 In addition to @code{semantic-complete-analyze-inline}, you can use |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
828 the simpler command @code{semantic-ia-complete-symbol point}. This |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
829 behaves like the usual @kbd{M-@key{TAB}} (@code{complete-symbol}) |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
830 command (@pxref{Symbol Completion,,,emacs,Emacs manual}), except it |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
831 uses the Semantic Analyzer. |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
832 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
833 @deffn Command semantic-ia-complete-symbol point |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
834 Complete the current symbol at @var{point}. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
835 @end deffn |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
836 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
837 @node Smart Summary |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
838 @subsection Smart Summary |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
839 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
840 You can use the following commands to obtain information about the |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
841 code at point: |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
842 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
843 @deffn Command semantic-ia-show-summary pos |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
844 Display a summary for the symbol at @var{pos}. Called interactively, |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
845 @var{pos} defaults to point. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
846 @end deffn |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
847 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
848 @deffn Command semantic-ia-show-doc pos |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
849 Display the code-level documentation for the symbol at @var{pos}. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
850 Called interactively, @var{pos} defaults to point. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
851 @end deffn |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
852 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
853 @deffn Command semantic-ia-describe-class typename |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
854 Prompt for the name of a data type, @var{typename}, and display its |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
855 components. For instance, if the type in question is a class, this |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
856 displays the methods and member variables. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
857 @end deffn |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
858 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
859 You can also use Semantic Idle Summary mode to show information about |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
860 the current symbol in the echo area during idle time. @xref{Idle |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
861 Summary Mode}. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
862 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
863 @node Smart Jump |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
864 @subsection Smart Jump |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
865 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
866 The Semantic Analyzer can be used to jump directly to the definition |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
867 for a code symbol. |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
868 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
869 @deffn Command semantic-ia-fast-jump pos |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
870 Jump to the definition for the symbol at @var{pos}. Called |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
871 interactively, @var{pos} defaults to point. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
872 @end deffn |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
873 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
874 @defun semantic-ia-fast-mouse-jump event |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
875 Jump to the definition for the symbol at the position of the mouse |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
876 event @var{event}. This command is meant to be bound to a mouse |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
877 command, like this: |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
878 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
879 @example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
880 (global-set-key '[(S-mouse-1)] semantic-ia-fast-mouse-jump) |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
881 @end example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
882 @end defun |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
883 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
884 These commands are often more accurate than than the @code{find-tag} |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
885 command (@pxref{Tags,,,emacs,Emacs manual}), because the Semantic |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
886 Analyzer is context-sensitive. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
887 |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
888 You can also use @kbd{C-c , j} (@code{semantic-complete-jump-local}) |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
889 and @kbd{C-c , J} (@code{semantic-complete-jump}) to navigate tags. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
890 @xref{Semantic mode user commands}. Those commands do not make use of |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
891 the Semantic Analyzer. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
892 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
893 @node Analyzer Debug |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
894 @subsection Debugging the Semantic Analyzer |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
895 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
896 If the Semantic Analyzer does not analyze your code properly, you can |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
897 take steps to identify and solve the problem. This section was |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
898 written with C/C++ in mind, but should be relevant for any typed |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
899 language. |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
900 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
901 @subsubsection Step 1: Check the context |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
902 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
903 To check the current context, type @kbd{M-x |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
904 semantic-analyze-current-context}. |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
905 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
906 @deffn Command semantic-analyze-current-context pos |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
907 Analyze the context at @var{pos}. This function is used by most of |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
908 the other Semantic Analyzer commands to obtain the context of the code |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
909 at a given buffer position. The return value is an EIEIO object |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
910 describing the context at @var{pos} (@pxref{Top,,,eieio,EIEIO |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
911 manual}). |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
912 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
913 When called interactively, this displays a @samp{*Semantic Context |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
914 Analysis*} buffer containing a summary of the context at point. |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
915 @end deffn |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
916 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
917 @noindent |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
918 The Prefix section of the @samp{*Semantic Context Analysis*} buffer |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
919 lists the tags based on the text at point. If it shows only a simple |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
920 string, the Semantic was unable to identify what the data type was. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
921 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
922 The first item in the list of the prefix is the first lookup failure |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
923 in the chain, and that is the item to focus debugging effort on. For |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
924 example: |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
925 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
926 @example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
927 Context Type: #<semantic-analyze-context context> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
928 Bounds: (182 . 185) |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
929 Prefix: Foo* bar |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
930 int bbb (const char* y) |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
931 Prefix Types: class Foo @{@} |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
932 -------- |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
933 -> Local Vars: int argc |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
934 char** argv |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
935 @end example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
936 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
937 In this example you can see that the prefix has two fully found tags. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
938 In the following example, the symbol ``bbb'' is incomplete, and could |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
939 not be found: |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
940 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
941 @example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
942 Context Type: #<semantic-analyze-context context> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
943 Bounds: (182 . 184) |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
944 Prefix: Foo* bar |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
945 "bb" |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
946 Prefix Classes: 'function |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
947 'variable |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
948 Prefix Types: class Foo @{@} |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
949 -------- |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
950 -> Local Vars: int argc |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
951 char** argv |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
952 @end example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
953 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
954 @subsubsection Step 2 : Check your include path |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
955 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
956 Once you know the missing symbol, check your include path. The header |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
957 or include file containing the needed definition may not be in the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
958 list of headers @semantic{} is searching through. To get a basic |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
959 list, you can use @kbd{M-x semanticdb-find-test-translate-path}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
960 @xref{Semanticdb search debugging commands}. |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
961 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
962 If items should be loaded but aren't, or if you see some tables that |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
963 have no tags in them, then you you may have an incorrectly-set search |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
964 throttle (@pxref{Search Throttle}). For example, |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
965 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
966 @example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
967 *#<semanticdb-table main.cpp (4 tags DIRTY)> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
968 *#<semanticdb-table foo.hh (0 tags DIRTY)> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
969 @end example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
970 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
971 Here, @semantic{} found @file{foo.hh}, but there are 0 tags. This may |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
972 be because you had set the throttle to avoid reading and parsing files |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
973 that Emacs has not visited. To fix this, visit the file and let |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
974 @semantic{} parse it. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
975 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
976 For C++, check also that the @samp{#include} statements for your |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
977 project-level files use quotes, not angle brackets; angle brackets are |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
978 for system files. |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
979 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
980 @subsubsection Step 3: Check the local scope |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
981 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
982 If your data type is somehow abbreviated based on scope, such as from |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
983 a @code{using} statement, you should make sure that the symbol you |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
984 want is in the local scope. Examine the scope with @kbd{M-x |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
985 semantic-calculate-scope}. The scope structure is displayed in ADEBUG |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
986 mode, so use @kbd{SPC} to expand different elements and looking for |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
987 your symbol. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
988 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
989 If your symbol should be in the scope, but you cannot find it, then |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
990 you may have found a language support bug in the local-variable |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
991 parser, or using statement parser. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
992 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
993 Calling @kbd{M-x bovinte} should force a reset on the scope in case |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
994 there is merely some bad state. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
995 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
996 @example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
997 ] Name: Cache |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
998 ] Class: #'semantic-scope-cache |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
999 ] :table #<semanticdb-table testsubclass.cpp (13 tags DIRTY)> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1000 ] tag createMoose : class moose |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1001 ] scopetypes 'nil |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1002 ] parents #<TAG LIST: 1 entries> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1003 ] scope #<TAG LIST: 22 entries> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1004 ] fullscope #<TAG LIST: 23 entries> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1005 ] localvar #<TAG LIST: 6 entries> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1006 @end example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1007 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1008 In the above sample output, the @code{tag} slot specifies where within |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1009 you source this scope is relevant. @code{Parents} should contain any |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1010 in scope parents, such as the class a method belongs to. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1011 @code{Localvar} should contain your local variables. @code{Scope} |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1012 should contain datatypes in scope due to a @code{using} statement or |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1013 the like. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1014 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1015 @subsubsection Step 4: Check the typecache |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1016 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1017 For complex typed languages like C++, @semantic{} creates a typecache, |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1018 or an optimized search table with all the various data types in it. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1019 Elements in the typecache do not obey local scope. It only contains |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1020 fully qualified names. You can examine the typecache with |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1021 @kbd{M-x semanticdb-typecache-dump}. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1022 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1023 If your data types are not in the typecache, there may be some parsing |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1024 error or other bug. Calling @kbd{M-x bovinte} should force a reset on |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1025 the typecache in case there is merely some bad state. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1026 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1027 @example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1028 ]#<semanticdb-typecache /home/zappo/cedet/semantic/tests/testsubclass.cpp> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1029 ] Name: /home/zappo/cedet/semantic/tests/testsubclass.cpp |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1030 ] Class: #'semanticdb-typecache |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1031 ] filestream 'nil |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1032 ] includestream #<TAG LIST: 84 entries> |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1033 ] stream 'nil |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1034 ] dependants 'nil |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1035 @end example |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1036 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1037 In the above example, the output of @kbd{M-x semanticdb-typecache-dump} |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1038 was expanded one level. The @code{filestream} slot should contain |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1039 datatypes in the current file. The @code{includestream} should |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1040 contain all the datatypes in all included header files. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1041 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1042 The @code{dependants} slot will specify other files that depend on |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1043 this one. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1044 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1045 @subsubsection Step 5: Check the parser |
106305
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1046 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1047 Go to the location where your unfound tag should be. You can call |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1048 @kbd{M-x bovinate}, and see a dump of the raw tag structure. To see a |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1049 navigable tree, use @kbd{M-x semantic-adebug-bovinate} instead. You |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1050 can then look to make sure your tag has been properly parsed. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1051 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1052 If it has not, then you may have found a parser bug. To get a feel |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1053 how @semantic{} treats your file, type @kbd{M-x |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1054 global-semantic-show-unmatched-syntax-mode}. This causes any syntax |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1055 it cannot parse to be underlined in red. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1056 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1057 If your type is not parsable, it could be for a couple of reasons: |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1058 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1059 @enumerate |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1060 @item |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1061 If there is a MACRO keyword used in the definition of the type, you |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1062 may need to update the @code{semantic-lex-c-preprocessor-symbol-map} |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1063 to account for it. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1064 |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1065 @item |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1066 Or perhaps the parser needs to be fixed. |
0b797c8cfed8
* semantic.texi (Analyzer Internals): Rename from Analyzer.
Chong Yidong <cyd@stupidchicken.com>
parents:
106156
diff
changeset
|
1067 @end enumerate |
106352 | 1068 |
106567
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1069 @node Speedbar |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1070 @section Speedbar |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1071 @cindex speedbar |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1072 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1073 You can integrate @semantic{} with the Speedbar. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1074 @xref{Speedbar,,,emacs,Emacs manual}. To do this, add the following |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1075 line to your init file: |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1076 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1077 @example |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1078 (add-hook 'speedbar-load-hook (lambda () (require 'semantic/sb))) |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1079 @end example |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1080 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1081 @noindent |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1082 Or, alternatively: |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1083 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1084 @example |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1085 (require 'semantic/sb) |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1086 @end example |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1087 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1088 Once installed, the Speedbar will use @semantic{} to find and display |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1089 tags. Tags from @semantic{} are displayed with more details than |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1090 ordinary Speedbar tags, such as function arguments and return type. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1091 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1092 In addition, you can use the Speedbar to show the output of the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1093 Semantic Analyzer (@pxref{Analyzer}). To do this, go to the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1094 @samp{Display} menu item on the Speedbar menu and select |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1095 @samp{Analyze}; or type @kbd{M-x semantic-speedbar-analysis}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1096 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1097 @deffn Command semantic-speedbar-analysis |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1098 Start the Speedbar in Semantic Analysis mode. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1099 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1100 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1101 In Semantic Analysis mode, the Speedbar displays information about the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1102 local context, such as the current function, local arguments and |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1103 variables, and details on the prefix (the current symbol). Each entry |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1104 has an @samp{<i>} button; clicking on this shows a summary of what |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1105 @semantic{} knows about that variable or type. The Speedbar also |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1106 displays a list of possible completions at point. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1107 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1108 @node SymRef |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1109 @section Symbol References |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1110 @cindex symref |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1111 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1112 @semantic{} can interface with external @dfn{symbol reference tools}, |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1113 such as GNU Global and GNU Idutils. These tools provide information |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1114 about where different tags or symbols appear. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1115 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1116 By default, @semantic{} tries to look for the best external symbol |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1117 reference tool that can be used. The supported tools are GNU Global, |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1118 GNU Idutils, CScope, and Grep (the fallback method). For best |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1119 results, use GNU Global. However, @semantic{} does not manage your |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1120 GNU Global tables for you; you must manage them yourself. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1121 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1122 @defvar semantic-symref-tool |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1123 The value of this variable is a symbol that determines the external |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1124 symbol reference tool to use. The default value, @code{detect}, says |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1125 to look for the best available tool. Other possible values are |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1126 @code{global}, @code{idutils}, @code{cscope}, and @code{grep}. Note |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1127 that @code{grep} is much slower than the others. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1128 @end defvar |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1129 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1130 The commands to display symbol references are @kbd{C-c , g} |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1131 (@code{semantic-symref-symbol} and @kbd{C-c , G} |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1132 (@code{semantic-symref}). These keybindings are available whenever |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1133 Semantic mode is enabled (@pxref{Semantic mode user commands}). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1134 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1135 @deffn Command semantic-symref-symbol sym |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1136 This command (normally bound to @kbd{C-c , g}) prompts for a symbol |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1137 name, and uses an external reference tool to find references to that |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1138 tag. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1139 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1140 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1141 @deffn Command semantic-symref |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1142 This command (normally bound to @kbd{C-c , G}) uses an external |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1143 reference tool to find references to the current tag. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1144 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1145 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1146 Both @code{semantic-symref-symbol} and @code{semantic-symref} display |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1147 a list of symbol references in a separate buffer. The entries are |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1148 organized by file, and by function name. Typing @key{RET} on the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1149 @samp{[+]} next to each function name ``expands'' that entry, listing |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1150 all references to the target symbol occurring within that function. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1151 Typing @kbd{RET} on a reference line jumps to that reference. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1152 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1153 @node MRU Bookmarks |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1154 @section MRU Bookmarks mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1155 @cindex semantic-mru-bookmark-mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1156 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1157 Semantic MRU Bookmarks mode is a minor mode that keeps track of the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1158 tags you have edited, allowing you to quickly return to them later |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1159 (MRU stands for ``Most Recently Used''). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1160 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1161 @deffn Command global-semantic-mru-bookmark-mode &optional arg |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1162 Toggle Semantic MRU Bookmarks mode globally. The minor mode can be |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1163 turned on only if the current buffer was set up for parsing. With |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1164 argument @var{arg}, turn the minor mode if @var{arg} is positive, and |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1165 off otherwise. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1166 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1167 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1168 Semantic MRU Bookmarks mode takes note of each tag you edit. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1169 Afterwards, you can type @kbd{C-x B} |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1170 (@code{semantic-mrub-switch-tags}) to return to a tag. This command |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1171 prompts for a tag name, completing with the names of edited tags; at |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1172 the prompt, you can use @kbd{M-p} and @kbd{M-n} to cycle through tags |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1173 in order of last modification time. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1174 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1175 @node Sticky Func Mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1176 @section Sticky Function mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1177 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1178 Semantic Sticky Function minor mode displays a header line that shows |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1179 the declaration line of the function or tag on the topmost line in the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1180 text area. This allows you to keep that declaration line in view at |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1181 all times, even if it is scrolls off the ``top'' of the screen. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1182 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1183 In addition, clicking @kbd{Mouse-1} on the header line opens a context |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1184 menu that contains menu items for copying, killing, or narrowing to |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1185 that tag. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1186 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1187 @deffn Command global-semantic-stickyfunc-mode &optional arg |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1188 Toggle Semantic Sticky Function mode in all Semantic-enabled buffers. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1189 With an optional argument @var{arg}, enable if @var{arg} is positive, |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1190 and disable otherwise. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1191 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1192 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1193 @defvar semantic-stickyfunc-sticky-classes |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1194 The value of this variable is a list of tag classes that Semantic |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1195 Sticky Function mode makes ``sticky''. The default is |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1196 @code{'(function type)}, meaning function declarations and type |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1197 declarations. Other possible tag classes are @code{variable}, |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1198 @code{include}, and @code{package}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1199 @end defvar |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1200 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1201 @node Highlight Func Mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1202 @section Highlight Func Mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1203 @cindex semantic-highlight-func-mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1204 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1205 Semantic Highlight Function minor mode highlights the declaration line |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1206 of the current function or tag (that is to say, the first line that |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1207 describes the rest of the construct). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1208 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1209 In addition, clicking @kbd{Mouse-3} on the highlighted declaration |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1210 line opens a context menu that contains menu items for copying, |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1211 killing, or narrowing to that tag. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1212 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1213 The tag classes highlighted by Semantic Highlight Function mode are |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1214 the same ones given by @code{semantic-stickyfunc-sticky-classes}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1215 @xref{Sticky Func Mode}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1216 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1217 @defun global-semantic-highlight-func-mode &optional arg |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1218 Toggle Semantic Highlight Function mode in all Semantic-enabled |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1219 buffers. With an optional argument @var{arg}, enable if @var{arg} is |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1220 positive, and disable otherwise. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1221 @end defun |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1222 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1223 @deffn Face semantic-highlight-func-current-tag-face |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1224 This face is used to highlight declaration lines in Semantic Highlight |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1225 Func mode. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1226 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1227 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1228 @node Tag Decoration Mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1229 @section Tag Decoration Mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1230 @cindex semantic-decoration-mode |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1231 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1232 Semantic Tag Decoration mode ``decorates'' each tag based on certain |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1233 arbitrary features of that tag. Decorations are specified using the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1234 variable @code{semantic-decoration-styles}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1235 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1236 @deffn Command global-semantic-decoration-mode &optional arg |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1237 Toggle Semantic Tag Decoration mode in all Semantic-enabled buffers. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1238 With an optional argument @var{arg}, enable if @var{arg} is positive, |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1239 and disable otherwise. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1240 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1241 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1242 @defvar semantic-decoration-styles |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1243 The value of this variable is a list of decoration styles for Semantic |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1244 Tag Decoration mode. Each element in this list should have the form |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1245 @code{(@var{name} . @var{flag})}, where @var{name} is a style name (a |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1246 symbol) and @var{flag} is non-@code{nil} if the style is enabled. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1247 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1248 The following styles are available: |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1249 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1250 @table @code |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1251 @item semantic-tag-boundary |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1252 Place an overline in front of each long tag (excluding prototypes). |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1253 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1254 @item semantic-decoration-on-private-members |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1255 Highlight class members that are designated as private. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1256 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1257 @item semantic-decoration-on-protected-members |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1258 Highlight class members that are designated as protected. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1259 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1260 @item semantic-decoration-on-includes |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1261 Highlight class members that are includes. Clicking on the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1262 highlighted include statements opens a context menu for configuring |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1263 @semantic{} includes. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1264 @end table |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1265 @end defvar |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1266 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1267 To enable or disable specific decorations, use this function: |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1268 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1269 @deffn Command semantic-toggle-decoration-style name &optional arg |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1270 Prompt for a decoration style, @var{name}, and turn it on or off. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1271 With prefix argument @var{arg}, turn on if positive, otherwise off. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1272 Return non-@code{nil} if the decoration style is enabled. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1273 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1274 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1275 @deffn Face semantic-tag-boundary-face |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1276 Face for long tags in the @code{semantic-tag-boundary} decoration |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1277 style. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1278 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1279 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1280 @deffn Face semantic-decoration-on-private-members-face |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1281 Face for privately-scoped tags in the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1282 @code{semantic-decoration-on-private-members} decoration style. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1283 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1284 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1285 @deffn Face semantic-decoration-on-protected-members-face |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1286 Face for protected tags in the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1287 @code{semantic-decoration-on-protected-members} decoration style. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1288 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1289 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1290 @deffn Face semantic-decoration-on-includes |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1291 Face for includes that are not in some other state, in the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1292 @code{semantic-decoration-on-includes} decoration style. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1293 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1294 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1295 @deffn Face semantic-decoration-on-unknown-includes |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1296 Face for includes that cannot be found, in the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1297 @code{semantic-decoration-on-includes} decoration style. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1298 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1299 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1300 @deffn Face semantic-decoration-on-unparsed-includes |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1301 Face for includes that have not yet been parsed, in the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1302 @code{semantic-decoration-on-includes} decoration style. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1303 @end deffn |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1304 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1305 @subsection Creating New Decoration Modes |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1306 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1307 You can create new types of decorations using the following function: |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1308 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1309 @defun define-semantic-decoration-style name doc &rest flags |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1310 Define a new decoration style with @var{name}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1311 @var{doc} is a documentation string describing the decoration style @var{name}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1312 It is appended to auto-generated doc strings. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1313 An Optional list of @var{flags} can also be specified. Flags are: |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1314 @code{:enabled} <value> - specify the default enabled value for @var{name}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1315 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1316 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1317 This defines two new overload functions respectively called @code{NAME-p} |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1318 and @code{NAME-highlight}, for which you must provide a default |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1319 implementation in respectively the functions @code{NAME-p-default} and |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1320 @code{NAME-highlight-default}. Those functions are passed a tag. @code{NAME-p} |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1321 must return non-@code{nil} to indicate that the tag should be decorated by |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1322 @code{NAME-highlight}. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1323 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1324 To put primary decorations on a tag @code{NAME-highlight}, use |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1325 functions like @dfn{semantic-set-tag-face}, |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1326 @dfn{semantic-set-tag-intangible}, etc., found in the |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1327 semantic-decorate library. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1328 |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1329 To add other kind of decorations on a tag, @code{NAME-highlight} must use |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1330 @dfn{semantic-decorate-tag}, and other functions of the semantic |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1331 decoration @var{api} found in this library. |
c59fc4a754cc
* sem-user.texi (Semantic mode, Idle Scheduler, Smart Completion)
Chong Yidong <cyd@stupidchicken.com>
parents:
106352
diff
changeset
|
1332 @end defun |