# Expression Assist

Release: 4.6  •  5.0  •  5.1  •  5.2  •  5.3  •  5.4  •  6.0  •  6.1  •  6.2  •  6.3

Expression Assist provides context-sensitive help as you type into a expression attribute (Definition, Check attribute, Domain (expression view), OnClick, OnChange, OnGraphDraw, OnGraphClick, Cell Format Expression, Cell Default, or Initial guess) or into the AcpStyles attribute. It saves keystrokes and reduces typos. After typing the first letter(s) of an identifier, it shows a list of the variables and functions that match those characters. You can select one using up or down arrows (or scroll wheel) and tab to complete the identifier. When entering the parameters of a function, it shows a description of the function, and lets you select a parameter. When entering a value for an index, it shows you a list of possible values.

Enable or disable: You can turn Expression Assist on or off in the Preferences dialog.

Even when it's off, you can turn it on temporarily while typing into a Definition by pressing Ctrl+Space at the current typing point, or or Ctrl+Shift+? to toggle it on for just this Definition.

Occasionally the Expression Assist popup blocks something else that you wish to see. When that happens, press the Esc key to temporarily remove them. They will reappear when you start typing again. You can also press Ctrl+Shift+? to toggle them off and on.

Identifier completion: As you start to type an identifier it shows a list of identifiers that match the initial letters (or other characters). For example, here the user has typed “D” so it shows a list of identifiers starting with “D”:

At the top, it lists any matching inputs to the variable, from which arrows had been previously drawn. Use the scroll wheel or up and down arrows to move through the list. Press the Tab key to insert the item, in this case Depreciation, into your definition. The mouse wheel can be used to scroll the list. At this point, pressing As you continue to type, the list of possible completions narrows:

Click an entry, or press the down-arrow to select an entry. Pressing Tab or Enter to insert the identifier into the definition.

Function parameter info: When you are editing a parameter argument to a function, Expression Assist displays the list of parameter names and the function’s description.

The first line of the popup shows the parameters to the function being entered, with the current parameter being entered is shown in bold and optional parameters in italics. You can click on the parameter name to insert the parameter name with a colon into the definition for named parameter syntax.

Subscript help: When entering a subscript or slice operation, X[I = v] or X[@I = n], after typing the open bracket X[ it may list the indexes of X from which you can choose. It can only do this after it has evaluated X and so knows what indexes it has.

Similarly, when you are about to type in the value of an index, index value after you have typed, X[I = , it may show a list of the available index labels, with autocompletion. Again, it can only do this if it does not need to evaluate I -- e.g. for indexes defined as lists, or for computed indexes that have been previously evaluated.

Because these suggestions can be extremely helpful, you may find it useful to evaluate input variables before you start typing the definition.

Standard and Advanced tabs: With the Standard tab it excludes some more esoteric identifiers. Select the Advanced tab to include attribute and module names of relevance for meta-programming topics.

List of applicable ACP Attributes: When editing the AcpStyles attribute in the Object Window, it auto-completes the list of attributes that are applicable within the object type being edited. You can press Ctrl+Space when at the start of the line to get the full list. Once you type a colon (:) after the attribute name, it auto-completes the list of possible values for that attribute.