Browse Source

Merge 3.0 into trunk.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3805 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
68765786e4
  1. 12
      data/options/SharpDevelopControlLibrary.sdcl
  2. BIN
      data/resources/StringResources.cn-gb.resources
  3. BIN
      data/resources/StringResources.de.resources
  4. BIN
      data/resources/StringResources.es-mx.resources
  5. BIN
      data/resources/StringResources.es.resources
  6. BIN
      data/resources/StringResources.fr.resources
  7. BIN
      data/resources/StringResources.kr.resources
  8. BIN
      data/resources/StringResources.nl.resources
  9. BIN
      data/resources/StringResources.no.resources
  10. BIN
      data/resources/StringResources.pt-br.resources
  11. BIN
      data/resources/StringResources.pt.resources
  12. BIN
      data/resources/StringResources.se.resources
  13. 6
      data/schemas/firewall.xsd
  14. 27
      data/schemas/iis.xsd
  15. 6
      data/schemas/netfx.xsd
  16. 62
      data/schemas/util.xsd
  17. 281
      data/schemas/wix.xsd
  18. 69
      doc/AssemblyBaseAddresses.txt
  19. 2
      doc/SharpDevelopInfoResources.txt
  20. 2
      doc/copyright.txt
  21. 100
      doc/readme.rtf
  22. 4
      samples/LineCounter/LineCounter.csproj
  23. 5
      samples/SharpSnippetCompiler/SharpSnippetCompiler.Core/MainViewContent.cs
  24. 9
      samples/SharpSnippetCompiler/SharpSnippetCompiler.Core/Workbench.cs
  25. 5
      samples/SharpSnippetCompiler/SharpSnippetCompiler/WorkbenchLayout.cs
  26. 8
      samples/SharpSnippetCompiler/SharpSnippetCompiler/WorkbenchWindow.cs
  27. 1
      src/AddIns/BackendBindings/Boo/BooBinding/Project/PostBuildEvent.proj
  28. 2
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooParser.cs
  29. 1
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs
  30. 6
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorStatements.cs
  31. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.CodeDom.dll
  32. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Compiler.dll
  33. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Extensions.dll
  34. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Interpreter.dll
  35. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Parser.dll
  36. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.PatternMatching.dll
  37. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Useful.dll
  38. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.dll
  39. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Microsoft.Build.Tasks.dll
  40. 259
      src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Microsoft.Build.targets
  41. BIN
      src/AddIns/BackendBindings/Boo/RequiredLibraries/booc.exe
  42. 6
      src/AddIns/BackendBindings/Boo/RequiredLibraries/booc.exe.config
  43. 20
      src/AddIns/BackendBindings/Boo/RequiredLibraries/booc.rsp
  44. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
  45. 4
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/EventHandlerCompletitionDataProvider.cs
  46. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/CSharpProject.cs
  47. 3
      src/AddIns/BackendBindings/FSharp/FSharpBinding/Project/FSharpBinding.addin
  48. 169
      src/AddIns/BackendBindings/FSharp/FSharpBinding/Project/FSharpBinding.fsproj
  49. 14
      src/AddIns/BackendBindings/FSharp/FSharpBinding/Project/Src/fsi.fs
  50. 3
      src/AddIns/BackendBindings/FSharp/FSharpBinding/Project/Src/project.fs
  51. 2
      src/AddIns/BackendBindings/Python/PyWalker/MainForm.cs
  52. 77
      src/AddIns/BackendBindings/Python/PyWalker/ResolveWalker.cs
  53. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Project/PythonBinding.csproj
  54. 33
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Resources/CompilingOptionsPanel.xfrm
  55. 11
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/CompilingOptionsPanel.cs
  56. 28
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/IComponentCreator.cs
  57. 125
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonControlFieldExpression.cs
  58. 44
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerGenerator.cs
  59. 33
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoader.cs
  60. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonForm.cs
  61. 33
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonFormVisitor.cs
  62. 196
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonFormWalker.cs
  63. 21
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonFormWalkerException.cs
  64. 11
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonFormsDesignerDisplayBinding.cs
  65. 33
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonParser.cs
  66. 22
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonResolver.cs
  67. 40
      src/AddIns/BackendBindings/Python/PythonBinding/Test/AddInFileTestFixture.cs
  68. 12
      src/AddIns/BackendBindings/Python/PythonBinding/Test/CompilingOptionsPanelTestFixture.cs
  69. 3
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/GenerateSimpleFormTestFixture.cs
  70. 8
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/GeneratorMergeFindsInitializeComponentsTestFixture.cs
  71. 62
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadFormTestFixtureBase.cs
  72. 67
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadSimpleFormTestFixture.cs
  73. 92
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadTextBoxTestFixture.cs
  74. 42
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/MergeFormTestFixture.cs
  75. 70
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/MissingInitializeComponentMethodTestFixture.cs
  76. 87
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/NoNewLineAfterInitializeComponentTestFixture.cs
  77. 2
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderProviderTestFixture.cs
  78. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderTestFixture.cs
  79. 73
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/TextBoxNotAddedToFormTestFixture.cs
  80. 86
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/TextEditorIndentPassedToGeneratorTestFixture.cs
  81. 46
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/UnknownTypeTestFixture.cs
  82. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Test/FormsDesignerDisplayBindingTestFixture.cs
  83. 68
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Parsing/IronPythonParserTestFixture.cs
  84. 9
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj
  85. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Resolver/ResolveLocalClassInstanceTestFixture.cs
  86. 54
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/AddedComponent.cs
  87. 69
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/CreatedInstance.cs
  88. 14
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedCompilingOptionsPanel.cs
  89. 8
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedPythonDesignerGenerator.cs
  90. 5
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockDesignerGenerator.cs
  91. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockProject.cs
  92. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.Modules.dll
  93. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.dll
  94. 177
      src/AddIns/BackendBindings/Python/RequiredLibraries/License.Rtf
  95. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.Core.dll
  96. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.ExtensionAttribute.dll
  97. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.dll
  98. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/ipy.exe
  99. 2
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs
  100. 34
      src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDialogDesigner.cs
  101. Some files were not shown because too many files have changed in this diff Show More

12
data/options/SharpDevelopControlLibrary.sdcl

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
<Assembly assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<Assembly assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<Assembly assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<Assembly assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</Assemblies>
<Categories>
<Category name="Windows Forms" enabled="True">
@ -52,10 +53,6 @@ @@ -52,10 +53,6 @@
<ToolComponent class="System.Windows.Forms.ImageList" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.HelpProvider" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.OpenFileDialog" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.PageSetupDialog" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.PrintDialog" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.PrintPreviewControl" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.PrintPreviewDialog" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.SaveFileDialog" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.Timer" assembly="0" enabled="True" />
</Category>
@ -81,5 +78,12 @@ @@ -81,5 +78,12 @@
<ToolComponent class="System.IO.Ports.SerialPort" assembly="2" enabled="True" />
<ToolComponent class="System.Windows.Forms.Timer" assembly="0" enabled="True" />
</Category>
<Category name="Printing" enabled="True">
<ToolComponent class="System.Windows.Forms.PageSetupDialog" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.PrintDialog" assembly="0" enabled="True" />
<ToolComponent class="System.Drawing.Printing.PrintDocument" assembly="3" enabled="True" />
<ToolComponent class="System.Windows.Forms.PrintPreviewControl" assembly="0" enabled="True" />
<ToolComponent class="System.Windows.Forms.PrintPreviewDialog" assembly="0" enabled="True" />
</Category>
</Categories>
</SharpDevelopControlLibrary>

BIN
data/resources/StringResources.cn-gb.resources

Binary file not shown.

BIN
data/resources/StringResources.de.resources

Binary file not shown.

BIN
data/resources/StringResources.es-mx.resources

Binary file not shown.

BIN
data/resources/StringResources.es.resources

Binary file not shown.

BIN
data/resources/StringResources.fr.resources

Binary file not shown.

BIN
data/resources/StringResources.kr.resources

Binary file not shown.

BIN
data/resources/StringResources.nl.resources

Binary file not shown.

BIN
data/resources/StringResources.no.resources

Binary file not shown.

BIN
data/resources/StringResources.pt-br.resources

Binary file not shown.

BIN
data/resources/StringResources.pt.resources

Binary file not shown.

BIN
data/resources/StringResources.se.resources

Binary file not shown.

6
data/schemas/firewall.xsd

@ -82,7 +82,7 @@ @@ -82,7 +82,7 @@
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Port" type="xs:integer">
<xs:attribute name="Port" type="xs:string">
<xs:annotation>
<xs:documentation>
Port to allow through the firewall for this exception. If you use Port, you
@ -96,15 +96,13 @@ @@ -96,15 +96,13 @@
<xs:documentation>
IP protocol used for this firewall exception. If not specified, "tcp" is
assumed. If you use Protocol, you must also specify Port and you cannot
also use File or Program. Note that using "any" requires Windows Firewall
with Advanced Security on Windows Vista and will fail on Windows XP.
also use File or Program.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="tcp" />
<xs:enumeration value="udp" />
<xs:enumeration value="any" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>

27
data/schemas/iis.xsd

@ -431,6 +431,7 @@ @@ -431,6 +431,7 @@
Used to install and unintall certificates.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:seeAlso ref="CertificateRef"/>
</xs:appinfo>
</xs:annotation>
@ -740,7 +741,22 @@ @@ -740,7 +741,22 @@
<xs:attribute name="Id" use="required" type="xs:string"/>
<xs:attribute name="IP" type="xs:string">
<xs:annotation>
<xs:documentation>For IP address "All Unassigned", do not specify this attribute or specify its value as "*".</xs:documentation>
<xs:documentation>
The IP address to locate an existing WebSite or create a new WebSite. When the WebAddress is part of a WebSite element
used to locate an existing web site the following rules are used:
<html:ul>
<html:li>When this attribute is not specified only the “All Unassigned” IP address will be located.</html:li>
<html:li>When this attribute is explicitly specified only the specified IP address will be located.</html:li>
<html:li>When this attribute has the value “*” then any IP address including the “All Unassigned” IP address will be located</html:li>
</html:ul>
When the WebAddress is part of a WebSite element used to create a new web site the following rules are used:
<html:ul>
<html:li>When this attribute is not specified or the value is "*" the "All Unassigned" IP address will be used.</html:li>
<html:li>When this attribute is explicitly specified the IP address will use that value.</html:li>
</html:ul>
The IP attribute can contain a formatted string that is processed at install time to insert the values of properties using
[PropertyName] syntax.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Port" use="required" type="xs:string"/>
@ -918,7 +934,14 @@ @@ -918,7 +934,14 @@
</xs:attribute>
<xs:attribute name="SiteId" type="xs:string">
<xs:annotation>
<xs:documentation>Optional attribute to directly specify the site id of the WebSite. Use this to ensure all web sites in a web garden get the same site id. Be sure the site id is unique. Must be a number or a formatted value that resolves to a number or blank.</xs:documentation>
<xs:documentation>
Optional attribute to directly specify the site id of the WebSite. Use this to ensure all web
sites in a web garden get the same site id. If a number is provided, the site id must be unique
on all target machines. If "*" is used, the Description attribute will be hashed to create a unique
value for the site id. This value must be a positive number or a "*" or a formatted value that resolves
to "-1" (for the same behavior as "*") or a positive number or blank. If this attribute is absent then
the web site will be located using the WebAddress element associated with the web site.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="StartOnInstall" type="YesNoType">

6
data/schemas/netfx.xsd

@ -51,9 +51,9 @@ @@ -51,9 +51,9 @@
<xs:annotation>
<xs:documentation>
The identifier of the directory to use for locating dependent assemblies.
For DLL assemblies and assemblies installed to the GAC, this attribute
should be set to the directory of the application which loads this assembly.
For EXE assemblies, this attribute does not need to be set because NGen
For DLL assemblies and assemblies installed to the Global Assembly Cache (GAC),
this attribute should be set to the directory of the application which loads this
assembly. For EXE assemblies, this attribute does not need to be set because NGen
will use the directory of the assembly file by default.
</xs:documentation>
</xs:annotation>

62
data/schemas/util.xsd

@ -124,6 +124,13 @@ @@ -124,6 +124,13 @@
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="KeyPath" type="YesNoType">
<xs:annotation>
<xs:documentation>
Marks the EventSource registry as the key path of the component it belongs to.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Log" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Name of the event source's log.</xs:documentation>
@ -291,12 +298,28 @@ @@ -291,12 +298,28 @@
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
</xs:appinfo>
<xs:documentation>Group for all kinds of things</xs:documentation>
<xs:documentation>
Finds user groups on the local machine or specified Active Directory domain. The local machine will be
searched for the group first then fallback to looking in Active Directory. This element is not capable
of creating new groups but can be used to add new or existing users to an existing group.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required"/>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Domain" type="xs:string"/>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Unique identifier in your installation package for this group.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>A <html:a href='http://msdn.microsoft.com/library/aa368609.aspx' target='_blank'>Formatted</html:a> string that contains the name of the group to be found.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Domain" type="xs:string">
<xs:annotation>
<xs:documentation>An optional <html:a href='http://msdn.microsoft.com/library/aa368609.aspx' target='_blank'>Formatted</html:a> string that specifies the domain for the group.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
@ -460,6 +483,7 @@ @@ -460,6 +483,7 @@
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
<xse:deprecated ref="PerformanceCounter" />
</xs:appinfo>
<xs:documentation>Used to install Perfmon counters.</xs:documentation>
</xs:annotation>
@ -657,6 +681,8 @@ @@ -657,6 +681,8 @@
<xs:annotation>
<xs:documentation>Service configuration information for failure actions.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="ServiceInstall" />
<xse:remarks>
<html:dl>
<html:dd>Nesting a ServiceConfig element under a ServiceInstall element will result in the service being installed to be configured.</html:dd>
@ -751,19 +777,33 @@ @@ -751,19 +777,33 @@
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required"/>
<xs:attribute name="Name" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>A <a href="http://msdn2.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</a> string that contains the name of the user account.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Domain" type="xs:string">
<xs:annotation>
<xs:documentation>A <a href="http://msdn2.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</a> string that contains the local machine or Active Directory domain for the user.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Password" type="xs:string">
<xs:annotation>
<xs:documentation>Usually a Property that is passed in on the command-line to keep it more secure.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PasswordNeverExpires" type="YesNoType"/>
<xs:attribute name="CanNotChangePassword" type="YesNoType"/>
<xs:attribute name="PasswordNeverExpires" type="YesNoType">
<xs:annotation>
<xs:documentation>The account's password never expires. Equivalent to UF_DONT_EXPIRE_PASSWD.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CanNotChangePassword" type="YesNoType">
<xs:annotation>
<xs:documentation>The user cannot change the account's password. Equivalent to UF_PASSWD_CANT_CHANGE.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RemoveOnUninstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Indicates whether the user account should be left behind on uninstall.</xs:documentation>
<xs:documentation>Indicates whether the user account should be removed or left behind on uninstall.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FailIfExists" type="YesNoType">
@ -786,7 +826,11 @@ @@ -786,7 +826,11 @@
<xs:documentation>Indicates whether the user must change their password on their first login.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Disabled" type="YesNoType"/>
<xs:attribute name="Disabled" type="YesNoType">
<xs:annotation>
<xs:documentation>The account is disabled. Equivalent to UF_ACCOUNTDISABLE.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CreateUser" type="YesNoType">
<xs:annotation>
<xs:documentation>Indicates whether or not to create the user. User creation can be skipped if all that is desired is to join a user to groups.</xs:documentation>
@ -812,7 +856,7 @@ @@ -812,7 +856,7 @@
</xs:attribute>
<xs:attribute name="ElementPath" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>The XPath of the element to be modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escapted.</xs:documentation>
<xs:documentation>The XPath of the element to be modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="File" use="required" type="xs:string">

281
data/schemas/wix.xsd

