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

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

# Show system jobs in all dialogs
org.eclipse.ui/debug/showSystemJobs=false

#Report if a stale job was found
org.eclipse.ui/debug/job.stale=false

#Report if an image cannot be resolved when it is declared
org.eclipse.ui/debug/declaredImages=false

# Enable extended SWT debugging.
org.eclipse.ui/debug/swtdebug=false

# Enable logging of certain contribution related messages
org.eclipse.ui/debug/contributions=false

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

## Note that logging of all performance events are controlled by a central flag
## Turn this flag on to enable tracking of performance events
## org.eclipse.core.runtime/perf=true


# Reports the time to restore the workbench.
org.eclipse.ui/perf/workbench.restore=30000

# Reports the time to start up the workbench.
org.eclipse.ui/perf/workbench.start=45000

# Reports the time to activate parts.
org.eclipse.ui/perf/part.activate=200

# Reports the time to create a part.
org.eclipse.ui/perf/part.create=800

# Reports the time to initialize a part.
org.eclipse.ui/perf/part.init=800

# Reports the time to create a part's input
org.eclipse.ui/perf/part.input=200

# Reports the time to create a part's control
org.eclipse.ui/perf/part.control=800

# Reports the time to notify part listeners.
org.eclipse.ui/perf/part.listeners=200

# Reports the time to notify page listeners.
org.eclipse.ui/perf/page.listeners=200

# Reports the time to create perspectives
org.eclipse.ui/perf/perspective.create=800

# Reports the time to notify perspective listeners.
org.eclipse.ui/perf/perspective.listeners=200

# Reports the time to switch perspectives
org.eclipse.ui/perf/perspective.switch=800

# Reports the time to run UI jobs
org.eclipse.ui/perf/uijob=200

# Reports the time to determine the content type of a file
org.eclipse.ui/perf/contentTypes=200

# Controls whether the heap status indicator is shown
org.eclipse.ui/perf/showHeapStatus=true

# Reports all events entering through the common event framework used by the
# commands architecture.  See ISourceProvider and AbstractSourceProvider.DEBUG.
org.eclipse.ui/trace/sources=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 information about command execution
org.eclipse.ui/trace/commands=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

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

# Report unexpected (undo) operations history events.
org.eclipse.ui/trace/operations=false

# Report verbose information about (undo) operations history changes.
org.eclipse.ui/trace/operations.verbose=false

# Enable logging of events fired from an IWorkbenchPage to an IPartListener
org.eclipse.ui/listeners/IWorkbenchPage.IPartListener=false

# Enable logging of events fired from an IWorkbenchPage to an IPartListener2
org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2=false

# Enable logging of events fired from an IWorkbenchPage to an IPropertyChangeListener
org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener=false

# Enable logging of events fired from an IWorkbenchPartReference
org.eclipse.ui/listeners/IWorkbenchPartReference=false

# Enable logging of events fired from an IWorkbenchWindow to an IPerspectiveListener
org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener=false

# Enable logging of events fired from an IWorkbenchWindow to an IPartListener
org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener=false

# Enable logging of events fired from an IWorkbenchWindow to an IPartListener2
org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2=false

# Enable logging of events fired from an IWorkbenchWindow to an IPageListener
org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener=false


