X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/a4b0cca119b01dc55bad802ef696c857fe014482..29993416fb4d19c1c3bb146367fc4bed74845486:/doc/misc/cc-mode.texi diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 031abba1f0..74e3485441 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -81,8 +81,9 @@ the second with them pointing to the XEmacs manuals. @comment No overfull hbox marks in the dvi file. @finalout -@setfilename ../../info/ccmode +@setfilename ../../info/ccmode.info @settitle CC Mode Manual +@documentencoding UTF-8 @footnotestyle end @c The following four macros generate the filenames and titles of the @@ -156,13 +157,13 @@ CC Mode @copying This manual is for CC Mode in Emacs. -Copyright @copyright{} 1995-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1995--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', +Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @@ -176,7 +177,7 @@ modify this GNU manual.'' @dircategory Emacs editing modes @direntry * CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, - Java, Pike, AWK, and CORBA IDL code. + Java, Pike, AWK, and CORBA IDL code. @end direntry @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -188,7 +189,7 @@ modify this GNU manual.'' @center @titlefont{CC Mode 5.32} @sp 2 -@center @subtitlefont{A GNU Emacs mode for editing C and C-like languages} +@center A GNU Emacs mode for editing C and C-like languages @sp 2 @center Barry A. Warsaw, Martin Stjernholm, Alan Mackenzie @@ -219,7 +220,7 @@ Objective-C, Java, CORBA IDL (and the variants PSDL and CIDL), Pike and AWK code. It provides syntax-based indentation, font locking, and has several handy commands and some minor modes to make the editing easier. It does not provide tools to look up and navigate between -functions, classes etc - there are other packages for that. +functions, classes, etc.; there are other packages for that. @insertcopying @end ifnottex @@ -241,7 +242,7 @@ functions, classes etc - there are other packages for that. * Customizing Indentation:: * Custom Macros:: * Odds and Ends:: -* Sample .emacs File:: +* Sample Init File:: * Performance Issues:: * Limitations and Known Bugs:: * FAQ:: @@ -369,7 +370,7 @@ Late in 1997, Martin Stjernholm joined Barry on the @ccmode{} Maintainers Team, and implemented the Pike support. In 2000 Martin took over as the sole maintainer. In 2001 Alan Mackenzie joined the team, implementing AWK support in version 5.30. @ccmode{} did not -originally contain the font lock support for its languages --- that +originally contain the font lock support for its languages; that was added in version 5.30. This manual describes @ccmode{} @@ -441,7 +442,7 @@ increasing detail. @itemize @bullet @item The chapter ``Configuration Basics'' tells you @emph{how} to write -customizations - whether in hooks, in styles, in both, or in neither, +customizations: whether in hooks, in styles, in both, or in neither, depending on your needs. It describes the @ccmode{} style system and lists the standard styles that @ccmode{} supplies. @@ -468,7 +469,7 @@ The FAQ contains a list of common problems and questions. @item The next two chapters tell you how to get in touch with the @ccmode{} -project - whether for updating @ccmode{} or submitting bug reports. +project: whether for updating @ccmode{} or submitting bug reports. @end itemize @noindent @@ -715,7 +716,7 @@ current line. When it is @code{nil}, @key{TAB} (re)indents the line only if point is to the left of the first non-whitespace character on the line. Otherwise it inserts some whitespace (a tab or an equivalent number of -spaces - see below) at point. +spaces; see below) at point. @item With some other value, the line is reindented. Additionally, if point is within a string or comment, some whitespace is inserted. @@ -750,12 +751,6 @@ very useful in this case. @end itemize @table @asis -@item @kbd{C-j} (@code{newline-and-indent}) -@kindex C-j -@findex newline-and-indent -Inserts a newline and indents the new blank line, ready to start -typing. This is a standard (X)Emacs command. - @item @kbd{C-M-q} (@code{c-indent-exp}) @kindex C-M-q @findex c-indent-exp @@ -820,10 +815,10 @@ often (in seconds) progress messages are to be displayed. @kindex C-c C-c @findex comment-region This command comments out the lines that start in the region. With a -negative argument, it does the opposite - it deletes the comment +negative argument, it does the opposite: it deletes the comment delimiters from these lines. @xref{Multi-Line Comments,,, emacs, GNU Emacs Manual}, for fuller details. @code{comment-region} isn't -actually part of @ccmode{} - it is given a @ccmode{} binding for +actually part of @ccmode{}; it is given a @ccmode{} binding for convenience. @item @kbd{M-;} (@code{comment-dwim} or @code{indent-for-comment} @footnote{The name of this command varies between (X)Emacs versions.}) @@ -1113,7 +1108,7 @@ valid.}. This function is not bound to a key by default, but it's intended to be used on the @kbd{RET} key. If you like the behavior of @code{newline-and-indent} on @kbd{RET}, you should consider switching to -this function. @xref{Sample .emacs File}. +this function. @xref{Sample Init File}. @item @kbd{M-x c-context-open-line} @findex c-context-open-line @@ -1147,7 +1142,7 @@ them yourself, e.g., after typing @samp{@}}s. Its action is suppressed when electric mode is disabled. @item hungry-delete mode This lets you delete a contiguous block of whitespace with a single -key - for example, the newline and indentation just inserted by +key: for example, the newline and indentation just inserted by auto-newline when you want to back up and write a comment after the last statement. @item subword mode @@ -1170,13 +1165,13 @@ and @ref{Indentation Engine Basics}. You can toggle each of these minor modes on and off, and you can configure @ccmode{} so that it starts up with your favorite -combination of them (@pxref{Sample .emacs File}). By default, when +combination of them (@pxref{Sample Init File}). By default, when you initialize a buffer, electric mode and syntactic-indentation mode -are enabled but the other two modes are disabled. +are enabled but the other three modes are disabled. @ccmode{} displays the current state of the first four of these minor modes on the modeline by appending letters to the major mode's name, -one letter for each enabled minor mode - @samp{l} for electric mode, +one letter for each enabled minor mode: @samp{l} for electric mode, @samp{a} for auto-newline mode, @samp{h} for hungry delete mode, and @samp{w} for subword mode. If all these modes were enabled, you'd see @samp{C/lahw}@footnote{The @samp{C} would be replaced with the name of @@ -1234,7 +1229,7 @@ turn it (or them) off. @cindex electric characters @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -Most punctuation keys provide @dfn{electric} behavior - as well as +Most punctuation keys provide @dfn{electric} behavior: as well as inserting themselves they perform some other action, such as reindenting the line. This reindentation saves you from having to reindent a line manually after typing, say, a @samp{@}}. A few @@ -2101,7 +2096,7 @@ initialization and the result is prepended. For an example, see @code{javadoc-font-lock-keywords} in @file{cc-fonts.el}. If you add support for another doc comment style, please consider -contributing it - send a note to @email{bug-cc-mode@@gnu.org}. +contributing it: send a note to @email{bug-cc-mode@@gnu.org}. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -2111,7 +2106,7 @@ contributing it - send a note to @email{bug-cc-mode@@gnu.org}. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The general appearance of font-locking in AWK mode is much like in any -other programming mode. @xref{Faces For Font Lock,,,elisp, GNU Emacs +other programming mode. @xref{Faces for Font Lock,,,elisp, GNU Emacs Lisp Reference Manual}. The following faces are, however, used in a non-standard fashion in @@ -2249,7 +2244,7 @@ more sophisticated facilities, hooks and styles. An Emacs @dfn{hook} is a place to put Lisp functions that you want Emacs to execute later in specific circumstances. @xref{Hooks,,,@lispref{}, @lispreftitle{}}. @ccmode{} supplies a main -hook and a language-specific hook for each language it supports - any +hook and a language-specific hook for each language it supports; any functions you put onto these hooks get executed as the last part of a buffer's initialization. Typically you put most of your customization within the main hook, and use the language-specific hooks to vary the @@ -2378,7 +2373,7 @@ those set by @code{c-default-style}. @vindex initialization-hook (c-) Hook run only once per Emacs session, when @ccmode{} is initialized. This is a good place to change key bindings (or add new ones) in any -of the @ccmode{} key maps. @xref{Sample .emacs File}. +of the @ccmode{} key maps. @xref{Sample Init File}. @end defvar @defvar c-mode-common-hook @@ -2406,7 +2401,7 @@ overwritten when @ccmode{} gets loaded. Here's a simplified example of what you can add to your @file{.emacs} file to do things whenever any @ccmode{} language is edited. See the Emacs manuals for more information on customizing Emacs via hooks. -@xref{Sample .emacs File}, for a more complete sample @file{.emacs} +@xref{Sample Init File}, for a more complete sample @file{.emacs} file. @example @@ -2683,9 +2678,9 @@ string. If none of the built-in styles is appropriate, you'll probably want to create a new @dfn{style definition}, possibly based on an existing style. To do this, put the new style's settings into a list with the -following format - the list can then be passed as an argument to the +following format; the list can then be passed as an argument to the function @code{c-add-style}. You can see an example of a style -definition in @ref{Sample .emacs File}. +definition in @ref{Sample Init File}. @cindex style definition @c @defvr {List} style definition @@ -2753,7 +2748,7 @@ deprecated and it might be removed from @ccmode{} in a future release. You should use @code{c-set-style} instead. The sample @file{.emacs} file provides a concrete example of how a new -style can be added and automatically set. @xref{Sample .emacs File}. +style can be added and automatically set. @xref{Sample Init File}. @end defun @defvar c-style-alist @@ -3166,7 +3161,7 @@ different ways, depending on the character just typed: @item Braces and Colons @ccmode{} first determines the syntactic context of the brace or colon (@pxref{Syntactic Symbols}), then looks for a corresponding element in -an alist. This element specifies where to put newlines - this is any +an alist. This element specifies where to put newlines: this is any combination of before and after the brace or colon. If no alist element is found, newlines are inserted both before and after a brace, but none are inserted around a colon. See @ref{Hanging Braces} and @@ -3267,7 +3262,7 @@ syntactic symbol, the associated value is either @code{nil}, a list, or a function. @table @asis -@item The Key - the syntactic symbol +@item The Key: the syntactic symbol The syntactic symbols that are useful as keys in this list are @code{brace-list-intro}, @code{statement-cont}, @code{inexpr-class-open}, @code{inexpr-class-close}, and all the @@ -3290,7 +3285,7 @@ lists in this regard, even though they do for normal indentation purposes. It's currently not possible to set automatic newlines on these constructs. -@item The associated value - the ``ACTION'' list or function +@item The associated value: the ``ACTION'' list or function The value associated with each syntactic symbol in this association list is called an @var{action}, which can be either a list or a function which returns a list. @xref{Custom Braces}, for how to use @@ -3460,7 +3455,7 @@ that the brace appears on a line by itself. Using a mechanism similar to brace hanging (@pxref{Hanging Braces}), colons can also be made to hang using the style variable -@code{c-hanging-colons-alist} - When a colon is typed, @ccmode +@code{c-hanging-colons-alist}: when a colon is typed, @ccmode determines its syntactic context, looks this up in the alist @code{c-changing-colons-alist} and inserts up to two newlines accordingly. Here, however, If @ccmode fails to find an entry for a @@ -3471,17 +3466,17 @@ newly typed colon. @vindex hanging-colons-alist (c-) @table @asis -@item The Key - the syntactic symbol +@item The Key: the syntactic symbol The syntactic symbols appropriate as keys in this association list are: @code{case-label}, @code{label}, @code{access-label}, @code{member-init-intro}, and @code{inher-intro}. @xref{Syntactic Symbols}. Elements with any other value as a key get ignored. -@item The associate value - the ``ACTION'' list +@item The associated value: the ``ACTION'' list The @var{action} here is simply a list containing a combination of the symbols @code{before} and @code{after}. Unlike in @code{c-hanging-braces-alist}, functions as @var{actions} are not -supported - there doesn't seem to be any need for them. +supported; there doesn't seem to be any need for them. @end table @end defopt @@ -3913,14 +3908,14 @@ recognized, e.g., @code{statement}, @code{substatement}, @code{class-open}, @code{class-close}, etc. @xref{Syntactic Symbols}, for a complete list of currently recognized syntactic symbols and their semantics. The remaining entries are various data associated -with the recognized construct - there might be zero or more. +with the recognized construct; there might be zero or more. @cindex anchor position Conceptually, a line of code is always indented relative to some position higher up in the buffer (typically the indentation of the previous line). That position is the @dfn{anchor position} in the syntactic element. If there is an entry after the syntactic symbol in -the syntactic element list then it's either nil or that anchor position. +the syntactic element list then it's either @code{nil} or that anchor position. Here is an example. Suppose we had the following code as the only thing in a C++ buffer @footnote{The line numbers in this and future examples @@ -4570,7 +4565,7 @@ example: Here, lines 4, 7, and 10 are all assigned @code{case-label} syntax, while lines 5 and 8 are assigned @code{statement-case-intro}. Line 11 is treated slightly differently since it contains a brace that opens a -block --- it is given @code{statement-case-open} syntax. +block; it is given @code{statement-case-open} syntax. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @node Brace List Symbols, External Scope Symbols, Switch Statement Symbols, Syntactic Symbols @@ -4798,7 +4793,7 @@ Line 2 is assigned the @code{func-decl-cont} syntax. @ssindex comment-intro Line 4 is assigned both @code{defun-block-intro} @emph{and} @code{comment-intro} syntax. A syntactic element with -@code{comment-intro} has no anchor point --- It is always accompanied +@code{comment-intro} has no anchor point. It is always accompanied by another syntactic element which does have one. @item @@ -4959,7 +4954,7 @@ the declaration is an annotation. There are a few occasions where a statement block might be used inside an expression. One is in C or C++ code using the gcc extension for -this, e.g: +this, e.g.: @example 1: int res = (@{ @@ -5282,15 +5277,15 @@ values that the special symbols correspond to: @item + @code{c-basic-offset} times 1 @item - -@code{c-basic-offset} times -1 +@code{c-basic-offset} times @minus{}1 @item ++ @code{c-basic-offset} times 2 @item -- -@code{c-basic-offset} times -2 +@code{c-basic-offset} times @minus{}2 @item * @code{c-basic-offset} times 0.5 @item / -@code{c-basic-offset} times -0.5 +@code{c-basic-offset} times @minus{}0.5 @end table @item A vector @@ -5332,10 +5327,10 @@ Use the first offset that doesn't evaluate to @code{nil}. Subsequent elements of the list don't get evaluated. @item min Use the minimum of all the offsets. All must be either relative or -absolute - they can't be mixed. +absolute; they can't be mixed. @item max Use the maximum of all the offsets. All must be either relative or -absolute - they can't be mixed. +absolute; they can't be mixed. @item add Add all the evaluated offsets together. Exactly one of them may be absolute, in which case the result is absolute. Any relative offsets @@ -5493,7 +5488,7 @@ any problems writing custom line-up functions for AWK mode. The calling convention for line-up functions is described fully in @ref{Custom Line-Up}. Roughly speaking, the return value is either an offset itself (such as @code{+} or @code{[0]}) or it's @code{nil}, -meaning ``this function is inappropriate in this case - try a +meaning ``this function is inappropriate in this case; try a different one''. @xref{c-offsets-alist}. The subsections below describe all the standard line-up functions, @@ -5552,7 +5547,7 @@ parentheses and statements within brace blocks. @findex lineup-close-paren (c-) Line up the closing paren under its corresponding open paren if the open paren is followed by code. If the open paren ends its line, no -indentation is added. E.g: +indentation is added. E.g.: @example @group @@ -5606,7 +5601,7 @@ discussion of this ``DWIM'' measure. @defun c-indent-one-line-block @findex indent-one-line-block (c-) -Indent a one line block @code{c-basic-offset} extra. E.g: +Indent a one line block @code{c-basic-offset} extra. E.g.: @example @group @@ -5640,7 +5635,7 @@ which makes the function usable in list expressions. @defun c-indent-multi-line-block @findex indent-multi-line-block (c-) -Indent a multiline block @code{c-basic-offset} extra. E.g: +Indent a multiline block @code{c-basic-offset} extra. E.g.: @example @group @@ -5679,7 +5674,7 @@ block, which makes the function usable in list expressions. Line up statements for coding standards which place the first statement in a block on the same line as the block opening brace@footnote{Run-in style doesn't really work too well. You might need to write your own -custom line-up functions to better support this style.}. E.g: +custom line-up functions to better support this style.}. E.g.: @example @group @@ -5762,7 +5757,7 @@ indents relative to the surrounding block just like @defun c-lineup-whitesmith-in-block @findex lineup-whitesmith-in-block (c-) Line up lines inside a block in Whitesmith style. It's done in a way -that works both when the opening brace hangs and when it doesn't. E.g: +that works both when the opening brace hangs and when it doesn't. E.g.: @example @group @@ -5816,7 +5811,7 @@ Line up the current argument line under the first argument. As a special case, if an argument on the same line as the open parenthesis starts with a brace block opener, the indentation is @code{c-basic-offset} only. This is intended as a ``DWIM'' measure in -cases like macros that contain statement blocks, e.g: +cases like macros that contain statement blocks, e.g.: @example @group @@ -5852,7 +5847,7 @@ brace block. @defun c-lineup-multi-inher @findex lineup-multi-inher (c-) Line up the classes in C++ multiple inheritance clauses and member -initializers under each other. E.g: +initializers under each other. E.g.: @example @group @@ -5895,7 +5890,7 @@ Line up Java implements and extends declarations. If class names follow on the same line as the @samp{implements}/@samp{extends} keyword, they are lined up under each other. Otherwise, they are indented by adding @code{c-basic-offset} to the column of the keyword. -E.g: +E.g.: @example @group @@ -5929,7 +5924,7 @@ same line as the throws keyword, they are lined up under each other. Otherwise, they are indented by adding @code{c-basic-offset} to the column of the @samp{throws} keyword. The @samp{throws} keyword itself is also indented by @code{c-basic-offset} from the function declaration -start if it doesn't hang. E.g: +start if it doesn't hang. E.g.: @example @group @@ -6014,7 +6009,7 @@ line. @defun c-lineup-argcont @findex lineup-argcont (c-) -Line up a continued argument. E.g: +Line up a continued argument. E.g.: @example @group @@ -6072,7 +6067,7 @@ suggestion to get a consistent style): @defun c-lineup-assignments @findex lineup-assignments (c-) Line up the current line after the assignment operator on the first line -in the statement. If there isn't any, return nil to allow stacking with +in the statement. If there isn't any, return @code{nil} to allow stacking with other line-up functions. If the current line contains an assignment operator too, try to align it with the first one. @@ -6101,7 +6096,7 @@ function is the same as specifying a list @code{(c-lineup-assignments Line up ``cascaded calls'' under each other. If the line begins with @code{->} or @code{.} and the preceding line ends with one or more function calls preceded by the same token, then the arrow is lined up -with the first of those tokens. E.g: +with the first of those tokens. E.g.: @example @group @@ -6133,7 +6128,7 @@ Line up C++ stream operators (i.e., @samp{<<} and @samp{>>}). @findex lineup-string-cont (c-) Line up a continued string under the one it continues. A continued string in this sense is where a string literal follows directly after -another one. E.g: +another one. E.g.: @example @group @@ -6242,7 +6237,7 @@ is equivalent to @code{(@r{@var{value}} . -1000)}. @findex lineup-knr-region-comment (c-) Line up a comment in the ``K&R region'' with the declaration. That is the region between the function or class header and the beginning of the -block. E.g: +block. E.g.: @example @group @@ -6282,7 +6277,7 @@ already has; think of it as an identity function for lineups. @defun c-lineup-cpp-define @findex lineup-cpp-define (c-) Line up macro continuation lines according to the indentation of the -construct preceding the macro. E.g: +construct preceding the macro. E.g.: @example @group @@ -6409,7 +6404,7 @@ that those lines could be analyzed as either topmost-intro-cont or statement-cont. It's used for @code{topmost-intro-cont} by default, but you might consider using @code{+} instead.}. For lines preceding a definition, zero is used. For other lines, @code{c-basic-offset} is -added to the indentation. E.g: +added to the indentation. E.g.: @example @group @@ -6475,13 +6470,14 @@ think is generally useful, you're very welcome to contribute it; please contact @email{bug-cc-mode@@gnu.org}. Line-up functions are passed a single argument, the syntactic -element (see below). The return value is a @code{c-offsets-alist} -offset specification: for example, an integer, a symbol such as -@code{+}, a vector, @code{nil}@footnote{Returning @code{nil} is useful -when the offset specification for a syntactic element is a list -containing the line-up function (@pxref{c-offsets-alist}).}, or even -another line-up function. Full details of these are in -@ref{c-offsets-alist}. +element (see below). At the time of the call, point will be somewhere +on the line being indented. The return value is a +@code{c-offsets-alist} offset specification: for example, an integer, +a symbol such as @code{+}, a vector, @code{nil}@footnote{Returning +@code{nil} is useful when the offset specification for a syntactic +element is a list containing the line-up function +(@pxref{c-offsets-alist}).}, or even another line-up function. Full +details of these are in @ref{c-offsets-alist}. Line-up functions must not move point or change the content of the buffer (except temporarily). They are however allowed to do @@ -6507,19 +6503,19 @@ earlier. Line-up functions are still passed this cons cell, so as to preserve compatibility with older configurations. In the future, we may decide to convert to using the full list format---you can prepare your setup for this by using the access functions -(@code{c-langelem-sym}, etc.) described below. +(@code{c-langelem-sym}, etc.)@: described below. @vindex c-syntactic-element @vindex syntactic-element (c-) @vindex c-syntactic-context @vindex syntactic-context (c-) Some syntactic symbols, e.g., @code{arglist-cont-nonempty}, have more -info in the syntactic element - typically other positions that can be +info in the syntactic element: typically other positions that can be interesting besides the anchor position. That info can't be accessed through the passed argument, which is a cons cell. Instead, you can get this information from the variable @code{c-syntactic-element}, which is dynamically bound to the complete syntactic element. The -variable @code{c-syntactic-context} might also be useful - it gets +variable @code{c-syntactic-context} might also be useful: it gets dynamically bound to the complete syntactic context. @xref{Custom Braces}. @@ -6536,7 +6532,7 @@ Return the syntactic symbol in @var{langelem}. @defun c-langelem-pos langelem @findex langelem-pos (c-) -Return the anchor position in @var{langelem}, or nil if there is none. +Return the anchor position in @var{langelem}, or @code{nil} if there is none. @end defun @defun c-langelem-col langelem &optional preserve-point @@ -6759,7 +6755,7 @@ initialization code. @end defun @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -@node Odds and Ends, Sample .emacs File, Custom Macros, Top +@node Odds and Ends, Sample Init File, Custom Macros, Top @comment node-name, next, previous, up @chapter Odds and Ends @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -6803,9 +6799,9 @@ anchoring position to indent the line in that case. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -@node Sample .emacs File, Performance Issues, Odds and Ends, Top +@node Sample Init File, Performance Issues, Odds and Ends, Top @comment node-name, next, previous, up -@appendix Sample .emacs File +@appendix Sample Init File @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Here's a sample .emacs file fragment that might help you along the way. @@ -6862,7 +6858,7 @@ to change some of the actual values. @end verbatim @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -@node Performance Issues, Limitations and Known Bugs, Sample .emacs File, Top +@node Performance Issues, Limitations and Known Bugs, Sample Init File, Top @comment node-name, next, previous, up @chapter Performance Issues @cindex performance @@ -7051,18 +7047,20 @@ Set the variable @code{c-basic-offset}. @xref{Getting Started}. @item @kindex RET @kindex C-j -@emph{Why doesn't the @kbd{RET} key indent the new line?} +@emph{Why does/doesn't the @kbd{RET} key indent the new line?} + +Emacs's convention used to be that @kbd{RET} just adds a newline, and that +@kbd{C-j} adds a newline and indents it. In Emacs-24.4, this convention was +reversed. -Emacs's convention is that @kbd{RET} just adds a newline, and that -@kbd{C-j} adds a newline and indents it. You can make @kbd{RET} do this -too by adding this to your @code{c-initialization-hook}: +If you use an older Emacs and you want @kbd{RET} do this +too, add this to your @code{c-initialization-hook}: @example (define-key c-mode-base-map "\C-m" 'c-context-line-break) @end example -@xref{Getting Started}. This is a very common question. If you want -this to be the default behavior, don't lobby us, lobby RMS@! @t{:-)} +@xref{Getting Started}. This was a very common question. @item @emph{How do I stop my code jumping all over the place when I type?}