@ -2415,9 +2415,10 @@ @@ -2415,9 +2415,10 @@
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Icon" minOccurs="0" />
</xs:sequence>
<xs:element ref="ShortcutProperty" minOccurs="0" />
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation><xs:documentation>Unique identifier for the shortcut. This value will serve as the primary key for the row.</xs:documentation></xs:annotation>
@ -2581,6 +2582,27 @@ @@ -2581,6 +2582,27 @@
</xs:complexType>
</xs:element>
<xs:element name="ShortcutProperty">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="Shortcut"/>
<xse:msiRef table="MsiShortcutProperty" />
</xs:appinfo>
<xs:documentation>Property values for a shortcut.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:attribute name="Id" type="xs:string">
<xs:annotation><xs:documentation>Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Key" type="xs:string" use="required">
<xs:annotation><xs:documentation>Sets a default value for the property. The value will be overwritten if the Property is used for a search.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Value" type="xs:string">
<xs:annotation><xs:documentation>Sets a default value for the property. The value will be overwritten if the Property is used for a search.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Permission">
<xs:annotation>
<xs:documentation>
@ -2662,6 +2684,41 @@ @@ -2662,6 +2684,41 @@
</xs:complexType>
</xs:element>
<xs:element name="PermissionEx">
<xs:annotation>
<xs:documentation>
Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
if the Action attribute's value is remove or removeKeyOnInstall. This element is only available
when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the
WixUtilExtension.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="MsiLockPermissionsEx" href="http://msdn.microsoft.com/library/aa369774.aspx"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Condition" minOccurs="0">
<xs:annotation><xs:documentation>
Optional condition that controls whether the permissions are applied.
</xs:documentation></xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string">
<xs:annotation><xs:documentation>
Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute
will be used instead.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Sddl" type="xs:string" use="required">
<xs:annotation><xs:documentation>
Security descriptor to apply to parent object.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="CopyFile">
<xs:annotation>
<xs:appinfo>
@ -2790,6 +2847,9 @@ @@ -2790,6 +2847,9 @@
<xs:element ref="Permission">
<xs:annotation><xs:documentation>Used to configure the ACLs for this file.</xs:documentation></xs:annotation>
</xs:element>
<xs:element ref="PermissionEx">
<xs:annotation><xs:documentation>Can also configure the ACLs for this file.</xs:documentation></xs:annotation>
</xs:element>
<xs:element ref="CopyFile">
<xs:annotation><xs:documentation>Used to create a duplicate of this file elsewhere.</xs:documentation></xs:annotation>
</xs:element>
@ -2919,7 +2979,7 @@ @@ -2919,7 +2979,7 @@
<xs:annotation>
<xs:documentation>
Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the
Global Assembly Cache. If the value is '.net' or 'win32', this file must also be the key path of the Component.
Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
@ -2962,7 +3022,7 @@ @@ -2962,7 +3022,7 @@
<xs:documentation>
Specifies the file identifier of the application file. This assembly will be isolated
to the same directory as the application file.
If this attribute is absent, the assembly will be installed to the Global Assembly Cache.
If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC).
This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
</xs:documentation>
</xs:annotation>
@ -3006,7 +3066,7 @@ @@ -3006,7 +3066,7 @@
<xs:annotation><xs:documentation>Specifies the Media this File should be sourced on. This attribute overrides the default DiskId attribute from the parent Component element. If no DiskId attribute is specifed, the default is "1".</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Source" type="xs:string">
<xs:annotation><xs:documentation>Specifies the path to the File in the build process. This attribute must be set if no source information can be gathered from parent directories.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see <a href="\html\specifying_source_files.htm">Specifying source files</a>.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="src" type="xs:string">
<xs:annotation>
@ -3072,6 +3132,9 @@ @@ -3072,6 +3132,9 @@
<xs:element ref="Permission" minOccurs="0" maxOccurs="unbounded">
<xs:annotation><xs:documentation>ACL permission</xs:documentation></xs:annotation>
</xs:element>
<xs:element ref="PermissionEx">
<xs:annotation><xs:documentation>Can also configure the ACLs for this registry key.</xs:documentation></xs:annotation>
</xs:element>
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
@ -3158,6 +3221,9 @@ @@ -3158,6 +3221,9 @@
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Permission"/>
<xs:element ref="PermissionEx">
<xs:annotation><xs:documentation>Can also configure the ACLs for this registry value.</xs:documentation></xs:annotation>
</xs:element>
<xs:element ref="MultiStringValue"/>
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
@ -3422,6 +3488,9 @@ @@ -3422,6 +3488,9 @@
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Permission"/>
<xs:element ref="PermissionEx">
<xs:annotation><xs:documentation>Can also configure the ACLs for this registry key.</xs:documentation></xs:annotation>
</xs:element>
<xs:element ref="RegistryValue"/>
<xs:element ref="Registry"/>
<xs:any namespace="##other" processContents="lax">
@ -3769,6 +3838,9 @@ @@ -3769,6 +3838,9 @@
<xs:element ref="Permission" minOccurs="0" maxOccurs="unbounded">
<xs:annotation><xs:documentation>ACL permission</xs:documentation></xs:annotation>
</xs:element>
<xs:element ref="PermissionEx">
<xs:annotation><xs:documentation>Can also configure the ACLs for this folder.</xs:documentation></xs:annotation>
</xs:element>
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
@ -4486,8 +4558,12 @@ @@ -4486,8 +4558,12 @@
<xs:attribute name="Id" type="Guid" use="required">
<xs:annotation><xs:documentation>The Class identifier (CLSID) of a COM server.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Context" use="required">
<xs:annotation><xs:documentation>The server context(s) for this server.</xs:documentation></xs:annotation>
<xs:attribute name="Context">
<xs:annotation><xs:documentation>
The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable".
Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value
for the Context attribute.
</xs:documentation></xs:annotation>
<xs:simpleType>
<xs:list>
<xs:simpleType>
@ -4659,6 +4735,9 @@ @@ -4659,6 +4735,9 @@
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation><xs:documentation>Name for COM Interface.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="BaseInterface" type="Guid">
<xs:annotation><xs:documentation>Identifies the interface from which the current interface is derived.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ProxyStubClassId" type="Guid">
<xs:annotation><xs:documentation>GUID CLSID for proxy stub to COM Interface.</xs:documentation></xs:annotation>
</xs:attribute>
@ -4741,6 +4820,8 @@ @@ -4741,6 +4820,8 @@
<xs:element ref="ServiceDependency">
<xs:annotation><xs:documentation>ordered list of dependencies when installing services</xs:documentation></xs:annotation>
</xs:element>
<xs:element ref="ServiceConfig"/>
<xs:element ref="ServiceConfigFailureActions"/>
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
@ -4750,8 +4831,11 @@ @@ -4750,8 +4831,11 @@
</xs:annotation>
</xs:any>
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation><xs:documentation>Unique identifier for this service.</xs:documentation></xs:annotation>
<xs:attribute name="Id" type="xs:string">
<xs:annotation><xs:documentation>
Unique identifier for this service configuration. This value will default to the Name attribute if not
specified.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation><xs:documentation>This column is the string that gives the service name to install.</xs:documentation></xs:annotation>
@ -5015,6 +5099,177 @@ @@ -5015,6 +5099,177 @@
</xs:complexType>
</xs:element>
<xs:element name="RequiredPrivilege" type="xs:string">
<xs:annotation>
<xs:documentation>
Privilege required by service configured by ServiceConfig parent. Valid values are a <a href="http://msdn.microsoft.com/en-us/library/bb530716.aspx">privilege constant</a> or a
Formatted property that resolves to a privilege constant.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="MsiServiceConfig" href="http://msdn.microsoft.com/library/aa371634.aspx"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="ServiceConfig">
<xs:annotation>
<xs:documentation>
Configures a service being installed or one that already exists.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="MsiServiceConfig" href="http://msdn.microsoft.com/library/aa371637.aspx"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="RequiredPrivilege">
<xs:annotation><xs:documentation>List of privileges to apply to service.</xs:documentation></xs:annotation>
</xs:element>
</xs:choice>
<xs:attribute name="Id" type="xs:string">
<xs:annotation><xs:documentation>
Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
specified.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="DelayedAutoStart" type="xs:string">
<xs:annotation><xs:documentation>
This attribute specifies whether an auto-start service should delay its start until after all other auto-start
services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that
resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="FailureActionsWhen" type="xs:string">
<xs:annotation><xs:documentation>
This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError"
or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute
is not present the setting is not configured.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="PreShutdownDelay" type="xs:string">
<xs:annotation><xs:documentation>
This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system
shutdown. If this attribute is not present the default value, 3 minutes, is used.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="OnInstall" type="YesNoType">
<xs:annotation><xs:documentation>
Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
and OnUninstall.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="OnReinstall" type="YesNoType">
<xs:annotation><xs:documentation>
Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
and OnUninstall.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="OnUninstall" type="YesNoType">
<xs:annotation><xs:documentation>
Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
and OnReinstall.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ServiceName" type="xs:string">
<xs:annotation><xs:documentation>
Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
a ServiceInstall element.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ServiceSid" type="xs:string">
<xs:annotation><xs:documentation>
Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property
that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the
setting is not configured.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Failure">
<xs:annotation><xs:documentation>Failure action for a ServiceConfigFailureActions element.</xs:documentation></xs:annotation>
<xs:complexType>
<xs:attribute name="Action" type="xs:string" use="required">
<xs:annotation><xs:documentation>
Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property
that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand").
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Delay" type="xs:string" use="required">
<xs:annotation><xs:documentation>
Specifies the time in milliseconds to wait before performing the value from the Action attribute.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ServiceConfigFailureActions">
<xs:annotation>
<xs:documentation>
Configures the failure actions for a service being installed or one that already exists.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="MsiServiceConfigFailureActions" href="http://msdn.microsoft.com/library/aa371637.aspx"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Failure">
<xs:annotation><xs:documentation>Ordered list of failure actions to apply to service.</xs:documentation></xs:annotation>
</xs:element>
</xs:choice>
<xs:attribute name="Id" type="xs:string">
<xs:annotation><xs:documentation>
Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
specified.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Command" type="xs:string">
<xs:annotation><xs:documentation>
This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears
the existing command. If this attribute is not present the setting is not changed.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="OnInstall" type="YesNoType">
<xs:annotation><xs:documentation>
Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
and OnUninstall.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="OnReinstall" type="YesNoType">
<xs:annotation><xs:documentation>
Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
and OnUninstall.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="OnUninstall" type="YesNoType">
<xs:annotation><xs:documentation>
Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
and OnReinstall.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="RebootMessage" type="xs:string">
<xs:annotation><xs:documentation>
Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this
attribute is not present the setting is not changed.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ResetPeriod" type="xs:string">
<xs:annotation><xs:documentation>
Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="ServiceName" type="xs:string">
<xs:annotation><xs:documentation>
Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
a ServiceInstall element.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Environment">
<xs:annotation>
<xs:documentation>
@ -5281,6 +5536,8 @@ @@ -5281,6 +5536,8 @@
<xs:element ref="RemoveRegistryValue"/>
<xs:element ref="ReserveCost"/>
<xs:element ref="ServiceControl"/>
<xs:element ref="ServiceConfig"/>
<xs:element ref="ServiceConfigFailureActions"/>
<xs:element ref="ServiceInstall"/>
<xs:element ref="Shortcut"/>
<xs:element ref="SymbolPath"/>
@ -5736,7 +5993,7 @@ @@ -5736,7 +5993,7 @@
</xs:annotation>
</xs:attribute>
<xs:attribute name="FileSource" type="xs:string">
<xs:annotation><xs:documentation>Used to set the file system source for this directory's child elements.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Used to set the file system source for this directory's child elements. For more information, see <a href="\html\specifying_source_files.htm">Specifying source files</a>.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="LongName" type="LongFileNameType">
<xs:annotation>
@ -5855,7 +6112,7 @@ @@ -5855,7 +6112,7 @@
</xs:annotation>
</xs:attribute>
<xs:attribute name="FileSource" type="xs:string">
<xs:annotation><xs:documentation>Used to set the file system source for this DirectoryRef's child elements.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Used to set the file system source for this DirectoryRef's child elements. For more information, see <a href="\html\specifying_source_files.htm">Specifying source files</a>.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="src" type="xs:string">
<xs:annotation>
@ -8480,6 +8737,7 @@ @@ -8480,6 +8737,7 @@
If the Property attribute is specified, set the value of this attribute to the new value for the property.
To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}').
Otherwise, this attribute's value should be the argument for the event specified in the Event attribute.
If the event doesn't take an attribute, a common value to use is "0".
</xs:documentation>
</xs:annotation>
</xs:attribute>
@ -9300,6 +9558,7 @@ @@ -9300,6 +9558,7 @@
<xs:enumeration value="DefaultDir"/>
<xs:enumeration value="RegPath"/>
<xs:enumeration value="Formatted"/>
<xs:enumeration value="FormattedSddl"/>
<xs:enumeration value="Template"/>
<xs:enumeration value="Condition"/>
<xs:enumeration value="Guid"/>

69
doc/AssemblyBaseAddresses.txt

@ -1,69 +0,0 @@ @@ -1,69 +0,0 @@
To be on the safe side and leave enough space for the future,
the in-memory size of an assembly used here should be 8 times the disk image size.
That should allow an assembly to grow to more than twice its old size without having to update this list.
Sysinternals Processexplorer can show relocated assemblies in yellow in the DLL View.
adr = 0x5000000
def AddModule(kbsize as int):
print "0x${adr.ToString('x')} - 0x${(adr + 3 * kbsize * 1024).ToString('x')}"
adr += 8 * kbsize * 1024
adr = 0x80000 * System.Math.Ceiling(cast(double,adr) / 0x80000)
def AddModules(*names as (string)):
for name in names:
System.Console.Write("${name}:\t")
AddModule(System.IO.FileInfo("d:\\serralongue\\sharpdevelop\\bin\\" + name + ".dll").Length / 1024)
All addresses are between 0x0500 0000 and 0x0fff ffff
AssemblyName: startaddress - endaddress
ICSharpCode.Core: 0x5000000 - 0x504e000
ICSharpCode.SharpDevelop: 0x5100000 - 0x5472000
ICSharpCode.NRefactory: 0x5a80000 - 0x5b9a000
ICSharpCode.TextEditor: 0x5d80000 - 0x5e67000
ICSharpCode.SharpDevelop.Sda: 0x6000000 - 0x601e000
WeifenLuo.WinFormsUI.Docking: 0x6080000 - 0x6107000
ICSharpCode.Build.Tasks: 0x6200000 - 0x621b000
CSharpBinding: 0x6280000 - 0x62bc000
ILAsmBinding: 0x6380000 - 0x639b000
VBNetBinding: 0x6400000 - 0x643f000
NRefactoryToBooConverter: 0x6500000 - 0x6536000
BooBinding: 0x6600000 - 0x664e000
FormsDesigner: 0x6700000 - 0x676f000
ResourceEditor: 0x6880000 - 0x689e000
XmlEditor: 0x6900000 - 0x6948000
ICSharpCode.AddInMananger: 0x6a00000 - 0x6a24000
AddInScout: 0x6a80000 - 0x6a8b400
CodeCoverage: 0x6b00000 - 0x6b30000
TreeListView (debugger): 0x6b80000 - 0x6be6000
Debugger.Code: 0x6d00000 - 0x6ddb000
Debugger.AddIn: 0x6f80000 - 0x6faa000
FileTypeRegisterer: 0x7000000 - 0x7009000
HighlightingEditor: 0x7080000 - 0x70ec000
HtmlHelp2: 0x7200000 - 0x723f000
HtmlHelp2JScriptGlobals: 0x7300000 - 0x7306c00
MonoAddIn: 0x7380000 - 0x7395000
NAntAddIn: 0x7400000 - 0x7427000
PInvokeAddIn: 0x7480000 - 0x749b000
RegExpTk: 0x7500000 - 0x7524000
SharpQuery: 0x7580000 - 0x75b0000
SharpReportCore: 0x7600000 - 0x7654000
SharpReport: 0x7700000 - 0x773c000
SharpReportAddIn: 0x7800000 - 0x781e000
ReportGenerator: 0x7880000 - 0x78a1000
StartPage: 0x7900000 - 0x791e000
UnitTesting: 0x7980000 - 0x799b000
Mono.Cecil: 0x7a00000 - 0x7b38000
WixBinding: 0x7d80000 - 0x7dc2000
ICSharpCode.SharpDevelop.Dom: 0x7e80000 - 0x7f19000
CodeAnalysis: 0x8000000 - 0x8021000
IconEditor: 0x8080000 - 0x80a1000
IconEditor.AddIn: 0x8100000 - 0x810c000
SharpDbTools: 0x8180000 - 0x819e000
ICSharpCode.SD.Widgets: 0x8240000 - 0x827c000
Next free address: 0x08300000

2
doc/SharpDevelopInfoResources.txt

@ -12,8 +12,8 @@ http://wiki.sharpdevelop.net/ScreenRecordingsForDevelopers.ashx @@ -12,8 +12,8 @@ http://wiki.sharpdevelop.net/ScreenRecordingsForDevelopers.ashx
++ ROADMAPS ++
http://wiki.sharpdevelop.net/RoadmapVersion2x.ashx
http://wiki.sharpdevelop.net/RoadmapVersion3x.ashx
http://wiki.sharpdevelop.net/RoadmapVersion4x.ashx
++ HELPING ++

2
doc/copyright.txt

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
Copyright 2002-2008 by
Copyright 2002-2009 by
AlphaSierraPapa, Christoph Wille
Vordernberger Strasse 27/8

100
doc/readme.rtf

@ -1,43 +1,44 @@ @@ -1,43 +1,44 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Bitstream Vera Sans;}
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f275\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\f276\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f278\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f279\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f280\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f281\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f282\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f283\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f285\fbidi \fswiss\fcharset238\fprq2 Arial CE;}
{\f286\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}{\f288\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f289\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f290\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}
{\f291\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\f292\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f293\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f615\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
{\f616\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f618\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f619\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f622\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}
{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}
{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0
\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0
\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat heading 1;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f328\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\f329\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f331\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f332\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f333\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f334\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f335\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f336\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f338\fbidi \fswiss\fcharset238\fprq2 Arial CE;}
{\f339\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}{\f341\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f342\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f343\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}
{\f344\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\f345\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f346\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f668\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
{\f669\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f671\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f672\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f675\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
{\f676\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}
{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp
\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0
\rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0
\rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat heading 1;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1
Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af31503\afs32 \ltrch\fcs0 \b\fs32\kerning32\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 Heading 1 Char;}}
{\*\rsidtbl \rsid4815376\rsid5386203}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator Christoph Wille}{\creatim\yr2008\mo8\dy16\hr11\min32}
{\revtim\yr2008\mo8\dy16\hr11\min33}{\version2}{\edmins1}{\nofpages3}{\nofwords302}{\nofchars1761}{\nofcharsws2059}{\vern32895}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
{\*\rsidtbl \rsid2445895\rsid3302646\rsid4815376\rsid5386203}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator Christoph Wille}
{\creatim\yr2008\mo8\dy16\hr11\min32}{\revtim\yr2009\mo2\dy9\hr16\min9}{\version3}{\edmins3}{\nofpages3}{\nofwords294}{\nofchars1739}{\nofcharsws2029}{\vern32895}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
\deftab1250\widowctrl\ftnbj\aenddoc\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot4815376 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}
@ -47,9 +48,10 @@ @@ -47,9 +48,10 @@
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs120 \ltrch\fcs0 \b\fs120\cf1\insrsid5386203 \hich\af39\dbch\af31505\loch\f39 SharpDevelop
\par \hich\af39\dbch\af31505\loch\f39 3.0
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\cf1\insrsid5386203
\par }\pard \ltrpar\qc \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\lang2057\langfe1033\langnp2057\insrsid4815376 {\pict{\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw14115\pich7763\picwgoal8002\pichgoal4401\wmetafile8\bliptag-484778159{\*\blipuid e31adf5141645d968e5b351951fadcdb}010009000003008903000000c103020000001610000026060f002220574d464301000000000001006b5c000000001900000000200000c8e50200c80503000100
\par }\pard \ltrpar\qc \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\lang2057\langfe1033\langnp2057\insrsid2445895 {\pict{\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw14115\pich7763\picwgoal8002\pichgoal4401\wmetafile8\bliptag1689737403\blipupi95{\*\blipuid 64b758bba058ea259859c641d3d895ad}
010009000003008903000000c103020000001610000026060f002220574d464301000000000001006b5c000000001900000000200000c8e50200c80503000100
00006c000000000000000000000014020000240100000000000000000000854900005828000020454d4600000100c80503000c00000001000000000000000000
0000000000000005000000040000c401000069010000000000000000000000000000e3e306001c830500460000002c00000020000000454d462b014001001c00
0000100000000210c0db010000006000000060000000460000006c54000060540000454d462b224004000c000000000000001e4009000c000000000000002440
@ -7307,18 +7309,19 @@ ffffffffffffffffffffffffffffffffffffffffffffffffffff0c00000040092900aa0000000000 @@ -7307,18 +7309,19 @@ ffffffffffffffffffffffffffffffffffffffffffffffffffff0c00000040092900aa0000000000
\par
\par
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid5386203 \hich\af0\dbch\af31505\loch\f0
This work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/at/ or send a letter to Creative Commons, 559 Nath\hich\af0\dbch\af31505\loch\f0
an Abbott Way, Stanford, California 94305, USA.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\cf1\insrsid5386203
This work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/at/ or send a letter to Creative Commons, 559 Nathan\hich\af0\dbch\af31505\loch\f0
Abbott Way, Stanford, California 94305, USA.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\cf1\insrsid5386203
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {
\rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0 \b\f0\fs32\cf1\insrsid5386203 \page }{\rtlch\fcs1 \ab\af1\afs32 \ltrch\fcs0 \b\f1\fs32\cf1\insrsid5386203 \hich\af1\dbch\af31505\loch\f1 Introduction}{\rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0
\b\f0\fs32\cf1\insrsid5386203
\par }\pard\plain \ltrpar\qj \fi1\li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0
\ltrch\fcs0 \f0\cf1\lang2057\langfe1033\langnp2057\insrsid5386203 \hich\af0\dbch\af31505\loch\f0 The #develop project started on September 11}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\cf1\lang2057\langfe1033\super\langnp2057\insrsid5386203
\hich\af0\dbch\af31505\loch\f0 th}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\cf1\lang2057\langfe1033\langnp2057\insrsid5386203 \hich\af0\dbch\af31505\loch\f0 \hich\f0 , 2000. The project was initiated by Mike Kr\'fc\loch\f0
ger, who is the main developer and architect of #develop to date. In the course of the project, Mike w\hich\af0\dbch\af31505\loch\f0 as joined by several contributors, who have helped a great deal to make the 1.0 release a successful one \hich\f0 \endash
\loch\f0 though it took us four years and a few architectural changes along the way.
\hich\af0\dbch\af31505\loch\f0 th}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\cf1\lang2057\langfe1033\langnp2057\insrsid5386203 \hich\af0\dbch\af31505\loch\f0 \hich\f0 , 2000. The project was initiated by Mike Kr\'fc\loch\f0 ger\hich\af0\dbch\af31505\loch\f0
. In the course of the project, \hich\af0\dbch\af31505\loch\f0 several contributors}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\cf1\lang2057\langfe1033\langnp2057\insrsid3302646 \hich\af0\dbch\af31505\loch\f0 joined in (we always welcome new developers!)}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\cf1\lang2057\langfe1033\langnp2057\insrsid5386203 \hich\af0\dbch\af31505\loch\f0 , who have helped a great deal to make the 1.0 release a successful one \hich\f0 \endash \loch\f0
though it took us four years and a few architectural changes along the way.
\par
\par \hich\af0\dbch\af31505\loch\f0 What you got on your machine is now version 3.0 \hich\f0 \endash \hich\af0\dbch\af31505\loch\f0 a vastly enhanced product, and we encourage you to take the feature tour.
\par \hich\af0\dbch\af31505\loch\f0 What you got on your machine is now version 3.0 \hich\f0 \endash \loch\f0 a vastly enhanced product\hich\af0\dbch\af31505\loch\f0 , and we encourage you to take the feature tour.
\par
\par
\par }{\rtlch\fcs1 \ab\ai\af0 \ltrch\fcs0 \b\i\f0\cf1\lang2057\langfe1033\langnp2057\insrsid5386203 \hich\af0\dbch\af31505\loch\f0 The #develop team
@ -7328,8 +7331,9 @@ ger, who is the main developer and architect of #develop to date. In the course @@ -7328,8 +7331,9 @@ ger, who is the main developer and architect of #develop to date. In the course
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {
\rtlch\fcs1 \ab\af1\afs32 \ltrch\fcs0 \b\f1\fs32\cf1\insrsid5386203 \hich\af1\dbch\af31505\loch\f1 Overview}{\rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0 \b\f0\fs32\cf1\insrsid5386203
\par }\pard\plain \ltrpar\qj \fi1\li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0
\ltrch\fcs0 \f0\cf1\lang2057\langfe1033\langnp2057\insrsid5386203 \hich\af0\dbch\af31505\loch\f0 #develop (short for SharpDevelop) is a free Integrate\hich\af0\dbch\af31505\loch\f0
d Development Environment (IDE) for C#, VB.NET, Boo, Python and F# projects on Microsoft's .NET platform. It is written (almost) entirely in C#, and comes with features you would expect in an IDE plus a few more.
\ltrch\fcs0 \f0\cf1\lang2057\langfe1033\langnp2057\insrsid5386203 \hich\af0\dbch\af31505\loch\f0 #develop (short for SharpDevelop) is a free Integrate\hich\af0\dbch\af31505\loch\f0 d Development Environment (IDE) for C#, VB.NET, Boo, }{\rtlch\fcs1 \af0
\ltrch\fcs0 \f0\cf1\lang2057\langfe1033\langnp2057\insrsid3302646 \hich\af0\dbch\af31505\loch\f0 Iron}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\cf1\lang2057\langfe1033\langnp2057\insrsid5386203 \hich\af0\dbch\af31505\loch\f0
Python and F# projects on Microsoft's .NET platform. It is written (almost) entirely in C#, and comes with features you would expect in an IDE plus a few more.
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {
\rtlch\fcs1 \ab\af1\afs32 \ltrch\fcs0 \b\f1\fs32\cf1\insrsid5386203 \hich\af1\dbch\af31505\loch\f1 Features
\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0
@ -7464,8 +7468,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff @@ -7464,8 +7468,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f00000000000000000000000080d5
372a83ffc801feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f0000000000000000000000003071
8b5ac88ac901feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}

