Browse Source

BuildAddinDocumentation now updates the AddIn schema.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@596 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
58ad8b5436
  1. 1059
      data/schemas/AddIn.xsd
  2. 3
      data/schemas/readme.txt
  3. 72
      doc/technotes/ConditionList.html
  4. 361
      doc/technotes/DoozerList.html
  5. 4
      doc/technotes/listing.css
  6. 4
      src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/SchemeExtension.cs
  7. 4
      src/Main/Base/Project/Src/Internal/Doozers/DialogPanelDoozer.cs
  8. 2
      src/Main/Base/Project/Src/Internal/Doozers/DirectoryDoozer.cs
  9. 16
      src/Main/Base/Project/Src/Internal/Doozers/PadDoozer.cs
  10. 16
      src/Main/Base/Project/Src/Services/Debugger/DebuggerDoozer.cs
  11. 33
      src/Main/Base/Project/Src/Services/DisplayBinding/DisplayBindingDoozer.cs
  12. 8
      src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDoozer.cs
  13. 2
      src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs
  14. 3
      src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs
  15. 4
      src/Main/Base/Project/Src/TextEditor/Codons/EditActionDoozer.cs
  16. 6
      src/Main/Base/Project/Src/TextEditor/Codons/SyntaxModeDoozer.cs
  17. 10
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CodeCompletionBinding.cs
  18. 4
      src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/ClassDoozer.cs
  19. 4
      src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/FileFilterDoozer.cs
  20. 5
      src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/Icon/IconDoozer.cs
  21. 32
      src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/MenuItem/MenuItemDoozer.cs
  22. 19
      src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/ToolBarItemDoozer.cs
  23. 156
      src/Tools/BuildAddinDocumentation/MainClass.cs

1059
data/schemas/AddIn.xsd

File diff suppressed because it is too large Load Diff

3
data/schemas/readme.txt

@ -2,7 +2,8 @@ AddIn.xsd @@ -2,7 +2,8 @@ AddIn.xsd
---------
SharpDevelop schema for .addin files.
Created by Ivo Kovacka.
Created by Ivo Kovacka.
Doozers automatically updated by "BuildAddinDocumentation".
GNU General Public License.

72
doc/technotes/ConditionList.html

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
</head><body>
<h1>Condition List</h1>
<p class="notice">This file was generated by the tool 'BuildAddinDocumentation'.
It is based on SharpDevelop 2.0.0.590.</p>
It is based on SharpDevelop 2.0.0.595.</p>
<ul>
<li><a href="#ActiveContentExtension">ActiveContentExtension</a>
<li><a href="#ActiveViewContentUntitled">ActiveViewContentUntitled</a>
@ -29,12 +29,12 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -29,12 +29,12 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.ActiveContentExtensionConditionEvaluator</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>activeextension:</td>
<th colspan=2>activeextension:</td>
<td>
The file extension the file should have.
</td>
@ -51,11 +51,11 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -51,11 +51,11 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.ActiveViewContentUntitledConditionEvaluator</td>
</tr>
<tr>
<th>Attributes:</td>
<th colspan=2>Attributes:</td>
<td>Boolean value to test against.</td>
</tr>
</table>
@ -75,7 +75,7 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -75,7 +75,7 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.ActiveWindowStateConditionEvaluator</td>
</tr>
</table>
@ -87,18 +87,18 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -87,18 +87,18 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.SharpDevelop.BrowserDisplayBinding.BrowserLocationConditionEvaluator</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>urlRegex:</td>
<th colspan=2>urlRegex:</td>
<td>
The regular expression that must match the URL.
</td>
</tr>
<tr>
<th>options:</td>
<th colspan=2>options:</td>
<td>
Optional; options that are passed as RegexOptions.
</td>
@ -119,18 +119,18 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -119,18 +119,18 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.CompareConditionEvaluator</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>string:</td>
<th colspan=2>string:</td>
<td>
The first string.
</td>
</tr>
<tr>
<th>equals:</td>
<th colspan=2>equals:</td>
<td>
The second string.
</td>
@ -147,12 +147,12 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -147,12 +147,12 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.DebuggerSupportsConditionEvaluator</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>debuggersupports:</td>
<th colspan=2>debuggersupports:</td>
<td>
The name of the feature the debugger must support.
Possible feature names: "Start", "StartWithoutDebugging", "Stop",
@ -175,17 +175,17 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -175,17 +175,17 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.IsProcessRunningConditionEvaluator</td>
</tr>
<tr>
<th>Attributes:</td>
<th colspan=2>Attributes:</td>
<td>
Optional; boolean value IsDebugging should have.
</td>
</tr>
<tr>
<th>Attributes:</td>
<th colspan=2>Attributes:</td>
<td>
Optional; boolean value IsProcessRunning should have.
</td>
@ -211,7 +211,7 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -211,7 +211,7 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.OpenWindowStateConditionEvaluator</td>
</tr>
</table>
@ -224,7 +224,7 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -224,7 +224,7 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.OwnerStateConditionEvaluator</td>
</tr>
</table>
@ -236,12 +236,12 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -236,12 +236,12 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.ProjectActiveConditionEvaluator</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>activeproject:</td>
<th colspan=2>activeproject:</td>
<td>
The language name the project should have.
"*" to test if any project is active.
@ -262,7 +262,7 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -262,7 +262,7 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.SolutionOpenConditionEvaluator</td>
</tr>
</table>
@ -277,12 +277,12 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -277,12 +277,12 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Conditions.TextContentConditionEvaluator</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>textcontent:</td>
<th colspan=2>textcontent:</td>
<td>
The name of the highlighting strategy that should be active.
</td>
@ -299,12 +299,12 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -299,12 +299,12 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.WindowActiveConditionEvaluator</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>activewindow:</td>
<th colspan=2>activewindow:</td>
<td>
The fully qualified name of the type the active window should be or the
interface name it should implement.
@ -327,12 +327,12 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -327,12 +327,12 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Condition name:</td>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.Core.WindowOpenConditionEvaluator</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>openwindow:</td>
<th colspan=2>openwindow:</td>
<td>
The fully qualified name of the type the window should be or the
interface name it should implement.

361
doc/technotes/DoozerList.html

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
</head><body>
<h1>Doozer List</h1>
<p class="notice">This file was generated by the tool 'BuildAddinDocumentation'.
It is based on SharpDevelop 2.0.0.590.</p>
It is based on SharpDevelop 2.0.0.595.</p>
<ul>
<li><a href="#Class">Class</a>
<li><a href="#CodeCompletionBinding">CodeCompletionBinding</a>
@ -33,23 +33,24 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -33,23 +33,24 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.ClassDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
The fully qualified type name of the attribute to create.
The fully qualified type name of the class to create an instace of.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Everywhere where objects are expected.</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
Any kind of object.
</td>
@ -63,30 +64,32 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -63,30 +64,32 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.CodeCompletionBindingDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>extensions:</td>
<th>class:</td>
<td class="userequired">required</td>
<td>
Optional, list of semicolon-separated entries of the file extensions handled by the binding.
If no extensions attribute is specified, the binding is activated in all files.
Name of the ICodeCompletionBinding class (normally deriving from DefaultCodeCompletionBinding).
</td>
</tr>
<tr>
<th>class:</td>
<th>extensions:</td>
<td class="userequired">optional</td>
<td>
Name of the ICodeCompletionBinding class (normally deriving from DefaultCodeCompletionBinding).
List of semicolon-separated entries of the file extensions handled by the binding.
If no extensions attribute is specified, the binding is activated in all files.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /AddIns/DefaultTextEditor/CodeCompletion</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
The ICodeCompletionBinding class specified with the 'class' attribute, or a
wrapper that lazy-loads the actual class when it is used in a file with the specified
@ -102,53 +105,59 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -102,53 +105,59 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.DebuggerDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the IDebugger class.
</td>
</tr>
<tr>
<th>supportsStart:</td>
<td class="userequired">optional</td>
<td>
Specifies if the debugger supports the 'Start' command. Default: true
</td>
</tr>
<tr>
<th>supportsStartWithoutDebugger:</td>
<td class="userequired">optional</td>
<td>
Specifies if the debugger supports the 'StartWithoutDebugger' command. Default: true
</td>
</tr>
<tr>
<th>supportsStop:</td>
<td class="userequired">optional</td>
<td>
Specifies if the debugger supports the 'Stop' (kill running process) command. Default: true
</td>
</tr>
<tr>
<th>supportsStepping:</td>
<td class="userequired">optional</td>
<td>
Specifies if the debugger supports stepping. Default: false
</td>
</tr>
<tr>
<th>supportsExecutionControl:</td>
<td class="userequired">optional</td>
<td>
Specifies if the debugger supports execution control (break, resume). Default: false
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>class:</td>
<td>
Name of the IDebugger class.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/Services/DebuggerService/Debugger</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
An DebuggerDescriptor object that exposes the attributes and the IDebugger object (lazy-loading).
</td>
@ -162,36 +171,37 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -162,36 +171,37 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.DialogPanelDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>class:</td>
<th colspan=2>class:</td>
<td>
Name of the IDialogPanel class. Optional if the page has subpages.
</td>
</tr>
<tr>
<th>label:</td>
<td class="userequired">required</td>
<td>
Caption of the dialog panel.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Children:</td>
<th colspan=2>Children:</td>
<td>
In the SharpDevelop options, option pages can have subpages by specifying them
as children in the AddInTree.
</td>
</tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>In /SharpDevelop/BackendBindings/ProjectOptions/ and /SharpDevelop/Dialogs/OptionsDialog</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
A DefaultDialogPanelDescriptor object.
</td>
@ -205,24 +215,25 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -205,24 +215,25 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.DirectoryDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>path:</td>
<td class="userequired">required</td>
<td>
Path relative to the directory which contains the .addin file defining the codon.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Where directory paths to a folder inside the addin directory are expected, e.g.
/SharpDevelop/BackendBindings/Templates</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
A string containing the full path name.
</td>
@ -233,52 +244,77 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -233,52 +244,77 @@ It is based on SharpDevelop 2.0.0.590.</p>
<h2><a name="DisplayBinding">DisplayBinding</a></h2>
<p>
Creates DisplayBindingDescriptor objects.
Primary display bindings can provide editors for additional file types
(like the ResourceEditor), secondary display bindings can add tabs to
existing display bindings (like the form designer).
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.DisplayBindingDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the IDisplayBinding or ISecondaryDisplayBinding class.
</td>
</tr>
<tr>
<th>type:</td>
<td class="userequired">optional</td>
<td>
Type of the display binding (either "Primary" or "Secondary"). Default: "Primary".
</td>
</tr>
<tr>
<th>fileNamePattern:</td>
<td class="userequired">optional</td>
<td>
Optional. Regular expression that specifies the file names for which the display binding
Regular expression that specifies the file names for which the display binding
will be used. Example: "\.res(x|ources)$"
</td>
</tr>
<tr>
<th>languagePattern:</td>
<td class="userequired">optional</td>
<td>
Optional. Regular expression that specifies the language for which the display binding
Regular expression that specifies the language for which the display binding
will be used. Example: "\Resource Files$"
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/Workbench/DisplayBindings</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
An DisplayBindingDescriptor object that wraps either a IDisplayBinding
or a ISecondaryDisplayBinding object.
</td>
</tr>
</table>
<p><span class="exampleTitle">Example: Primary display binding: Resource editor</span>
<br><pre>
&lt;Path name = "/SharpDevelop/Workbench/DisplayBindings"&gt;
&lt;DisplayBinding id = "ResourceEditor"
class = "ResourceEditor.ResourceEditorDisplayBinding"
insertbefore = "Text"
fileNamePattern = "\.res(x|ources)$"
languagePattern = "^ResourceFiles$"/&gt;
&lt;/Path&gt;</pre></p>
<p><span class="exampleTitle">Example: Secondary display binding: Form designer</span>
<br><pre>
&lt;Path name = "/SharpDevelop/Workbench/DisplayBindings"&gt;
&lt;DisplayBinding id = "FormDesigner"
type = "Secondary"
class = "ICSharpCode.FormDesigner.FormDesignerSecondaryDisplayBinding"
fileNamePattern = "\.(cs|vb)$"
languagePattern = "^(C#|VBNet)$" /&gt;
&lt;/Path&gt;</pre></p>
</div>
<div>
<h2><a name="EditAction">EditAction</a></h2>
@ -287,12 +323,13 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -287,12 +323,13 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Codons.EditActionDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>keys:</td>
<td class="userequired">required</td>
<td>
Comma-separated list of keyboard shortcuts that activate the edit action.
E.g. "Control|C,Control|Insert"
@ -300,17 +337,18 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -300,17 +337,18 @@ It is based on SharpDevelop 2.0.0.590.</p>
</tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the IEditAction class.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /AddIns/DefaultTextEditor/EditActions</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
An IEditAction object.
</td>
@ -324,29 +362,31 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -324,29 +362,31 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.FileFilterDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>name:</td>
<td class="userequired">required</td>
<td>
The name of the file filter entry.
</td>
</tr>
<tr>
<th>extensions:</td>
<td class="userequired">required</td>
<td>
The extensions associated with this file filter entry.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/Workbench/FileFilter</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
String in the format "name|extensions".
</td>
@ -361,38 +401,38 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -361,38 +401,38 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.IconDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>resource:</td>
<td class="userequired">required</td>
<td>
This attribute must be specified. It is the name of a bitmap resource
in the resource service.
The name of a bitmap resource in the resource service.
</td>
</tr>
<tr>
<th>language:</td>
<th colspan=2>language:</td>
<td>
This attribute is specified when a project icon association should be created.
It specifies the language of the project types that use the icon.
</td>
</tr>
<tr>
<th>extensions:</td>
<th colspan=2>extensions:</td>
<td>
This attribute is specified when a file icon association should be created.
It specifies the semicolon-separated list of file types that use the icon.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /Workspace/Icons</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
An IconDescriptor object that exposes the attributes.
</td>
@ -407,32 +447,32 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -407,32 +447,32 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.IncludeDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>item:</td>
<th colspan=2>item:</td>
<td>
When this attribute is used, the include doozer builds the item that is at the
addin tree location specified by this attribute.
</td>
</tr>
<tr>
<th>path:</td>
<th colspan=2>path:</td>
<td>
When this attribute is used, the include doozer builds all items inside the
path addin tree location specified by this attribute and returns an
IBuildItemsModifier which includes all items in the output list.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Everywhere</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
Any object, depending on the included codon(s).
</td>
@ -446,41 +486,45 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -446,41 +486,45 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.LanguageBindingDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>guid:</td>
<td class="userequired">required</td>
<td>
Project type GUID of the project used by MsBuild.
</td>
</tr>
<tr>
<th>supportedextensions:</td>
<td class="userequired">required</td>
<td>
Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
</td>
</tr>
<tr>
<th>projectfileextension:</td>
<td class="userequired">required</td>
<td>
File extension of project files. (e.g. ".booproj")
</td>
</tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the ILanguageBinding class.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/Workbench/LanguageBindings</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
An LanguageBindingDescriptor object that wraps the ILanguageBinding object.
</td>
@ -494,20 +538,30 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -494,20 +538,30 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.MenuItemDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>label:</td>
<td class="userequired">required</td>
<td>
Label of the menu item.
</td>
</tr>
<tr>
<th>type:</td>
<td class="userequired">optional</td>
<td>
This attribute must be specified and one of these values:
This attribute must be one of these values:
Separator, CheckBox, Item=Command, Menu (=with subitems),
Builder (=class implementing ISubmenuBuilder)
Builder (=class implementing ISubmenuBuilder).
Default: Command.
</td>
</tr>
<tr>
<th>loadclasslazy:</td>
<td class="userequired">optional</td>
<td>
Only for the type "Item"/"Command".
When set to false, the command class is loaded
@ -516,42 +570,53 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -516,42 +570,53 @@ It is based on SharpDevelop 2.0.0.590.</p>
</tr>
<tr>
<th>icon:</td>
<td class="userequired">optional</td>
<td>
Icon of the menu item.
</td>
</tr>
<tr>
<th>label:</td>
<th>class:</td>
<td class="userequired">optional</td>
<td>
Label of the menu item.
Command class that is run when item is clicked.
</td>
</tr>
<tr>
<th>class:</td>
<th>link:</td>
<td class="userequired">optional</td>
<td>
Command class that is run when item is clicked.
Only for the type "Item"/"Command". Opens a webpage instead of running a command when
clicking the item.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr>
<th>Children:</td>
<th>shortcut:</td>
<td class="userequired">optional</td>
<td>
Shortcut that activates the command (e.g. "Control|S").
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Children:</td>
<td>
If "type" is "Menu", the item can have sub-menuitems.
</td>
</tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Any menu strip paths or context menu paths, e.g. /SharpDevelop/Workbench/MainMenu</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
A ToolStrip* object, depending on the type attribute.
Any ToolStrip* object, depending on the type attribute.
</td>
</tr>
<tr>
<th>Conditions:</td>
<td>MenuMode</td>
<th colspan=2>Conditions:</td>
<td>Conditions are handled by the item, "Exclude" maps to "Visible = false", "Disable" to "Enabled = false"</td>
</tr>
</table>
</div>
@ -562,12 +627,20 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -562,12 +627,20 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.PadDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
IPadContent class that is loaded when the pad content is shown for the first time.
</td>
</tr>
<tr>
<th>title:</td>
<td class="userequired">required</td>
<td>
Title of the pad that is shown in the user interface.
Should be a resource string, e.g. "${res:AddIns.HtmlHelp2.Contents}"
@ -575,14 +648,16 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -575,14 +648,16 @@ It is based on SharpDevelop 2.0.0.590.</p>
</tr>
<tr>
<th>icon:</td>
<td class="userequired">optional</td>
<td>
Optional, specifies the name of the icon resource used for the pad.
Specifies the name of the icon resource used for the pad.
Pad icon resources must be registered with the ResourceService before the
workbench is loaded!
</td>
</tr>
<tr>
<th>category:</td>
<td class="userequired">optional</td>
<td>
Category of the pad. It is possible to create menu items that automatically
contain show commands for all pads in a certain category.
@ -593,23 +668,18 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -593,23 +668,18 @@ It is based on SharpDevelop 2.0.0.590.</p>
</tr>
<tr>
<th>shortcut:</td>
<td class="userequired">optional</td>
<td>
Shortcut that activates the 'Show pad' command (e.g. "Control|Alt|T").
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>class:</td>
<td>
IPadContent class that is loaded when the pad content is shown for the first time.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /Workspace/Parser</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
An PadDescriptor object that wraps the IPadContent object.
</td>
@ -623,35 +693,35 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -623,35 +693,35 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.ParserDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>supportedextensions:</td>
<th colspan=2>supportedextensions:</td>
<td>
Semicolon-separated list of file extensions for which the parser is used. (e.g. ".boo")
</td>
</tr>
<tr>
<th>projectfileextension:</td>
<th colspan=2>projectfileextension:</td>
<td>
File extension of project files. (e.g. ".booproj")
</td>
</tr>
<tr>
<th>class:</td>
<th colspan=2>class:</td>
<td>
Name of the IParser class.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /Workspace/Parser</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
An ParserDescriptor object that wraps the IParser object.
</td>
@ -665,29 +735,31 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -665,29 +735,31 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.BrowserDisplayBinding.SchemeExtensionDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>scheme:</td>
<td class="userequired">required</td>
<td>
Specifies the name of the protocol the extension handles. (e.g. 'ms-help' or 'startpage')
</td>
</tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the ISchemeExtension class (normally deriving from DefaultSchemeExtension).
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/Views/Browser/SchemeExtensions</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
An SchemeExtensionDescriptor object that exposes the protocol name and ISchemeExtension object (lazy-loading).
</td>
@ -702,35 +774,38 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -702,35 +774,38 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Codons.SyntaxModeDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>name:</td>
<td class="userequired">required</td>
<td>
Name of the language for which the syntax mode is used.
</td>
</tr>
<tr>
<th>extensions:</td>
<td class="userequired">required</td>
<td>
Semicolon-separated list of file extensions for which the syntax mode is used.
</td>
</tr>
<tr>
<th>resource:</td>
<td class="userequired">required</td>
<td>
Fully qualified name of the resource file.
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/ViewContent/DefaultTextEditor/SyntaxModes</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Returns:</td>
<td>
An AddInTreeSyntaxMode object that loads the resource from the addin assembly when
its CreateTextReader method is called.
@ -745,57 +820,65 @@ It is based on SharpDevelop 2.0.0.590.</p> @@ -745,57 +820,65 @@ It is based on SharpDevelop 2.0.0.590.</p>
</p>
<table>
<tr>
<th>Doozer name:</td>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.Core.ToolbarItemDoozer</td>
</tr>
<tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>icon:</td>
<td class="userequired">optional</td>
<td>
Icon of the tool bar item.
</td>
</tr>
<tr>
<th>type:</td>
<td class="userequired">optional</td>
<td>
This attribute must be specified and one of these values:
This attribute must be one of these values:
Separator, CheckBox, Item, ComboBox, DropDownButton
</td>
</tr>
<tr>
<th>loadclasslazy:</td>
<td class="userequired">optional</td>
<td>
Only for the type "Item". When set to false, the command class is loaded
immediately instead of the usual lazy-loading.
</td>
</tr>
<tr>
<th>icon:</td>
<td>
Icon of the tool bar item.
</td>
</tr>
<tr>
<th>tooltip:</td>
<td class="userequired">optional</td>
<td>
Tooltip of the tool bar item.
</td>
</tr>
<tr>
<th>class:</td>
<th colspan=2>class:</td>
<td>
Command class that is run when item is clicked; or class that manages
the ComboBox/DropDownButton.
the ComboBox/DropDownButton. Required for everything except "Separator".
</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th>Usage:</td>
<th colspan=2>Usage:</td>
<td>Any toolbar strip paths, e.g. /SharpDevelop/Workbench/ToolBar</td>
</tr>
<tr>
<th>Returns:</td>
<th colspan=2>Children:</td>
<td>A drop down button has menu items as sub elements.</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
A ToolStrip* object, depending on the type attribute.
</td>
</tr>
<tr>
<th>Conditions:</td>
<td>MenuMode</td>
<th colspan=2>Conditions:</td>
<td>Conditions are handled by the item, "Exclude" maps to "Visible = false", "Disable" to "Enabled = false"</td>
</tr>
</table>
</div>

