On Sat, Sep 10, 2011 at 8:36 AM, Edward K. Ream <[email protected]> wrote:
> Later posts will discuss...detailed instructions for using the autocompleter.
> This will
> discuss the effect of several other autocompletion-related settings.
Here they are, but first some notes:
1. Notice the dog that is not barking. There is no discussion of the
setting @bool use_codewise because that setting is no longer used!
Indeed, Leo *always* attempts Leo-specific (eval-oriented)
completions, and falls back on codewise (ctags) conversions if there
are none. I'll remove this setting soon from leoSettings.leo.
2. The follow docs are not entirely complete: I'll fold in some
details from the existing docs. However, the following docs discuss
the most important features of autocompletion. A later post will
discuss in detail how the code works.
All corrections an completions welcome. Without further ado, the
following is my best attempt at explaining how autocompletion actually
works...
----------------------------------------------------------------
Leo's autocompletion suggests **completions**, text may be valid in a given
point, or **context** in source code. For example, suppose the context is::
os.path.s
That is, suppose the cursor follows ``os.path.s`` in the body pane. The valid
completions are all the members of Python's os.path module whose names
start with 's',
namely::
samefile
sameopenfile
sep
split
splitdrive
splitext
splitunc
stat
supports_unicode_filenames
sys
Starting autocompletions
========================
There are two ways to have Leo show autocompletions, manually and automatically.
You can use both at the same time.
**Manual autocompletion**: Leo will show autocompletions whenever you execute
the auto-complete-force (ctrl-space) command.
**Automatic autocompletion**: If (automatic) autocompletion is
enabled, Leo will show completions whenever you type a period in the
body pane.
You can enable autocompletion in several ways:
1. By setting @bool enable_autocompleter_initially = True.
2. By using the toggle-autocompleter (Alt-1) command.
Displaying autocompletions
==========================
How Leo displays these completions depends on the setting::
@bool use_qcompleter
True: Leo shows completions in the QCompleter popup window.
False: Leo shows completions in the log pane.
Using the QCompleter
====================
When the ``@bool use_qcompleter`` setting is False, Leo shows all
completions in a
popup window, regardless of how many completions there are. To **accept** a
completion, use the up and down arrows to select a completion, then type the
return key. To **cancel** completion, type the escape key. As an important
shortcut, if the popup window contains only one entry, you may accept a
completion by simply typing the return key.
Using the Log pane completer
============================
When the ``@bool use_qcompleter`` setting is True, Leo shows completions in in
Leo's log pane. When there are more than 20 completions, Leo shows only the
characters that start a completions. For example, when completing ``os.path.``
the log pane will show::
_ 17
a 2
b 1
c 2
d 3
e 4
g 5
i 5
j 1
l 1
n 2
o 1
p 2
r 2
s 10
To see the complete list, type the '!' character. You will see::
__all__
__builtins__
__cached__
__doc__
__file__
__name__
__package__
_get_altsep
_get_bothseps
_get_colon
_get_dot
_get_empty
_get_sep
_get_special
_getfileinformation
_getfinalpathname
_getfullpathname
abspath
altsep
basename
commonprefix
curdir
defpath
devnull
dirname
exists
...
Typically, however, you would simply type one of the valid prefix characters.
For example, typing the letter 'a' would create the context ``os.path.a`` and
the log pane would show::
abspath
altsep
As you type, Leo enters the longest common prefix of all completions into the
body pane. Typing return, escape or ctrl-g (or any other alt or ctrl key) ends
completion.
Showing docstrings
==================
Regardless of the setting of ``@bool use_qcompleter``,
typing '?' during autocompletion will show the docstring of
the present context. For example, suppose the context is
``os.path.join``. Now typing '?' will show::
Join two or more pathname components, inserting "\" as needed.
If any component is an absolute path, all previous path components
will be discarded.
It is not possible to copy the docstring from the log pane
when using the QCompleter because the QCompleter popup window is a modal dialog.
Edward
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/leo-editor?hl=en.