4
samples/LineCounter/LineCounter.csproj

@ -6,8 +6,8 @@ @@ -6,8 +6,8 @@
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{880A7EAF-D0B4-46AC-A9B6-B6156512037A}</ProjectGuid>
<OutputPath>..\..\AddIns\</OutputPath>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<OutputPath>..\..\AddIns\Samples\LineCounter</OutputPath>
<NoStdLib>False</NoStdLib>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
@ -18,7 +18,6 @@ @@ -18,7 +18,6 @@
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
<IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
<Optimize>False</Optimize>
<DefineConstants>DEBUG,TRACE,IMPR1,IMPR2,IMPR3</DefineConstants>
@ -27,7 +26,6 @@ @@ -27,7 +26,6 @@
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
<IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
<Optimize>True</Optimize>
<DefineConstants>TRACE,IMPR1,IMPR2,IMPR3</DefineConstants>

5
samples/SharpSnippetCompiler/SharpSnippetCompiler.Core/MainViewContent.cs

@ -215,6 +215,11 @@ namespace ICSharpCode.SharpSnippetCompiler.Core @@ -215,6 +215,11 @@ namespace ICSharpCode.SharpSnippetCompiler.Core
{
}
public IDocument GetDocumentForFile(OpenedFile file)
{
return null;
}
public void JumpTo(int line, int column)
{
textEditor.ActiveTextAreaControl.JumpTo(line, column);

9
samples/SharpSnippetCompiler/SharpSnippetCompiler.Core/Workbench.cs

@ -48,6 +48,10 @@ namespace ICSharpCode.SharpSnippetCompiler.Core @@ -48,6 +48,10 @@ namespace ICSharpCode.SharpSnippetCompiler.Core
get { return views; }
}
public ICollection<IViewContent> PrimaryViewContents {
get { return views.AsReadOnly(); }
}
public IList<IWorkbenchWindow> WorkbenchWindowCollection {
get {
throw new NotImplementedException();
@ -95,6 +99,11 @@ namespace ICSharpCode.SharpSnippetCompiler.Core @@ -95,6 +99,11 @@ namespace ICSharpCode.SharpSnippetCompiler.Core
throw new NotImplementedException();
}
public void ShowView(IViewContent content, bool switchToOpenedView)
{
throw new NotImplementedException();
}
public void UnloadPad(PadDescriptor content)
{
throw new NotImplementedException();

5
samples/SharpSnippetCompiler/SharpSnippetCompiler/WorkbenchLayout.cs

@ -108,6 +108,11 @@ namespace ICSharpCode.SharpSnippetCompiler @@ -108,6 +108,11 @@ namespace ICSharpCode.SharpSnippetCompiler
throw new NotImplementedException();
}
public IWorkbenchWindow ShowView(IViewContent content, bool switchToOpenedView)
{
throw new NotImplementedException();
}
public void LoadConfiguration()
{
Console.WriteLine("WorkbenchLayout.LoadConfiguration not implemented");

8
samples/SharpSnippetCompiler/SharpSnippetCompiler/WorkbenchWindow.cs

@ -64,12 +64,8 @@ namespace ICSharpCode.SharpSnippetCompiler @@ -64,12 +64,8 @@ namespace ICSharpCode.SharpSnippetCompiler
}
public IViewContent ActiveViewContent {
get {
throw new NotImplementedException();
}
set {
throw new NotImplementedException();
}
get { return null; }
set { }
}
public Icon Icon {

1
src/AddIns/BackendBindings/Boo/BooBinding/Project/PostBuildEvent.proj

@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
<MyCopyItem Include="$(MSBuildProjectDirectory)\..\..\RequiredLibraries\*.targets" />
<MyCopyItem Include="$(MSBuildProjectDirectory)\..\..\RequiredLibraries\Boo.Microsoft.Build.Tasks.dll" />
<MyCopyItem Include="$(MSBuildProjectDirectory)\..\..\RequiredLibraries\Boo.Lang.Extensions.dll" />
<MyCopyItem Include="$(MSBuildProjectDirectory)\..\..\RequiredLibraries\Boo.Lang.PatternMatching.dll" />
</ItemGroup>
<Target Name="MyPostBuildTarget">
<Copy SourceFiles="@(MyCopyItem)" DestinationFolder="$(OutputPath)" />

2
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooParser.cs

@ -158,7 +158,7 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -158,7 +158,7 @@ namespace Grunwald.BooBinding.CodeCompletion
private ICompilationUnit Parse(IProjectContent projectContent, string fileName, int[] lineLength, BooCompiler compiler)
{
compiler.Parameters.OutputWriter = new StringWriter();
compiler.Parameters.TraceSwitch.Level = System.Diagnostics.TraceLevel.Off;
compiler.Parameters.TraceLevel = System.Diagnostics.TraceLevel.Off;
Compile compilePipe = new Compile();
BooParsingStep parsingStep = (BooParsingStep)compilePipe[0];

1
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs

@ -501,6 +501,7 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -501,6 +501,7 @@ namespace Grunwald.BooBinding.CodeCompletion
if (node.Setter != null && node.Setter.Body != null) {
property.SetterRegion = GetClientRegion(node.Setter);
}
property.IsIndexer = (node.Name == "self");
OuterClass.Properties.Add(property);
property.UserData = node;
}

6
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorStatements.cs

@ -104,10 +104,10 @@ namespace NRefactoryToBooConverter @@ -104,10 +104,10 @@ namespace NRefactoryToBooConverter
macro.Name = name;
ConvertExpressions(arguments, macro.Arguments);
if (embedded is BlockStatement) {
macro.Block = ConvertBlock((BlockStatement)embedded);
macro.Body = ConvertBlock((BlockStatement)embedded);
} else {
macro.Block = new B.Block();
macro.Block.Add((B.Statement)embedded.AcceptVisitor(this, null));
macro.Body = new B.Block();
macro.Body.Add((B.Statement)embedded.AcceptVisitor(this, null));
}
return macro;
}

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.CodeDom.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Compiler.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Extensions.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Interpreter.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Parser.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.PatternMatching.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.Useful.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Lang.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Microsoft.Build.Tasks.dll

Binary file not shown.

259
src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Microsoft.Build.targets

@ -0,0 +1,259 @@ @@ -0,0 +1,259 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask
TaskName="Microsoft.Build.Tasks.CreateBooManifestResourceName"
AssemblyFile="Boo.Microsoft.Build.Tasks.dll" />
<UsingTask
TaskName="Boo.Microsoft.Build.Tasks.Booc"
AssemblyFile="Boo.Microsoft.Build.Tasks.dll"/>
<UsingTask
TaskName="Boo.Microsoft.Build.Tasks.ExecBoo"
AssemblyFile="Boo.Microsoft.Build.Tasks.dll"/>
<PropertyGroup>
<MSBuildAllProjects Condition="'$(BooBinPath)' != ''">
$(MSBuildAllProjects);$(BooBinPath)\Boo.Microsoft.Build.targets
</MSBuildAllProjects>
<MSBuildAllProjects Condition="'$(BooBinPath)' == ''">
$(MSBuildAllProjects);$(MSBuildBinPath)\Boo.Microsoft.Build.targets
</MSBuildAllProjects>
<DefaultLanguageSourceExtension>.boo</DefaultLanguageSourceExtension>
<Language>Boo</Language>
</PropertyGroup>
<!--
The CreateManifestResourceNames target create the manifest resource names
from the .RESX files.
[IN]
@(ResxWithNoCulture) - The names the non-culture .RESX files.
@(ResxWithCulture) - The names the culture .RESX files.
@(NonResxWithNoCulture) - The names of the non-culture non-RESX
files (like bitmaps, etc).
@(NonResxWithCulture) - The names of the culture non-RESX
files (like bitmaps, etc).
[OUT]
@(ManifestResourceWithNoCultureName) - The corresponding manifest
resource name (.RESOURCE)
@(ManifestResourceWithCultureName) - The corresponding manifest
resource name (.RESOURCE)
@(ManifestNonResxWithNoCulture) - The corresponding manifest
resource name.
@(ManifestNonResxWithCulture) - The corresponding manifest
resource name.
For Boo applications the transformation is like:
Resources1.resx => RootNamespace.Resources1 => Build into main assembly
SubFolder\Resources1.resx =>
RootNamespace.SubFolder.Resources1 =>
Build into main assembly
Resources1.fr.resx =>
RootNamespace.Resources1.fr =>
Build into satellite assembly
Resources1.notaculture.resx =>
RootNamespace.Resources1.notaculture =>
Build into main assembly
For other project systems, this transformation may be different.
-->
<PropertyGroup>
<CreateManifestResourceNamesDependsOn>
</CreateManifestResourceNamesDependsOn>
</PropertyGroup>
<Target
Name="CreateManifestResourceNames"
DependsOnTargets="$(CreateManifestResourceNamesDependsOn)"
>
<CallTarget Targets="CreateManifestResourceNames_35" Condition="'$(MSBuildToolsVersion)' == '3.5'"/>
<CallTarget Targets="CreateManifestResourceNames_20" Condition="'$(MSBuildToolsVersion)' != '3.5'"/>
</Target>
<Target
Name="CreateManifestResourceNames_20"
Condition="'
@(ResxWithNoCulture)
@(ResxWithCulture)
@(NonResxWithNoCulture)
@(NonResxWithCulture)'!=''"
>
<!-- Create the target resource names for non-culture resx files -->
<CreateBooManifestResourceName
Condition="'@(ResxWithNoCulture)'!=''"
ResourceFiles="@(ResxWithNoCulture)"
RootNamespace="$(RootNamespace)">
<Output
TaskParameter="ManifestResourceNames"
ItemName="ManifestResourceWithNoCultureName"/>
</CreateBooManifestResourceName>
<!-- Create the target resource names for culture resx files. -->
<CreateBooManifestResourceName
Condition="'@(ResxWithCulture)'!=''"
ResourceFiles="@(ResxWithCulture)"
RootNamespace="$(RootNamespace)">
<Output
TaskParameter="ManifestResourceNames"
ItemName="ManifestResourceWithCultureName"/>
</CreateBooManifestResourceName>
<!-- Create the target resource names for non-culture non-resx files. -->
<CreateBooManifestResourceName
Condition="'@(NonResxWithNoCulture)'!=''"
ResourceFiles="@(NonResxWithNoCulture)"
RootNamespace="$(RootNamespace)">
<Output
TaskParameter="ManifestResourceNames"
ItemName="ManifestNonResxWithNoCulture"/>
</CreateBooManifestResourceName>
<!-- Create the target resource names for culture non-resx files. -->
<CreateBooManifestResourceName
Condition="'@(NonResxWithCulture)'!=''"
ResourceFiles="@(NonResxWithCulture)"
RootNamespace="$(RootNamespace)">
<Output
TaskParameter="ManifestResourceNames"
ItemName="ManifestNonResxWithCulture"/>
</CreateBooManifestResourceName>
</Target>
<Target
Name="CreateManifestResourceNames_35"
Condition="'@(EmbeddedResource)' != ''"
>
<ItemGroup>
<_Temporary Remove="@(_Temporary)" />
</ItemGroup>
<CreateBooManifestResourceName
ResourceFiles="@(EmbeddedResource)"
RootNamespace="$(RootNamespace)"
Condition="'%(EmbeddedResource.ManifestResourceName)' == ''">
<Output TaskParameter="ResourceFilesWithManifestResourceNames" ItemName="_Temporary" />
</CreateBooManifestResourceName>
<ItemGroup>
<EmbeddedResource Remove="@(EmbeddedResource)" Condition="'%(EmbeddedResource.ManifestResourceName)' == ''"/>
<EmbeddedResource Include="@(_Temporary)" />
<_Temporary Remove="@(_Temporary)" />
</ItemGroup>
</Target>
<PropertyGroup>
<!--
"None" is not technically a valid DebugType, so we can't pass it
in as such to the compiler. So here, we modify the properties so
they make sense.
-->
<DebugSymbols Condition="'$(DebugType)' == 'none'">false</DebugSymbols>
<DebugType Condition="'$(DebugType)' == 'none'"></DebugType>
<!-- Provide a facility to override UseHostCompilerIfAvailable-->
<UseHostCompilerIfAvailable
Condition="'$(UseHostCompilerIfAvailable)' == ''">
true
</UseHostCompilerIfAvailable>
</PropertyGroup>
<ItemGroup>
<DocFileItem
Include="$(DocumentationFile)"
Condition="'$(DocumentationFile)'!=''">
<InProject>false</InProject>
</DocFileItem>
</ItemGroup>
<PropertyGroup>
<CoreCompileDependsOn>
_ComputeNonExistentFileProperty
</CoreCompileDependsOn>
</PropertyGroup>
<PropertyGroup Condition=" '$(BoocToolPath)' != '' ">
<ReferencePath>$(ReferencePath);$(BoocToolPath)</ReferencePath>
</PropertyGroup>
<PropertyGroup Condition=" '$(BoocToolPath)' == '' ">
<ReferencePath>$(ReferencePath);$(BooBinPath)</ReferencePath>
</PropertyGroup>
<Target
Name="CoreCompile"
Inputs="$(MSBuildAllProjects);
@(Compile);
@(ManifestResourceWithNoCulture);
$(ApplicationIcon);
$(AssemblyOriginatorKeyFile);
@(ManifestNonResxWithNoCultureOnDisk);
@(ReferencePath);
@(CompiledLicenseFile)"
Outputs="@(IntermediateAssembly)"
DependsOnTargets="$(CoreCompileDependsOn)"
>
<Booc
OutputAssembly="@(IntermediateAssembly)"
References="@(ReferencePath)"
Resources= "@(ManifestResourceWithNoCulture);
@(ManifestNonResxWithNoCultureOnDisk);
@(CompiledLicenseFile)"
ResponseFiles="$(CompilerResponseFile)"
Sources="@(Compile)"
TargetType="$(OutputType)"
ToolPath="$(BoocToolPath)"
Pipeline="$(Pipeline)"
WhiteSpaceAgnostic="$(WhiteSpaceAgnostic)"
Ducky="$(Ducky)"
Verbosity="$(BoocVerbosity)"
Culture="$(AssemblyCulture)"
SourceDirectory="$(SourceDirectory)"
KeyFile="$(AssemblyOriginatorKeyFile)"
KeyContainer="$(AssemblyKeyContainerName)"
EmitDebugInformation="$(DebugSymbols)"
DelaySign="$(DelaySign)"
NoStandardLib="$(NoStdLib)"
DefineSymbols="$(DefineConstants)"
GenerateFullPaths="$(GenerateFullPaths)"
/>
<Copy
Condition=" '$(BoocToolPath)' == '' "
SkipUnchangedFiles="true"
SourceFiles="$(BooBinPath)\Boo.Lang.dll"
DestinationFolder="$(OutputPath)"/>
<Copy
Condition=" '$(BoocToolPath)' != '' "
SkipUnchangedFiles="true"
SourceFiles="$(BoocToolPath)\Boo.Lang.dll"
DestinationFolder="$(OutputPath)"/>
</Target>
<Import Project="$(MSBuildBinPath)\Microsoft.Common.targets" />
</Project>

BIN
src/AddIns/BackendBindings/Boo/RequiredLibraries/booc.exe

Binary file not shown.

6
src/AddIns/BackendBindings/Boo/RequiredLibraries/booc.exe.config

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v1.1.4322"/>
</startup>
</configuration>

20
src/AddIns/BackendBindings/Boo/RequiredLibraries/booc.rsp

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
# This file contains command-line options that the Boo
# command-line compiler (booc) will process as part
# of every compilation, unless the "-noconfig" option
# is specified.
# Reference the common Framework libraries
#-r:System (already included by boo)
#-r:System.Data
-r:System.Drawing
#-r:System.Management
#-r:System.Messaging
#-r:System.Runtime.Remoting
#-r:System.Runtime.Serialization.Formatters.Soap
# does not work nicely on mono
-r:System.Security
#-r:System.ServiceProcess
#-r:System.Web
#-r:System.Web.Services
#-r:System.Windows.Forms
-r:System.Xml

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs

@ -307,7 +307,7 @@ namespace CSharpBinding @@ -307,7 +307,7 @@ namespace CSharpBinding
public RenamedClass(IClass c, string newName) : base(c.CompilationUnit, c.ClassType, c.Modifiers, c.Region, c.DeclaringType)
{
this.newName = newName;
this.Documentation = c.Documentation;
CopyDocumentationFrom(c);
this.FullyQualifiedName = c.FullyQualifiedName;
}

4
src/AddIns/BackendBindings/CSharpBinding/Project/Src/EventHandlerCompletitionDataProvider.cs

@ -113,7 +113,9 @@ namespace CSharpBinding @@ -113,7 +113,9 @@ namespace CSharpBinding
newHandlerTextBuilder.ToString(),
2+newHandlerName.Length,
newHandlerName.Length,
"new " + eventHandlerFullyQualifiedTypeName + "(" + newHandlerName +StringParser.Parse(")\n${res:CSharpBinding.GenerateNewHandlerInstructions}\n") + CodeCompletionData.GetDocumentation(resolvedClass.Documentation),
"new " + eventHandlerFullyQualifiedTypeName +
"(" + newHandlerName + StringParser.Parse(")\n${res:CSharpBinding.GenerateNewHandlerInstructions}\n")
+ CodeCompletionData.ConvertDocumentation(resolvedClass.Documentation),
resolveResult,
newHandlerCodeBuilder.ToString()
));

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/CSharpProject.cs