4
doc/technotes/listing.css

@ -53,6 +53,10 @@ hr { @@ -53,6 +53,10 @@ hr {
.exampleTitle {
font-weight: bold;
}
.userequired {
font-style: italic;
width: 9ex;
}
pre {
margin-top: -10px !important;
margin-top: 4px;

4
src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/SchemeExtension.cs

@ -73,10 +73,10 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding @@ -73,10 +73,10 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding
/// <summary>
/// Creates browser scheme extensions that can intercept calls on one protocol.
/// </summary>
/// <attribute name="scheme">
/// <attribute name="scheme" use="required">
/// Specifies the name of the protocol the extension handles. (e.g. 'ms-help' or 'startpage')
/// </attribute>
/// <attribute name="class">
/// <attribute name="class" use="required">
/// Name of the ISchemeExtension class (normally deriving from DefaultSchemeExtension).
/// </attribute>
/// <usage>Only in /SharpDevelop/Views/Browser/SchemeExtensions</usage>

4
src/Main/Base/Project/Src/Internal/Doozers/DialogPanelDoozer.cs

@ -17,10 +17,10 @@ namespace ICSharpCode.Core @@ -17,10 +17,10 @@ namespace ICSharpCode.Core
/// <attribute name="class">
/// Name of the IDialogPanel class. Optional if the page has subpages.
/// </attribute>
/// <attribute name="label">
/// <attribute name="label" use="required">
/// Caption of the dialog panel.
/// </attribute>
/// <children>
/// <children childTypes="DialogPanel">
/// In the SharpDevelop options, option pages can have subpages by specifying them
/// as children in the AddInTree.
/// </children>

2
src/Main/Base/Project/Src/Internal/Doozers/DirectoryDoozer.cs

@ -14,7 +14,7 @@ namespace ICSharpCode.Core @@ -14,7 +14,7 @@ namespace ICSharpCode.Core
/// <summary>
/// Creates path names using a relative to the folder containing the addin file.
/// </summary>
/// <attribute name="path">
/// <attribute name="path" use="required">
/// Path relative to the directory which contains the .addin file defining the codon.
/// </attribute>
/// <usage>Where directory paths to a folder inside the addin directory are expected, e.g.

16
src/Main/Base/Project/Src/Internal/Doozers/PadDoozer.cs

@ -15,28 +15,28 @@ namespace ICSharpCode.Core @@ -15,28 +15,28 @@ namespace ICSharpCode.Core
/// <summary>
/// Creates PadDescriptor objects for SharpDevelop pads.
/// </summary>
/// <attribute name="title">
/// <attribute name="class" use="required">
/// IPadContent class that is loaded when the pad content is shown for the first time.
/// </attribute>
/// <attribute name="title" use="required">
/// Title of the pad that is shown in the user interface.
/// Should be a resource string, e.g. "${res:AddIns.HtmlHelp2.Contents}"
/// </attribute>
/// <attribute name="icon">
/// Optional, specifies the name of the icon resource used for the pad.
/// <attribute name="icon" use="optional">
/// Specifies the name of the icon resource used for the pad.
/// Pad icon resources must be registered with the ResourceService before the
/// workbench is loaded!
/// </attribute>
/// <attribute name="category">
/// <attribute name="category" use="optional">
/// Category of the pad. It is possible to create menu items that automatically
/// contain show commands for all pads in a certain category.
/// Pads in the category "Main" will show up in the "View" menu, the category
/// "Tools" in the "View -&gt; Tools" menu, the category "Debugger" in the
/// "View -&gt; Debugger" menu.
/// </attribute>
/// <attribute name="shortcut">
/// <attribute name="shortcut" use="optional">
/// Shortcut that activates the 'Show pad' command (e.g. "Control|Alt|T").
/// </attribute>
/// <attribute name="class">
/// IPadContent class that is loaded when the pad content is shown for the first time.
/// </attribute>
/// <usage>Only in /Workspace/Parser</usage>
/// <returns>
/// An PadDescriptor object that wraps the IPadContent object.

16
src/Main/Base/Project/Src/Services/Debugger/DebuggerDoozer.cs

@ -13,24 +13,24 @@ namespace ICSharpCode.Core @@ -13,24 +13,24 @@ namespace ICSharpCode.Core
/// <summary>
/// Creates debuggers.
/// </summary>
/// <attribute name="supportsStart">
/// <attribute name="class" use="required">
/// Name of the IDebugger class.
/// </attribute>
/// <attribute name="supportsStart" use="optional">
/// Specifies if the debugger supports the 'Start' command. Default: true
/// </attribute>
/// <attribute name="supportsStartWithoutDebugger">
/// <attribute name="supportsStartWithoutDebugger" use="optional">
/// Specifies if the debugger supports the 'StartWithoutDebugger' command. Default: true
/// </attribute>
/// <attribute name="supportsStop">
/// <attribute name="supportsStop" use="optional">
/// Specifies if the debugger supports the 'Stop' (kill running process) command. Default: true
/// </attribute>
/// <attribute name="supportsStepping">
/// <attribute name="supportsStepping" use="optional">
/// Specifies if the debugger supports stepping. Default: false
/// </attribute>
/// <attribute name="supportsExecutionControl">
/// <attribute name="supportsExecutionControl" use="optional">
/// Specifies if the debugger supports execution control (break, resume). Default: false
/// </attribute>
/// <attribute name="class">
/// Name of the IDebugger class.
/// </attribute>
/// <usage>Only in /SharpDevelop/Services/DebuggerService/Debugger</usage>
/// <returns>
/// An DebuggerDescriptor object that exposes the attributes and the IDebugger object (lazy-loading).

33
src/Main/Base/Project/Src/Services/DisplayBinding/DisplayBindingDoozer.cs

@ -15,19 +15,22 @@ namespace ICSharpCode.Core @@ -15,19 +15,22 @@ namespace ICSharpCode.Core
{
/// <summary>
/// Creates DisplayBindingDescriptor objects.
/// Primary display bindings can provide editors for additional file types
/// (like the ResourceEditor), secondary display bindings can add tabs to
/// existing display bindings (like the form designer).
/// </summary>
/// <attribute name="class">
/// <attribute name="class" use="required">
/// Name of the IDisplayBinding or ISecondaryDisplayBinding class.
/// </attribute>
/// <attribute name="type">
/// <attribute name="type" use="optional" enum="Primary;Secondary">
/// Type of the display binding (either "Primary" or "Secondary"). Default: "Primary".
/// </attribute>
/// <attribute name="fileNamePattern">
/// Optional. Regular expression that specifies the file names for which the display binding
/// <attribute name="fileNamePattern" use="optional">
/// Regular expression that specifies the file names for which the display binding
/// will be used. Example: "\.res(x|ources)$"
/// </attribute>
/// <attribute name="languagePattern">
/// Optional. Regular expression that specifies the language for which the display binding
/// <attribute name="languagePattern" use="optional">
/// Regular expression that specifies the language for which the display binding
/// will be used. Example: "\Resource Files$"
/// </attribute>
/// <usage>Only in /SharpDevelop/Workbench/DisplayBindings</usage>
@ -35,6 +38,24 @@ namespace ICSharpCode.Core @@ -35,6 +38,24 @@ namespace ICSharpCode.Core
/// An DisplayBindingDescriptor object that wraps either a IDisplayBinding
/// or a ISecondaryDisplayBinding object.
/// </returns>
/// <example title="Primary display binding: Resource editor">
/// &lt;Path name = "/SharpDevelop/Workbench/DisplayBindings"&gt;
/// &lt;DisplayBinding id = "ResourceEditor"
/// class = "ResourceEditor.ResourceEditorDisplayBinding"
/// insertbefore = "Text"
/// fileNamePattern = "\.res(x|ources)$"
/// languagePattern = "^ResourceFiles$"/&gt;
/// &lt;/Path&gt;
/// </example>
/// <example title="Secondary display binding: Form designer">
/// &lt;Path name = "/SharpDevelop/Workbench/DisplayBindings"&gt;
/// &lt;DisplayBinding id = "FormDesigner"
/// type = "Secondary"
/// class = "ICSharpCode.FormDesigner.FormDesignerSecondaryDisplayBinding"
/// fileNamePattern = "\.(cs|vb)$"
/// languagePattern = "^(C#|VBNet)$" /&gt;
/// &lt;/Path&gt;
/// </example>
public class DisplayBindingDoozer : IDoozer
{
/// <summary>

8
src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDoozer.cs

@ -17,16 +17,16 @@ namespace ICSharpCode.Core @@ -17,16 +17,16 @@ namespace ICSharpCode.Core
/// <summary>
/// Creates LanguageBindingDescriptor objects for the project service.
/// </summary>
/// <attribute name="guid">
/// <attribute name="guid" use="required">
/// Project type GUID of the project used by MsBuild.
/// </attribute>
/// <attribute name="supportedextensions">
/// <attribute name="supportedextensions" use="required">
/// Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
/// </attribute>
/// <attribute name="projectfileextension">
/// <attribute name="projectfileextension" use="required">
/// File extension of project files. (e.g. ".booproj")
/// </attribute>
/// <attribute name="class">
/// <attribute name="class" use="required">
/// Name of the ILanguageBinding class.
/// </attribute>
/// <usage>Only in /SharpDevelop/Workbench/LanguageBindings</usage>

2
src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs

@ -31,7 +31,7 @@ namespace ICSharpCode.Core @@ -31,7 +31,7 @@ namespace ICSharpCode.Core
{
public class DefaultProjectContent : IProjectContent
{
List<IProjectContent> referencedContents = new List<IProjectContent>();
protected readonly List<IProjectContent> referencedContents = new List<IProjectContent>();
// we use a list of Dictionaries because we need multiple dictionaries:
// each uses another StringComparer

3
src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs

@ -68,7 +68,8 @@ namespace ICSharpCode.Core @@ -68,7 +68,8 @@ namespace ICSharpCode.Core
void UpdateReferenceInterDependencies()
{
foreach (IProjectContent referencedContent in this.ReferencedContents) {
// Use ToArray because the collection could be modified inside the loop
foreach (IProjectContent referencedContent in this.referencedContents.ToArray()) {
if (referencedContent is ReflectionProjectContent) {
((ReflectionProjectContent)referencedContent).InitializeReferences();
}

4
src/Main/Base/Project/Src/TextEditor/Codons/EditActionDoozer.cs

@ -20,11 +20,11 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons @@ -20,11 +20,11 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons
/// <summary>
/// Creates IEditAction objects for the text editor.
/// </summary>
/// <attribute name="keys">
/// <attribute name="keys" use="required">
/// Comma-separated list of keyboard shortcuts that activate the edit action.
/// E.g. "Control|C,Control|Insert"
/// </attribute>
/// <attribute name="class">
/// <attribute name="class" use="required">
/// Name of the IEditAction class.
/// </attribute>
/// <usage>Only in /AddIns/DefaultTextEditor/EditActions</usage>

6
src/Main/Base/Project/Src/TextEditor/Codons/SyntaxModeDoozer.cs

@ -46,13 +46,13 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons @@ -46,13 +46,13 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons
/// Creates AddInTreeSyntaxMode objects that wrap a .xshd syntax mode stored as resource in the
/// addin assembly.
/// </summary>
/// <attribute name="name">
/// <attribute name="name" use="required">
/// Name of the language for which the syntax mode is used.
/// </attribute>
/// <attribute name="extensions">
/// <attribute name="extensions" use="required">
/// Semicolon-separated list of file extensions for which the syntax mode is used.
/// </attribute>
/// <attribute name="resource">
/// <attribute name="resource" use="required">
/// Fully qualified name of the resource file.
/// </attribute>
/// <usage>Only in /SharpDevelop/ViewContent/DefaultTextEditor/SyntaxModes</usage>

10
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CodeCompletionBinding.cs

@ -25,13 +25,13 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -25,13 +25,13 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
/// <summary>
/// Creates code completion bindings that manage code completion for one language.
/// </summary>
/// <attribute name="extensions">
/// Optional, list of semicolon-separated entries of the file extensions handled by the binding.
/// If no extensions attribute is specified, the binding is activated in all files.
/// </attribute>
/// <attribute name="class">
/// <attribute name="class" use="required">
/// Name of the ICodeCompletionBinding class (normally deriving from DefaultCodeCompletionBinding).
/// </attribute>
/// <attribute name="extensions" use="optional">
/// List of semicolon-separated entries of the file extensions handled by the binding.
/// If no extensions attribute is specified, the binding is activated in all files.
/// </attribute>
/// <usage>Only in /AddIns/DefaultTextEditor/CodeCompletion</usage>
/// <returns>
/// The ICodeCompletionBinding class specified with the 'class' attribute, or a

4
src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/ClassDoozer.cs

@ -14,8 +14,8 @@ namespace ICSharpCode.Core @@ -14,8 +14,8 @@ namespace ICSharpCode.Core
/// Creates object instances by invocing a type's parameterless constructor
/// via System.Reflection.
/// </summary>
/// <attribute name="class">
/// The fully qualified type name of the attribute to create.
/// <attribute name="class" use="required">
/// The fully qualified type name of the class to create an instace of.
/// </attribute>
/// <usage>Everywhere where objects are expected.</usage>
/// <returns>

4
src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/FileFilterDoozer.cs

@ -13,10 +13,10 @@ namespace ICSharpCode.Core @@ -13,10 +13,10 @@ namespace ICSharpCode.Core
/// <summary>
/// Creates file filter entries for OpenFileDialogs or SaveFileDialogs.
/// </summary>
/// <attribute name="name">
/// <attribute name="name" use="required">
/// The name of the file filter entry.
/// </attribute>
/// <attribute name="extensions">
/// <attribute name="extensions" use="required">
/// The extensions associated with this file filter entry.
/// </attribute>
/// <usage>Only in /SharpDevelop/Workbench/FileFilter</usage>

5
src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/Icon/IconDoozer.cs

@ -16,9 +16,8 @@ namespace ICSharpCode.Core @@ -16,9 +16,8 @@ namespace ICSharpCode.Core
/// Creates associations between file types or node types in the project browser and
/// icons in the resource service.
/// </summary>
/// <attribute name="resource">
/// This attribute must be specified. It is the name of a bitmap resource
/// in the resource service.
/// <attribute name="resource" use="required">
/// The name of a bitmap resource in the resource service.
/// </attribute>
/// <attribute name="language">
/// This attribute is specified when a project icon association should be created.

32
src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/MenuItem/MenuItemDoozer.cs

@ -14,33 +14,41 @@ namespace ICSharpCode.Core @@ -14,33 +14,41 @@ namespace ICSharpCode.Core
/// <summary>
/// Creates menu items from a location in the addin tree.
/// </summary>
/// <attribute name="type">
/// This attribute must be specified and one of these values:
/// <attribute name="label" use="required">
/// Label of the menu item.
/// </attribute>
/// <attribute name="type" use="optional" enum="Separator;CheckBox;Item;Command;Menu;Builder">
/// This attribute must be one of these values:
/// Separator, CheckBox, Item=Command, Menu (=with subitems),
/// Builder (=class implementing ISubmenuBuilder)
/// Builder (=class implementing ISubmenuBuilder).
/// Default: Command.
/// </attribute>
/// <attribute name="loadclasslazy">
/// <attribute name="loadclasslazy" use="optional">
/// Only for the type "Item"/"Command".
/// When set to false, the command class is loaded
/// immediately instead of the usual lazy-loading.
/// </attribute>
/// <attribute name="icon">
/// <attribute name="icon" use="optional">
/// Icon of the menu item.
/// </attribute>
/// <attribute name="label">
/// Label of the menu item.
/// </attribute>
/// <attribute name="class">
/// <attribute name="class" use="optional">
/// Command class that is run when item is clicked.
/// </attribute>
/// <children>
/// <attribute name="link" use="optional">
/// Only for the type "Item"/"Command". Opens a webpage instead of running a command when
/// clicking the item.
/// </attribute>
/// <attribute name="shortcut" use="optional">
/// Shortcut that activates the command (e.g. "Control|S").
/// </attribute>
/// <children childTypes="MenuItem">
/// If "type" is "Menu", the item can have sub-menuitems.
/// </children>
/// <usage>Any menu strip paths or context menu paths, e.g. /SharpDevelop/Workbench/MainMenu</usage>
/// <returns>
/// A ToolStrip* object, depending on the type attribute.
/// Any ToolStrip* object, depending on the type attribute.
/// </returns>
/// <conditions>MenuMode</conditions>
/// <conditions>Conditions are handled by the item, "Exclude" maps to "Visible = false", "Disable" to "Enabled = false"</conditions>
public class MenuItemDoozer : IDoozer
{
/// <summary>

19
src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/ToolBarItemDoozer.cs

@ -14,29 +14,30 @@ namespace ICSharpCode.Core @@ -14,29 +14,30 @@ namespace ICSharpCode.Core
/// <summary>
/// Creates tool bar items from a location in the addin tree.
/// </summary>
/// <attribute name="type">
/// This attribute must be specified and one of these values:
/// <attribute name="icon" use="optional">
/// Icon of the tool bar item.
/// </attribute>
/// <attribute name="type" use="optional" enum="Separator;CheckBox;Item;ComboBox;DropDownButton">
/// This attribute must be one of these values:
/// Separator, CheckBox, Item, ComboBox, DropDownButton
/// </attribute>
/// <attribute name="loadclasslazy">
/// <attribute name="loadclasslazy" use="optional">
/// Only for the type "Item". When set to false, the command class is loaded
/// immediately instead of the usual lazy-loading.
/// </attribute>
/// <attribute name="icon">
/// Icon of the tool bar item.
/// </attribute>
/// <attribute name="tooltip">
/// <attribute name="tooltip" use="optional">
/// Tooltip of the tool bar item.
/// </attribute>
/// <attribute name="class">
/// Command class that is run when item is clicked; or class that manages
/// the ComboBox/DropDownButton.
/// the ComboBox/DropDownButton. Required for everything except "Separator".
/// </attribute>
/// <usage>Any toolbar strip paths, e.g. /SharpDevelop/Workbench/ToolBar</usage>
/// <children childTypes="MenuItem">A drop down button has menu items as sub elements.</children>
/// <returns>
/// A ToolStrip* object, depending on the type attribute.
/// </returns>
/// <conditions>MenuMode</conditions>
/// <conditions>Conditions are handled by the item, "Exclude" maps to "Visible = false", "Disable" to "Enabled = false"</conditions>
public class ToolbarItemDoozer : IDoozer
{
/// <summary>

156
src/Tools/BuildAddinDocumentation/MainClass.cs

@ -44,6 +44,7 @@ namespace BuildAddinDocumentation @@ -44,6 +44,7 @@ namespace BuildAddinDocumentation
sdVersion = FileVersionInfo.GetVersionInfo(Path.GetFullPath(Path.Combine(srcDir, "..\\bin\\SharpDevelop.exe")));
//sdVersion = FileVersionInfo.GetVersionInfo(Path.GetFullPath(Path.Combine(srcDir, "..\\bin\\ICSharpCode.Core.dll")));
Comparison<XmlElement> comparison = delegate(XmlElement a, XmlElement b) {
string shortNameA = a.GetAttribute("name").Substring(a.GetAttribute("name").LastIndexOf('.') + 1);
string shortNameB = b.GetAttribute("name").Substring(b.GetAttribute("name").LastIndexOf('.') + 1);
@ -52,43 +53,152 @@ namespace BuildAddinDocumentation @@ -52,43 +53,152 @@ namespace BuildAddinDocumentation
doozers.Sort(comparison);
conditions.Sort(comparison);
Debug.WriteLine("Writing doozer list");
using (StreamWriter html = new StreamWriter(Path.Combine(srcDir, "..\\doc\\technotes\\DoozerList.html"))) {
WriteHeader(html, "Doozer List");
WriteList(html, doozers, true);
WriteFooter(html);
}
Debug.WriteLine("Writing condition list");
using (StreamWriter html = new StreamWriter(Path.Combine(srcDir, "..\\doc\\technotes\\ConditionList.html"))) {
WriteHeader(html, "Condition List");
WriteList(html, conditions, false);
WriteFooter(html);
}
Debug.WriteLine("Building Addin schema");
XmlDocument doc = new XmlDocument();
doc.Load(Path.Combine(srcDir, "..\\data\\schemas\\Addin.xsd"));
UpdateSchema(doc, doozers);
doc.Save(Path.Combine(srcDir, "..\\data\\schemas\\Addin.xsd"));
}
static void RecursiveInsertDoozerList(XmlElement e, List<XmlElement> doozers)
{
List<XmlNode> oldChilds = new List<XmlNode>();
bool foundMark = false;
foreach (XmlNode node in e) {
if (foundMark) {
oldChilds.Add(node);
} else {
if (node.Value != null && node.Value.Trim() == "!!! INSERT DOOZER LIST !!!") {
foundMark = true;
}
}
}
if (foundMark) {
foreach (XmlNode node in oldChilds) {
e.RemoveChild(node);
}
foreach (XmlElement doozer in doozers) {
CreateChild(e, "element").SetAttribute("ref", doozer.GetAttribute("shortname"));
}
} else {
foreach (XmlNode node in e) {
if (node is XmlElement)
RecursiveInsertDoozerList((XmlElement)node, doozers);
}
}
}
static void UpdateSchema(XmlDocument doc, List<XmlElement> doozers)
{
List<XmlNode> oldChilds = new List<XmlNode>();
bool foundMark = false;
foreach (XmlNode node in doc.DocumentElement) {
if (foundMark) {
oldChilds.Add(node);
} else {
if (node.Value != null && node.Value.Trim() == "!!! DOOZER START !!!") {
foundMark = true;
}
}
}
foreach (XmlNode node in oldChilds) {
doc.DocumentElement.RemoveChild(node);
}
RecursiveInsertDoozerList(doc.DocumentElement, doozers);
foreach (XmlElement doozer in doozers) {
XmlElement e = CreateChild(doc.DocumentElement, "complexType");
e.SetAttribute("name", doozer.GetAttribute("shortname"));
XmlElement e2 = CreateChild(e, "complexContent");
XmlElement e3 = CreateChild(e2, "extension");
e3.SetAttribute("base", "AbstractCodon");
if (doozer["children"] != null) {
XmlElement choice = CreateChild(e3, "choice");
choice.SetAttribute("minOccurs", "0");
choice.SetAttribute("maxOccurs", "unbounded");
CreateChild(choice, "element").SetAttribute("ref", "ComplexCondition");
CreateChild(choice, "element").SetAttribute("ref", "Condition");
foreach (string child in doozer["children"].GetAttribute("childTypes").Split(';')) {
CreateChild(choice, "element").SetAttribute("ref", child);
}
}
foreach (XmlElement doozerChild in doozer) {
if (doozerChild.Name != "attribute")
continue;
XmlElement e4 = CreateChild(e3, "attribute");
e4.SetAttribute("name", doozerChild.GetAttribute("name"));
if (doozerChild.GetAttribute("use") == "required")
e4.SetAttribute("use", "required");
else
e4.SetAttribute("use", "optional");
XmlElement e5, e6;
if (!doozerChild.HasAttribute("enum")) {
e4.SetAttribute("type", "xs:string");
} else {
e5 = CreateChild(e4, "simpleType");
e6 = CreateChild(e5, "restriction");
e6.SetAttribute("base", "xs:string");
foreach (string val in doozerChild.GetAttribute("enum").Split(';')) {
CreateChild(e6, "enumeration").SetAttribute("value", val);
}
}
e5 = CreateChild(e4, "annotation");
e6 = CreateChild(e5, "documentation");
e6.InnerXml = XmlToHtml(doozerChild.InnerXml);
}
e = CreateChild(doc.DocumentElement, "element");
e.SetAttribute("name", doozer.GetAttribute("shortname"));
e.SetAttribute("type", doozer.GetAttribute("shortname"));
e2 = CreateChild(e, "annotation");
e3 = CreateChild(e2, "documentation");
e3.InnerXml = XmlToHtml(doozer["summary"].InnerXml);
}
}
static XmlElement CreateChild(XmlElement parent, string name)
{
XmlElement e = parent.OwnerDocument.CreateElement("xs:" + name, "http://www.w3.org/2001/XMLSchema");
parent.AppendChild(e);
return e;
}
static void WriteList(StreamWriter html, List<XmlElement> elementList, bool isDoozer)
{
html.WriteLine("<ul>");
foreach (XmlElement e in elementList) {
for (int i = 0; i < elementList.Count; i++) {
XmlElement e = elementList[i];
string fullname = e.GetAttribute("name").Substring(2);
string shortName = fullname.Substring(fullname.LastIndexOf('.') + 1);
if (shortName == "LazyLoadDoozer" || shortName == "LazyConditionEvaluator") continue;
if (shortName == "LazyLoadDoozer" || shortName == "LazyConditionEvaluator") {
elementList.RemoveAt(i--);
continue;
}
if (isDoozer)
shortName = shortName.Substring(0, shortName.Length - "doozer".Length);
else
shortName = shortName.Substring(0, shortName.Length - "conditionEvaluator".Length);
if (shortName == "I") continue; // skip the interface
if (shortName == "I") { // skip the interface
elementList.RemoveAt(i--);
continue;
}
e.SetAttribute("shortname", shortName);
html.WriteLine(" <li><a href=\"#" + shortName + "\">" + shortName + "</a>");
}
html.WriteLine("</ul>");
foreach (XmlElement e in elementList) {
string fullname = e.GetAttribute("name").Substring(2);
string shortName = fullname.Substring(fullname.LastIndexOf('.') + 1);
if (shortName == "LazyLoadDoozer" || shortName == "LazyConditionEvaluator") continue;
if (isDoozer)
shortName = shortName.Substring(0, shortName.Length - "doozer".Length);
else
shortName = shortName.Substring(0, shortName.Length - "conditionEvaluator".Length);
if (shortName == "I") continue; // skip the interface
string shortName = e.GetAttribute("shortname");
html.WriteLine("<div>");
html.WriteLine(" <h2><a name=\"" + shortName + "\">" + shortName + "</a></h2>");
@ -96,9 +206,9 @@ namespace BuildAddinDocumentation @@ -96,9 +206,9 @@ namespace BuildAddinDocumentation
html.WriteLine(" <table>");
html.WriteLine(" <tr>");
if (isDoozer)
html.WriteLine(" <th>Doozer name:</td>");
html.WriteLine(" <th colspan=2>Doozer name:</td>");
else
html.WriteLine(" <th>Condition name:</td>");
html.WriteLine(" <th colspan=2>Condition name:</td>");
html.WriteLine(" <td>" + fullname + "</td>");
html.WriteLine(" </tr>");
bool lastWasAttribute = false;
@ -110,20 +220,25 @@ namespace BuildAddinDocumentation @@ -110,20 +220,25 @@ namespace BuildAddinDocumentation
case "attribute":
if (!lastWasAttribute) {
lastWasAttribute = true;
html.WriteLine(" <tr><td colspan=2><hr><h3>Attributes:</h3></td></tr>");
html.WriteLine(" <tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>");
}
html.WriteLine(" <tr>");
html.WriteLine(" <th>" + sub.GetAttribute("name") + ":</td>");
if (sub.HasAttribute("use")) {
html.WriteLine(" <th>" + sub.GetAttribute("name") + ":</td>");
html.WriteLine(" <td class=\"userequired\">" + sub.GetAttribute("use") + "</td>");
} else {
html.WriteLine(" <th colspan=2>" + sub.GetAttribute("name") + ":</td>");
}
html.WriteLine(" <td>" + XmlToHtml(sub.InnerXml) + "</td>");
html.WriteLine(" </tr>");
break;
default:
if (lastWasAttribute) {
lastWasAttribute = false;
html.WriteLine(" <tr><td colspan=2><hr></td></tr>");
html.WriteLine(" <tr><td colspan=3><hr></td></tr>");
}
html.WriteLine(" <tr>");
html.WriteLine(" <th>" + char.ToUpper(sub.Name[0]) + sub.Name.Substring(1) + ":</td>");
html.WriteLine(" <th colspan=2>" + char.ToUpper(sub.Name[0]) + sub.Name.Substring(1) + ":</td>");
html.WriteLine(" <td>" + XmlToHtml(sub.InnerXml) + "</td>");
html.WriteLine(" </tr>");
break;
@ -167,7 +282,12 @@ namespace BuildAddinDocumentation @@ -167,7 +282,12 @@ namespace BuildAddinDocumentation
{
XmlDocument doc = GetXmlDocu(projectFolder);
if (doc == null) return false;
foreach (XmlElement member in doc.DocumentElement["members"]) {
foreach (XmlNode node in doc.DocumentElement["members"]) {
XmlElement member = node as XmlElement;
if (member == null) {
Debug.WriteLine(node.Value);
continue;
}
if (member.GetAttribute("name").EndsWith("Doozer"))
doozers.Add(member);
if (member.GetAttribute("name").EndsWith("ConditionEvaluator"))

Loading…
Cancel
Save