EditorDoc Sections Nuprl Doc
IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html
`(c-&)' `(c-a)(c-&)' `(c-u)(c-&)'

Various kinds of string-representing operators have an attached name-completion utility invoked with these macros.

`(c-&)' basically looks for right-end-extensions of the string, and is usually much faster than full name-completion. It's actually a little more complex than prefix matching: if the string we're trying to complete contains no upper case letters or `_' characters, then matches are considered any strings whose lower-casing and `_'-deletion has the pattern string as prefix.
 
`(c-a)(c-&)' is like `(c-&)', except that it uses contiguous-substring instead of prefix as a match.
 
`(c-u)(c-&)' If there is a cache associated with the utility for the relevant kind of string-representing term, this will refresh it.

In every form of name completion, if there is no match, the sample is deleted (but saved on the stack).
If there is one match, it replaces the sample.
If there are a few matches, an option sequence replaces the sample. doc for edit choice
If there are lots of matches, a separate window of insertion buttons is created as scratch; they are still presented as an option sequence to facilitate narrowing the list.
If too many match, the user is warned and given an option to list them anyway.

Currently, here are the kinds of name completion implemented.

ML name completion, which searches a cache of global ML names, is invoked on instances of [text].

Object name completion, which searches all object names of the library, is invoked on instances of:

[ob name] and it variants,
`[mltok]`, since often tokens are used in ML to refer to lib objects,
and other miscellaneous forms usually referring to objects:
=[obj].[name] ob:[ob name] *[object]* [ob].[name]

Primitive edit cmd name completion is invoked on instances of *[primitive cmd name]*.

Internal defined edit cmd name completion is invoked on instances of [[internal macro name]].

File Name completion, which is limited to `(c-&)' and is invoked on WORDS constructs and ML string literals of form "[mlstring]". IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html

EditorDoc Sections Nuprl Doc