@ -88,7 +88,7 @@ namespace CSharpBinding @@ -88,7 +88,7 @@ namespace CSharpBinding
public override void StartBuild(ProjectBuildOptions options, IBuildFeedbackSink feedbackSink)
{
if (this.MinimumSolutionVersion == 9) {
if (this.MinimumSolutionVersion == Solution.SolutionVersionVS2005) {
MSBuildEngine.StartBuild(this,
options,
feedbackSink,

3
src/AddIns/BackendBindings/FSharp/FSharpBinding/Project/FSharpBinding.addin

@ -5,12 +5,14 @@ @@ -5,12 +5,14 @@
<Manifest>
<Identity name = "ICSharpCode.FSharpBinding"/>
<Dependency addin = "ICSharpCode.CSharpBinding" requirePreload = "true"/>
</Manifest>
<Runtime>
<Import assembly = "FSharpBinding.dll"/>
<Import assembly = ":ICSharpCode.SharpDevelop"/>
<Import assembly = ":ICSharpCode.SharpDevelop.Dom"/>
<Import assembly = "$ICSharpCode.CSharpBinding/CSharpBinding.dll"/>
</Runtime>
<Path name = "/SharpDevelop/Workbench/Ambiences">
@ -98,7 +100,6 @@ @@ -98,7 +100,6 @@
category = "Main"
title = "F# Interactive"
icon = "F#.ProjectIcon"
shortcut = "Control|Shift|B"
class = "FSharpBinding.FSharpInteractive"/>
</Path>

169
src/AddIns/BackendBindings/FSharp/FSharpBinding/Project/FSharpBinding.fsproj

@ -30,6 +30,9 @@ @@ -30,6 +30,9 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>3</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<OtherFlags>--standalone</OtherFlags>
</PropertyGroup>
<ItemGroup>
<Compile Include="Src\project.fs" />
<Compile Include="Src\languagebinding.fs" />
@ -47,15 +50,119 @@ @@ -47,15 +50,119 @@
</None>
</ItemGroup>
<ItemGroup>
<Reference Include="AvalonDock">
<HintPath>..\..\..\..\..\Libraries\AvalonDock\AvalonDock.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="log4net">
<HintPath>..\..\..\..\..\Libraries\log4net\log4net.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>Microsoft.Build.Engine</Name>
<AssemblyName>Microsoft.Build.Engine.dll</AssemblyName>
</Reference>
<Reference Include="Mono.Cecil">
<HintPath>..\..\..\..\..\Libraries\Mono.Cecil\Mono.Cecil.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="PresentationCFFRasterizer" />
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationUI">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="ReachFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Configuration</Name>
<AssemblyName>System.configuration.dll</AssemblyName>
</Reference>
<Reference Include="System.Printing">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Security</Name>
<AssemblyName>System.Security.dll</AssemblyName>
</Reference>
<Reference Include="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Web</Name>
<AssemblyName>System.Web.dll</AssemblyName>
</Reference>
<Reference Include="System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.EnterpriseServices</Name>
<AssemblyName>System.EnterpriseServices.dll</AssemblyName>
</Reference>
<Reference Include="System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<Name>System.Runtime.Remoting</Name>
<AssemblyName>System.Runtime.Remoting.dll</AssemblyName>
</Reference>
<Reference Include="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.DirectoryServices</Name>
<AssemblyName>System.DirectoryServices.dll</AssemblyName>
</Reference>
<Reference Include="System.Runtime.Serialization.Formatters.Soap, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Runtime.Serialization.Formatters.Soap</Name>
<AssemblyName>System.Runtime.Serialization.Formatters.Soap.dll</AssemblyName>
</Reference>
<Reference Include="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<Name>System.Transactions</Name>
<AssemblyName>System.Transactions.dll</AssemblyName>
</Reference>
<Reference Include="System.DirectoryServices.Protocols, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.DirectoryServices.Protocols</Name>
<AssemblyName>System.DirectoryServices.Protocols.dll</AssemblyName>
</Reference>
<Reference Include="System.Web.RegularExpressions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Web.RegularExpressions</Name>
<AssemblyName>System.Web.RegularExpressions.dll</AssemblyName>
</Reference>
<Reference Include="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Web.Services</Name>
<AssemblyName>System.Web.Services.dll</AssemblyName>
</Reference>
<Reference Include="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<Name>System.Data</Name>
<AssemblyName>System.Data.dll</AssemblyName>
</Reference>
<Reference Include="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Design</Name>
<AssemblyName>System.Design.dll</AssemblyName>
</Reference>
<Reference Include="System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Drawing.Design</Name>
<AssemblyName>System.Drawing.Design.dll</AssemblyName>
</Reference>
<Reference Include="System.Deployment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Deployment</Name>
<AssemblyName>System.Deployment.dll</AssemblyName>
</Reference>
<Reference Include="Accessibility, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>Accessibility</Name>
<AssemblyName>Accessibility.dll</AssemblyName>
</Reference>
<Reference Include="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<Name>System.Data.OracleClient</Name>
<AssemblyName>System.Data.OracleClient.dll</AssemblyName>
</Reference>
<Reference Include="System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.ServiceProcess</Name>
<AssemblyName>System.ServiceProcess.dll</AssemblyName>
</Reference>
<Reference Include="System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>System.Configuration.Install</Name>
<AssemblyName>System.Configuration.Install.dll</AssemblyName>
</Reference>
<Reference Include="Microsoft.VisualC, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Name>Microsoft.VisualC</Name>
<AssemblyName>Microsoft.VisualC.dll</AssemblyName>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
@ -71,50 +178,72 @@ @@ -71,50 +178,72 @@
<Name>System.Xml</Name>
<AssemblyName>System.XML.dll</AssemblyName>
</Reference>
<Reference Include="UIAutomationProvider">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="UIAutomationTypes">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsFormsIntegration" />
<ProjectReference Include="..\..\..\..\..\Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj">
<Name>ICSharpCode.Core.WinForms</Name>
<Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj">
<Name>ICSharpCode.TextEditor</Name>
<Project>{2d18be89-d210-49eb-a9dd-2246fbb3df6d}</Project>
<Private>True</Private>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Libraries\NRefactory\Project\NRefactory.csproj">
<Name>NRefactory</Name>
<Project>{3a9ae6aa-bc07-4a2f-972c-581e3ae2f195}</Project>
<Private>True</Private>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Name>ICSharpCode.SharpDevelop</Name>
<Project>{2748ad25-9c63-4e12-877b-4dce96fbed54}</Project>
<Private>True</Private>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Main\Core\Project\ICSharpCode.Core.csproj">
<Name>ICSharpCode.Core</Name>
<Project>{35cef10f-2d4c-45f2-9dd1-161e0fec583c}</Project>
<Private>True</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Main\ICSharpCode.SharpDevelop.BuildWorker\ICSharpCode.SharpDevelop.BuildWorker.csproj">
<Name>ICSharpCode.SharpDevelop.BuildWorker</Name>
<Project>{c3cbc8e3-81d8-4c5b-9941-dccd12d50b1f}</Project>
<Private>True</Private>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj">
<Name>ICSharpCode.SharpDevelop.Dom</Name>
<Project>{924ee450-603d-49c1-a8e5-4afaa31ce6f3}</Project>
<Private>True</Private>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Name>ICSharpCode.SharpDevelop.Widgets</Name>
<Project>{8035765f-d51f-4a0c-a746-2fd100e19419}</Project>
<Private>True</Private>
<Private>False</Private>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj">
<Project>{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}</Project>
<Name>ICSharpCode.Core.Presentation</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Main\ICSharpCode.SharpDevelop.BuildWorker\ICSharpCode.SharpDevelop.BuildWorker.csproj">
<Project>{C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}</Project>
<Name>ICSharpCode.SharpDevelop.BuildWorker</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup>
<Target Name="Clean" Condition="!Exists('$(MSBuildExtensionsPath)\FSharp\1.0\Microsoft.FSharp.Targets')">
<!-- F# not found? no need to clean anything -->
</Target>
<Target Name="Build" Condition="!Exists('$(MSBuildExtensionsPath)\FSharp\1.0\Microsoft.FSharp.Targets')">
<Warning Text="Microsoft.FSharp.Targets not found, skipping F# binding"/>
</Target>
<Target Name="Rebuild" Condition="!Exists('$(MSBuildExtensionsPath)\FSharp\1.0\Microsoft.FSharp.Targets')">
<Warning Text="Microsoft.FSharp.Targets not found, skipping F# binding"/>
</Target>
<Target Name="Clean" Condition="!Exists('$(MSBuildExtensionsPath)\FSharp\1.0\Microsoft.FSharp.Targets')">
<!-- F# not found? no need to clean anything -->
</Target>
<Target Name="Build" Condition="!Exists('$(MSBuildExtensionsPath)\FSharp\1.0\Microsoft.FSharp.Targets')">
<Warning Text="Microsoft.FSharp.Targets not found, skipping F# binding" />
</Target>
<Target Name="Rebuild" Condition="!Exists('$(MSBuildExtensionsPath)\FSharp\1.0\Microsoft.FSharp.Targets')">
<Warning Text="Microsoft.FSharp.Targets not found, skipping F# binding" />
</Target>
<Import Project="$(MSBuildExtensionsPath)\FSharp\1.0\Microsoft.FSharp.Targets" Condition="Exists('$(MSBuildExtensionsPath)\FSharp\1.0\Microsoft.FSharp.Targets')" />
</Project>

14
src/AddIns/BackendBindings/FSharp/FSharpBinding/Project/Src/fsi.fs

@ -131,8 +131,16 @@ type SentToFSharpInteractive = class @@ -131,8 +131,16 @@ type SentToFSharpInteractive = class
match window.ActiveViewContent :> obj with
| :? ITextEditorControlProvider as textArea ->
let textArea = textArea.TextEditorControl.ActiveTextAreaControl.TextArea
for selection in textArea.SelectionManager.SelectionCollection do
TheControl.fsiProcess.StandardInput.WriteLine(selection.SelectedText)
let pad = WorkbenchSingleton.Workbench.GetPad(typeof<FSharpInteractive>)
pad.BringPadToFront()
if textArea.SelectionManager.HasSomethingSelected then
for selection in textArea.SelectionManager.SelectionCollection do
TheControl.fsiProcess.StandardInput.WriteLine(selection.SelectedText)
else
let line = textArea.Document.GetLineNumberForOffset(textArea.Caret.Offset)
let lineSegment = textArea.Document.GetLineSegment(line)
let lineText = textArea.Document.GetText(lineSegment.Offset, lineSegment.TotalLength)
TheControl.fsiProcess.StandardInput.WriteLine(lineText)
TheControl.fsiProcess.StandardInput.WriteLine(";;")
| _ -> ()
end
end

3
src/AddIns/BackendBindings/FSharp/FSharpBinding/Project/Src/project.fs

@ -10,7 +10,6 @@ namespace FSharpBinding @@ -10,7 +10,6 @@ namespace FSharpBinding
//Global todos
//TODO add "compiling" dialog to output the correct directory
//TODO output to correct directory :)
//TODO copy all config to the correct locations
//TODO add directory structure
@ -221,7 +220,7 @@ type FsOptions() = @@ -221,7 +220,7 @@ type FsOptions() =
override x.LoadPanelContents() =
let this = (typeof<FsOptions>)
let caller = this.Assembly
x.SetupFromXmlStream(caller.GetManifestResourceStream("FSharpBindings.Resources.FsOptions.xfrm"))
x.SetupFromXmlStream(caller.GetManifestResourceStream("FsOptions.xfrm"))
x.InitializeHelper()
x.helper.BindBoolean(x.Get<CheckBox>("standalone"), "Standalone", false) |> ignore
x.helper.BindBoolean(x.Get<CheckBox>("nomllib"), "NoMLLib", false) |> ignore

2
src/AddIns/BackendBindings/Python/PyWalker/MainForm.cs

@ -48,7 +48,7 @@ namespace PyWalker @@ -48,7 +48,7 @@ namespace PyWalker
PythonAst ast = parser.ParseFile(false);
if (sink.Errors.Count == 0) {
ResolveWalker walker = new ResolveWalker(this);
walker.Walk(ast);
ast.Walk(walker);
} else {
walkerOutputTextBox.Text += "\r\n";
foreach (PythonCompilerError error in sink.Errors) {

77
src/AddIns/BackendBindings/Python/PyWalker/ResolveWalker.cs

@ -31,49 +31,43 @@ namespace PyWalker @@ -31,49 +31,43 @@ namespace PyWalker
public override bool Walk(AndExpression node)
{
writer.WriteLine("And");
return true;
return base.Walk(node);
}
public override bool Walk(AssertStatement node)
{
writer.WriteLine("Assert");
return true;
return base.Walk(node);
}
//public override bool Walk(AugAssignStatement node)
//{
// writer.WriteLine("AugAssert");
// return true;
//}
public override bool Walk(Arg node)
{
writer.WriteLine("Arg: " + node.Name.ToString());
return true;
return base.Walk(node);
}
// public override bool Walk(AssignStatement node)
// {
// writer.WriteLine("Assign");
// return true;
// }
public override bool Walk(AssignmentStatement node)
{
writer.WriteLine("AssignmentStatement");
return base.Walk(node);
}
public override bool Walk(BackQuoteExpression node)
{
writer.WriteLine("BackQuote");
return true;
return base.Walk(node);
}
public override bool Walk(BinaryExpression node)
{
writer.WriteLine("Binary");
return true;
return base.Walk(node);
}
public override bool Walk(BreakStatement node)
{
writer.WriteLine("Breaks");
return true;
return base.Walk(node);
}
public override bool Walk(ClassDefinition node)
@ -83,121 +77,109 @@ namespace PyWalker @@ -83,121 +77,109 @@ namespace PyWalker
} else {
writer.WriteLine("Class: " + node.Name.ToString());
}
return true;
return base.Walk(node);
}
public override bool Walk(ConditionalExpression node)
{
writer.WriteLine("ConditionalExpression");
return true;
return base.Walk(node);
}
public override bool Walk(ConstantExpression node)
{
writer.WriteLine("ConstantExpression");
return true;
return base.Walk(node);
}
public override bool Walk(ContinueStatement node)
{
writer.WriteLine("Continue");
return true;
return base.Walk(node);
}
public override bool Walk(PrintStatement node)
{
writer.WriteLine("PrintStatement");
return true;
return base.Walk(node);
}
public override bool Walk(FunctionDefinition node)
{
writer.WriteLine("FunctionDefinition");
return true;
return base.Walk(node);
}
public override bool Walk(CallExpression node)
{
writer.WriteLine("Call");
return true;
return base.Walk(node);
}
public override bool Walk(DictionaryExpression node)
{
writer.WriteLine("Dict");
return true;
return base.Walk(node);
}
public override bool Walk(DottedName node)
{
writer.WriteLine("DottedName");
return true;
return base.Walk(node);
}
public override bool Walk(ExpressionStatement node)
{
writer.WriteLine("Expr");
return true;
return base.Walk(node);
}
// public override bool Walk(FieldExpression node)
// {
// writer.WriteLine("Field: " + node.Name.ToString());
// return true;
// }
public override bool Walk(GlobalStatement node)
{
writer.WriteLine("Global");
return true;
return base.Walk(node);
}
public override bool Walk(NameExpression node)
{
writer.WriteLine("Name: " + node.Name);
return true;
return base.Walk(node);
}
public override bool Walk(FromImportStatement node)
{
writer.WriteLine("FromImport: " + node.Root.MakeString());
return true;
return base.Walk(node);
}
public override bool Walk(ImportStatement node)
{
writer.WriteLine("Import: " + GetImports(node.Names));
return true;
return base.Walk(node);
}
public override bool Walk(UnaryExpression node)
{
writer.WriteLine("Unary");
return true;
return base.Walk(node);
}
public override bool Walk(SuiteStatement node)
{
writer.WriteLine("Suite");
return true;
return base.Walk(node);
}
// public override bool Walk(GlobalSuite node)
// {
// writer.WriteLine("GlobalSuite");
// return true;
// }
public override bool Walk(ErrorExpression node)
{
writer.WriteLine("Error");
return true;
return base.Walk(node);
}
public override bool Walk(IfStatement node)
{
writer.WriteLine("If");
return true;
return base.Walk(node);
}
string GetImports(IList<DottedName> names)
@ -222,6 +204,5 @@ namespace PyWalker @@ -222,6 +204,5 @@ namespace PyWalker
}
return s.ToString();
}
}
}

