Commit a42dbee1 authored by Chong Yidong's avatar Chong Yidong
Browse files

* 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.
parent 137327ef
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.
......
......@@ -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
......
......@@ -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
......@@ -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
......
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment