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

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

# Show all jobs in dialogs and the progress view including the support jobs
org.eclipse.ui/debug/showAllJobs=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 of the Device.
org.eclipse.ui/debug/swtdebug=false

# Enable the global SWT debugging (Device#DEBUG)
org.eclipse.ui/debug/swtdebugglobal=false

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

# Enable logging of additional working set messages
org.eclipse.ui/debug/workingSets=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

# Track the performance of context decision-making in the workbench.
org.eclipse.ui/trace/contexts.performance=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

# Track the performance of handler decision-making in the workbench.
org.eclipse.ui/trace/handlers.performance=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

# Turns on experimental code dealing with the rendering of menus.  This is not
# guaranteed to provide a working workbench.
org.eclipse.ui/experimental/menus=false

# Report multi page editor tracing information
org.eclipse.ui/trace/multipageeditor=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


