IntelliJ IDEA 2018.2 Help

Java Type Renderers

File | Settings | Build, Execution, Deployment | Debugger | Data Views | Java Type Renderes for Windows and Linux
IntelliJ IDEA | Preferences | Build, Execution, Deployment | Debugger | Data Views | Java Type Renderes for macOS
Ctrl+Alt+S
icons general settings svg


IntelliJ IDEA allows you to specify how different objects are displayed in the debugger on a class-by-class basis. You can assign the expressions to be displayed rather than rely on the object's String representation.

For example, if an object represents a user, you may want it to be represented by login names; or, for a cache entry object, its content may be appropriate. IntelliJ IDEA refers to these as type renderers.

All object types are supported (including primitive types and arrays).

If no rendering scheme is defined, this dialog does not show any controls. To start working with renderers, click icons general add svg.

ItemDescription
icons general add svgClick this icon to add a new rendering scheme to the list.
icons general remove svgClick this icon to remove the selected scheme from the list.
icons actions copy svgClick this icon to create a copy of the selected scheme.
icons actions previousOccurence svgicons actions nextOccurence svgClick these icons to move the selected item one line up or down in the list.

Note that the order determines which renderer is used in case of ambiguity stemming of class inheritance.

Renderer nameSpecify the name of a new renderer, or edit an existing renderer name.
Apply renderer to objects of type (fully-qualified name)Specify the object type that will be represented by this renderer. Enter a fully qualified object name, or click Browse browseButton and choose the desired type from the list in the Renderer Reference Type dialog.
When rendering a nodeThis option determines how an object is displayed in the debugger when nodes are collapsed:
  • Show type and object id: if cleared, types are shown without class information or id.
  • Use default renderer: select this option to display the node in the default way.
  • Use following expression: enter the Java expression you want to use to identify an object. You can use object properties, constants, and even a string math as part of your renderer.

    Note that you can use code completion (Ctrl+Space) when defining expressions.

    All method calls and member variable access are relative to the object you're rendering. Use this to refer to an instance to which the renderer applies.

When expanding a nodeThis option determines how an object is displayed in the debugger when nodes are expanded.

Normally, expanding a node in the debugger lists the object's member variables (using the renderer appropriate for the corresponding object types). This option lets you override this behavior and select a single expression or a series of expressions to be displayed. You may use this to limit the amount of information displayed, or to be more precise in how the information is presented.

  • Use default renderer: select this option to display the node children in the default way.
  • Use following expression: enter the Java expression you want to use to identify an object.

    Test if a node can be expanded (optional): enter a Boolean expression. If it is true, the renderer displays expandable nodes for the defined objects. Otherwise, no nodes are displayed.

  • Use list of expressions: create a list of separate expressions to be calculated and presented as node children. Use:

    icons general add svg (Alt+Insert) to create a new expression.

    icons general remove svg (Alt+Delete) to remove the selected expression from the list.

    icons actions previousOccurence svg (Alt+Up) to move the selected expression one line up in the list.

    icons actions nextOccurence svg (Alt+Down) to move the selected expression one line down in the list.

If you select the checkbox in the On-demand column next to a renderer, the evaluation of this expression will be done on demand. Simply click this expression when you need to evaluate it in the Variables, Watches or other view instead of having it evaluated automatically.

Append default childrenSelect this checkbox to add default children to the list of expressions. This checkbox is only available when the checkbox Use list of expressions is selected.
Last modified: 4 September 2018

See Also