[Monodevelop-patches-list] r1236 - trunk/MonoDevelop/docs

commit-watcher at mono-cvs.ximian.com commit-watcher at mono-cvs.ximian.com
Wed Mar 24 13:33:30 EST 2004


Author: jluke
Date: 2004-03-24 13:33:30 -0500 (Wed, 24 Mar 2004)
New Revision: 1236

Added:
   trunk/MonoDevelop/docs/SourceMap.html
Modified:
   trunk/MonoDevelop/docs/WritingAddIns.html
Log:
review the AddIn guide, and start a SourceMap guide
on mrpropers request


Added: trunk/MonoDevelop/docs/SourceMap.html
===================================================================
--- trunk/MonoDevelop/docs/SourceMap.html	2004-03-24 18:12:39 UTC (rev 1235)
+++ trunk/MonoDevelop/docs/SourceMap.html	2004-03-24 18:33:30 UTC (rev 1236)
@@ -0,0 +1,40 @@
+<html>
+  <head>
+    <title>MonoDevelop source map</title>
+  <head>
+
+  <body>
+    <h3>Introduction</h3>
+	<p>Sometimes it can be hard to find your way around the MonoDevelop
+	source tree.  This is intended as a brief description on where and
+	what things are, and a couple tips to find things.</p>
+    <h3>Terms</h3>
+	<p>AddIn - similar to a plugin<br />
+	Service - provides widgets, events, etc. to the various other parts<br />
+	Codon -<br />
+	Command -<br />
+	Pads -<br />
+	Wizard -<br />
+	OptionPanel -<br /> 
+	View -<br /> 
+	</p>
+    <h3>Map</h3>
+	<p>MonoDevelop.Core - contains the bare necessities for the IDE.  It
+	has no external dependencies and is located at <code>src/Libraries/MonoDevelop.Core/</code></p>
+	<p>MonoDevelop.Base - contains the base of the IDE.  It begins to
+	depend on Gtk/GNOME at this point and is located at <code>src/Main/Base/</code></p>
+	<p>AddIns - various plugins that add to the IDE's functionality are
+	located at <code>src/AddIns/</code> See also the AddIns guide.</p>
+	<h3>Last resort</h3>
+	<p>Sometimes its still can be confusing so running something like
+	the two below commands can be used as a last resort to find things.
+	</p><p>
+	<code>find . -name '*TypeName*.cs'</code>
+	</p><p>
+	<code>find . -name '*.cs' | xargs grep TypeName</code>
+	</p>
+    <h3>Credits and Errata</h3>
+    <p>Send comments to <a href="mailto:jluke at cfl.rr.com">jluke at cfl.rr.com</a> or the <a href="mailto:monodevelop-list at lists.ximian.com">monodevelop mailing list</a>.</p>
+	<p>Last updated March 24, 2004</p>
+  </body>
+</html>

Modified: trunk/MonoDevelop/docs/WritingAddIns.html
===================================================================
--- trunk/MonoDevelop/docs/WritingAddIns.html	2004-03-24 18:12:39 UTC (rev 1235)
+++ trunk/MonoDevelop/docs/WritingAddIns.html	2004-03-24 18:33:30 UTC (rev 1236)
@@ -5,26 +5,42 @@
   <body>
     <h3>Introduction</h3>
 	<p>MonoDevelop (and SharpDevelop) have been written so that they
-    can be easily extended by others.  This is accomplished by doing
-	two simple things. First by creating an assembly (dll) containing
-	the code of your addin.  Second providing an .addin XML file that
+    can be easily extended by others.  This can be accomplished by doing
+	two simple things. First, by creating an assembly (dll) containing
+	the code for your addin.  Second, providing an .addin XML file that
     maps your code into MonoDevelop.  There is a detailed pdf available
     at SharpDevelop's website <a href="http://www.icsharpcode.net/TechNotes/ProgramArchitecture.pdf">here</a> that you will want to read for a 
     full understanding of the entire system and possiblities.  This is
     intended as a simple and quick overview.</p>
-    <h3>AddIn Assembly</h3>
+
+	<h3>Terms</h3>
+	<p>AddIn - what other systems term a plugin, also used for the core
+	application.<br />
+	Pad - content area like the project browser or output pad. <br />
+	View - main content area, like the SourceEditor.<br />
+    </p>
+
+    <h3>AddIn assembly</h3>
 	<p>In your code you can extend the IDE at pretty much any point.
 	Some common things would be to extend the menus, pads, views,
