# HG changeset patch # User Chong Yidong # Date 1271631736 14400 # Node ID 23736de7090292b79ea647f59a6086d20da9c52d # Parent 34a427c407febb236e7afdcc5db4146e3efcf678 * 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. diff -r 34a427c407fe -r 23736de70902 doc/emacs/ChangeLog --- a/doc/emacs/ChangeLog Sun Apr 18 17:40:10 2010 -0400 +++ b/doc/emacs/ChangeLog Sun Apr 18 19:02:16 2010 -0400 @@ -1,3 +1,13 @@ +2010-04-18 Chong Yidong + + * 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 * emacs.texi (Acknowledgments): Remove duplicate. diff -r 34a427c407fe -r 23736de70902 doc/emacs/emacs.texi --- a/doc/emacs/emacs.texi Sun Apr 18 17:40:10 2010 -0400 +++ b/doc/emacs/emacs.texi Sun Apr 18 19:02:16 2010 -0400 @@ -649,6 +649,7 @@ * 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 @@ * 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 -r 34a427c407fe -r 23736de70902 doc/emacs/maintaining.texi --- a/doc/emacs/maintaining.texi Sun Apr 18 17:40:10 2010 -0400 +++ b/doc/emacs/maintaining.texi Sun Apr 18 19:02:16 2010 -0400 @@ -14,6 +14,7 @@ * 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 @@ @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 -r 34a427c407fe -r 23736de70902 doc/emacs/misc.texi --- a/doc/emacs/misc.texi Sun Apr 18 17:40:10 2010 -0400 +++ b/doc/emacs/misc.texi Sun Apr 18 19:02:16 2010 -0400 @@ -203,7 +203,7 @@ 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 -r 34a427c407fe -r 23736de70902 doc/emacs/programs.texi --- a/doc/emacs/programs.texi Sun Apr 18 17:40:10 2010 -0400 +++ b/doc/emacs/programs.texi Sun Apr 18 19:02:16 2010 -0400 @@ -39,6 +39,7 @@ * 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 @@ 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