IntelliJ IDEA allows you to specify how different objects are displayed in the debugger on a class-by-class basis. You can assign expressions to display rather than rely on the object's String representation.
For example, if an object represents a user, you may want to see users represented by their login name; or, for a cache entry object, its age and contents may be appropriate. IntelliJ IDEA refers to these as type renderers.
If no rendering scheme is defined, the dialog does not show any controls. To start working with renderers click Add.
|Use this icon to add a new rendering scheme to the list.|
|Use this icon to remove the selected scheme from the list.|
|Use this icon to create a copy of the selected scheme.|
|and||Use these icons to move the selected item one line up or down in the list.
The order of items in the list determines which renderer is used in the case of ambiguity born of class inheritance.
|Renderer name||Edit or view name of the selected renderer.|
|Apply renderer to objects of type||Define the type of objects to be affected by the renderer. Type the fully qualified name of the object, or click the ellipsis button and choose the desired type from the list in the Renderer Reference Type dialog.|
|When rendering a node||This option determines how the object is displayed in the debugger:
|When expanding a node||Define how the children information is presented.
Normally, expanding a node in the debugger lists the object's member variables (using renderer appropriate for their object types). This option lets you override that behavior and select a single expression or a series of expressions to control the display. You may use this to limit the amount of information displayed or to be more precise in how the information is presented for example.
When defining the expressions, you can use code completion (Ctrl+SpaceCtrl+SpaceCtrl+SpaceCtrl+SpaceAlt+SlashCtrl+SpaceCtrl+SpaceCtrl+Space or Ctrl+Back SlashCtrl+SpaceControl SpaceControl SpaceControl Space). All method calls and member variable access are relative to the object you're rendering.