# HG changeset patch # User Dave Love # Date 966346142 0 # Node ID 6c6b0162bae2c8f6cee1aa03524617fc3c2b9b75 # Parent 3aa7c156087a101b5028a91e94affdc13c6cc634 Tidy up previous additions. List more languages. Glasses mode. change-log-redate. xref Ebrowse. Cwarn mode. diff -r 3aa7c156087a -r 6c6b0162bae2 man/programs.texi --- a/man/programs.texi Tue Aug 15 13:26:16 2000 +0000 +++ b/man/programs.texi Tue Aug 15 13:29:02 2000 +0000 @@ -45,13 +45,11 @@ structure of a function (@pxref{Selective Display}). This feature causes only the lines that are indented less than a specified amount to appear on the screen. Programming modes often support Outline minor -mode (@pxref{Outline Mode}). The Foldout package (@pxref{Foldout}) can -provide convenient folding-editor features on top of the minor mode. -The Hideshow package (@pxref{Hideshow}) can also be used to display -bocks of code selectively. +mode (@pxref{Outline Mode}). The Foldout package provides +folding-editor features (@pxref{Foldout}). The `automatic typing' features may be useful when writing programs. -@xref{Top, Autotyping, autotype, Features for Automatic Typing}. +@xref{,Autotyping,, autotype, Autotyping}. @menu * Program Modes:: Major modes for editing programs. @@ -66,6 +64,7 @@ * Symbol Completion:: Completion on symbol names of your program or language. * Which Function:: Which Function mode shows which function you are in. * Hideshow:: Displaying blocks selectively. +* Glasses:: Making identifiersLikeThis more readable. * Documentation:: Getting documentation of functions you plan to call. * Change Log:: Maintaining a change history for your program. * Authors:: Maintaining an @file{AUTHORS} file. @@ -98,22 +97,26 @@ @cindex VHDL mode @cindex M4 mode @cindex Shell-script mode +@cindex Delphi mode +@cindex PostScript mode Emacs also has major modes for the programming languages Lisp, Scheme (a variant of Lisp) and the Scheme-based DSSSL expression language, Ada, -Awk, C, C++, Fortran (free and fixed format), Icon, IDLWAVE, +Awk, C, C++, Delphi (Object Pascal), Fortran (free and fixed format), +Icon, IDLWAVE, Java, Metafont (@TeX{}'s companion for font creation), Modula2, -Objective-C, Octave, Pascal, Perl, Pike, Prolog, Simula, VHDL, CORBA -IDL, and Tcl. There is also a major mode for makefiles, called Makefile +Objective-C, Octave, Pascal, Perl, Pike, PostScript, Prolog, Simula, +VHDL, CORBA IDL, and Tcl. +There is also a major mode for makefiles, called Makefile mode. An alternative mode for Perl is called CPerl mode. Modes are available for scripts for the common Unix shells, VMS DCL and MS-DOS/MS-Windows `BAT' files. In a similar fashion to programming languages, modes are provided for editing various sorts of configuration files. -Separate manuals are available for th modes for Ada (@pxref{Top, , Ada Mode, -ada-mode, Ada Mode}), C/C++/Objective C/Java/Corba IDL (@pxref{Top, , CC Mode, -ccmode, CC Mode}) and the IDLWAVE modes (@pxref{Top, , IDLWAVE, -idlwave, IDLWAVE User Manual}). +Separate manuals are available for the modes for Ada (@pxref{Top, , Ada +Mode, ada-mode, Ada Mode}), C/C++/Objective C/Java/Corba IDL +(@pxref{Top, , CC Mode, ccmode, CC Mode}) and the IDLWAVE modes +(@pxref{Top, , IDLWAVE, idlwave, IDLWAVE User Manual}). Ideally, a major mode should be implemented for each programming language that you might want to edit with Emacs; but often the mode for @@ -1530,7 +1533,24 @@ Initializes Hideshow variables for different modes. @end table -@node Documentation, Change Log, Hideshow, Programs +@node Glasses +@section Glasses minor mode +@cindex Glasses mode +@cindex identifiers, unreadable +@cindex StudlyCaps +@findex glasses-mode + +Glasses minor mode makes @samp{unreadableIdentifiersLikeThis} readable +by displaying underscores between all the pairs of lower and upper +English letters or by emboldening the capitals. The text is not +altered, only the display, so that you can use this mode on code written +with such a convention for separating words in identifiers without +modifying the code. It can be customized under the group +@samp{glasses}. You can use it by adding @code{glasses-mode} to the +mode hook of appropriate programming modes. + + +@node Documentation @section Documentation Commands As you edit Lisp code to be run in Emacs, the commands @kbd{C-h f} @@ -1686,7 +1706,10 @@ @findex add-change-log-entry-other-window The Emacs command @kbd{C-x 4 a} adds a new entry to the change log file for the file you are editing -(@code{add-change-log-entry-other-window}). +(@code{add-change-log-entry-other-window}). If that file is actually a +backup file, it makes an entry appropriate for the file's parent. This +is useful for making log entries by comparing a version with deleted +functions. A change log file contains a chronological record of when and why you have changed a program, consisting of a sequence of entries describing @@ -1723,7 +1746,10 @@ @end smallexample @noindent -(Previous Emacs versions used a different format for the date.) +(Previous Emacs versions used a different format for the date. You can +convert old-style entries to the current format with +@findex change-log-redate +@kbd{M-x change-log-redate}.) One entry can describe several changes; each change should have its own item. Normally there should be a blank line between items. When @@ -1799,6 +1825,13 @@ global variables, data types, and anything else convenient. Each name recorded is called a @dfn{tag}. +@cindex C++ class browser, tags +@cindex tags, C++ +@cindex class browser, C++ +@cindex Ebrowse +The Ebrowse is a separate facility tailored for C++, with tags and a +class browser. @xref{,,, ebrowse, Ebrowse User's Manual}. + @menu * Tag Syntax:: Tag syntax for various types of code and text files. * Create Tags Table:: Creating a tags table with @code{etags}. @@ -2403,7 +2436,7 @@ @cindex buffer content indexes @cindex tags -The Imenu package provides mode-specific indexes of the contents of +The Imenu facility provides mode-specific indexes of the contents of single buffers and provides selection from a menu. Selecting a menu item takes you to the indexed point in the buffer, in a similar way to the Tags facility. Indexing is typically by names of program routines @@ -2451,7 +2484,7 @@ the same program in two different directions. To recover from this confusion, you need to merge the two versions. Emerge makes this easier. See also @ref{Comparing Files}, for commands to compare -in a more manual fashion, and @ref{Emerge,,, ediff, The Ediff Manual}. +in a more manual fashion, and @ref{,Ediff,, ediff, The Ediff Manual}. @menu * Overview of Emerge:: How to start Emerge. Basic concepts. @@ -3138,6 +3171,37 @@ Display the syntactic information about the current source line (@code{c-show-syntactic-information}). This is the information that directs how the line is indented. + +@item M-x cwarn-mode +@itemx M-x global-cwarn-mode +@findex cwarn-mode +@findex global-cwarn-mode +@cindex CWarn mode +@cindex suspicious constructions in C, C++ +CWarn minor mode highlights suspicious C and C++ constructions: + +@itemize @bullet{} +@item +Assignments inside expressions, including variations like @samp{+=}; +@item +Semicolon following immediately after @samp{if}, @samp{for}, and @samp{while} +(except after a @samp{do @dots{} while} statement); +@item +C++ functions with reference parameters. +@end itemize + +@noindent +You can activate the mode either by customizing @code{global-cwarn-mode} +or by adding @code{cwarn-mode} to @code{c-mode-common-hook}. It +requires Font Lock mode to be active. + +@item M-x hide-ifdef-mode +@findex hide-ifdef-mode +@cindex Hide-ifdef mode +Hide-ifdef minor mode hides selected code within @samp{#if} and +@samp{#ifdef} preprocessor blocks. You can activate it by adding +@code{hide-ifdef-mode} to @code{c-mode-common-hook}. See the mode's +help for more information. @end table @node Comments in C @@ -3176,6 +3240,7 @@ the beginning of the first line of the comment text. @end table + @node Fortran @section Fortran Mode @cindex Fortran mode