[MonoDevelop] Improving organization of extension points

Lluis Sanchez lluis at ximian.com
Fri Jan 20 13:25:48 EST 2006


Hi,

I plan to reorganize the extension point hierarchy so it is more
coherent with the new assembly organization. I'm showing first of all
the current organization, then the structure I propose and an example of
the resulting extension point tree.

Comments are welcome.
Lluis.



These are the extensions points we have now (shown per assembly):

MonoDevleop.Core.dll
--------------------
	/Workspace/Services
	/SharpDevelop/Workbench/ExecutionHandlers

MonoDevleop.Core.Gui.dll
------------------------
	/SharpDevelop/Workbench/StockIcons

MonoDevleop.Projects.dll
------------------------
	/SharpDevelop/Workbench/Ambiences
	/SharpDevelop/Workbench/ProjectBindings
	/SharpDevelop/Workbench/ProjectFileFormats

MonoDevleop.Projects.Gui.dll
----------------------------
	/SharpDevelop/Workbench/ProjectOptions/GeneralOptions
	/SharpDevelop/Workbench/CombineOptions/GeneralOptions
	/SharpDevelop/Workbench/CombineOptions/ConfigurationProperties

MonoDevleop.Ide.dll
-------------------
	/SharpDevelop/Commands
	/SharpDevelop/Views/ProjectBrowser/ContextMenu/CombineBrowserNode
	/SharpDevelop/Views/ProjectBrowser/ContextMenu/ResourceFolderNode
	/SharpDevelop/Views/ProjectBrowser/ContextMenu/ReferenceFolderNode
	/SharpDevelop/Views/ProjectBrowser/ContextMenu/ReferenceNode
	/SharpDevelop/Views/ProjectBrowser/ContextMenu/DefaultFileNode
	/SharpDevelop/Views/ProjectBrowser/ContextMenu/ProjectFileNode
	/SharpDevelop/Views/ProjectBrowser/ContextMenu/SystemFileNode
	/SharpDevelop/Views/ProjectBrowser/ContextMenu/DefaultDirectoryNode
	/SharpDevelop/Views/ProjectBrowser/ContextMenu/ProjectBrowserNode
	/SharpDevelop/Views/ProjectBrowser/NodeBuilders
	/SharpDevelop/Workbench/FileFilter
	/SharpDevelop/Workbench/Pads
	/SharpDevelop/Workbench/Contexts
	/SharpDevelop/Workbench/DisplayBindings
	/SharpDevelop/Workbench/Combine/FileFilter
	/SharpDevelop/Workbench/ToolBar
	/SharpDevelop/Workbench/MainMenu
	/SharpDevelop/Dialogs/OptionsDialog
	/SharpDevelop/DefaultEditor/SearchAndReplace/WildcardHelpPath
	/SharpDevelop/CompletionDatabaseWizard


Ok, the new organization I propose is the following:


MonoDevelop.Core.dll
--------------------
	/Runtime/Services
	/Runtime/Applications
	/Services/Execution/ExecutionHandlers

MonoDevelop.Core.Gui.dll
------------------------
	/Gui/StockIcons

MonoDevelop.Projects.dll
------------------------
	/Services/Projects/Ambiences
	/Services/Projects/ProjectBindings
	/Services/Projects/ProjectFileFormats
	/Services/Projects/LanguageBindings

MonoDevelop.Projects.Gui.dll
----------------------------
	/Services/Projects/Gui/ProjectOptions/GeneralOptions
	/Services/Projects/Gui/ProjectOptions/ConfigurationProperties
	/Services/Projects/Gui/CombineOptions/GeneralOptions
	/Services/Projects/Gui/CombineOptions/ConfigurationProperties

MonoDevelop.Ide.dll
-------------------
	/Applications/Ide/Commands
	/Applications/Ide/Workbench/DisplayBindings
	/Applications/Ide/Workbench/Pads
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad/ContextMenus/Combine
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad/ContextMenus/ResourceFolder
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad/ContextMenus/ReferenceFolder
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad/ContextMenus/Reference
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad/ContextMenus/DefaultFile
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad/ContextMenus/ProjectFile
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad/ContextMenus/SystemFile
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad/ContextMenus/DefaultDirectory
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ProjectPad/ContextMenus/Project
	/Applications/Ide/Workbench/Pads/MonoDevelop.Ide.Gui.Pads.ClassPad
	/Applications/Ide/Workbench/Contexts
	/Applications/Ide/Workbench/ToolBar
	/Applications/Ide/Workbench/MainMenu
	/Applications/Ide/OptionsDialog
	/Applications/Ide/Workbench/Combine/FileFilter
	/Applications/Ide/FileFilter
	/Applications/Ide/SearchAndReplace/WildcardHelpPath
	/Applications/Ide/FileTemplates
	/Applications/Ide/ProjectTemplates
	/Applications/Ide/Extensions

MonoDevelop.MonoDevelop.SourceEditor.dll
----------------------------------------
	/Applications/Ide/Extensions/SourceEditor/ContextMenu
	/Applications/Ide/Extensions/SourceEditor/EditActions



The resulting tree would be more or less like this:


Runtime
	Services
	Applications
Services
	Execution
	Projects
		Ambiences
		ProjectBindings
		ProjectFileFormats
		LanguageBindings
		SerializableClasses
		Gui
			ProjectOptions
				GeneralOptions
				ConfigurationProperties
			CombineOptions
				GeneralOptions
				ConfigurationProperties
	...
Gui
	StockIcons
	...
Applications
	Ide
		Commands
		Workbench
			DisplayBindings
			Pads
				MonoDevelop.Ide.Gui.Pads.ProjectPad
					ContextMenu
						Combine
						Project
						ResourceFolder
						ReferencesFolder
						Reference
						DefaultFile
						ProjectFile
						SystemFile
						DefaultDirectory
					NodeBuilder
					...
				MonoDevelop.Ide.Gui.Pads.ClassPad
				...
			Contexts
			ToolBar
			MainMenu
		OptionsDialog
		FileFilter
		FileTemplates
		ProjectTemplates
		SearchAndReplace
			WildcardHelpPath
		Extensions
			SourceEditor
				ContextMenu
				EditActions
			...




More information about the Monodevelop-list mailing list