4
src/AddIns/BackendBindings/Python/PythonBinding/Project/PythonBinding.csproj

@ -86,13 +86,15 @@ @@ -86,13 +86,15 @@
<Compile Include="Src\PythonConsoleCompletionDataProvider.cs" />
<Compile Include="Src\PythonConsoleHost.cs" />
<Compile Include="Src\PythonConsolePad.cs" />
<Compile Include="Src\PythonControlFieldExpression.cs" />
<Compile Include="Src\PythonDesignerGenerator.cs" />
<Compile Include="Src\PythonDesignerLoader.cs" />
<Compile Include="Src\PythonDesignerLoaderProvider.cs" />
<Compile Include="Src\PythonExpressionFinder.cs" />
<Compile Include="Src\PythonForm.cs" />
<Compile Include="Src\PythonFormsDesignerDisplayBinding.cs" />
<Compile Include="Src\PythonFormVisitor.cs" />
<Compile Include="Src\PythonFormWalker.cs" />
<Compile Include="Src\PythonFormWalkerException.cs" />
<Compile Include="Src\PythonLanguageBinding.cs" />
<Compile Include="Src\PythonOptionsPanel.cs" />
<Compile Include="Src\PythonOutputStream.cs" />

33
src/AddIns/BackendBindings/Python/PythonBinding/Project/Resources/CompilingOptionsPanel.xfrm

@ -8,17 +8,34 @@ @@ -8,17 +8,34 @@
<Location value="3, -2" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:Dialog.ProjectOptions.Build.Output}" />
<Anchor value="Top, Left, Right" />
<Size value="504, 362" />
<Anchor value="Top, Left, Right" />
<TabIndex value="2" />
<Controls>
<System.Windows.Forms.ComboBox>
<Name value="targetCpuComboBox" />
<TabIndex value="14" />
<Location value="12, 106" />
<Size value="180, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.Label>
<Name value="targetCpuLabel" />
<Location value="12, 87" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:Dialog.ProjectOptions.Build.TargetCPU}" />
<Size value="180, 16" />
<TextAlign value="MiddleLeft" />
<TabIndex value="13" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="debugInfoCheckBox" />
<CheckAlign value="MiddleRight" />
<Location value="12, 63" />
<Text value="Debug info:" />
<Text value="${res:Dialog.ProjectOptions.Build.DebugInfo}" />
<TabIndex value="12" />
<Size value="147, 21" />
<Size value="180, 21" />
<UseCompatibleTextRendering value="True" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.Label>
@ -26,29 +43,29 @@ @@ -26,29 +43,29 @@
<Location value="12, 17" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:Dialog.ProjectOptions.Build.OutputPath}" />
<Anchor value="Top, Left, Right" />
<TextAlign value="BottomLeft" />
<Size value="492, 16" />
<TextAlign value="BottomLeft" />
<Anchor value="Top, Left, Right" />
<TabIndex value="3" />
</System.Windows.Forms.Label>
<System.Windows.Forms.TextBox>
<Name value="outputPathTextBox" />
<TabIndex value="4" />
<Size value="448, 20" />
<Location value="12, 37" />
<Anchor value="Top, Left, Right" />
<Size value="448, 20" />
</System.Windows.Forms.TextBox>
<System.Windows.Forms.Button>
<Name value="outputPathBrowseButton" />
<Location value="464, 37" />
<UseCompatibleTextRendering value="True" />
<Text value="..." />
<Anchor value="Top, Right" />
<Size value="40, 21" />
<Anchor value="Top, Right" />
<TabIndex value="5" />
</System.Windows.Forms.Button>
</Controls>
</System.Windows.Forms.GroupBox>
</Controls>
</System.Windows.Forms.UserControl>
</Components>
</Components>

11
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/CompilingOptionsPanel.cs

@ -28,6 +28,9 @@ namespace ICSharpCode.PythonBinding @@ -28,6 +28,9 @@ namespace ICSharpCode.PythonBinding
b = BindBoolean("debugInfoCheckBox", "DebugInfo", false);
CreateLocationButton(b, "debugInfoCheckBox");
b = CreatePlatformTargetComboBox();
CreateLocationButton(b, "targetCpuComboBox");
AddConfigurationSelector(this);
}
@ -82,5 +85,13 @@ namespace ICSharpCode.PythonBinding @@ -82,5 +85,13 @@ namespace ICSharpCode.PythonBinding
{
helper.AddConfigurationSelector(control);
}
/// <summary>
/// Creates the platform target combo box.
/// </summary>
protected virtual ConfigurationGuiBinding CreatePlatformTargetComboBox()
{
return base.CreatePlatformTarget();
}
}
}

28
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/IComponentCreator.cs

@ -6,13 +6,19 @@ @@ -6,13 +6,19 @@
// </file>
using System;
using System.Collections;
using System.ComponentModel;
namespace ICSharpCode.PythonBinding
{
/// <summary>
/// Interface that creates an IComponent given a type. Used by the PythonFormVisitor
/// class so it can be wired up to a IDesignerHost
/// Interface that can:
///
/// 1) Create an IComponent given a type.
/// 2) Create a new object given its type name.
///
/// Used by the PythonFormVisitor class so it can be wired up to an
/// IDesignerHost and an IDesignerSerializationManager.
/// </summary>
public interface IComponentCreator
{
@ -22,5 +28,23 @@ namespace ICSharpCode.PythonBinding @@ -22,5 +28,23 @@ namespace ICSharpCode.PythonBinding
/// <param name="componentClass">The type of the component to be created.</param>
/// <param name="name">The component name.</param>
IComponent CreateComponent(Type componentClass, string name);
/// <summary>
/// Adds a component to the component creator.
/// </summary>
void Add(IComponent component, string name);
/// <summary>
/// Creates a new instance of the object given its type.
/// </summary>
/// <param name="arguments">Arguments passed to the type's constructor.</param>
/// <param name="name">Name of the object.</param>
/// <param name="addToContainer">If set to true then the is added to the design container.</param>
object CreateInstance(Type type, ICollection arguments, string name, bool addToContainer);
/// <summary>
/// Gets the type given its name.
/// </summary>
Type GetType(string typeName);
}
}

125
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonControlFieldExpression.cs

@ -0,0 +1,125 @@ @@ -0,0 +1,125 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using System.Text;
using IronPython.Compiler.Ast;
namespace ICSharpCode.PythonBinding
{
/// <summary>
/// Represents a member field expression in a Control or Form:
///
/// self._textBox1
/// self._textBox1.Name
/// </summary>
public class PythonControlFieldExpression
{
string memberName = String.Empty;
string fullMemberName = String.Empty;
PythonControlFieldExpression(string memberName, string fullMemberName)
{
this.memberName = memberName;
this.fullMemberName = fullMemberName;
}
public string MemberName {
get { return memberName; }
}
public string FullMemberName {
get { return fullMemberName; }
}
/// <summary>
/// Creates a PythonControlField from a member expression:
///
/// self._textBox1
/// self._textBox1.Name
/// </summary>
public static PythonControlFieldExpression Create(MemberExpression expression)
{
string memberName = expression.Name.ToString();
string fullMemberName = PythonControlFieldExpression.GetMemberName(expression);
return new PythonControlFieldExpression(memberName, fullMemberName);
}
/// <summary>
/// Gets the variable name from an expression of the form:
///
/// self._textBox1.Name
///
/// Returns "textBox1"
/// </summary>
public static string GetVariableNameFromSelfReference(string name)
{
int startIndex = name.IndexOf('.');
if (startIndex > 0) {
name = name.Substring(startIndex + 1);
int endIndex = name.IndexOf('.');
if (endIndex > 0) {
return GetVariableName(name.Substring(0, endIndex));
}
return String.Empty;
}
return name;
}
/// <summary>
/// Gets the variable name of the control being added.
/// </summary>
public static string GetControlNameBeingAdded(CallExpression node)
{
//if (node.Args.Length > 0) {
Arg arg = node.Args[0];
MemberExpression memberExpression = arg.Expression as MemberExpression;
return GetVariableName(memberExpression.Name.ToString());
//}
//return null;
}
/// <summary>
/// Removes the underscore from the variable name.
/// </summary>
public static string GetVariableName(string name)
{
if (!String.IsNullOrEmpty(name)) {
if (name.Length > 1) {
if (name[0] == '_') {
return name.Substring(1);
}
}
}
return name;
}
/// <summary>
/// Gets the fully qualified name being referenced in the MemberExpression.
/// </summary>
public static string GetMemberName(MemberExpression expression)
{
StringBuilder typeName = new StringBuilder();
while (expression != null) {
typeName.Insert(0, expression.Name);
typeName.Insert(0, ".");
NameExpression nameExpression = expression.Target as NameExpression;
expression = expression.Target as MemberExpression;
if (expression == null) {
if (nameExpression != null) {
typeName.Insert(0, nameExpression.Name);
}
}
}
return typeName.ToString();
}
}
}

44
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerGenerator.cs

@ -9,6 +9,7 @@ using System; @@ -9,6 +9,7 @@ using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Reflection;
@ -17,6 +18,7 @@ using System.Windows.Forms; @@ -17,6 +18,7 @@ using System.Windows.Forms;
using ICSharpCode.FormsDesigner;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.TextEditor;
@ -39,9 +41,11 @@ namespace ICSharpCode.PythonBinding @@ -39,9 +41,11 @@ namespace ICSharpCode.PythonBinding
public class PythonDesignerGenerator : IPythonDesignerGenerator
{
FormsDesignerViewContent viewContent;
ITextEditorProperties textEditorProperties;
public PythonDesignerGenerator()
public PythonDesignerGenerator(ITextEditorProperties textEditorProperties)
{
this.textEditorProperties = textEditorProperties;
}
/// <summary>
@ -61,9 +65,10 @@ namespace ICSharpCode.PythonBinding @@ -61,9 +65,10 @@ namespace ICSharpCode.PythonBinding
this.viewContent = null;
}
public OpenedFile DetermineDesignerCodeFile()
public IEnumerable<OpenedFile> GetSourceFiles(out OpenedFile designerCodeFile)
{
return this.ViewContent.PrimaryFile;
designerCodeFile = this.ViewContent.PrimaryFile;
return new [] {designerCodeFile};
}
public void MergeFormChanges(CodeCompileUnit unit)
@ -76,7 +81,7 @@ namespace ICSharpCode.PythonBinding @@ -76,7 +81,7 @@ namespace ICSharpCode.PythonBinding
public void MergeRootComponentChanges(IComponent component)
{
ParseInformation parseInfo = ParseFile(this.ViewContent.DesignerCodeFile.FileName, this.ViewContent.DesignerCodeFileContent);
Merge(component, ViewContent.DesignerCodeFileDocument, parseInfo.BestCompilationUnit);
Merge(component, ViewContent.DesignerCodeFileDocument, parseInfo.BestCompilationUnit, textEditorProperties);
}
/// <summary>
@ -85,21 +90,21 @@ namespace ICSharpCode.PythonBinding @@ -85,21 +90,21 @@ namespace ICSharpCode.PythonBinding
/// <param name="component">The root component in the designer host.</param>
/// <param name="document">The document that the generated code will be merged into.</param>
/// <param name="parseInfo">The current compilation unit for the <paramref name="document"/>.</param>
public static void Merge(IComponent component, IDocument document, ICompilationUnit compilationUnit)
public static void Merge(IComponent component, IDocument document, ICompilationUnit compilationUnit, ITextEditorProperties textEditorProperties)
{
// Get the document's initialize components method.
IMethod method = GetInitializeComponents(compilationUnit);
// Generate the python source code.
PythonForm pythonForm = new PythonForm("\t");
PythonForm pythonForm = new PythonForm(NRefactoryToPythonConverter.GetIndentString(textEditorProperties));
int indent = method.Region.BeginColumn;
string methodBody = pythonForm.GenerateInitializeComponentMethodBody(component as Form, indent);
Console.WriteLine("GeneratedCode: " + methodBody);
// Merge the code.
DomRegion methodRegion = GetBodyRegionInDocument(method);
int startOffset = document.PositionToOffset(new TextLocation(methodRegion.BeginColumn - 1, methodRegion.BeginLine - 1));
int endOffset = document.PositionToOffset(new TextLocation(methodRegion.EndColumn - 1, methodRegion.EndLine - 1));
int startOffset = GetStartOffset(document, methodRegion);
int endOffset = GetEndOffset(document, methodRegion);
document.Replace(startOffset, endOffset - startOffset, methodBody);
}
@ -232,5 +237,26 @@ namespace ICSharpCode.PythonBinding @@ -232,5 +237,26 @@ namespace ICSharpCode.PythonBinding
{
return unit.Classes[0];
}
/// <summary>
/// Gets the start offset of the region.
/// </summary>
static int GetStartOffset(IDocument document, DomRegion region)
{
return document.PositionToOffset(new TextLocation(region.BeginColumn - 1, region.BeginLine - 1));
}
/// <summary>
/// Gets the end offset of the region.
/// </summary>
static int GetEndOffset(IDocument document, DomRegion region)
{
TextLocation endLocation = new TextLocation(region.EndColumn - 1, region.EndLine - 1);
if (endLocation.Line >= document.TotalNumberOfLines) {
// At end of document.
return document.TextLength;
}
return document.PositionToOffset(endLocation);
}
}
}

33
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoader.cs

@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
using System;
using System.CodeDom;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Security.Permissions;
@ -26,7 +27,8 @@ namespace ICSharpCode.PythonBinding @@ -26,7 +27,8 @@ namespace ICSharpCode.PythonBinding
public class PythonDesignerLoader : BasicDesignerLoader, IComponentCreator
{
IPythonDesignerGenerator generator;
IDesignerSerializationManager serializationManager;
public PythonDesignerLoader(IPythonDesignerGenerator generator)
{
if (generator == null) {
@ -52,6 +54,30 @@ namespace ICSharpCode.PythonBinding @@ -52,6 +54,30 @@ namespace ICSharpCode.PythonBinding
return base.LoaderHost.CreateComponent(componentClass, name);
}
/// <summary>
/// Adds a component.
/// </summary>
public void Add(IComponent component, string name)
{
base.LoaderHost.Container.Add(component, name);
}
/// <summary>
/// Creates a new instance of the specified type.
/// </summary>
public object CreateInstance(Type type, ICollection arguments, string name, bool addToContainer)
{
return serializationManager.CreateInstance(type, arguments, name, addToContainer);
}
/// <summary>
/// Gets the type given its name.
/// </summary>
public Type GetType(string typeName)
{
return serializationManager.GetType(typeName);
}
/// <summary>
/// Passes the designer host's root component to the generator so it can update the
/// source code with changes made at design time.
@ -64,8 +90,9 @@ namespace ICSharpCode.PythonBinding @@ -64,8 +90,9 @@ namespace ICSharpCode.PythonBinding
protected override void PerformLoad(IDesignerSerializationManager serializationManager)
{
// Create designer root object.
PythonFormVisitor visitor = new PythonFormVisitor();
visitor.CreateForm("abc", this);
this.serializationManager = serializationManager;
PythonFormWalker visitor = new PythonFormWalker(this);
visitor.CreateForm(generator.ViewContent.DesignerCodeFileContent);
}
}
}

1
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonForm.cs

@ -65,6 +65,7 @@ namespace ICSharpCode.PythonBinding @@ -65,6 +65,7 @@ namespace ICSharpCode.PythonBinding
AppendControl(form);
AppendIndentedLine("self.ResumeLayout(False)");
AppendIndentedLine("self.PerformLayout()");
}
void AppendControl(Control control)

33
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonFormVisitor.cs

@ -1,33 +0,0 @@ @@ -1,33 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Drawing;
using System.Windows.Forms;
namespace ICSharpCode.PythonBinding
{
/// <summary>
/// Description of PythonFormVisitor.
/// </summary>
public class PythonFormVisitor
{
public PythonFormVisitor()
{
}
/// <summary>
/// Creates a form from python code.
/// </summary>
public Form CreateForm(string pythonCode, IComponentCreator componentCreator)
{
Form form = (Form)componentCreator.CreateComponent(typeof(Form), "MainForm");
form.Name = "MainForm";
return form;
}
}
}

196
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonFormWalker.cs

@ -0,0 +1,196 @@ @@ -0,0 +1,196 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
using IronPython.Compiler.Ast;
namespace ICSharpCode.PythonBinding
{
/// <summary>
/// Visits the code's Python AST and creates a Windows Form.
/// </summary>
public class PythonFormWalker : PythonWalker
{
Form form;
PythonControlFieldExpression fieldExpression;
IComponentCreator componentCreator;
bool walkingAssignment;
Dictionary<string, object> createdObjects = new Dictionary<string, object>();
public PythonFormWalker(IComponentCreator componentCreator)
{
this.componentCreator = componentCreator;
}
/// <summary>
/// Creates a form from python code.
/// </summary>
public Form CreateForm(string pythonCode)
{
PythonParser parser = new PythonParser();
PythonAst ast = parser.CreateAst(@"Form.py", pythonCode);
ast.Walk(this);
// Did we find the InitializeComponent method?
if (form == null) {
throw new PythonFormWalkerException("Unable to find InitializeComponents method.");
}
return form;
}
public override bool Walk(ClassDefinition node)
{
if (node.Body != null) {
node.Body.Walk(this);
}
return false;
}
public override bool Walk(FunctionDefinition node)
{
if (IsInitializeComponentMethod(node)) {
form = (Form)componentCreator.CreateComponent(typeof(Form), "MainForm");
node.Body.Walk(this);
}
return false;
}
public override bool Walk(AssignmentStatement node)
{
if (node.Left.Count > 0) {
MemberExpression memberExpression = node.Left[0] as MemberExpression;
if (memberExpression != null) {
fieldExpression = PythonControlFieldExpression.Create(memberExpression);
walkingAssignment = true;
node.Right.Walk(this);
walkingAssignment = false;
}
}
return false;
}
public override bool Walk(ConstantExpression node)
{
Control control = GetCurrentControl();
SetPropertyValue(control, fieldExpression.MemberName, node.Value);
return false;
}
Control GetCurrentControl()
{
string variableName = PythonControlFieldExpression.GetVariableNameFromSelfReference(fieldExpression.FullMemberName);
if (variableName.Length > 0) {
return GetControl(variableName);
}
return form;
}
public override bool Walk(CallExpression node)
{
MemberExpression memberExpression = node.Target as MemberExpression;
if (memberExpression != null) {
string name = PythonControlFieldExpression.GetMemberName(memberExpression);
if (walkingAssignment) {
Type type = GetType(name);
List<object> args = GetArguments(node);
object instance = componentCreator.CreateInstance(type, args, fieldExpression.MemberName, false);
if (!SetPropertyValue(form, fieldExpression.MemberName, instance)) {
AddComponent(fieldExpression.MemberName, instance);
}
} else if (name == "self.Controls.Add") {
string controlName = PythonControlFieldExpression.GetControlNameBeingAdded(node);
form.Controls.Add(GetControl(controlName));
}
}
return false;
}
/// <summary>
/// Gets the arguments passed to the call expression.
/// </summary>
static List<object> GetArguments(CallExpression expression)
{
List<object> args = new List<object>();
foreach (Arg a in expression.Args) {
ConstantExpression constantExpression = a.Expression as ConstantExpression;
if (constantExpression != null) {
args.Add(constantExpression.Value);
}
}
return args;
}
static bool IsInitializeComponentMethod(FunctionDefinition node)
{
string name = node.Name.ToString().ToLowerInvariant();
return name == "initializecomponent" || name == "initializecomponents";
}
/// <summary>
/// Sets the value of a form's property.
/// </summary>
bool SetPropertyValue(Control control, string name, object @value)
{
PropertyInfo propertyInfo = control.GetType().GetProperty(name);
if (propertyInfo != null) {
propertyInfo.SetValue(control, @value, null);
return true;
}
return false;
}
Type GetType(string typeName)
{
Type type = componentCreator.GetType(typeName);
if (type == null) {
throw new PythonFormWalkerException(String.Format("Could not find type '{0}'.", typeName));
}
return type;
}
/// <summary>
/// Looks for the control with the specified name in the objects that have been
/// created whilst processing the InitializeComponent method.
/// </summary>
Control GetControl(string name)
{
object o = null;
if (createdObjects.TryGetValue(name, out o)) {
return o as Control;
}
return null;
}
/// <summary>
/// Adds a component to the list of created objects.
/// </summary>
void AddComponent(string name, object component)
{
string variableName = PythonControlFieldExpression.GetVariableName(name);
componentCreator.Add(component as IComponent, variableName);
createdObjects.Add(variableName, component);
}
static string GetFirstArgumentAsString(CallExpression node)
{
List<object> args = GetArguments(node);
if (args.Count > 0) {
return args[0] as String;
}
return null;
}
}
}

