Difference between revisions of "Auto arg"

From PyMOLWiki
Jump to navigation Jump to search
(Created page with "cmd.auto_arg controls auto-completion of command arguments in PyMOL's command line. It is an array of dictionaries.When Pymol's console attempts to auto-complete the ''n''-th...")
(No difference)

Revision as of 11:04, 21 August 2012

cmd.auto_arg controls auto-completion of command arguments in PyMOL's command line. It is an array of dictionaries.When Pymol's console attempts to auto-complete the n-th argument of command abc, it will look at cmd.auto_arg[n]['abc'] (n starts from 0). This is a list with three elements.

  1. The first element is a lambda function which returns an Shortcut object. Shortcut object wraps the list of candidate strings, given to its constructor.
  2. The second element is a string, which describs the argument.
  3. The third element is a string, which will be added after autocompletion (postfix).

PYTHON EXAMPLE

cmd.auto_arg[0]['test']=[lambda: cmd.Shortcut(['abc','bcd']), '1st argument', ', ']

This code defines the auto-completion list for the first argument of command test. When you type 'test ' and press TAB, PyMOL will show you two candidates as:

parser: matching 1st argument:
     abc  bcd 

If you type 'a' and press TAB again, PyMOL will complete it to "test abc, ". Note that ', ' is added.

Pre-defined lambdas

In most cases, you just want to complete from object names or setting lists. Then you don't have to write your own lambda function. Just use cmd.object_sc for choosing from objects.

cmd.auto_arg[0]['test'] = [ cmd.object_sc, 'object', '']

Use cmd.selection_sc for setting names (like 'line_width'), cmd.map_sc for maps and cmd.repres_sc for representations ('sticks', 'lines', etc).

SEE ALSO

  • extend
  • parser.py, cmd.py, shortcut.py