help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How does M-x completion works


From: Andreas Röhler
Subject: Re: How does M-x completion works
Date: Fri, 26 Feb 2010 14:12:22 +0100
User-agent: Thunderbird 2.0.0.19 (X11/20081227)

Kevin Rodgers wrote:
> Andreas Röhler wrote:
>> Hibou57 (Yannick Duchêne) wrote:
>> > May be I did not choose the good words. I was not talking about
> CTags, I was > > talking about what you get when you do "M-x [TAB]". I
> call it "completion", > > but may be this is not the good word.
> 
> Completion is the correct term.
> 
>> Than it's pretty probable it consults the tags-table. You have delete
>> it from there.
> 
> No.  Compare the Completion node of the Emacs manual with the Tags node:
> 
> | Some arguments allow "completion" to enter their value.  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.
> | ...
> |    For example, `M-x' uses the minibuffer to read the name of a
> | command, so it provides a list of all Emacs command names for
> | completion candidates.
> 
> 
> | A "tags table" is a description of how a multi-file program is broken
> | up into files.  It lists the names of the component files and the names
> | and positions of the functions (or other named subunits) in each file.
> 

Hi Kevin,

think completion may visit tags-table for possible completions.

Here is for example how complete-symbol is defined:

(defun complete-symbol (arg)
  "Perform tags completion on the text around point.
If a tags table is loaded, call `complete-tag'.
Otherwise, if Semantic is active, call `semantic-ia-complete-symbol'.

With a prefix argument, this command does completion within
the collection of symbols listed in the index of the manual for the
language you are using."
  (interactive "P")
  (cond (arg
         (info-complete-symbol))
        ((or tags-table-list tags-file-name)
         (complete-tag))
        ((and (fboundp 'semantic-ia-complete-symbol)
              (fboundp 'semantic-active-p)
              (semantic-active-p))
         (semantic-ia-complete-symbol))
        (t
         (error "%s"
                (substitute-command-keys
                 "No completions available; use \\[visit-tags-table] \
or \\[semantic-mode]")))))

;;;;;

AFAIU several hooks/variables may be in use, depending from the context, so 
completion may be performed in several ways.
Seems a complex matter.

Andreas

--
https://code.launchpad.net/~a-roehler/python-mode
https://code.launchpad.net/s-x-emacs-werkstatt/






reply via email to

[Prev in Thread] Current Thread [Next in Thread]