21
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonFormWalkerException.cs

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
namespace ICSharpCode.PythonBinding
{
/// <summary>
/// Exception thrown by the PythonFormWalker class.
/// </summary>
public class PythonFormWalkerException : Exception
{
public PythonFormWalkerException(string message) : base(message)
{
}
}
}

11
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonFormsDesignerDisplayBinding.cs

@ -7,12 +7,14 @@ @@ -7,12 +7,14 @@
using System;
using System.IO;
using ICSharpCode.FormsDesigner;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
namespace ICSharpCode.PythonBinding
{
@ -44,8 +46,13 @@ namespace ICSharpCode.PythonBinding @@ -44,8 +46,13 @@ namespace ICSharpCode.PythonBinding
}
return false;
}
public IViewContent[] CreateSecondaryViewContent(IViewContent viewContent)
{
return CreateSecondaryViewContent(viewContent, SharpDevelopTextEditorProperties.Instance);
}
public IViewContent[] CreateSecondaryViewContent(IViewContent viewContent, ITextEditorProperties textEditorProperties)
{
foreach (IViewContent existingView in viewContent.SecondaryViewContents) {
if (existingView.GetType() == typeof(FormsDesignerViewContent)) {
@ -54,7 +61,7 @@ namespace ICSharpCode.PythonBinding @@ -54,7 +61,7 @@ namespace ICSharpCode.PythonBinding
}
IDesignerLoaderProvider loader = new PythonDesignerLoaderProvider();
IDesignerGenerator generator = new PythonDesignerGenerator();
IDesignerGenerator generator = new PythonDesignerGenerator(textEditorProperties);
return new IViewContent[] { new FormsDesignerViewContent(viewContent, loader, generator) };
}

33
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonParser.cs

@ -75,30 +75,35 @@ namespace ICSharpCode.PythonBinding @@ -75,30 +75,35 @@ namespace ICSharpCode.PythonBinding
return false;
}
/// <summary>
/// Parses a python file and creates a PythonAst.
/// </summary>
public PythonAst CreateAst(string fileName, string fileContent)
{
if (scriptEngine == null) {
scriptEngine = IronPython.Hosting.Python.CreateEngine();
}
PythonCompilerSink sink = new PythonCompilerSink();
SourceUnit source = DefaultContext.DefaultPythonContext.CreateFileUnit(fileName, fileContent);
CompilerContext context = new CompilerContext(source, new PythonCompilerOptions(), sink);
using (Parser parser = Parser.CreateParser(context, new PythonOptions())) {
return parser.ParseFile(false);
}
}
/// <summary>
/// Parses the python code and returns an ICompilationUnit.
/// </summary>
public ICompilationUnit Parse(IProjectContent projectContent, string fileName, string fileContent)
{
if (fileContent != null) {
// try {
if (scriptEngine == null) {
scriptEngine = IronPython.Hosting.Python.CreateEngine();
}
PythonCompilerSink sink = new PythonCompilerSink();
SourceUnit source = DefaultContext.DefaultPythonContext.CreateFileUnit(fileName, fileContent);
CompilerContext context = new CompilerContext(source, new PythonCompilerOptions(), sink);
Parser parser = Parser.CreateParser(context, new PythonOptions());
PythonAst ast = parser.ParseFile(false);
PythonAst ast = CreateAst(fileName, fileContent);
PythonAstWalker walker = new PythonAstWalker(projectContent, fileName);
walker.Walk(ast);
return walker.CompilationUnit;
// } catch (PythonSyntaxErrorException) {
// Ignore parsing errors
// }
}
DefaultCompilationUnit compilationUnit = new DefaultCompilationUnit(projectContent);
compilationUnit.FileName = fileName;
return compilationUnit;

22
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonResolver.cs

@ -281,17 +281,17 @@ namespace ICSharpCode.PythonBinding @@ -281,17 +281,17 @@ namespace ICSharpCode.PythonBinding
/// </summary>
LocalResolveResult GetLocalVariable(string expression, string fileName, string fileContent)
{
PythonVariableResolver resolver = new PythonVariableResolver();
string typeName = resolver.Resolve(expression, fileName, fileContent);
if (typeName != null) {
IClass resolvedClass = GetClass(typeName);
if (resolvedClass != null) {
DefaultClass dummyClass = new DefaultClass(DefaultCompilationUnit.DummyCompilationUnit, "Global");
DefaultMethod dummyMethod = new DefaultMethod(dummyClass, String.Empty);
DefaultField.LocalVariableField field = new DefaultField.LocalVariableField(resolvedClass.DefaultReturnType, expression, DomRegion.Empty, dummyClass);
return new LocalResolveResult(dummyMethod, field);
}
}
// PythonVariableResolver resolver = new PythonVariableResolver();
// string typeName = resolver.Resolve(expression, fileName, fileContent);
// if (typeName != null) {
// IClass resolvedClass = GetClass(typeName);
// if (resolvedClass != null) {
// DefaultClass dummyClass = new DefaultClass(DefaultCompilationUnit.DummyCompilationUnit, "Global");
// DefaultMethod dummyMethod = new DefaultMethod(dummyClass, String.Empty);
// DefaultField.LocalVariableField field = new DefaultField.LocalVariableField(resolvedClass.DefaultReturnType, expression, DomRegion.Empty, dummyClass);
// return new LocalResolveResult(dummyMethod, field);
// }
// }
return null;
}
}

40
src/AddIns/BackendBindings/Python/PythonBinding/Test/AddInFileTestFixture.cs

@ -45,6 +45,8 @@ namespace PythonBinding.Tests @@ -45,6 +45,8 @@ namespace PythonBinding.Tests
Runtime formsDesignerRuntime;
Codon displayBindingCodon;
Codon convertCodeCodon;
Codon pythonFileIconCodon;
Codon pythonProjectIconCodon;
[TestFixtureSetUp]
public void SetupFixture()
@ -72,6 +74,8 @@ namespace PythonBinding.Tests @@ -72,6 +74,8 @@ namespace PythonBinding.Tests
compilingOptionsCodon = GetCodon("/SharpDevelop/BackendBindings/ProjectOptions/Python", "CompilingOptions");
debugOptionsCodon = GetCodon("/SharpDevelop/BackendBindings/ProjectOptions/Python", "DebugOptions");
convertCodeCodon = GetCodon("/SharpDevelop/Workbench/MainMenu/Tools/ConvertCode", "ConvertToPython");
pythonFileIconCodon = GetCodon("/Workspace/Icons", "PythonFileIcon");
pythonProjectIconCodon = GetCodon("/Workspace/Icons", "PythonProjectIcon");
// Get the PythonBinding runtime.
foreach (Runtime runtime in addin.Runtimes) {
@ -610,7 +614,43 @@ namespace PythonBinding.Tests @@ -610,7 +614,43 @@ namespace PythonBinding.Tests
Assert.AreEqual(".cs", csharpCondition["activeextension"]);
Assert.AreEqual(".vb", vbnetCondition["activeextension"]);
}
[Test]
public void PythonFileIconCodonExists()
{
Assert.IsNotNull(pythonFileIconCodon);
}
[Test]
public void PythonFileIconCodonExtensions()
{
Assert.AreEqual(".py", pythonFileIconCodon["extensions"]);
}
[Test]
public void PythonFileIconCodonResource()
{
Assert.AreEqual("Python.ProjectBrowser.File", pythonFileIconCodon["resource"]);
}
[Test]
public void PythonProjectIconCodonExists()
{
Assert.IsNotNull(pythonProjectIconCodon);
}
[Test]
public void PythonProjectIconCodonLanguage()
{
Assert.AreEqual("Python", pythonProjectIconCodon["language"]);
}
[Test]
public void PythonProjectIconCodonResource()
{
Assert.AreEqual("Python.ProjectBrowser.Project", pythonProjectIconCodon["resource"]);
}
/// <summary>
/// Gets the codon with the specified extension path and name.
/// </summary>

12
src/AddIns/BackendBindings/Python/PythonBinding/Test/CompilingOptionsPanelTestFixture.cs

@ -117,6 +117,18 @@ namespace PythonBinding.Tests @@ -117,6 +117,18 @@ namespace PythonBinding.Tests
Assert.IsTrue(compilingOptionsPanel.ConfigurationSelectorAddedToControl);
}
[Test]
public void TargetCpuComboxBoxAdded()
{
Assert.IsTrue(compilingOptionsPanel.IsTargetCpuComboBoxCreated);
}
[Test]
public void TargetCpuComboxBoxLocationButtonCreated()
{
Assert.IsTrue(compilingOptionsPanel.IsLocationButtonCreated("targetCpuComboBox"));
}
BrowseFolderButtonInfo GetOutputPathBrowseFolderInfo()
{
return compilingOptionsPanel.GetBrowseFolderButtonInfo("outputPathBrowseButton");

3
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/GenerateSimpleFormTestFixture.cs

@ -42,7 +42,8 @@ namespace PythonBinding.Tests.Designer @@ -42,7 +42,8 @@ namespace PythonBinding.Tests.Designer
" # \r\n" +
" self.ClientSize = System.Drawing.Size(284, 264)\r\n" +
" self.Name = \"MainForm\"\r\n" +
" self.ResumeLayout(False)\r\n";
" self.ResumeLayout(False)\r\n" +
" self.PerformLayout()\r\n";
Assert.AreEqual(expectedCode, generatedPythonCode);
}

8
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/GeneratorMergeFindsInitializeComponentsTestFixture.cs

@ -35,6 +35,7 @@ namespace PythonBinding.Tests.Designer @@ -35,6 +35,7 @@ namespace PythonBinding.Tests.Designer
[TestFixtureSetUp]
public void SetUpFixture()
{
MockTextEditorProperties textEditorProperties = new MockTextEditorProperties();
generator = new DerivedPythonDesignerGenerator();
mockViewContent = new MockTextEditorViewContent();
viewContent = new FormsDesignerViewContent(mockViewContent, new MockOpenedFile("Test.py"));
@ -95,7 +96,9 @@ namespace PythonBinding.Tests.Designer @@ -95,7 +96,9 @@ namespace PythonBinding.Tests.Designer
"\t\t# \r\n" +
"\t\tself.ClientSize = System.Drawing.Size(499, 309)\r\n" +
"\t\tself.Name = \"MainForm\"\r\n" +
"\t\tself.ResumeLayout(False)\r\n";
"\t\tself.ResumeLayout(False)\r\n" +
"\t\tself.PerformLayout()\r\n";
Assert.AreEqual(expectedText, viewContent.DesignerCodeFileContent);
}
@ -123,7 +126,8 @@ namespace PythonBinding.Tests.Designer @@ -123,7 +126,8 @@ namespace PythonBinding.Tests.Designer
"\t\tself.SuspendLayout()\r\n" +
"\t\tself.ClientSize = System.Drawing.Size(499, 309)\r\n" +
"\t\tself.Name = 'MainForm'\r\n" +
"\t\tself.ResumeLayout(False)\r\n";
"\t\tself.ResumeLayout(False)\r\n" +
"\t\tself.PerformLayout()\r\n";
}
}
}

62
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadFormTestFixtureBase.cs

@ -6,9 +6,13 @@ @@ -6,9 +6,13 @@
// </file>
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Reflection;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using PythonBinding.Tests.Utils;
@ -20,6 +24,9 @@ namespace PythonBinding.Tests.Designer @@ -20,6 +24,9 @@ namespace PythonBinding.Tests.Designer
public class LoadFormTestFixtureBase : IComponentCreator
{
List <CreatedComponent> createdComponents = new List<CreatedComponent>();
List <CreatedInstance> createdInstances = new List<CreatedInstance>();
List <AddedComponent> addedComponents = new List<AddedComponent>();
List<string> typeNames = new List<string>();
public LoadFormTestFixtureBase()
{
@ -31,12 +38,65 @@ namespace PythonBinding.Tests.Designer @@ -31,12 +38,65 @@ namespace PythonBinding.Tests.Designer
createdComponents.Add(c);
object instance = componentClass.Assembly.CreateInstance(componentClass.FullName);
Control control = instance as Control;
return (IComponent)instance;
}
public void Add(IComponent component, string name)
{
AddedComponent addedComponent = new AddedComponent(component, name);
addedComponents.Add(addedComponent);
}
public object CreateInstance(Type type, ICollection arguments, string name, bool addToContainer)
{
CreatedInstance createdInstance = new CreatedInstance(type, arguments, name, addToContainer);
createdInstances.Add(createdInstance);
object[] argumentsArray = new object[arguments.Count];
arguments.CopyTo(argumentsArray, 0);
object o = type.Assembly.CreateInstance(type.FullName, true, BindingFlags.CreateInstance, null, argumentsArray, null, new object[0]);
createdInstance.Object = o;
return o;
}
public Type GetType(string typeName)
{
typeNames.Add(typeName);
// Lookup type in System.Windows.Forms assembly.
Type type = typeof(Form).Assembly.GetType(typeName);
if (type == null) {
// Lookup type System.Drawing assembly.
type = typeof(Size).Assembly.GetType(typeName);
}
return type;
}
protected List<CreatedComponent> CreatedComponents {
get { return createdComponents; }
}
protected List<AddedComponent> AddedComponents {
get { return addedComponents; }
}
protected List<CreatedInstance> CreatedInstances {
get { return createdInstances; }
}
protected List<string> TypeNames {
get { return typeNames; }
}
protected CreatedInstance GetCreatedInstance(Type type)
{
foreach (CreatedInstance instance in createdInstances) {
if (instance.InstanceType == type) {
return instance;
}
}
return null;
}
}
}

67
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadSimpleFormTestFixture.cs

@ -6,9 +6,11 @@ @@ -6,9 +6,11 @@
// </file>
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
@ -18,26 +20,35 @@ namespace PythonBinding.Tests.Designer @@ -18,26 +20,35 @@ namespace PythonBinding.Tests.Designer
[TestFixture]
public class LoadSimpleFormTestFixture : LoadFormTestFixtureBase
{
string pythonCode = "def InitializeComponent(self):\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # MainForm\r\n" +
" # \r\n" +
" self.ClientSize = System.Drawing.Size(284, 264)\r\n" +
" self.Name = \"MainForm\"\r\n" +
" self.ResumeLayout(False)\r\n";
string pythonCode = "class MainForm(System.Windows.Forms.Form):\r\n" +
" def InitializeComponent(self):\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # MainForm\r\n" +
" # \r\n" +
" self.ClientSize = System.Drawing.Size(300, 400)\r\n" +
" self.Name = \"MainForm\"\r\n" +
" self.ResumeLayout(False)\r\n";
Form form;
CreatedComponent formComponent;
string typeName;
CreatedInstance instance;
[TestFixtureSetUp]
public void SetUpFixture()
{
PythonFormVisitor visitor = new PythonFormVisitor();
form = visitor.CreateForm(pythonCode, this);
PythonFormWalker walker = new PythonFormWalker(this);
form = walker.CreateForm(pythonCode);
if (CreatedComponents.Count > 0) {
formComponent = CreatedComponents[0];
}
if (TypeNames.Count > 0) {
typeName = TypeNames[0];
}
if (CreatedInstances.Count > 0) {
instance = CreatedInstances[0];
}
}
[TestFixtureTearDown]
@ -74,6 +85,42 @@ namespace PythonBinding.Tests.Designer @@ -74,6 +85,42 @@ namespace PythonBinding.Tests.Designer
public void ComponentType()
{
Assert.AreEqual("System.Windows.Forms.Form", formComponent.TypeName);
}
[Test]
public void FormClientSize()
{
Size size = new Size(300, 400);
Assert.AreEqual(size, form.ClientSize);
}
/// <summary>
/// The System.Drawing.Size type name should have been looked up by the PythonFormWalker when
/// parsing the InitializeComponent method.
/// </summary>
[Test]
public void TypeNameLookedUp()
{
Assert.AreEqual("System.Drawing.Size", typeName);
}
[Test]
public void OneObjectCreated()
{
Assert.AreEqual(1, CreatedInstances.Count);
}
[Test]
public void InstanceType()
{
List<object> args = new List<object>();
int width = 300;
int height = 400;
args.Add(width);
args.Add(height);
CreatedInstance expectedInstance = new CreatedInstance(typeof(Size), args, "ClientSize", false);
Assert.AreEqual(expectedInstance, instance);
}
}
}

92
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadTextBoxTestFixture.cs

