Navigation

Extension Tree Reference

From MonoDevelop

Table of contents

3.1 MonoDevelop.Core module

3.2 MonoDevelop.Core.Gui module

3.3 MonoDevelop.Ide module

3.4 MonoDevelop.Projects module

3.5 MonoDevelop.Projects.Gui module

3.6 MonoDevelop.SourceEditor module

Introduction

This document shows the complete extension tree available to add-in developers.

Extension Tree

  • AddIns
  • DefaultTextEditor
  • MonoDevelop
  • IDE
  • SharpDevelop
  • Dialogs
  • ViewContent
  • DefaultTextEditor
  • Views
  • ProjectBrowser
  • ContextMenu
  • SystemFileNode
    Context menu for a file (not belonging to a project) in the solution pad
  • Workbench
  • BuildPipeline
    Custom build steps. Specified classes must implement IBuildStep
  • CombineOptions
  • Pads
    Pads shown in the workbench
  • ProjectOptions
  • Serialization
  • Workspace

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:

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:

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:

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:

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:

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:

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:

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:

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:

    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:

      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:

      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:

      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:

      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:

      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: