Commit 27a16462 authored by Chong Yidong's avatar Chong Yidong
Browse files

Document completion styles in Emacs manual; copyedits.

* doc/emacs/mini.texi (Minibuffer File): Minor copyedits.  Use xref to
Remote Files node instead of linking directly to the Tramp manual.
(Minibuffer Edit): Add xref to Blank Lines.
(Completion): Add xref to Symbol Completion.  Remove redundant
example, which is repeated in the next node.
(Completion Commands): Minor clarifications.
(Completion Styles): New node, split from Completion Commands.
Document substring and initials styles.
(Strict Completion): Remove information duplicated in other nodes.
(Completion Options): Consolidate case difference discussion here.

* doc/emacs/files.texi (File Names): Add index entries.

* doc/emacs/help.texi (Help Mode): Fix kindex entries.
parent 235ce86f
2011-10-08 Chong Yidong <cyd@stupidchicken.com>
* mini.texi (Minibuffer File): Minor copyedits. Use xref to
Remote Files node instead of linking directly to the Tramp manual.
(Minibuffer Edit): Add xref to Blank Lines.
(Completion): Add xref to Symbol Completion. Remove redundant
example, which is repeated in the next node.
(Completion Commands): Minor clarifications.
(Completion Styles): New node, split from Completion Commands.
Document substring and initials styles.
(Strict Completion): Remove information duplicated in other nodes.
(Completion Options): Consolidate case difference discussion here.
* help.texi (Help Mode): Fix kindex entries.
* files.texi (File Names): Add index entries.
2011-10-07 Chong Yidong <cyd@stupidchicken.com>
* basic.texi (Inserting Text): Add xref to Completion. Add
......
......@@ -282,6 +282,7 @@ Completion
* Completion Example:: Examples of using completion.
* Completion Commands:: A list of completion commands.
* Strict Completion:: Different types of completion.
* Completion Styles:: How completion matches are chosen.
* Completion Options:: Options for completion.
Help
......
......@@ -54,11 +54,13 @@ Note that file name completion ignores file names whose extensions
appear in the variable @code{completion-ignored-extensions}
(@pxref{Completion Options}).
@cindex default file name
For most operations, there is a @dfn{default file name} which is
used if you type just @key{RET} to enter an empty argument. Normally,
the default file name is the name of the file visited in the current
buffer.
@cindex default directory
@vindex default-directory
@vindex insert-default-directory
Each buffer has a @dfn{default directory} which is normally the same
......@@ -1863,7 +1865,7 @@ then specifying @file{/tmp/foo*bar} will visit only
@cindex file name caching
@cindex cache of file names
@pindex find
@kindex C-@key{TAB}
@kindex C-TAB
@findex file-cache-minibuffer-complete
You can use the @dfn{file name cache} to make it easy to locate a
file by name, without having to remember exactly where it is located.
......
......@@ -443,9 +443,9 @@ your steps.
the @code{browse-url} command to view the page in the browser you
choose. @xref{Browse-URL}.
@kindex @key{TAB} @r{(Help mode)}
@kindex TAB @r{(Help mode)}
@findex help-next-ref
@kindex S-@key{TAB} @r{(Help mode)}
@kindex S-TAB @r{(Help mode)}
@findex help-previous-ref
There are convenient commands to move point to cross references in
the help text. @key{TAB} (@code{help-next-ref}) moves point down to
......
......@@ -15,9 +15,9 @@ argument text.
@cindex prompt
When the minibuffer is in use, it appears in the echo area, with a
cursor. The minibuffer display starts with a @dfn{prompt} in a
distinct color, usually ending with a colon. The prompt states what
kind of input is expected, and how it will be used.
cursor. The minibuffer starts with a @dfn{prompt} in a distinct
color, usually ending with a colon. The prompt states what kind of
input is expected, and how it will be used.
The simplest way to enter a minibuffer argument is to type the text,
then @key{RET} to submit the argument and exit the minibuffer. You
......@@ -26,19 +26,17 @@ typing @kbd{C-g}.
@cindex default argument
Sometimes, a @dfn{default argument} appears in the prompt, inside
parentheses before the colon. The default will be used as the
argument value if you just type @key{RET}. For example, commands that
read buffer names usually show a buffer name as the default; you can
type @key{RET} to operate on that default buffer.
parentheses before the colon. This default will be used as the
argument if you just type @key{RET}. For example, commands that read
buffer names usually show a buffer name as the default; you can type
@key{RET} to operate on that default buffer.
Since the minibuffer appears in the echo area, it can conflict with
other uses of the echo area. If an error occurs while the minibuffer
is active, the error message hides the minibuffer for a few seconds,
or until you type something; then the minibuffer comes back. If a
command such as @kbd{C-x =} needs to display a message in the echo
area, the message hides the minibuffer for a few seconds, or until you
type something; then the minibuffer comes back. While the minibuffer
is in use, keystrokes do not echo.
other uses of the echo area. If an error message or an informative
message is emitted while the minibuffer is active, the message hides
the minibuffer for a few seconds, or until you type something; then
the minibuffer comes back. While the minibuffer is in use, keystrokes
do not echo.
@menu
* Minibuffer File:: Entering file names with the minibuffer.
......@@ -52,6 +50,7 @@ is in use, keystrokes do not echo.
@node Minibuffer File
@section Minibuffers for File Names
@cindex default directory
Commands such as @kbd{C-x C-f} (@code{find-file}) use the minibuffer
to read a file name argument (@pxref{Basic Files}). When the
minibuffer is used to read a file name, it typically starts out with
......@@ -92,7 +91,7 @@ Emacs interprets a double slash as ``ignore everything before the
second slash in the pair.'' In the example above,
@file{/u2/emacs/src/} is ignored, so the argument you supplied is
@file{/etc/termcap}. The ignored part of the file name is dimmed if
the terminal allows it (to disable this dimming, turn off File Name
the terminal allows it. (To disable this dimming, turn off File Name
Shadow mode with the command @kbd{M-x file-name-shadow-mode}.)
@cindex home directory shorthand
......@@ -108,11 +107,11 @@ directory name in front of the @file{~} is ignored: thus,
home directory, Emacs uses several alternatives. For MS-Windows, see
@ref{Windows HOME}; for MS-DOS, see
@ifnottex
@ref{MS-DOS File Names, HOME on MS-DOS}.
@ref{MS-DOS File Names}.
@end ifnottex
@iftex
@ref{MS-DOS File Names, HOME on MS-DOS,, emacs, the Emacs Manual}, in
the main Emacs manual.
@ref{MS-DOS File Names, HOME on MS-DOS,, emacs, the digital version of
the Emacs Manual}.
@end iftex
On these systems, the @file{~@var{user-id}/} construct is supported
only for the current user, i.e., only if @var{user-id} is the current
......@@ -125,9 +124,8 @@ file names, change the variable @code{insert-default-directory} to
Nonetheless, relative file name arguments are still interpreted based
on the same default directory.
For rules how to read remote file names in the minibuffer, see
@ref{Filename completion, file name completion,, tramp}, in the Tramp
manual.
You can also enter remote file names in the minibuffer.
@xref{Remote Files}.
@node Minibuffer Edit
@section Editing in the Minibuffer
......@@ -136,17 +134,17 @@ manual.
usual Emacs commands are available for editing the argument text.
(The prompt, however, is @dfn{read-only}, and cannot be changed.)
Since @key{RET} in the minibuffer is defined to exit the minibuffer,
you can't use it to insert a newline in the minibuffer. To do that,
type @kbd{C-o} or @kbd{C-q C-j}. (The newline character is really the
@acronym{ASCII} character control-J.)
Since @key{RET} in the minibuffer submits the argument, you can't
use it to insert a newline. You can do that with @kbd{C-q C-j}, which
inserts a @kbd{C-j} control character, which is formally equivalent to
a newline character (@pxref{Inserting Text}). Alternatively, you can
use the @kbd{C-o} (@code{open-line}) command (@pxref{Blank Lines}).
Inside a minibuffer, the keys @kbd{@key{TAB}}, @kbd{@key{SPC}}, and
@kbd{@key{?}} are often bound to commands that perform
@dfn{completion}. @xref{Completion}. You can use @kbd{C-q}
(@code{quoted-insert}) to insert a @key{TAB}, @key{SPC}, or @key{?}
character. For example, @kbd{C-q @key{TAB}} inserts a @key{TAB}
character. @xref{Inserting Text}.
Inside a minibuffer, the keys @key{TAB}, @key{SPC}, and @kbd{?} are
often bound to @dfn{completion commands}, which allow you to easily
fill in the desired text without typing all of it. @xref{Completion}.
As with @key{RET}, you can use @kbd{C-q} to insert a @key{TAB},
@key{SPC}, or @samp{?} character.
For convenience, @kbd{C-a} (@code{move-beginning-of-line}) in a
minibuffer moves point to the beginning of the argument text, not the
......@@ -203,35 +201,28 @@ set the variable @code{enable-recursive-minibuffers} to @code{t}.
@c it, the tutorial needs to be adjusted.
@cindex completion
Sometimes, you can use a feature called @dfn{completion} to help you
enter arguments. This means that after you type part of the argument,
Emacs can fill in the rest, or some of it, based on what you have
typed so far.
You can often use a feature called @dfn{completion} to help enter
arguments. This means that after you type part of the argument, Emacs
can fill in the rest, or some of it, based on what was typed so far.
@cindex completion alternative
When completion is available, certain keys (usually @key{TAB},
@key{RET}, and @key{SPC}) are rebound to complete the text in the
minibuffer into a longer string chosen from a set of @dfn{completion
alternatives}. The set of completion alternatives depends on the
command that requested the argument, and on what you have typed so
far. In addition, you can usually type @kbd{?} to display a list of
possible completions.
For example, @kbd{M-x} uses the minibuffer to read the name of a
command, so completion works by matching the minibuffer text against
the names of existing Emacs commands. So, to run the command
@code{insert-buffer}, you can type @kbd{M-x ins @key{SPC} b @key{RET}}
instead of the full @kbd{M-x insert-buffer @key{RET}}.
Case is significant in completion when it is significant in the
argument you are entering, such as command names. Thus,
@samp{insert-buffer} is not a valid completion for @samp{IN}.
Completion ignores case distinctions for certain arguments in which
case does not matter.
@key{RET}, and @key{SPC}) are rebound in the minibuffer to special
completion commands (@pxref{Completion Commands}). These commands
attempt to complete the text in the minibuffer, based on a set of
@dfn{completion alternatives} provided by the command that requested
the argument. You can usually type @kbd{?} to see a list of
completion alternatives.
Although completion is usually done in the minibuffer, the feature
is sometimes available in ordinary buffers too. @xref{Symbol
Completion}.
@menu
* Example: Completion Example. Examples of using completion.
* Commands: Completion Commands. A list of completion commands.
* Strict Completion:: Different types of completion.
* Completion Styles:: How completion matches are chosen.
* Options: Completion Options. Options for completion.
@end menu
......@@ -239,24 +230,31 @@ case does not matter.
@subsection Completion Example
@kindex TAB @r{(completion)}
A concrete example may help here. If you type @kbd{M-x a u
@key{TAB}}, the @key{TAB} looks for alternatives (in this case,
command names) that start with @samp{au}. There are several,
including @code{auto-fill-mode} and @code{autoconf-mode}, but they all
begin with @code{auto}, so the @samp{au} in the minibuffer completes
to @samp{auto}.
A simple example may help here. @kbd{M-x} uses the minibuffer to
read the name of a command, so completion works by matching the
minibuffer text against the names of existing Emacs commands. Suppose
you wish to run the command @code{auto-fill-mode}. You can do that by
typing @kbd{M-x auto-fill-mode @key{RET}}, but it is easier to use
completion.
If you type @kbd{M-x a u @key{TAB}}, the @key{TAB} looks for
completion alternatives (in this case, command names) that start with
@samp{au}. There are several, including @code{auto-fill-mode} and
@code{autoconf-mode}, but they all begin with @code{auto}, so the
@samp{au} in the minibuffer completes to @samp{auto}.
If you type @key{TAB} again immediately, it cannot determine the
next character; it could be @samp{-}, @samp{a}, or @samp{c}. So it
does not add any characters; instead, @key{TAB} displays a list of all
possible completions in another window.
Next, type @kbd{- f}. The minibuffer now contains @samp{auto-f},
and the only command name that starts with this is
@code{auto-fill-mode}. If you now type @key{TAB}, completion fills in
the rest of the argument @samp{auto-fill-mode} into the minibuffer.
You have been able to enter @samp{auto-fill-mode} by typing just
@kbd{a u @key{TAB} - f @key{TAB}}.
Next, type @kbd{-f}. The minibuffer now contains @samp{auto-f}, and
the only command name that starts with this is @code{auto-fill-mode}.
If you now type @key{TAB}, completion fills in the rest of the
argument @samp{auto-fill-mode} into the minibuffer.
Hence, typing just @kbd{a u @key{TAB} - f @key{TAB}} allows you to
enter @samp{auto-fill-mode}.
@node Completion Commands
@subsection Completion Commands
......@@ -272,60 +270,24 @@ complete, display a list of possible completions
(@code{minibuffer-complete}).
@item @key{SPC}
Complete up to one word from the minibuffer text before point
(@code{minibuffer-complete-word}). @key{SPC} for completion is not
available when entering a file name, since file names often include
spaces.
(@code{minibuffer-complete-word}). This command is not available for
arguments that often include spaces, such as file names.
@item @key{RET}
Submit the text in the minibuffer as the argument, possibly completing
first as described in the next
@iftex
subsection (@code{minibuffer-complete-and-exit}).
@end iftex
@ifnottex
node (@code{minibuffer-complete-and-exit}). @xref{Strict Completion}.
@end ifnottex
first (@code{minibuffer-complete-and-exit}). @xref{Strict Completion}.
@item ?
Display a list of possible completions of the text before point
(@code{minibuffer-completion-help}).
Display a list of completions (@code{minibuffer-completion-help}).
@end table
@kindex TAB
@kindex TAB @r{(completion)}
@findex minibuffer-complete
@key{TAB} (@code{minibuffer-complete}) is the most fundamental
completion command. It searches for all possible completion
alternatives that match the existing minibuffer text, and attempts to
complete as much as it can. The matching of completion alternatives
to the minibuffer text is performed according to somewhat intricate
rules, which are designed so that plausible completions are offered
under most circumstances. A valid completion alternative must satisfy
the following criteria:
@itemize @bullet
@item
The minibuffer text before point must be the same as the beginning of
the completion alternative. If there is any minibuffer text after
point, it must be a substring of the remainder of the completion
alternative.
@item
If no completion alternative satisfies the above rules, try using
@dfn{partial completion} rules: divide the minibuffer text into words
separated by hyphens or spaces, and complete each word separately.
Thus, when completing command names, @samp{em-l-m} completes to
@samp{emacs-lisp-mode}.
@item
If there is still no completion alternative, try the first rule again,
but ignore the minibuffer text after point (i.e., don't try matching
it).
@end itemize
@noindent
When performing these comparisons, a @samp{*} in the minibuffer text
acts as a @dfn{wildcard}---it matches any character at the
corresponding position in the completion alternative.
completion command. It searches for all possible completions that
match the existing minibuffer text, and attempts to complete as much
as it can. @xref{Completion Styles}, for how completion alternatives
are chosen.
@kindex SPC
@kindex SPC @r{(completion)}
@findex minibuffer-complete-word
@key{SPC} (@code{minibuffer-complete-word}) completes like
@key{TAB}, but only up to the next hyphen or space. If you have
......@@ -334,50 +296,52 @@ completion is @samp{auto-fill-mode}, but it only inserts @samp{ill-},
giving @samp{auto-fill-}. Another @key{SPC} at this point completes
all the way to @samp{auto-fill-mode}.
@kindex ? @r{(completion)}
@cindex completion list
If @key{TAB} or @key{SPC} is unable to complete, it displays a list
of possible completions (if there are any) in a separate window. You
can choose a completion from this list using the following commands:
of matching completion alternatives (if there are any) in another
window. You can display the same list with @kbd{?}
(@code{minibuffer-completion-help}). The following commands can be
used with the completion list:
@table @kbd
@findex mouse-choose-completion
@item Mouse-1
@itemx Mouse-2
Clicking mouse button 1 or 2 on a completion possibility chooses that
completion (@code{mouse-choose-completion}).
Clicking mouse button 1 or 2 on a completion alternative chooses it
(@code{mouse-choose-completion}).
@findex switch-to-completions
@item M-v
@itemx @key{PageUp}
@itemx @key{prior}
Typing @kbd{M-v}, while in the minibuffer, selects the window showing
the completion list buffer (@code{switch-to-completions}). This paves
the way for using the commands below. Typing @key{PageUp} or
@key{prior} does the same, as does selecting that window in other
ways.
the completion list (@code{switch-to-completions}). This paves the
way for using the commands below. @key{PageUp} or @key{prior} does
the same. You can also select the window in other ways
(@pxref{Windows}).
@findex choose-completion
@item @key{RET}
Typing @key{RET}, while in the completion list buffer, chooses the
completion that point is in or next to (@code{choose-completion}). To
use this command, you must first switch to the completion list window.
While in the completion list buffer, this chooses the completion at
point (@code{choose-completion}).
@findex next-completion
@item @key{Right}
Typing the right-arrow key @key{Right}, while in the completion list
buffer, moves point to the following completion possibility
(@code{next-completion}).
While in the completion list buffer, this moves point to the following
completion alternative (@code{next-completion}).
@findex previous-completion
@item @key{Left}
Typing the left-arrow key @key{Left}, while in the completion list
buffer, moves point to the previous completion possibility
(@code{previous-completion}).
While in the completion list buffer, this moves point to the previous
completion alternative (@code{previous-completion}).
@end table
@node Strict Completion
@subsection Strict Completion
There are three different ways that @key{RET} can do completion,
There are three ways that the @key{RET}
(@code{minibuffer-complete-and-exit}) completion command can act,
depending on how the argument will be used.
@itemize @bullet
......@@ -406,14 +370,117 @@ completion, @key{RET} does not complete, it just submits the argument
as you have entered it.
@end itemize
The completion commands display a list of all possible completions
whenever they can't determine even one more character by completion.
Also, typing @kbd{?} explicitly requests such a list. You can scroll
the list with @kbd{C-M-v} (@pxref{Other Window}).
Like the other completion commands, @key{RET} displays a list of all
possible completions whenever it is supposed to complete but is unable
to complete any further.
@node Completion Styles
@subsection How Completion Alternatives Are Chosen
@cindex completion style
Completion commands work by narrowing a large list of possible
completion alternatives to a smaller subset that ``matches'' what you
have typed in the minibuffer. In @ref{Completion Example}, we gave a
simple example of such matching. The procedure of determining what
constitutes a ``match'' is quite intricate. Emacs attempts to offer
plausible completions under most circumstances.
Emacs performs completion using one or more @dfn{completion
styles}---sets of criteria for matching minibuffer text to completion
alternatives. During completion, Emacs tries each completion style in
turn. If a style yields one or more matches, that is used as the list
of completion alternatives. If a style produces no matches, Emacs
falls back on the next style.
@vindex completion-styles
The list variable @code{completion-styles} specifies the completion
styles to use. Each list element is the name of a completion style (a
Lisp symbol). The default completion styles are (in order):
@table @code
@item basic
A matching completion alternative must have the same beginning as the
text in the minibuffer before point. Furthermore, if there is any
text in the minibuffer after point, the rest of the completion
alternative must contain that text as a substring.
@findex partial completion
@item partial-completion
This aggressive completion style divides the minibuffer text into
words separated by hyphens or spaces, and completes each word
separately. (For example, when completing command names,
@samp{em-l-m} completes to @samp{emacs-lisp-mode}.)
Furthermore, a @samp{*} in the minibuffer text is treated as a
@dfn{wildcard}---it matches any character at the corresponding
position in the completion alternative.
@item emacs22
This completion style is similar to @code{basic}, except that it
ignores the text in the minibuffer after point. It is so-named
because it corresponds to the completion behavior in Emacs 22 and
earlier.
@end table
@noindent
The following additional completion styles are also defined, and you
can add them to @code{completion-styles} if you wish
(@pxref{Customization}):
@table @code
@item substring
A matching completion alternative must contain the text in the
minibuffer before point, and the text in the minibuffer after point,
as substrings (in that same order).
Thus, if the text in the minibuffer is @samp{foobar}, with point
between @samp{foo} and @samp{bar}, that matches
@samp{@var{a}foo@var{b}bar@var{c}}, where @var{a}, @var{b}, and
@var{c} can be any string including the empty string.
@item initials
This very aggressive completion style attempts to complete acronyms
and initialisms. For example, when completing command names, it
matches @samp{lch} to @samp{list-command-history}.
@end table
@node Completion Options
@subsection Completion Options
@cindex case-sensitivity and completion
@cindex case in completion
Case is significant when completing case-sensitive arguments, such
as command names. For example, when completing command names,
@samp{AU} does not complete to @samp{auto-fill-mode}. Case
differences are ignored when completing arguments in which case does
not matter.
@vindex read-file-name-completion-ignore-case
@vindex read-buffer-completion-ignore-case
When completing file names, case differences are ignored if the
variable @code{read-file-name-completion-ignore-case} is
non-@code{nil}. The default value is @code{nil} on systems that have
case-sensitive file-names, such as GNU/Linux; it is non-@code{nil} on
systems that have case-insensitive file-names, such as Microsoft
Windows. When completing buffer names, case is significant by
default; to ignore case differences, change the variable
@code{read-buffer-completion-ignore-case} to a non-@code{nil} value.
@vindex completion-ignored-extensions
@cindex ignored file names, in completion
When completing file names, Emacs usually omits certain alternatives
that are considered unlikely to be chosen. The variable
@code{completion-ignored-extensions} contains a list of strings; a
file name ending in any of those strings is ignored as a completion
alternative. The standard value of this variable has several elements
including @code{".o"}, @code{".elc"}, and @code{"~"}. For example, if
a directory contains @samp{foo.c} and @samp{foo.elc}, @samp{foo}
completes to @samp{foo.c}. However, if @emph{all} possible
completions end in ``ignored'' strings, they are not ignored: in the
previous example, @samp{foo.e} completes to @samp{foo.elc}.
Displaying the completion list disregards
@code{completion-ignored-extensions}; all completions are listed.
@vindex completion-auto-help
If @code{completion-auto-help} is set to @code{nil}, the completion
commands never display the completion list buffer; you must type
......@@ -423,51 +490,12 @@ In other words, if there is nothing to complete, the first @key{TAB}
echoes @samp{Next char not unique}; the second @key{TAB} does the
completion list buffer.
@vindex completion-ignored-extensions
@cindex ignored file names, in completion
When completing file names, certain file names are usually ignored.
The variable @code{completion-ignored-extensions} contains a list of
strings; a file name ending in any of those strings is ignored as a
completion candidate. The standard value of this variable has several
elements including @code{".o"}, @code{".elc"}, and @code{"~"}. For
example, if a directory contains @samp{foo.c} and @samp{foo.elc},
@samp{foo} completes to @samp{foo.c}. However, if @emph{all} possible
completions end in ``ignored'' strings, they are not ignored: in the
previous example, @samp{foo.e} completes to @samp{foo.elc}.
Displaying a list of possible completions disregards
@code{completion-ignored-extensions}; it shows them all.
If an element of @code{completion-ignored-extensions} ends in a
slash (@file{/}), it's a subdirectory name; that directory and its
contents are ignored. Elements of
@code{completion-ignored-extensions} that do not end in a slash are
ordinary file names.
@cindex case-sensitivity and completion
@vindex read-file-name-completion-ignore-case
@vindex read-buffer-completion-ignore-case
When completing file names, Emacs ignores case differences if the
variable @code{read-file-name-completion-ignore-case} is
non-@code{nil}. The default value is @code{nil} on systems that have
case-sensitive file-names, such as GNU/Linux; it is non-@code{nil} on
systems that have case-insensitive file-names, such as Microsoft
Windows. When completing buffer names, Emacs ignores case differences
if @code{read-buffer-completion-ignore-case} is non-@code{nil} (the
default value is @code{nil}).
@vindex completion-styles
You can customize the matching rules for completion alternatives
using the variable @code{completion-styles}. Its value should be a
list of symbols, each representing a @dfn{completion style}; valid
style symbols are @code{basic}, @code{partial-completion},
@code{emacs22}, @code{emacs21}, and @code{initials}. When completing,
Emacs attempts to use the first completion style in the list; if this
does not return any completion alternatives, it tries the next
completion style in the list, and so on. The completion rules
described in @ref{Completion Commands} correspond to the default value
of @code{completion-styles}, which is @code{(basic partial-completion
emacs22)}.
@cindex Icomplete mode
@findex icomplete-mode
Icomplete mode presents a constantly-updated display that tells you
......
......@@ -100,12 +100,12 @@ and also when HOME is set to C:\ by default.
rather than their own completion code.
*** `completion-at-point' now handles tags and semantic completion.
---
*** Completion in a non-minibuffer now tries to detect the end of completion
and pops down the *Completions* buffer accordingly.
*** Completion can cycle, depending on completion-cycle-threshold.
+++
*** New completion style `substring'.
*** Completion style can be set per-category `completion-category-overrides'.
......
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