# Debugging options for the org.eclipse.ui plugin.

# Turn on debugging for the org.eclipse.ui plugin.
org.eclipse.ui/debug=false

# Show a dialog with details button when an internal error occur.
org.eclipse.ui/debug/internalerror/openDialog=false

# Enable the trace of SWT graphics.
org.eclipse.ui/trace/graphics=false

# Reports the time to create a part.
org.eclipse.ui/trace/part.create=false

# Reports the time to create a switch perspectives.
org.eclipse.ui/trace/perspective=false

# Reports the time to restore the workbench.
org.eclipse.ui/trace/workbench.restore=false

# Reports the time to start up the workbench.
org.eclipse.ui/trace/workbench.start=false

# Reports the time to activate parts.
org.eclipse.ui/trace/part.activate=false

# Reports the time to noticy part listeners.
org.eclipse.ui/trace/part.listeners=false


# Reports events received and dispatched by the key binding architecture
org.eclipse.ui/trace/keyBindings=false

# Report every event received by the key binding architecture
org.eclipse.ui/trace/keyBindings.verbose=false


# Report every change in the list of contexts.
org.eclipse.ui/trace/contexts=false

# Report a bit of stack around every change in the list of contexts.
org.eclipse.ui/trace/contexts.verbose=false

# Report handler conflicts within the workbench
org.eclipse.ui/trace/handlers=false

# Report verbose information about changing handlers in the system.
org.eclipse.ui/trace/handlers.verbose=false

# Report UIJobs that take more than 100 ms.
org.eclipse.ui/debug/uijob.longwarning=false

# Restrict the verbose information to a particular command
org.eclipse.ui/trace/handlers.verbose.commandId=
