Extension Tree Reference
From MonoDevelop
Introduction
This document shows the complete extension tree available to add-in developers.
Extension Tree
- AddIns
- DefaultTextEditor
- EditActions
Custom edit actions
- MonoDevelop
- FileTemplates
File templates to be shown in the New File dialog
- FileTemplateTypes
Template types which can be used to create file templates
- IDE
- StartupHandlers
Commands to be automatically executed when the IDE starts- Pads
Pads shown in the workbench- WorkbenchContexts
Workbench contexts- GlobalOptionsDialog
Dialog panels for global MonoDevelop options- Commands
User interface commands- ContextMenu
- ProjectTemplates
Project templates to be shown in the New Project dialog
- SharpDevelop
- Commands
User interface commands
- Dialogs
- OptionsDialog
Dialog panels for global MonoDevelop options
- ViewContent
- DefaultTextEditor
- ContextMenu
Context menu for the editor
- Views
- ProjectBrowser
- ContextMenu
- CombineBrowserNode
Context menu for solutions in the solution pad
- DefaultDirectoryNode
Context menu for a folder in the solution pad
- ProjectBrowserNode
Context menu for a project in the solution pad
- ProjectFileNode
Context menu for a project file in the solution pad
- ReferenceFolderNode
Context menu for the references folder in the solution pad
- ReferenceNode
Context menu for a reference in the solution pad
- ResourceFolderNode
Context menu for the resource folder in the solution pad
- SystemFileNode
Context menu for a file (not belonging to a project) in the solution pad
- Workbench
- Ambiences
Language ambiences
- BuildPipeline
Custom build steps. Specified classes must implement IBuildStep
- CombineOptions
- ConfigurationProperties
Dialog panels for solution configuration options
- GeneralOptions
Dialog panels for solution options
- Contexts
Workbench contexts
- DisplayBindings
Display bindings
- ExecutionHandlers
Default execution handlers
- FileFilter
File filters for the Open File dialog
- MainMenu
Main menu items
- Pads
Pads shown in the workbench
- ProjectBindings
Project bindings
- ProjectFileFormats
File format handlers for projects and solutions
- ProjectOptions
- ConfigurationProperties
Dialog panels for project configuration options
- GeneralOptions
Dialog panels for project options
- SerializableClasses
Classes to be registered for serialization
- Serialization
- ExtendedProperties
Custom properties for projects and other types
- StockIcons
Stock icons
- ToolBar
Main toolbar items
- Workspace
- Applications
Applications
- Services
Services
Extension Points
MonoDevelop.Core module
Applications
Path: /MonoDevelop/Core/Applications
Remarks: Applications managed by the runtime. Registered applications can be started using the mdtool command. Specified classes must implement MonoDevelop.Core.AddIns.IApplication.
Child nodes:
- Class: A class description.
Default execution handlers
Path: /MonoDevelop/Core/ExecutionHandlers
Child nodes:
- ExecutionHandler: Registers an IExecutionHandler type.
Services
Path: /MonoDevelop/Core/Services
Remarks: Services to be initialized by the runtime. Specified classes must implement MonoDevelop.Core.IService
Child nodes:
- Class: A class description.
MonoDevelop.Core.Gui module
Stock icons
Path: /MonoDevelop/Core/StockIcons
Remarks: Available from MonoDevelop.Core.Gui.Services.Resources.
Child nodes:
- StockIcon: A stock icon. It is possible to register several icons with the same 'id' and different sizes.
MonoDevelop.Ide module
Commands to be automatically executed when the IDE starts
Path: /MonoDevelop/Ide/StartupHandlers
Remarks: Specified classes must subclass MonoDevelop.Components.Commands.CommandHandler.
Child nodes:
- Class: A class description.
Context menu for a file (not belonging to a project) in the solution pad
Path: /MonoDevelop/Ide/ContextMenu/ProjectPad/SystemFile
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Context menu for a folder in the solution pad
Path: /MonoDevelop/Ide/ContextMenu/ProjectPad/Folder
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Context menu for a project file in the solution pad
Path: /MonoDevelop/Ide/ContextMenu/ProjectPad/ProjectFile
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Context menu for a project in the solution pad
Path: /MonoDevelop/Ide/ContextMenu/ProjectPad/Project
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Context menu for a reference in the solution pad
Path: /MonoDevelop/Ide/ContextMenu/ProjectPad/Reference
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Context menu for solutions in the solution pad
Path: /MonoDevelop/Ide/ContextMenu/ProjectPad/Solution
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Context menu for the references folder in the solution pad
Path: /MonoDevelop/Ide/ContextMenu/ProjectPad/ReferenceFolder
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Context menu for the resource folder in the solution pad
Path: /MonoDevelop/Ide/ContextMenu/ProjectPad/ResourceFolder
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Dialog panels for global MonoDevelop options
Path: /MonoDevelop/Ide/OptionsDialogPanels
Child nodes:
- DialogPanel: A dialog panel to be shown in an options dialog. The specified class must implement MonoDevelop.Core.Gui.Dialogs.IDialogPanel.
Display bindings
Path: /MonoDevelop/Ide/DisplayBindings
Child nodes:
- DisplayBinding: A display binding. The specified class must implement MonoDevelop.Ide.Codons.IDisplayBinding.
File filters for the Open File dialog
Path: /MonoDevelop/Ide/FileFilters
Child nodes:
- FileFilter: A file filter to be used in the Open File dialog.
File templates to be shown in the New File dialog
Path: /MonoDevelop/Ide/FileTemplates
Child nodes:
- FileTemplate: A file template.
Main menu items
Path: /MonoDevelop/Ide/MainMenu
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Main toolbar items
Path: /MonoDevelop/Ide/Toolbar
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Pads shown in the workbench
Path: /MonoDevelop/Ide/Pads
Child nodes:
- Pad: Registers a pad to be shown in the workbench.
- SolutionPad: Registers a pad which shows information about a project in a tree view.
Project templates to be shown in the New Project dialog
Path: /MonoDevelop/Ide/ProjectTemplates
Child nodes:
- ProjectTemplate: A project template.
Template types which can be used to create file templates
Path: /MonoDevelop/Ide/FileTemplateTypes
Child nodes:
- FileTemplateType: A file template type. The specified class must be a subclass of MonoDevelop.Ide.Templates.FileDescriptionTemplate
User interface commands
Path: /MonoDevelop/Ide/Commands
Child nodes:
- Command: An user interface command. The 'id' of the command must match the full name of an existing enumeration. An arbitrary string can also be used as id for the command by just using '@' as prefix for the string.
Workbench contexts
Path: /MonoDevelop/Ide/WorkbenchContexts
Child nodes:
- WorkbenchContext: A workbench context.
MonoDevelop.Projects module
Classes to be registered for serialization
Path: /MonoDevelop/ProjectModel/SerializableClasses
Child nodes:
- Class: A class description.
Custom build steps. Specified classes must implement IBuildStep
Path: /SharpDevelop/Workbench/BuildPipeline TODO: outdated path
Child nodes:
- Class: A class description.
Custom properties for projects and other types
Path: /MonoDevelop/ProjectModel/ExtendedProperties
Child nodes:
- ItemProperty: A custom property. The type specified in the 'class' property is the type to which the property has to be added. Only types which implement IExtendedDataItem can be extended in this way.
File format handlers for projects and solutions
Path: /MonoDevelop/ProjectModel/ProjectFileFormats
Child nodes:
- FileFormat: A file format handler. The specified class must implement MonoDevelop.Projects.IFileFormat.
Language ambiences
Path: /MonoDevelop/ProjectModel/Ambiences
Remarks: Specified classes must implement IAmbience.
Child nodes:
- Class: A class description.
Project bindings
Path: /MonoDevelop/ProjectModel/ProjectBindings
Child nodes:
- ProjectBinding: A project binding. The specified class must implement MonoDevelop.Projects.IProjectBinding.
MonoDevelop.Projects.Gui module
Dialog panels for project configuration options
Path: /MonoDevelop/ProjectModel/Gui/ProjectOptions/ConfigurationOptions
Child nodes:
- DialogPanel: A dialog panel to be shown in an options dialog. The specified class must implement MonoDevelop.Core.Gui.Dialogs.IDialogPanel.
Dialog panels for project options
Path: /MonoDevelop/ProjectModel/Gui/ProjectOptions/GeneralOptions
Child nodes:
- DialogPanel: A dialog panel to be shown in an options dialog. The specified class must implement MonoDevelop.Core.Gui.Dialogs.IDialogPanel.
Dialog panels for solution configuration options
Path: /MonoDevelop/ProjectModel/Gui/ProjectOptions/ConfigurationOptions
Child nodes:
- DialogPanel: A dialog panel to be shown in an options dialog. The specified class must implement MonoDevelop.Core.Gui.Dialogs.IDialogPanel.
Dialog panels for solution options
Path: /MonoDevelop/ProjectModel/Gui/CombineOptions/GeneralOptions
Child nodes:
- DialogPanel: A dialog panel to be shown in an options dialog. The specified class must implement MonoDevelop.Core.Gui.Dialogs.IDialogPanel.
MonoDevelop.SourceEditor module
Context menu for the editor
Path: /MonoDevelop/SourceEditor/ContextMenu/Editor
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Custom edit actions
Path: /MonoDevelop/SourceEditor/EditActions
Child nodes:
- EditAction: A custom editor action. The provided class must implement IEditAction.
Extension Elements
Class
A class description.
Properties:
| Name | Type | Description |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
Can be used in:
- Commands to be automatically executed when the IDE starts
- Classes to be registered for serialization
- Custom build steps. Specified classes must implement IBuildStep
- Language ambiences
- Applications
- Services
Command
An user interface command. The 'id' of the command must match the full name of an existing enumeration. An arbitrary string can also be used as id for the command by just using '@' as prefix for the string.
Properties:
| Name | Type | Description |
| _description | System.String | Description of the command |
| _label | System.String | Label |
| defaultHandler | System.String | Class that handles this command. This property is optional. |
| description | System.String | Obsolete. Do not use. |
| disabledVisible | System.Boolean | Set to 'false' if the command has to be hidden when disabled. 'true' by default. |
| icon | System.String | Icon of the command. The provided value must be a registered stock icon. A resource icon can also be specified using 'res:' as prefix for the name, for example: 'res:customIcon.png' |
| id | System.String | Identifier of the item |
| shortcut | System.String | ' as separator. For example 'Control|d' |
| type | System.String | Type of the command. It can be: normal (the default), check, radio or array. |
| widget | System.String | Class of the widget to create when type is 'custom'. |
Can be used in:
CommandItem
A command menu or toolbar item. The id of the element must match the id of a registered command.
Properties:
| Name | Type | Description |
| id | System.String | Identifier of the item |
Can be used in:
- Main menu items
- Main toolbar items
- Context menu for the editor
- Context menu for a folder in the solution pad
- Context menu for the references folder in the solution pad
- Context menu for a file (not belonging to a project) in the solution pad
- Context menu for a reference in the solution pad
- Context menu for a project file in the solution pad
- Context menu for the resource folder in the solution pad
- Context menu for solutions in the solution pad
- Context menu for a project in the solution pad
- ItemSet element
ContextPad
Makes a pad available in workbench context. The id property is the id of a registered pad.
Properties:
| Name | Type | Description |
| id | System.String | Identifier of the item |
Can be used in:
- WorkbenchContext element
DialogPanel
A dialog panel to be shown in an options dialog. The specified class must implement MonoDevelop.Core.Gui.Dialogs.IDialogPanel.
Properties:
| Name | Type | Description |
| _label | System.String | A dialog panel to be shown in an options dialog. |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
Can be used in:
- Dialog panels for project configuration options
- Dialog panels for project options
- Dialog panels for solution configuration options
- Dialog panels for solution options
- Dialog panels for global MonoDevelop options
DisplayBinding
A display binding. The specified class must implement MonoDevelop.Ide.Codons.IDisplayBinding.
Properties:
| Name | Type | Description |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
| supportedformats | System.String[] | Unused. |
Can be used in:
EditAction
A custom editor action. The provided class must implement IEditAction.
Properties:
| Name | Type | Description |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
| keys | System.String[] | k). |
Can be used in:
ExecutionHandler
Registers an IExecutionHandler type.
Properties:
| Name | Type | Description |
| id | System.String | Identifier of the item |
| platform | System.String | Platform supported by this execution handler. The core platforms are Mono, Mint and Native. Add-ins may define additional platforms. |
Can be used in:
FileFilter
A file filter to be used in the Open File dialog.
Properties:
| Name | Type | Description |
| extensions | System.String[] | Extensions to use as filter. |
| id | System.String | Identifier of the item |
| name | System.String | Display name of the filter. |
Can be used in:
FileFormat
A file format handler. The specified class must implement MonoDevelop.Projects.IFileFormat.
Properties:
| Name | Type | Description |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
Can be used in:
FileTemplate
A file template.
Properties:
| Name | Type | Description |
| id | System.String | Identifier of the item |
| resource | System.String | Resource name where the template is stored. |
Can be used in:
FileTemplateType
A file template type. The specified class must be a subclass of MonoDevelop.Ide.Templates.FileDescriptionTemplate
Properties:
| Name | Type | Description |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
| name | System.String | Name to use to reference this template type in a file template. |
Can be used in:
Icon
An icon bound to a language or file extension.
Properties:
| Name | Type | Description |
| extensions | System.String[] | File extensions represented by this icon. Optional. |
| id | System.String | Identifier of the item |
| language | System.String | Name of the language represented by this icon. Optional. |
| location | System.String | Obsolete. Do not use. |
| resource | System.String | Resource name. |
Can be used in:
ItemProperty
A custom property. The type specified in the 'class' property is the type to which the property has to be added. Only types which implement IExtendedDataItem can be extended in this way.
Properties:
| Name | Type | Description |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
| name | System.String | Name of the property. |
| type | System.String | Full name of the property type. |
Can be used in:
ItemSet
A submenu
Properties:
| Name | Type | Description |
| _label | System.String | Label of the submenu |
| icon | System.String | Icon of the submenu. The provided value must be a registered stock icon. A resource icon can also be specified using 'res:' as prefix for the name, for example: 'res:customIcon.png' |
| id | System.String | Identifier of the item |
Child nodes:
- CommandItem: A command menu or toolbar item. The id of the element must match the id of a registered command.
- ItemSet: A submenu
- LinkItem: A menu or toolbar item that opens an URL when activated
- LocalCommandItem: Allows the definition of a complete command item inside a menu or toolbar description
- SeparatorItem: A separator menu or toolbar item
Can be used in:
- Main menu items
- Main toolbar items
- Context menu for the editor
- Context menu for a folder in the solution pad
- Context menu for the references folder in the solution pad
- Context menu for a file (not belonging to a project) in the solution pad
- Context menu for a reference in the solution pad
- Context menu for a project file in the solution pad
- Context menu for the resource folder in the solution pad
- Context menu for solutions in the solution pad
- Context menu for a project in the solution pad
- ItemSet element
LanguageBinding
A lenguage binding. The specified class must implement MonoDevelop.Projects.ILanguageBinding
Properties:
| Name | Type | Description |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
| supportedextensions | System.String[] | File extensions supported by this binding (to be shown in the Open File dialog) |
Can be used in:
LinkItem
A menu or toolbar item that opens an URL when activated
Properties:
| Name | Type | Description |
| _label | System.String | Label of the item. |
| id | System.String | Identifier of the item |
| link | System.String | URL to open. |
Can be used in:
- Main menu items
- Main toolbar items
- Context menu for the editor
- Context menu for a folder in the solution pad
- Context menu for the references folder in the solution pad
- Context menu for a file (not belonging to a project) in the solution pad
- Context menu for a reference in the solution pad
- Context menu for a project file in the solution pad
- Context menu for the resource folder in the solution pad
- Context menu for solutions in the solution pad
- Context menu for a project in the solution pad
- ItemSet element
LocalCommandItem
Allows the definition of a complete command item inside a menu or toolbar description
Properties:
| Name | Type | Description |
| _description | System.String | Description of the command |
| _label | System.String | Label |
| defaultHandler | System.String | Class that handles this command. This property is optional. |
| description | System.String | Obsolete. Do not use. |
| disabledVisible | System.Boolean | Set to 'false' if the command has to be hidden when disabled. 'true' by default. |
| icon | System.String | Icon of the command. The provided value must be a registered stock icon. A resource icon can also be specified using 'res:' as prefix for the name, for example: 'res:customIcon.png' |
| id | System.String | Identifier of the item |
| shortcut | System.String | ' as separator. For example 'Control|d' |
| type | System.String | Type of the command. It can be: normal (the default), check, radio or array. |
| widget | System.String | Class of the widget to create when type is 'custom'. |
Can be used in:
- Main menu items
- Main toolbar items
- Context menu for the editor
- Context menu for a folder in the solution pad
- Context menu for the references folder in the solution pad
- Context menu for a file (not belonging to a project) in the solution pad
- Context menu for a reference in the solution pad
- Context menu for a project file in the solution pad
- Context menu for the resource folder in the solution pad
- Context menu for solutions in the solution pad
- Context menu for a project in the solution pad
- ItemSet element
NodeBuilder
A node builder for a SolutionPad. The specified class must subclass MonoDevelop.Ide.Gui.Pads.NodeBuilder or MonoDevelop.Ide.Gui.Pads.NodeBuilderExtension.
Properties:
| Name | Type | Description |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
Can be used in:
- SolutionPad element
Pad
Registers a pad to be shown in the workbench.
Properties:
| Name | Type | Description |
| _label | System.String | Display name of the pad. |
| context | System.String | Unused. |
| icon | System.String | Icon of the pad. It can be a stock icon or a resource icon (use 'res:' as prefix in the last case). |
| id | System.String | Identifier of the item |
Can be used in:
PadOption
A display option of a solution pad.
Properties:
| Name | Type | Description |
| _label | System.String | Display name of the option |
| defaultValue | System.Boolean | Default value of the option |
| id | System.String | Identifier of the item |
Can be used in:
- SolutionPad element
ProjectBinding
A project binding. The specified class must implement MonoDevelop.Projects.IProjectBinding.
Properties:
| Name | Type | Description |
| class | System.String | Full name of the class. |
| id | System.String | Identifier of the item |
Can be used in:
ProjectTemplate
A project template.
Properties:
| Name | Type | Description |
| id | System.String | Identifier of the item |
| resource | System.String | Name of the resource where the template is stored. |
Can be used in:
SeparatorItem
A separator menu or toolbar item
Properties:
| Name | Type | Description |
| id | System.String | Identifier of the item |
Can be used in:
- Main menu items
- Main toolbar items
- Context menu for the editor
- Context menu for a folder in the solution pad
- Context menu for the references folder in the solution pad
- Context menu for a file (not belonging to a project) in the solution pad
- Context menu for a reference in the solution pad
- Context menu for a project file in the solution pad
- Context menu for the resource folder in the solution pad
- Context menu for solutions in the solution pad
- Context menu for a project in the solution pad
- ItemSet element
SolutionPad
Registers a pad which shows information about a project in a tree view.
Properties:
| Name | Type | Description |
| _label | System.String | Display name of the pad. |
| context | System.String | Unused. |
| defaultPlacement | System.String | Default placement of the pad inside the workbench. It can be: left, right, top, bottom, or a relative position, for example: 'ProjectPad/left'would show the pad at the left side of the project pad. When using relative placements several positions can be provided. If the pad can be placed in the first position, the next one will be tried. For example 'ProjectPad/left; bottom'. |
| icon | System.String | Icon of the pad. It can be a stock icon or a resource icon (use 'res:' as prefix in the last case). |
| id | System.String | Identifier of the item |
Child nodes:
- NodeBuilder: A node builder for a SolutionPad. The specified class must subclass MonoDevelop.Ide.Gui.Pads.NodeBuilder or MonoDevelop.Ide.Gui.Pads.NodeBuilderExtension.
- PadOption: A display option of a solution pad.
Can be used in:
StockIcon
A stock icon. It is possible to register several icons with the same 'id' and different sizes.
Properties:
| Name | Type | Description |
| id | System.String | Identifier of the item |
| resource | System.String | Name of the resource where the icon is stored. |
| size | Gtk.IconSize | Size of the icon. |
| stockid | System.String | Id of the stock icon. |
Can be used in:
WorkbenchContext
A workbench context.
Properties:
| Name | Type | Description |
| id | System.String | Identifier of the item |
Child nodes:
- ContextPad: Makes a pad available in workbench context. The id property is the id of a registered pad.
Can be used in:

Powered by MediaWiki