summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2010-04-18 19:02:16 -0400
committerChong Yidong <cyd@stupidchicken.com>2010-04-18 19:02:16 -0400
commita42dbee160587fb264c03c9f0d49ec04536709cf (patch)
treee6e62efacd1c7bdc3f1641f1e91be14abf0f9098
parent137327efbdd91b16b7c56bfbb952da9e7dd8eb4d (diff)
downloademacs-a42dbee160587fb264c03c9f0d49ec04536709cf.tar.gz
* programs.texi (Semantic): New node.
* maintaining.texi (EDE): New node. * emacs.texi: Update node listing. * misc.texi (Gnus): Use the `C-h i' keybinding for info.
-rw-r--r--doc/emacs/ChangeLog10
-rw-r--r--doc/emacs/emacs.texi2
-rw-r--r--doc/emacs/maintaining.texi64
-rw-r--r--doc/emacs/misc.texi2
-rw-r--r--doc/emacs/programs.texi68
5 files changed, 145 insertions, 1 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 8b26fdfb7e5..13fb0dc1e15 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,13 @@
+2010-04-18 Chong Yidong <cyd@stupidchicken.com>
+
+ * programs.texi (Semantic): New node.
+
+ * maintaining.texi (EDE): New node.
+
+ * emacs.texi: Update node listing.
+
+ * misc.texi (Gnus): Use the `C-h i' keybinding for info.
+
2010-04-16 Glenn Morris <rgm@gnu.org>
* emacs.texi (Acknowledgments): Remove duplicate.
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 0e5463828e7..4205079a236 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -649,6 +649,7 @@ Editing Programs
* Hideshow:: Displaying blocks selectively.
* Symbol Completion:: Completion on symbol names of your program or language.
* Glasses:: Making identifiersLikeThis more readable.
+* Semantic:: Suite of editing tools based on source code parsing.
* Misc for Programs:: Other Emacs features useful for editing programs.
* C Modes:: Special commands of C, C++, Objective-C,
Java, and Pike modes.
@@ -761,6 +762,7 @@ Maintaining Large Programs
* Change Log:: Maintaining a change history for your program.
* Tags:: Go directly to any function in your program in one
command. Tags remembers which file it is in.
+* EDE:: An integrated development environment for Emacs.
* Emerge:: A convenient way of merging two versions of a program.
Version Control
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 56c65852b7a..8c417bc12ac 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -14,6 +14,7 @@ programs.
* Change Log:: Maintaining a change history for your program.
* Tags:: Go directly to any function in your program in one
command. Tags remembers which file it is in.
+* EDE:: An integrated development environment for Emacs.
@ifnottex
* Emerge:: A convenient way of merging two versions of a program.
@end ifnottex
@@ -2267,6 +2268,69 @@ name in the buffer. @xref{Symbol Completion}.
@include emerge-xtra.texi
@end ifnottex
+@node EDE
+@section Emacs Development Environment
+@cindex EDE (Emacs Development Environment)
+@cindex Emacs Development Environment
+@cindex Integrated development environment
+
+EDE (@dfn{Emacs Development Environment}) is a package that simplifies
+the task of creating, building, and debugging large programs with
+Emacs. It provides some of the features of an IDE, or @dfn{Integrated
+Development Environment}, in Emacs.
+
+This section provides a brief description of EDE usage.
+@ifnottex
+For full details, see @ref{Top, EDE,, ede, Emacs Development Environment}.
+@end ifnottex
+@iftex
+For full details on Ede, type @kbd{C-h i} and then select the EDE
+manual.
+@end iftex
+
+ EDE is implemented as a global minor mode (@pxref{Minor Modes}). To
+enable it, type @kbd{M-x global-ede-mode} or click on the
+@samp{Project Support (EDE)} item in the @samp{Tools} menu. You can
+also enable EDE each time you start Emacs, by adding the following
+line to your initialization file:
+
+@smallexample
+(global-ede-mode t)
+@end smallexample
+
+@noindent
+Activating EDE adds a menu named @samp{Development} to the menu bar.
+Many EDE commands, including the ones described below, can be invoked
+from this menu.
+
+ EDE organizes files into @dfn{projects}, which correspond to
+directory trees. The @dfn{project root} is the topmost directory of a
+project. To define a new project, visit a file in the desired project
+root and type @kbd{M-x ede-new}. This command prompts for a
+@dfn{project type}, which refers to the underlying method that EDE
+will use to manage the project (@pxref{Creating a Project, EDE,, ede,
+Emacs Development Environment}). The most common project types are
+@samp{Make}, which uses Makefiles, and @samp{Automake}, which uses GNU
+Automake (@pxref{Top, Automake,, automake, Automake}). In both cases,
+EDE also creates a file named @file{Project.ede}, which stores
+information about the project.
+
+ A project may contain one or more @dfn{targets}. A target can be an
+object file, executable program, or some other type of file, which is
+``built'' from one or more of the files in the project.
+
+ To add a new @dfn{target} to a project, type @kbd{C-c . t}
+(@code{M-x ede-new-target}). This command also asks if you wish to
+``add'' the current file to that target, which means that the target
+is to be built from that file. After you have defined a target, you
+can add more files to it by typing @kbd{C-c . a}
+(@code{ede-add-file}).
+
+ To build a target, type @kbd{C-c . c} (@code{ede-compile-target}).
+To build all the targets in the project, type @kbd{C-c . C}
+(@code{ede-compile-project}). EDE uses the file types to guess how
+the target should be built.
+
@ignore
arch-tag: b9d83dfb-82ea-4ff6-bab5-05a3617091fb
@end ignore
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 808c3bfc3d3..7944a6b85e7 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -203,7 +203,7 @@ Here we introduce Gnus and describe several basic features.
For full details, see @ref{Top, Gnus,, gnus, The Gnus Manual}.
@end ifnottex
@iftex
-For full details on Gnus, type @kbd{M-x info} and then select the Gnus
+For full details on Gnus, type @kbd{C-h i} and then select the Gnus
manual.
@end iftex
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index dce6c38692e..72aa8ff121a 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -39,6 +39,7 @@ Highlight program syntax (@pxref{Font Lock}).
* Hideshow:: Displaying blocks selectively.
* Symbol Completion:: Completion on symbol names of your program or language.
* Glasses:: Making identifiersLikeThis more readable.
+* Semantic:: Suite of editing tools based on source code parsing.
* Misc for Programs:: Other Emacs features useful for editing programs.
* C Modes:: Special commands of C, C++, Objective-C,
Java, and Pike modes.
@@ -1387,6 +1388,73 @@ current buffer; you can also add @code{glasses-mode} to the mode hook
of the programming language major modes in which you normally want
to use Glasses mode.
+@node Semantic
+@section Semantic
+@cindex Semantic package
+
+Semantic is a package that provides language-aware editing commands
+based on @code{source code parsers}. This section provides a brief
+description of Semantic;
+@ifnottex
+for full details, see @ref{Top, Semantic,, semantic, Semantic}.
+@end ifnottex
+@iftex
+for full details, type @kbd{C-h i} (@code{info}) and then select the
+Semantic manual.
+@end iftex
+
+ Most of the ``language aware'' features in Emacs, such as font lock
+(@pxref{Font Lock}), rely on ``rules of thumb''@footnote{Regular
+expressions and syntax tables.} that usually give good results but are
+never completely exact. In contrast, the parsers used by Semantic
+have an exact understanding of programming language syntax. This
+allows Semantic to provide search, navigation, and completion commands
+that are powerful and precise.
+
+ To begin using Semantic, type @kbd{M-x semantic-mode} or click on
+the menu item named @samp{Source Code Parsers (Semantic)} in the
+@samp{Tools} menu. This enables Semantic mode, a global minor mode.
+
+ When Semantic mode is enabled, Emacs automatically attempts to
+parses each file you visit. Currently, Semantic understands C, C++,
+Scheme, Javascript, Java, HTML, and Make. Within each parsed buffer,
+the following commands are available:
+
+@table @kbd
+@item C-c , j
+@kindex C-c , j
+Prompt for the name of a function defined in the current file, and
+move point there (@code{semantic-complete-jump-local}).
+
+@item C-c , J
+@kindex C-c , J
+Prompt for the name of a function defined in any file Emacs has
+parsed, and move point there (@code{semantic-complete-jump}).
+
+@item C-c , @key{SPC}
+@kindex C-c , @key{SPC}
+Display a list of possible completions for the symbol at point
+(@code{semantic-complete-analyze-inline}). This also activates a set
+of special keybindings for choosing a completion: @key{RET} accepts
+the current completion, @kbd{M-n} and @kbd{M-p} cycle through possible
+completions, @key{TAB} completes as far as possible and then cycles,
+and @kbd{C-g} or any other key aborts completion.
+
+@item C-c , l
+@kindex C-c , l
+Display a list of the possible completions of the symbol at point, in
+another window (@code{semantic-analyze-possible-completions}).
+@end table
+
+@noindent
+In addition to the above commands, the Semantic package provides a
+variety of other ways to make use of parser information. For
+instance, you can use it to display a list of completions when Emacs
+is idle.
+@ifnottex
+@xref{Top, Semantic,, semantic, Semantic}, for details.
+@end ifnottex
+
@node Misc for Programs
@section Other Features Useful for Editing Programs