@ -0,0 +1,92 @@ @@ -0,0 +1,92 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
[TestFixture]
public class LoadTextBoxTestFixture : LoadFormTestFixtureBase
{
string pythonCode = "class MainForm(System.Windows.Forms.Form):\r\n" +
" def InitializeComponent(self):\r\n" +
" self._textBox1 = System.Windows.Forms.TextBox()\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # textBox1\r\n" +
" # \r\n" +
" self._textBox1.Name = \"textBoxName\"\r\n" +
" # \r\n" +
" # form1\r\n" +
" # \r\n" +
" self.Name = \"form1\"\r\n" +
" self.Controls.Add(self._textBox1)\r\n" +
" self.ResumeLayout(False)\r\n";
Form form;
TextBox textBox;
[TestFixtureSetUp]
public void SetUpFixture()
{
PythonFormWalker walker = new PythonFormWalker(this);
form = walker.CreateForm(pythonCode);
if (form.Controls.Count > 0) {
textBox = form.Controls[0] as TextBox;
}
}
[TestFixtureTearDown]
public void TearDownFixture()
{
form.Dispose();
}
[Test]
public void TextBoxInstanceCreated()
{
CreatedInstance instance = new CreatedInstance(typeof(TextBox), new List<object>(), "_textBox1", false);
Assert.Contains(instance, CreatedInstances);
}
[Test]
public void AddedComponentsContainsTextBox()
{
CreatedInstance instance = GetCreatedInstance(typeof(TextBox));
AddedComponent component = new AddedComponent(instance.Object as IComponent, "textBox1");
Assert.Contains(component, AddedComponents);
}
[Test]
public void TextBoxAddedToForm()
{
Assert.IsNotNull(textBox);
}
[Test]
public void TextBoxObjectMatchesObjectAddedToComponentCreator()
{
CreatedInstance instance = GetCreatedInstance(typeof(TextBox));
Assert.AreSame(textBox, instance.Object as TextBox);
}
[Test]
public void TextBoxName()
{
Assert.AreEqual("textBoxName", textBox.Name);
}
}
}

42
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/MergeFormTestFixture.cs

@ -7,7 +7,10 @@ @@ -7,7 +7,10 @@
using System;
using System.CodeDom;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.TextEditor;
@ -22,7 +25,6 @@ namespace PythonBinding.Tests.Designer @@ -22,7 +25,6 @@ namespace PythonBinding.Tests.Designer
/// can merge the changes into the text editor.
/// </summary>
[TestFixture]
[Ignore("Not ported")]
public class MergeFormTestFixture
{
IDocument document;
@ -30,25 +32,26 @@ namespace PythonBinding.Tests.Designer @@ -30,25 +32,26 @@ namespace PythonBinding.Tests.Designer
[TestFixtureSetUp]
public void SetUpFixture()
{
// using (TextEditorControl textEditor = new TextEditorControl()) {
// document = textEditor.Document;
// textEditor.Text = GetTextEditorCode();
//
// PythonParser parser = new PythonParser();
// ICompilationUnit textEditorCompileUnit = parser.Parse(new DefaultProjectContent(), @"test.py", document.TextContent);
//
// PythonProvider provider = new PythonProvider();
// CodeCompileUnit unit = provider.Parse(new StringReader(GetGeneratedCode()));
// GeneratedInitializeComponentMethod initComponentMethod = GeneratedInitializeComponentMethod.GetGeneratedInitializeComponentMethod(unit);
// initComponentMethod.Merge(document, textEditorCompileUnit);
// }
using (TextEditorControl textEditor = new TextEditorControl()) {
document = textEditor.Document;
textEditor.Text = GetTextEditorCode();
PythonParser parser = new PythonParser();
ICompilationUnit compilationUnit = parser.Parse(new DefaultProjectContent(), @"test.py", document.TextContent);
using (Form form = new Form()) {
form.Name = "MainForm";
form.ClientSize = new Size(499, 309);
PythonDesignerGenerator.Merge(form, document, compilationUnit, new MockTextEditorProperties());
}
}
}
[Test]
public void MergedDocumentText()
{
string expectedText = GetTextEditorCode().Replace(GetTextEditorInitializeComponentMethod(), GetGeneratedInitializeComponentMethod());
Assert.AreEqual(expectedText, document.TextContent);
}
@ -67,14 +70,13 @@ namespace PythonBinding.Tests.Designer @@ -67,14 +70,13 @@ namespace PythonBinding.Tests.Designer
{
return "\tdef InitializeComponent(self):\r\n" +
"\t\tself.SuspendLayout()\r\n" +
"\t\t#\r\n" +
"\t\t# \r\n" +
"\t\t# MainForm\r\n" +
"\t\t#\r\n" +
"\t\tself.AutoScaleDimensions = System.Drawing.SizeF(6, 13)\r\n" +
"\t\tself.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font\r\n" +
"\t\t# \r\n" +
"\t\tself.ClientSize = System.Drawing.Size(499, 309)\r\n" +
"\t\tself.Name = 'MainForm'\r\n" +
"\t\tself.ResumeLayout(False)\r\n";
"\t\tself.Name = \"MainForm\"\r\n" +
"\t\tself.ResumeLayout(False)\r\n" +
"\t\tself.PerformLayout()\r\n";
}
string GetTextEditorCode()

70
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/MissingInitializeComponentMethodTestFixture.cs

@ -0,0 +1,70 @@ @@ -0,0 +1,70 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using IronPython.Compiler.Ast;
using Microsoft.Scripting;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
/// <summary>
/// Tests that the PythonFormVisitor throws an exception if no InitializeComponent or
/// InitializeComponent method can be found.
/// </summary>
[TestFixture]
public class MissingInitializeComponentMethodTestFixture : LoadFormTestFixtureBase
{
string pythonCode = "from System.Windows.Forms import Form\r\n" +
"\r\n" +
"class MainForm(System.Windows.Forms.Form):\r\n" +
" def __init__(self):\r\n" +
" self.MissingMethod()\r\n" +
"\r\n" +
" def MissingMethod(self):\r\n" +
" pass\r\n";
[Test]
[ExpectedException(typeof(PythonFormWalkerException))]
public void PythonFormWalkerExceptionThrown()
{
PythonFormWalker walker = new PythonFormWalker(this);
walker.CreateForm(pythonCode);
Assert.Fail("Exception should have been thrown before this.");
}
/// <summary>
/// Check that the PythonFormWalker does not try to walk the class body if it is null.
/// </summary>
[Test]
public void ClassWithNoBody()
{
ClassDefinition classDef = new ClassDefinition(new SymbolId(10), null, null);
PythonFormWalker walker = new PythonFormWalker(this);
walker.Walk(classDef);
}
/// <summary>
/// Make sure we do not get an ArgumentOutOfRangeException when walking the
/// AssignmentStatement.
/// </summary>
[Test]
public void NoLeftHandSideExpressionsInAssignment()
{
List<Expression> lhs = new List<Expression>();
AssignmentStatement assign = new AssignmentStatement(lhs.ToArray(), null);
PythonFormWalker walker = new PythonFormWalker(this);
walker.Walk(assign);
}
}
}

87
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/NoNewLineAfterInitializeComponentTestFixture.cs

@ -0,0 +1,87 @@ @@ -0,0 +1,87 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.CodeDom;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
/// <summary>
/// Tests the code can be generated if there is no new line after the InitializeComponent method.
/// </summary>
[TestFixture]
public class NoNewLineAfterInitializeComponentMethodTestFixture
{
IDocument document;
[TestFixtureSetUp]
public void SetUpFixture()
{
using (TextEditorControl textEditor = new TextEditorControl()) {
document = textEditor.Document;
textEditor.Text = GetTextEditorCode();
PythonParser parser = new PythonParser();
ICompilationUnit compilationUnit = parser.Parse(new DefaultProjectContent(), @"test.py", document.TextContent);
using (Form form = new Form()) {
form.Name = "MainForm";
form.ClientSize = new Size(499, 309);
PythonDesignerGenerator.Merge(form, document, compilationUnit, new MockTextEditorProperties());
}
}
}
[Test]
public void GeneratedCode()
{
string expectedCode = "from System.Windows.Forms import Form\r\n" +
"\r\n" +
"class MainForm(Form):\r\n" +
"\tdef __init__(self):\r\n" +
"\t\tself.InitializeComponent()\r\n" +
"\t\r\n" +
"\tdef InitializeComponent(self):\r\n" +
"\t\tself.SuspendLayout()\r\n" +
"\t\t# \r\n" +
"\t\t# MainForm\r\n" +
"\t\t# \r\n" +
"\t\tself.ClientSize = System.Drawing.Size(499, 309)\r\n" +
"\t\tself.Name = \"MainForm\"\r\n" +
"\t\tself.ResumeLayout(False)\r\n" +
"\t\tself.PerformLayout()\r\n";
Assert.AreEqual(expectedCode, document.TextContent);
}
/// <summary>
/// No new line after the pass statement for InitializeComponent method.
/// </summary>
string GetTextEditorCode()
{
return "from System.Windows.Forms import Form\r\n" +
"\r\n" +
"class MainForm(Form):\r\n" +
"\tdef __init__(self):\r\n" +
"\t\tself.InitializeComponent()\r\n" +
"\t\r\n" +
"\tdef InitializeComponent(self):\r\n" +
"\t\tpass";
}
}
}

2
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderProviderTestFixture.cs

@ -25,7 +25,7 @@ namespace PythonBinding.Tests.Designer @@ -25,7 +25,7 @@ namespace PythonBinding.Tests.Designer
public void SetUpFixture()
{
provider = new PythonDesignerLoaderProvider();
generator = new PythonDesignerGenerator();
generator = new PythonDesignerGenerator(null);
}
[Test]

4
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderTestFixture.cs

@ -132,9 +132,9 @@ namespace PythonBinding.Tests.Designer @@ -132,9 +132,9 @@ namespace PythonBinding.Tests.Designer
"\r\n" +
"class MainForm(Form):\r\n" +
"\tdef __init__(self):\r\n" +
"\t\tself.InitializeComponent()\r\n" +
"\t\tself.InitializeComponents()\r\n" +
"\t\r\n" +
"\tdef InitializeComponent(self):\r\n" +
"\tdef InitializeComponents(self):\r\n" +
"\t\tself.Name = 'MainForm'\r\n";
}
}

73
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/TextBoxNotAddedToFormTestFixture.cs

@ -0,0 +1,73 @@ @@ -0,0 +1,73 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
/// <summary>
/// When a text box is not added to the form's Control collection in InitializeComponent then:
///
/// 1) Text box should not be added to the form's Control collection when the form is created.
/// 2) Text box should be registered with the designer via the IComponentCreator.Add method.
/// 3) Text box should be created via the IComponentCreator.CreateInstance method.
/// </summary>
[TestFixture]
public class TextBoxNotAddedToFormTestFixture : LoadFormTestFixtureBase
{
string pythonCode = "class MainForm(System.Windows.Forms.Form):\r\n" +
" def InitializeComponent(self):\r\n" +
" self._textBox1 = System.Windows.Forms.TextBox()\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # textBox1\r\n" +
" # \r\n" +
" self._textBox1.Name = \"textBox1\"\r\n" +
" # \r\n" +
" # form1\r\n" +
" # \r\n" +
" self.ResumeLayout(False)\r\n";
Form form;
[TestFixtureSetUp]
public void SetUpFixture()
{
PythonFormWalker walker = new PythonFormWalker(this);
form = walker.CreateForm(pythonCode);
}
[TestFixtureTearDown]
public void TearDownFixture()
{
form.Dispose();
}
[Test]
public void AddedComponentsContainsTextBox()
{
CreatedInstance instance = GetCreatedInstance(typeof(TextBox));
AddedComponent c = new AddedComponent(instance.Object as IComponent, "textBox1");
Assert.Contains(c, AddedComponents);
}
[Test]
public void TextBoxIsNotAddedToForm()
{
Assert.AreEqual(0, form.Controls.Count);
}
}
}

86
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/TextEditorIndentPassedToGeneratorTestFixture.cs

@ -0,0 +1,86 @@ @@ -0,0 +1,86 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.CodeDom;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.FormsDesigner;
using ICSharpCode.PythonBinding;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
/// <summary>
/// Tests that the indent information in the ITextEditorProperties is passed to the generator.
/// </summary>
[TestFixture]
public class TextEditorIndentPassedToGeneratorTestFixture
{
IDocument document;
[TestFixtureSetUp]
public void SetUpFixture()
{
using (FormsDesignerViewContent viewContent = new FormsDesignerViewContent(null, new MockOpenedFile("Test.py"))) {
viewContent.DesignerCodeFileContent = "class MainForm(Form):\r\n" +
" def __init__(self):\r\n" +
" self.InitializeComponent()\r\n" +
"\r\n" +
" def InitializeComponent(self):\r\n" +
" pass\r\n";
document = viewContent.DesignerCodeFileDocument;
ParseInformation parseInfo = new ParseInformation();
PythonParser parser = new PythonParser();
ICompilationUnit compilationUnit = parser.Parse(new DefaultProjectContent(), @"test.py", document.TextContent);
parseInfo.SetCompilationUnit(compilationUnit);
using (Form form = new Form()) {
form.Name = "MainForm";
form.ClientSize = new Size(284, 264);
MockTextEditorProperties textEditorProperties = new MockTextEditorProperties();
textEditorProperties.ConvertTabsToSpaces = true;
textEditorProperties.IndentationSize = 1;
DerivedPythonDesignerGenerator generator = new DerivedPythonDesignerGenerator(textEditorProperties);
generator.ParseInfoToReturnFromParseFileMethod = parseInfo;
generator.Attach(viewContent);
generator.MergeRootComponentChanges(form);
}
}
}
[Test]
public void GeneratedCode()
{
string expectedCode = "class MainForm(Form):\r\n" +
" def __init__(self):\r\n" +
" self.InitializeComponent()\r\n" +
"\r\n" +
" def InitializeComponent(self):\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # MainForm\r\n" +
" # \r\n" +
" self.ClientSize = System.Drawing.Size(284, 264)\r\n" +
" self.Name = \"MainForm\"\r\n" +
" self.ResumeLayout(False)\r\n" +
" self.PerformLayout()\r\n";
Assert.AreEqual(expectedCode, document.TextContent);
}
}
}

46
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/UnknownTypeTestFixture.cs

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using IronPython.Compiler.Ast;
using Microsoft.Scripting;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
/// <summary>
/// Tests that the PythonFormWalker throws a PythonFormWalkerException if a unknown type is used in the
/// form.
/// </summary>
[TestFixture]
public class UnknownTypeTestFixture : LoadFormTestFixtureBase
{
string pythonCode = "from System.Windows.Forms import Form\r\n" +
"\r\n" +
"class MainForm(System.Windows.Forms.Form):\r\n" +
" def __init__(self):\r\n" +
" self.InitializeComponent()\r\n" +
"\r\n" +
" def InitializeComponent(self):\r\n" +
" self.ClientSize = Unknown.Type(10)\r\n";
[Test]
[ExpectedException(typeof(PythonFormWalkerException))]
public void PythonFormWalkerExceptionThrown()
{
PythonFormWalker walker = new PythonFormWalker(this);
walker.CreateForm(pythonCode);
Assert.Fail("Exception should have been thrown before this.");
}
}
}

4
src/AddIns/BackendBindings/Python/PythonBinding/Test/FormsDesignerDisplayBindingTestFixture.cs

@ -120,7 +120,7 @@ namespace PythonBinding.Tests @@ -120,7 +120,7 @@ namespace PythonBinding.Tests
public void CreatesPythonFormsDesigner()
{
MockTextEditorViewContent view = new MockTextEditorViewContent();
IViewContent[] views = displayBinding.CreateSecondaryViewContent(view);
IViewContent[] views = displayBinding.CreateSecondaryViewContent(view, new MockTextEditorProperties());
Assert.AreEqual(1, views.Length);
Assert.IsTrue(views[0] is FormsDesignerViewContent);
views[0].Dispose();
@ -133,7 +133,7 @@ namespace PythonBinding.Tests @@ -133,7 +133,7 @@ namespace PythonBinding.Tests
IViewContent[] views = null;
using (FormsDesignerViewContent formsDesigner = new FormsDesignerViewContent(view, new MockOpenedFile("test.py"))) {
view.SecondaryViewContents.Add(formsDesigner);
views = displayBinding.CreateSecondaryViewContent(view);
views = displayBinding.CreateSecondaryViewContent(view, new MockTextEditorProperties());
}
Assert.AreEqual(0, views.Length);
}

68
src/AddIns/BackendBindings/Python/PythonBinding/Test/Parsing/IronPythonParserTestFixture.cs

@ -1,68 +0,0 @@ @@ -1,68 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using Microsoft.Scripting.Runtime;
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.IO;
using IronPython;
using IronPython.Compiler;
using IronPython.Compiler.Ast;
using IronPython.Runtime;
using NUnit.Framework;
namespace PythonBinding.Tests.Parsing
{
/// <summary>
/// Tests the IronPython's parser.
/// </summary>
[TestFixture]
public class IronPythonParserTestFixture
{
/// <summary>
/// Cannot create PrintStatement for code com.
/// </summary>
// [Test]s
// public void Test()
// {
// string pythonScript = "print 'Hello'";
// PythonProvider provider = new PythonProvider();
// CodeCompileUnit unit = provider.Parse(new StringReader(pythonScript));
// }
[Test]
public void Test2()
{
// string pythonScript = "print 'Hello'";
// CompilerContext context = new CompilerContext();
// Parser parser = Parser.FromString(null, context, pythonScript);
// Statement statement = parser.ParseFileInput();
}
[Test]
public void Test3()
{
// string pythonScript = "Console.WriteLine";
// CompilerContext context = new CompilerContext();
// Parser parser = Parser.FromString(null, context, pythonScript);
// Statement statement = parser.ParseFileInput();
// ResolveVisitor visitor = new ResolveVisitor();
// statement.Walk(visitor);
// Console.WriteLine(statement.GetType().FullName);
}
}
public class ResolveVisitor : PythonWalker
{
public override bool Walk(NameExpression node)
{
System.Console.WriteLine("NameExpression: " + node.Name);
return true;
}
}
}

9
src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj

@ -160,13 +160,19 @@ @@ -160,13 +160,19 @@
<Compile Include="Designer\IsFullyQualifiedBaseClassFormDesignableTestFixture.cs" />
<Compile Include="Designer\LoadFormTestFixtureBase.cs" />
<Compile Include="Designer\LoadSimpleFormTestFixture.cs" />
<Compile Include="Designer\LoadTextBoxTestFixture.cs" />
<Compile Include="Designer\MergeFormTestFixture.cs" />
<Compile Include="Designer\MissingInitializeComponentMethodTestFixture.cs" />
<Compile Include="Designer\NoNewLineAfterInitializeComponentTestFixture.cs" />
<Compile Include="Designer\OneCompatibleMethodTestFixture.cs" />
<Compile Include="Designer\PythonGeneratorTestFixture.cs" />
<Compile Include="Designer\IsFormDesignableTestFixture.cs" />
<Compile Include="Designer\NullGeneratorPassedToLoader.cs" />
<Compile Include="Designer\PythonDesignerLoaderProviderTestFixture.cs" />
<Compile Include="Designer\PythonDesignerLoaderTestFixture.cs" />
<Compile Include="Designer\TextBoxNotAddedToFormTestFixture.cs" />
<Compile Include="Designer\TextEditorIndentPassedToGeneratorTestFixture.cs" />
<Compile Include="Designer\UnknownTypeTestFixture.cs" />
<Compile Include="Expressions\FindImportExpressionTestFixture.cs" />
<Compile Include="Expressions\FindSystemConsoleExpressionTestFixture.cs" />
<Compile Include="Expressions\RemoveLastPartTests.cs" />
@ -177,7 +183,6 @@ @@ -177,7 +183,6 @@
<Compile Include="ImportCompletionTestFixture.cs" />
<Compile Include="LanguageBindingTestFixture.cs" />
<Compile Include="Parsing\ClassWithBaseClassTestFixture.cs" />
<Compile Include="Parsing\IronPythonParserTestFixture.cs" />
<Compile Include="Parsing\MethodWithParametersTestFixture.cs" />
<Compile Include="Parsing\MissingLastParameterFromMethodTestFixture.cs" />
<Compile Include="Parsing\ParseClassWithCtorTestFixture.cs" />
@ -207,9 +212,11 @@ @@ -207,9 +212,11 @@
<Compile Include="Resolver\ResolveUnknownNamespaceTestFixture.cs" />
<Compile Include="RunPythonCommandTestFixture.cs" />
<Compile Include="StopPythonCommandTestFixture.cs" />
<Compile Include="Utils\AddedComponent.cs" />
<Compile Include="Utils\BrowseButtonInfo.cs" />
<Compile Include="Utils\BrowseFolderButtonInfo.cs" />
<Compile Include="Utils\CreatedComponent.cs" />
<Compile Include="Utils\CreatedInstance.cs" />
<Compile Include="Utils\DerivedAddInOptions.cs" />
<Compile Include="Utils\DerivedApplicationSettingsPanel.cs" />
<Compile Include="Utils\DerivedCompilingOptionsPanel.cs" />

1
src/AddIns/BackendBindings/Python/PythonBinding/Test/Resolver/ResolveLocalClassInstanceTestFixture.cs

@ -23,6 +23,7 @@ namespace PythonBinding.Tests.Resolver @@ -23,6 +23,7 @@ namespace PythonBinding.Tests.Resolver
/// Check that the type of "a" can be obtained by the resolver.
/// </summary>
[TestFixture]
[Ignore("Disabled local variable resolution for SD 3.0")]
public class ResolveLocalClassInstanceTestFixture
{
PythonResolver resolver;

54
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/AddedComponent.cs

@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.ComponentModel;
namespace PythonBinding.Tests.Utils
{
/// <summary>
/// Component passed to the IComponentCreator.Add method.
/// </summary>
public class AddedComponent
{
public AddedComponent(IComponent component, string name)
{
Component = component;
Name = name;
}
public string Name { get; set; }
public IComponent Component { get; set; }
public override bool Equals(object obj)
{
AddedComponent rhs = obj as AddedComponent;
if (rhs != null) {
return Name == rhs.Name && Component == rhs.Component;
}
return base.Equals(obj);
}
public override int GetHashCode()
{
return Component.GetHashCode() ^ Name.GetHashCode();
}
public override string ToString()
{
return "AddedComponent [Component=" + GetComponentTypeName() + "Name=" + Name + "]";
}
string GetComponentTypeName()
{
if (Component != null) {
return Component.GetType().Name;
}
return "<null>";
}
}
}

69
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/CreatedInstance.cs

@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections;
using System.Text;
namespace PythonBinding.Tests.Utils
{
/// <summary>
/// Helper class that stores the parameters passed when the IComponentCreator.CreateInstance method is called.
/// </summary>
public class CreatedInstance
{
public CreatedInstance(Type type, ICollection arguments, string name, bool addToContainer)
{
InstanceType = type;
Arguments = arguments;
Name = name;
AddToContainer = addToContainer;
}
public Type InstanceType { get; set; }
public ICollection Arguments { get; set; }
public string Name { get; set; }
public bool AddToContainer { get; set; }
public object Object { get; set; }
public override bool Equals(object obj)
{
CreatedInstance rhs = obj as CreatedInstance;
if (rhs != null) {
return ToString() == rhs.ToString();
}
return base.Equals(obj);
}
public override int GetHashCode()
{
return InstanceType.GetHashCode();
}
public override string ToString()
{
return "CreatedInstance [Type=" + InstanceType + ", Name=" + Name + ArgsToString() + "]";
}
string ArgsToString()
{
StringBuilder s = new StringBuilder();
s.Append("[Args=");
bool firstArg = true;
foreach (object o in Arguments) {
if (!firstArg) {
s.Append(", ");
}
s.Append(o);
firstArg = false;
}
s.Append("]");
return s.ToString();
}
}
}

14
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedCompilingOptionsPanel.cs

@ -28,6 +28,7 @@ namespace PythonBinding.Tests.Utils @@ -28,6 +28,7 @@ namespace PythonBinding.Tests.Utils
Dictionary<string, TextBoxEditMode> boundTextEditModes = new Dictionary<string, TextBoxEditMode>();
List<string> locationButtonsCreated = new List<string>();
Dictionary<string, BrowseFolderButtonInfo> browseFolderButtons = new Dictionary<string, BrowseFolderButtonInfo>();
bool createdTargetCpuComboBox;
public DerivedCompilingOptionsPanel()
{
@ -45,6 +46,13 @@ namespace PythonBinding.Tests.Utils @@ -45,6 +46,13 @@ namespace PythonBinding.Tests.Utils
get { return setupFromManifestResourceName; }
}
/// <summary>
/// Returns whether the target cpu combo box was created.
/// </summary>
public bool IsTargetCpuComboBoxCreated {
get { return createdTargetCpuComboBox; }
}
/// <summary>
/// Gets the name of the control that was bound to the specified
/// property.
@ -142,6 +150,12 @@ namespace PythonBinding.Tests.Utils @@ -142,6 +150,12 @@ namespace PythonBinding.Tests.Utils
return base.CreateLocationButton(binding, controlName);
}
protected override ConfigurationGuiBinding CreatePlatformTargetComboBox()
{
createdTargetCpuComboBox = true;
return base.CreatePlatformTargetComboBox();
}
/// <summary>
/// Connects the browse folder button control to the target control.
/// </summary>

8
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedPythonDesignerGenerator.cs

@ -17,6 +17,7 @@ using ICSharpCode.PythonBinding; @@ -17,6 +17,7 @@ using ICSharpCode.PythonBinding;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
namespace PythonBinding.Tests.Utils
{
@ -29,8 +30,13 @@ namespace PythonBinding.Tests.Utils @@ -29,8 +30,13 @@ namespace PythonBinding.Tests.Utils
string fileNamePassedToParseFile;
string textContentPassedToParseFile;
ParseInformation parseInfoToReturnFromParseFile;
public DerivedPythonDesignerGenerator() : this(new MockTextEditorProperties())
{
}
public DerivedPythonDesignerGenerator()
public DerivedPythonDesignerGenerator(ITextEditorProperties textEditorProperties)
: base(textEditorProperties)
{
}

5
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockDesignerGenerator.cs

@ -48,9 +48,10 @@ namespace PythonBinding.Tests.Utils @@ -48,9 +48,10 @@ namespace PythonBinding.Tests.Utils
this.viewContent = null;
}
public ICSharpCode.SharpDevelop.OpenedFile DetermineDesignerCodeFile()
public System.Collections.Generic.IEnumerable<ICSharpCode.SharpDevelop.OpenedFile> GetSourceFiles(out ICSharpCode.SharpDevelop.OpenedFile designerCodeFile)
{
return this.viewContent.DesignerCodeFile;
designerCodeFile = this.viewContent.DesignerCodeFile;
return new [] {designerCodeFile};
}
public void MergeFormChanges(CodeCompileUnit unit)

4
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockProject.cs

@ -142,6 +142,10 @@ namespace PythonBinding.Tests.Utils @@ -142,6 +142,10 @@ namespace PythonBinding.Tests.Utils
}
}
public event EventHandler ActiveConfigurationChanged { add {} remove {} }
public event EventHandler ActivePlatformChanged { add {} remove {} }
public ICollection<string> ConfigurationNames {
get {
throw new NotImplementedException();

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.Modules.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.dll

Binary file not shown.

177
src/AddIns/BackendBindings/Python/RequiredLibraries/License.Rtf

@ -0,0 +1,177 @@ @@ -0,0 +1,177 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;}
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}
{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}
{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025
\ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}}{\*\rsidtbl \rsid11612883}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author dinov}{\operator dinov}
{\creatim\yr2007\mo10\dy30\hr14\min43}{\revtim\yr2007\mo10\dy30\hr14\min43}{\version2}{\edmins1}{\nofpages2}{\nofwords404}{\nofchars2212}{\*\company Microsoft}{\nofcharsws2611}{\vern32893}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/200
3/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701
\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot11612883 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sb100\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0
\fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af0\afs28 \ltrch\fcs0 \b\f0\fs28\insrsid11612883 \hich\af0\dbch\af31505\loch\f0 Microsoft }{\rtlch\fcs1 \ab\af0\afs28 \ltrch\fcs0
\b\f0\fs28\insrsid11612883 \hich\af0\dbch\af31505\loch\f0 Public }{\rtlch\fcs1 \ab\af0\afs28 \ltrch\fcs0 \b\f0\fs28\insrsid11612883 \hich\af0\dbch\af31505\loch\f0 License (Ms-PL)
\par }{\rtlch\fcs1 \ab\af0\afs24 \ltrch\fcs0 \b\f0\fs24\insrsid11612883 \hich\af0\dbch\af31505\loch\f0
This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid11612883
\par }{\rtlch\fcs1 \ab\af0\afs36 \ltrch\fcs0 \b\f0\fs36\insrsid11612883 \hich\af0\dbch\af31505\loch\f0 1. Definitions
\par }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid11612883 \hich\af0\dbch\af31505\loch\f0 \hich\f0 The terms \'93\loch\f0 \hich\f0 reproduce,\'94\loch\f0 \hich\f0 \'93\loch\f0 \hich\f0 reproduction,\'94\loch\f0 \hich\f0 \'93
\hich\af0\dbch\af31505\loch\f0 \hich\f0 derivative works,\'94\loch\f0 \hich\f0 and \'93\loch\f0 \hich\f0 distribution\'94\loch\f0 have the same meaning here as under U.S. copyright law.
\par \hich\af0\dbch\af31505\loch\f0 \hich\f0 A \'93\loch\f0 \hich\f0 contribution\'94\loch\f0 is the original software, or any additions or changes to the software.
\par \hich\af0\dbch\af31505\loch\f0 \hich\f0 A \'93\loch\f0 \hich\f0 contributor\'94\loch\f0 is any person that distributes its contribution under this\hich\af0\dbch\af31505\loch\f0 license.
\par \loch\af0\dbch\af31505\hich\f0 \'93\loch\f0 \hich\f0 Licensed patents\'94\loch\f0 are a contributor\hich\f0 \rquote \loch\f0 s patent claims that read directly on its contribution.
\par }{\rtlch\fcs1 \ab\af0\afs36 \ltrch\fcs0 \b\f0\fs36\insrsid11612883 \hich\af0\dbch\af31505\loch\f0 2. Grant of Rights
\par }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid11612883 \hich\af0\dbch\af31505\loch\f0 (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contrib
\hich\af0\dbch\af31505\loch\f0 utor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
\par \hich\af0\dbch\af31505\loch\f0 (B) Patent Grant- Subject to th\hich\af0\dbch\af31505\loch\f0
e terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or o
\hich\af0\dbch\af31505\loch\f0 t\hich\af0\dbch\af31505\loch\f0 herwise dispose of its contribution in the software or derivative works of the contribution in the software.
\par }{\rtlch\fcs1 \ab\af0\afs36 \ltrch\fcs0 \b\f0\fs36\insrsid11612883 \hich\af0\dbch\af31505\loch\f0 3. Conditions and Limitations
\par }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid11612883 \hich\af0\dbch\af31505\loch\f0 (A) No Trademark License- This license does not grant you rights to use any contributors\hich\f0 \rquote \loch\f0 name, logo, or trademarks.
\par \hich\af0\dbch\af31505\loch\f0 (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
\par \hich\af0\dbch\af31505\loch\f0 (C) If you distribute any portion of the software, you must ret\hich\af0\dbch\af31505\loch\f0 ain all copyright, patent, trademark, and attribution notices that are present in the software.
\par \hich\af0\dbch\af31505\loch\f0 (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with y\hich\af0\dbch\af31505\loch\f0
our distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
\par \hich\af0\dbch\af31505\loch\f0 \hich\f0 (E) The software is licensed \'93\loch\f0 \hich\f0 as-is.\'94\loch\f0 You bear the risk of using it. The contributors give \hich\af0\dbch\af31505\loch\f0
no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantabil
\hich\af0\dbch\af31505\loch\f0 i\hich\af0\dbch\af31505\loch\f0 ty, fitness for a particular purpose and non-infringement.
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \f0\fs24\insrsid11612883
\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b
44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7
065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000
00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08
84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc
52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353
bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468
656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c
070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7
29e245eb2b260a0238fd010000ffff0300504b03041400060008000000210096b5ade296060000501b0000160000007468656d652f7468656d652f7468656d65
312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87615b8116d8
a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad79482a9c04
98f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b5d8a314d3c
94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab999fb7b471
7509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9699640f671
9e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd5868b37a088d1
e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d60cf03ac1a5
193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f9e7ef3f2d1
17d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be15c308d3f2
8acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a99793849c26ae6
6252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d32a423279a
668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2af074481847
bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86e877f0034e
16bafb0e258ebb4faf06b769e888340b103d3311da9750aa9d0a1cd3e4efca31a3508f6d0c5c5c398602f8e2ebc71591f5b616e24dd893aa3261fb44f95d843b
5974bb5c04f4edafb95b7892ec1108f3f98de75dc97d5772bdff7cc95d94cf672db4b3da0a6557f70db629362d72bcb0431e53c6066acac80d699a6409fb44d0
8741bdce9c0e4971624a2378cceaba830b05366b90e0ea23aaa241845368b0eb9e2612ca8c742851ca251ceccc70256d8d87265dd96361531f186c3d9058edf2
c00eafe8e1fc5c509031bb4d680e9f39a3154de0accc56ae644441edd76156d7429d995bdd88664a9dc3ad50197c38af1a0c16d684060441db02565e85f3b966
0d0713cc48a0ed6ef7dedc2dc60b17e92219e180643ed27acffba86e9c94c78ab90980d8a9f0913ee49d62b512b79626fb06dccee2a432bbc60276b9f7dec44b
7904cfbca4f3f6443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc399161ee314bc2e75cf8759081743be1236ec4f4d6693e5336fb672c5dc24a8c33585b5fb
9cc24e1d4885545b58463634cc5416022cd19cacfccb4d30eb45296023fd35a458598360f8d7a4003bbaae25e331f155d9d9a5116d3bfb9a95523e51440ca2e0
088dd844ec6370bf0e55d027a012ae264c45d02f708fa6ad6da6dce29c255df9f6cae0ec38666984b372ab5334cf640b37795cc860de4ae2816e95b21be5ceaf
8a49f90b52a51cc6ff3355f47e0237052b81f6800fd7b802239daf6d8f0b1571a8426944fdbe80c6c1d40e8816b88b8569082ab84c36ff0539d4ff6dce591a26
ade1c0a7f669880485fd484582903d284b26fa4e2156cff62e4b9265844c4495c495a9157b440e091bea1ab8aaf7760f4510eaa69a6465c0e04ec69ffb9e65d0
28d44d4e39df9c1a52ecbd3607fee9cec7263328e5d661d3d0e4f62f44acd855ed7ab33cdf7bcb8ae889599bd5c8b3029895b6825696f6af29c239b75a5bb1e6
345e6ee6c28117e73586c1a2214ae1be07e93fb0ff51e133fb65426fa843be0fb515c187064d0cc206a2fa926d3c902e907670048d931db4c1a44959d366ad93
b65abe595f70a75bf03d616c2dd959fc7d4e6317cd99cbcec9c58b34766661c7d6766ca1a9c1b327531486c6f941c638c67cd22a7f75e2a37be0e82db8df9f30
254d30c1372581a1f51c983c80e4b71ccdd28dbf000000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f74
68656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f24
51eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198
720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528
a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c0200001300000000000000000000000000
000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b000000000000000000000000
002b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000140200007468
656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210096b5ade296060000501b000016000000000000000000
00000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b010000270000000000
00000000000000009b0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000960a00000000}
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
4d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f0000000000000000000000009055
58f93d1bc801feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.Core.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.ExtensionAttribute.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/ipy.exe

Binary file not shown.

2
src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs

@ -109,7 +109,7 @@ namespace VBNetBinding @@ -109,7 +109,7 @@ namespace VBNetBinding
public override void StartBuild(ProjectBuildOptions options, IBuildFeedbackSink feedbackSink)
{
if (this.MinimumSolutionVersion == 9) {
if (this.MinimumSolutionVersion == Solution.SolutionVersionVS2005) {
MSBuildEngine.StartBuild(this,
options,
feedbackSink,

34
src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDialogDesigner.cs

@ -7,7 +7,6 @@ @@ -7,7 +7,6 @@
using System;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.IO;
using System.Xml;
@ -18,7 +17,6 @@ using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor; @@ -18,7 +17,6 @@ using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
namespace ICSharpCode.WixBinding
{
@ -61,28 +59,6 @@ namespace ICSharpCode.WixBinding @@ -61,28 +59,6 @@ namespace ICSharpCode.WixBinding
return null;
}
// The FormsDesignerViewContent normally operates independently of any
// text editor. The following overrides connect the forms designer
// directly to the underlying XML text editor so that the caret positioning
// and text selection operations done by the WiX designer actually
// become visible in the text editor.
public override IDocument PrimaryFileDocument {
get { return ((ITextEditorControlProvider)this.PrimaryViewContent).TextEditorControl.Document; }
}
public override IDocument DesignerCodeFileDocument {
get { return this.PrimaryFileDocument; }
}
public override System.Text.Encoding PrimaryFileEncoding {
get { return ((ITextEditorControlProvider)this.PrimaryViewContent).TextEditorControl.Encoding; }
}
public override System.Text.Encoding DesignerCodeFileEncoding {
get { return this.PrimaryFileEncoding; }
}
/// <summary>
/// Attempts to open the Wix dialog from the document currently
/// associated with this designer.
@ -106,6 +82,16 @@ namespace ICSharpCode.WixBinding @@ -106,6 +82,16 @@ namespace ICSharpCode.WixBinding
protected override void LoadInternal(OpenedFile file, Stream stream)
{
if (file == this.PrimaryFile) {
// The FormsDesignerViewContent normally operates independently of any
// text editor. The following statements connect the forms designer
// directly to the underlying XML text editor so that the caret positioning
// and text selection operations done by the WiX designer actually
// become visible in the text editor.
if (!this.SourceCodeStorage.ContainsFile(file)) {
TextEditorControl editor = ((ITextEditorControlProvider)this.PrimaryViewContent).TextEditorControl;
this.SourceCodeStorage.AddFile(file, editor.Document, editor.Encoding ?? ParserService.DefaultFileEncoding, true);
}
try {
if (!ignoreDialogIdSelectedInTextEditor) {
string dialogId = GetDialogIdSelectedInTextEditor();

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save