| 1 | = !ArgumentCompleter = |
| 2 | [[TracNav(TracNav/TOC_Development)]] |
| 3 | |
| 4 | |
| 5 | == Description == |
| 6 | The !ArgumentCompleter returns a list of possible arguments for a [wiki:ConsoleCommand]. This is achieved by calling a function which returns an [wiki:ArgumentCompletionList]. These functions are defined in [wiki:ArgumentCompletionFunctions]. |
| 7 | |
| 8 | An !ArgumentCompleter can be assigned to every argument of a !ConsoleCommand: |
| 9 | {{{ |
| 10 | SetConsoleCommand(ClassName, functionname, bShortcut) |
| 11 | .argumentCompleter(param-nr (0-4), autocompletion::ac_function()); |
| 12 | }}} |
| 13 | ''ac_function'' is one of the defined functions in [wiki:ArgumentCompletionFunctions]. If the given !ConsoleCommand is typed into the [wiki:Shell] and '''complete()''' is called in the [wiki:CommandExecutor], a list of the possible arguments is displayed in the Shell. |
| 14 | |
| 15 | The returned list may depend on the already given set of arguments (including the currently typed argument). This allows to return, for example, all [wiki:HowTo/ConfigValue config-values] of a given class, where the classname is the first argument and the name of the config-value the second argument. |
| 16 | |
| 17 | == Examples == |
| 18 | * Classnames: |
| 19 | {{{ |
| 20 | SCC(...).argumentCompleter(0, autocompletion::classnames()); |
| 21 | |
| 22 | > command-name a |
| 23 | }}} |
| 24 | In this example the !ArgumentCompleter returns a list of all classnames starting with "a". |
| 25 | |
| 26 | * Config-values: |
| 27 | {{{ |
| 28 | SCC(...).argumentCompleter(0, autocompletion::configvalueclasses()) |
| 29 | .argumentCompleter(1, autocompletion::configvalues()); |
| 30 | |
| 31 | > command-name classname b |
| 32 | }}} |
| 33 | Now the ArgumentCompleter gets called with "classname" and "b" and returns a list of all config-values of "classname" starting with "b". |
| 34 | |
| 35 | * Filesystem: |
| 36 | {{{ |
| 37 | SCC(...).argumentCompleter(0, autocompletion::files()); |
| 38 | |
| 39 | > command-name ./directory/c |
| 40 | }}} |
| 41 | In this example, the !ArgumentCompleter gets called with "./directory/c" and returns a list of files in the directory "./directory" starting with "c" |