-    services, etc.  I recommend looking at src/AddIns/ for a few
-    examples.  In most cases you will simply inherit from an abstract
-    class or implement an interface for the various parts you are
-    extending. For example a new service could be defined as:</p>
+    services, commands, etc.  I recommend looking at src/AddIns/ for a
+	few examples.  In most cases you will simply inherit from an
+	abstract class or implement an interface for the various parts you
+	are extending. For example, a new service could be defined as:</p>
     <code>
-public class ExampleService : AbstractService
+<pre>
+using System;
+using MonoDevelop.Core.Services;
+
+namespace MonoDevelop.Services;
 {
+	public class ExampleService : AbstractService
+	{
+	}
 }
+</pre>
     </code>
-<p>Here is a list of some possibilities:
+<p>Here is a list of some of the common classes to extend for an AddIn:
 <pre>
 ./src/Main/Base/Gui/Dialogs/AbstractOptionPanel.cs
 ./src/Main/Base/Gui/Dialogs/Wizard/AbstractWizardPanel.cs
@@ -36,14 +52,16 @@
 ./src/Main/Base/Gui/AbstractSecondaryViewContent.cs
 </pre>
 </p>
+
     <h3>.addin file</h3>
     <p>The addin file basically maps the "entry" points of your code
-	into the various parts of the IDE.  You can tell it to load services,
-    append the menus in a certain place, and other various things.
+	into the various parts of the IDE.  You specify services to load,
+    append menus in a certain place, and virtually everything else.
+	Since the entire application is an AddIn there is no limit.
     It supports conditional directives and other advanced constructs.
-    See the sample MonoDevelopNunit.addin file. You can see it
-	specifies the name of the assembly to load, specifies a service
-    to load in the /Workspace/Services node, two views and some menus.
+    In the following sample MonoDevelopNunit.addin file, you can see
+	it specifies the name of the assembly to load, specifies a service
+    to load into the /Workspace/Services node, two views and some menus.
     Last, it is important to note the class attribute that is used to
     specify the type to instantiate for that part of the AddIn.</p>
 	<xmp>
@@ -84,17 +102,35 @@
         </Extension>
 </AddIn>
 	</xmp>
+
+    <h3>AddIn xml format</h3>
+	<p>There is an AddIn.xsd file that specifies the required/optional
+	xml format. Perhaps someone would like to make a RelaxNG one also.
+	See data/resources/AddIn.xsd</p>
+
     <h3>Building and installing</h3>
     <p>We currently support both running in a self-contained build/
     directly as well as installing to $(prefix)/lib/monodevelop so you
     will want to make sure both your .addin file and .dll are placed
-    into the AddIn directory in both places.  Note this this may change
+    into the AddIn directory in both places.  Note: this this may change
     at some point in the future.</p>
+
+	<h3>Existing Examples</h3>
+<ul>
+  <li>SourceEditor</li>
+  <li>CSharpBinding</li>
+  <li>DebuggerAddin</li>
+  <li>Monodoc</li>
+  <li>StartPage (not fully ported)</li>
+  <li>NUnit (incomplete)</li>
+</ul>
+
     <h3>Caveats</h3>
     <p>Although SharpDevelop and MonoDevelop currently use the same
     format this may not always be the case.  Also, while non-gui addins
-    could possibly be reused MonoDevelop and SharpDevelop use different
+    could possibly be reused, MonoDevelop and SharpDevelop use different
     GUI toolkits that will likely prevent sharing many things.</p>
+
     <h3>AddIn ideas</h3>
     <p>There are various things that would be nice to have implemented
     as addins.  Here is a brief list of the top of my head.
@@ -103,14 +139,15 @@
   <li>Extra languages/compilers support.</li>
   <li>NUnit and NAnt integration tools.</li>
   <li>Glade (although a new GUI designer is planned).</li>
-  <li>Subversion, CVS, and other version control tools.</li>
+  <li>Integration with Subversion, CVS, and other version control tools.</li>
   <li>UML/CASE tools.</li>
   <li>SQL/Database support.</li>
   <li>An advanced XML editor.</li>
   <li>Also, there are some additional things that SharpDevelop already has that could be ported to MonoDevelop.</li>
 </ul></p>
+
 	<h3>Credits and Errata</h3>
-	<p>Send comments to <a href="mailto:jluke at cfl.rr.com">jluke at cfl.rr.com</a> or the monodevelop mailing list.</p>
-    <p>Last updated March 21, 2004</p>
+	<p>Send comments to <a href="mailto:jluke at cfl.rr.com">jluke at cfl.rr.com</a> or the <a href="mailto:monodevelop-list at lists.ximian.com">monodevelop mailing list</a>.</p>
+    <p>Last updated March 24, 2004</p>
   </body>
 </html>




More information about the Monodevelop-patches-list mailing list