Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@36 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
30 changed files with 4862 additions and 0 deletions
@ -0,0 +1,31 @@ |
|||||||
|
using System.Reflection; |
||||||
|
using System.Runtime.CompilerServices; |
||||||
|
|
||||||
|
// Information about this assembly is defined by the following
|
||||||
|
// attributes.
|
||||||
|
//
|
||||||
|
// change them to the information which is associated with the assembly
|
||||||
|
// you compile.
|
||||||
|
|
||||||
|
[assembly: AssemblyTitle("VB.NET Binding")] |
||||||
|
[assembly: AssemblyDescription("VB.NET language binding for #develop")] |
||||||
|
[assembly: AssemblyConfiguration("")] |
||||||
|
[assembly: AssemblyCompany("www.icsharpcode.net")] |
||||||
|
[assembly: AssemblyProduct("")] |
||||||
|
[assembly: AssemblyCopyright("(c) 2005 Mike Krueger, Markus Palme")] |
||||||
|
[assembly: AssemblyTrademark("")] |
||||||
|
[assembly: AssemblyCulture("")] |
||||||
|
|
||||||
|
// The assembly version has following format :
|
||||||
|
//
|
||||||
|
// Major.Minor.Build.Revision
|
||||||
|
//
|
||||||
|
// You can specify all values by your own or you can build default build and revision
|
||||||
|
// numbers with the '*' character (the default):
|
||||||
|
|
||||||
|
[assembly: AssemblyVersion("2.0.0.1")] |
||||||
|
|
||||||
|
// The following attributes specify the key for the sign of your assembly. See the
|
||||||
|
// .NET Framework documentation for more information about signing.
|
||||||
|
// This is not required, if you don't want signing let these attributes like they're.
|
||||||
|
[assembly: AssemblyDelaySign(false)] |
@ -0,0 +1,122 @@ |
|||||||
|
<Components version="1.0"> |
||||||
|
<System.Windows.Forms.Form> |
||||||
|
<Name value="XmlForm1" /> |
||||||
|
<FormBorderStyle value="FixedDialog" /> |
||||||
|
<ClientSize value="{Width=384, Height=262}" /> |
||||||
|
<DockPadding value="" /> |
||||||
|
<Text value="Advanced Build Settings" /> |
||||||
|
<AcceptButton value="okButton [System.Windows.Forms.Button], Text: OK" /> |
||||||
|
<CancelButton value="cancelButton [System.Windows.Forms.Button], Text: Cancel" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="DLLBaseAddressComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="11" /> |
||||||
|
<Location value="{X=156,Y=200}" /> |
||||||
|
<Size value="{Width=220, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label5" /> |
||||||
|
<Text value="DLL &Base Address:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="10" /> |
||||||
|
<Size value="{Width=148, Height=23}" /> |
||||||
|
<Location value="{X=4,Y=200}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="fileAlignmentComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="9" /> |
||||||
|
<Location value="{X=156,Y=172}" /> |
||||||
|
<Size value="{Width=220, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label4" /> |
||||||
|
<Text value="&File Alignment:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="8" /> |
||||||
|
<Size value="{Width=144, Height=23}" /> |
||||||
|
<Location value="{X=8,Y=172}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="debugInfoComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
<Location value="{X=156,Y=144}" /> |
||||||
|
<Size value="{Width=220, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label3" /> |
||||||
|
<Text value="D&ebug Info:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="6" /> |
||||||
|
<Size value="{Width=144, Height=23}" /> |
||||||
|
<Location value="{X=8,Y=144}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="noMsCorLibReferenceCheckBox" /> |
||||||
|
<Location value="{X=8,Y=116}" /> |
||||||
|
<Size value="{Width=368, Height=20}" /> |
||||||
|
<Text value="D&o not reference mscorlib.dll" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="checkOverUnderflowCheckBox" /> |
||||||
|
<Location value="{X=8,Y=92}" /> |
||||||
|
<Size value="{Width=368, Height=20}" /> |
||||||
|
<Text value="C&heck for arithmetic overflow/underflow" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="reportCompilerErrorComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
<Location value="{X=8,Y=64}" /> |
||||||
|
<Size value="{Width=368, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label2" /> |
||||||
|
<Text value="&Report Compiler Errors:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
<Size value="{Width=352, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=48}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="languageVersionComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=8,Y=24}" /> |
||||||
|
<Size value="{Width=368, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label1" /> |
||||||
|
<Text value="&Language Version:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Size value="{Width=360, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=8}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="cancelButton" /> |
||||||
|
<Location value="{X=304,Y=232}" /> |
||||||
|
<Text value="Cancel" /> |
||||||
|
<Anchor value="Bottom, Right" /> |
||||||
|
<TabIndex value="12" /> |
||||||
|
<DialogResult value="Cancel" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="okButton" /> |
||||||
|
<Location value="{X=216,Y=232}" /> |
||||||
|
<Text value="OK" /> |
||||||
|
<Anchor value="Bottom, Right" /> |
||||||
|
<TabIndex value="12" /> |
||||||
|
<DialogResult value="OK" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.Form> |
||||||
|
</Components> |
@ -0,0 +1,185 @@ |
|||||||
|
<Components version="1.0"> |
||||||
|
<System.Windows.Forms.UserControl> |
||||||
|
<Name value="XmlUserControl1" /> |
||||||
|
<DockPadding value="" /> |
||||||
|
<ClientSize value="{Width=456, Height=364}" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="win32ResourceFileBrowseButton" /> |
||||||
|
<Location value="{X=408,Y=208}" /> |
||||||
|
<Size value="{Width=40, Height=21}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="14" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="win32ResourceFileComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="13" /> |
||||||
|
<Location value="{X=8,Y=208}" /> |
||||||
|
<Size value="{Width=392, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label9" /> |
||||||
|
<Text value="Win32 R&esource File:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="12" /> |
||||||
|
<Size value="{Width=436, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=192}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="applicationIconBrowseButton" /> |
||||||
|
<Location value="{X=408,Y=160}" /> |
||||||
|
<Size value="{Width=40, Height=21}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="11" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox1" /> |
||||||
|
<TabIndex value="15" /> |
||||||
|
<Location value="{X=8,Y=236}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=440, Height=112}" /> |
||||||
|
<Text value="Project Information" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="outputNameTextBox" /> |
||||||
|
<ReadOnly value="True" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
<Location value="{X=112,Y=80}" /> |
||||||
|
<Size value="{Width=320, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label8" /> |
||||||
|
<Text value="Output Name:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
<Location value="{X=8,Y=80}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="projectFileTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
<Location value="{X=112,Y=56}" /> |
||||||
|
<Size value="{Width=320, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label7" /> |
||||||
|
<Text value="Project &File:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
<Location value="{X=8,Y=52}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="projectFolderTextBox" /> |
||||||
|
<ReadOnly value="True" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=112,Y=28}" /> |
||||||
|
<Size value="{Width=320, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label6" /> |
||||||
|
<Text value="Project Folder:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Location value="{X=8,Y=24}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
<System.Windows.Forms.PictureBox> |
||||||
|
<Name value="applicationIconPictureBox" /> |
||||||
|
<Size value="{Width=48, Height=48}" /> |
||||||
|
<Location value="{X=8,Y=140}" /> |
||||||
|
<SizeMode value="StretchImage" /> |
||||||
|
</System.Windows.Forms.PictureBox> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="applicationIconComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="10" /> |
||||||
|
<Location value="{X=64,Y=160}" /> |
||||||
|
<Size value="{Width=336, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label5" /> |
||||||
|
<Text value="Application i&con:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="9" /> |
||||||
|
<Size value="{Width=384, Height=16}" /> |
||||||
|
<Location value="{X=64,Y=144}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="startupObjectComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
<Location value="{X=160,Y=112}" /> |
||||||
|
<Size value="{Width=288, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label4" /> |
||||||
|
<Text value="&Startup object:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="6" /> |
||||||
|
<Size value="{Width=288, Height=16}" /> |
||||||
|
<Location value="{X=160,Y=96}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="outputTypeComboBox" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
<Location value="{X=8,Y=112}" /> |
||||||
|
<Size value="{Width=136, Height=21}" /> |
||||||
|
<DropDownStyle value="DropDownList" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label3" /> |
||||||
|
<Text value="&Output type:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
<Size value="{Width=136, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=96}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="rootNamespaceTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
<Location value="{X=8,Y=68}" /> |
||||||
|
<Size value="{Width=440, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label2" /> |
||||||
|
<Text value="&Root namespace:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
<Size value="{Width=440, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=52}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="assemblyNameTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=8,Y=24}" /> |
||||||
|
<Size value="{Width=440, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label1" /> |
||||||
|
<Text value="Assembly &name:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Size value="{Width=440, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=8}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.UserControl> |
||||||
|
</Components> |
@ -0,0 +1,86 @@ |
|||||||
|
<Components version="1.0"> |
||||||
|
<System.Windows.Forms.UserControl> |
||||||
|
<Name value="XmlUserControl1" /> |
||||||
|
<DockPadding value="" /> |
||||||
|
<ClientSize value="{Width=384, Height=256}" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox1" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Location value="{X=8,Y=8}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=364, Height=180}" /> |
||||||
|
<Text value="Build Events" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="runPostBuildEventComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="8" /> |
||||||
|
<Location value="{X=8,Y=153}" /> |
||||||
|
<Size value="{Width=184, Height=21}" /> |
||||||
|
<DropDownStyle value="DropDownList" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label3" /> |
||||||
|
<Text value="&Run the post-build event:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
<Size value="{Width=352, Height=23}" /> |
||||||
|
<Location value="{X=8,Y=130}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="postBuildEventTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
<Location value="{X=8,Y=96}" /> |
||||||
|
<Size value="{Width=304, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label2" /> |
||||||
|
<Text value="P&ost-build event command line:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
<Size value="{Width=344, Height=23}" /> |
||||||
|
<Location value="{X=8,Y=75}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="postBuildEventBrowseButton" /> |
||||||
|
<Location value="{X=316,Y=98}" /> |
||||||
|
<Size value="{Width=40, Height=23}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="6" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="preBuildEventTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
<Location value="{X=8,Y=49}" /> |
||||||
|
<Size value="{Width=304, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label1" /> |
||||||
|
<Text value="P&re-build event command line:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Size value="{Width=344, Height=23}" /> |
||||||
|
<Location value="{X=8,Y=25}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="preBuildEventBrowseButton" /> |
||||||
|
<Location value="{X=316,Y=50}" /> |
||||||
|
<Size value="{Width=40, Height=21}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.UserControl> |
||||||
|
</Components> |
@ -0,0 +1,189 @@ |
|||||||
|
<Components version="1.0"> |
||||||
|
<System.Windows.Forms.UserControl> |
||||||
|
<Name value="XmlUserControl1" /> |
||||||
|
<DockPadding value="" /> |
||||||
|
<ClientSize value="{Width=432, Height=480}" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox3" /> |
||||||
|
<TabIndex value="8" /> |
||||||
|
<Location value="{X=8,Y=288}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=416, Height=168}" /> |
||||||
|
<Text value="Output" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="advancedOptionsButton" /> |
||||||
|
<Location value="{X=320,Y=142}" /> |
||||||
|
<Size value="{Width=84, Height=21}" /> |
||||||
|
<Text value="Ad&vanced" /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="6" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="registerCOMInteropCheckBox" /> |
||||||
|
<Location value="{X=8,Y=123}" /> |
||||||
|
<Size value="{Width=308, Height=20}" /> |
||||||
|
<Text value="&Register for COM Interop" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="xmlDocumentationCheckBox" /> |
||||||
|
<Location value="{X=8,Y=73}" /> |
||||||
|
<Size value="{Width=400, Height=20}" /> |
||||||
|
<Text value="&XML Documentation File" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="xmlDocumentationTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
<Location value="{X=24,Y=96}" /> |
||||||
|
<Size value="{Width=384, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label5" /> |
||||||
|
<Text value="Ou&tput Path:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Size value="{Width=400, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=27}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="outputPathTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=8,Y=45}" /> |
||||||
|
<Size value="{Width=352, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="outputPathBrowseButton" /> |
||||||
|
<Location value="{X=368,Y=45}" /> |
||||||
|
<Size value="{Width=40, Height=21}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox2" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
<Location value="{X=8,Y=184}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=416, Height=100}" /> |
||||||
|
<Text value="Treat Warnings as Errors" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="specificWarningsTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
<Location value="{X=136,Y=44}" /> |
||||||
|
<Size value="{Width=272, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="allRadioButton" /> |
||||||
|
<Location value="{X=8,Y=68}" /> |
||||||
|
<Size value="{Width=128, Height=24}" /> |
||||||
|
<Text value="A&ll" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="specificWarningsRadioButton" /> |
||||||
|
<Location value="{X=8,Y=44}" /> |
||||||
|
<Size value="{Width=128, Height=24}" /> |
||||||
|
<Text value="Sp&ecific Warnings:" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="noneRadioButton" /> |
||||||
|
<Location value="{X=8,Y=20}" /> |
||||||
|
<Size value="{Width=128, Height=24}" /> |
||||||
|
<Text value="&None" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox1" /> |
||||||
|
<TabIndex value="6" /> |
||||||
|
<Location value="{X=8,Y=96}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=416, Height=80}" /> |
||||||
|
<Text value="Errors and Warnings" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="suppressWarningsTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
<Location value="{X=164,Y=44}" /> |
||||||
|
<Size value="{Width=244, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label4" /> |
||||||
|
<Text value="&Suppress Warnings:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
<Size value="{Width=160, Height=23}" /> |
||||||
|
<Location value="{X=4,Y=44}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="warningLevelComboBox" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=164,Y=20}" /> |
||||||
|
<Size value="{Width=60, Height=21}" /> |
||||||
|
<DropDownStyle value="DropDownList" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label3" /> |
||||||
|
<Text value="&Warning Level:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Size value="{Width=160, Height=23}" /> |
||||||
|
<Location value="{X=4,Y=20}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="optimizeCodeCheckBox" /> |
||||||
|
<Location value="{X=8,Y=48}" /> |
||||||
|
<Size value="{Width=416, Height=24}" /> |
||||||
|
<Text value="Opti&mize code" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="allowUnsafeCodeCheckBox" /> |
||||||
|
<Location value="{X=8,Y=72}" /> |
||||||
|
<Size value="{Width=416, Height=24}" /> |
||||||
|
<Text value="Allow &Unsafe code" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="conditionalSymbolsTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=8,Y=24}" /> |
||||||
|
<Size value="{Width=416, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label1" /> |
||||||
|
<Text value="Con&ditional Compilation Symbols:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Size value="{Width=416, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=8}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.UserControl> |
||||||
|
</Components> |
@ -0,0 +1,114 @@ |
|||||||
|
<Components version="1.0"> |
||||||
|
<System.Windows.Forms.UserControl> |
||||||
|
<Name value="XmlUserControl1" /> |
||||||
|
<DockPadding value="" /> |
||||||
|
<ClientSize value="{Width=480, Height=312}" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox1" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Location value="{X=8,Y=8}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=464, Height=100}" /> |
||||||
|
<Text value="Start Action" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="startBrowserInURLTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="8" /> |
||||||
|
<Location value="{X=156,Y=68}" /> |
||||||
|
<Size value="{Width=300, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="startExternalProgramBrowseButton" /> |
||||||
|
<Location value="{X=416,Y=44}" /> |
||||||
|
<Size value="{Width=40, Height=21}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="startExternalProgramTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
<Location value="{X=156,Y=44}" /> |
||||||
|
<Size value="{Width=252, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="startBrowserInURLRadioButton" /> |
||||||
|
<Location value="{X=4,Y=68}" /> |
||||||
|
<Size value="{Width=152, Height=20}" /> |
||||||
|
<Text value="Start browser in &URL:" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="startExternalProgramRadioButton" /> |
||||||
|
<Location value="{X=4,Y=44}" /> |
||||||
|
<Size value="{Width=152, Height=20}" /> |
||||||
|
<Text value="Start e&xternal program:" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="startProjectRadioButton" /> |
||||||
|
<Location value="{X=4,Y=20}" /> |
||||||
|
<Size value="{Width=152, Height=20}" /> |
||||||
|
<Text value="&Start project" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox2" /> |
||||||
|
<TabIndex value="9" /> |
||||||
|
<Location value="{X=8,Y=120}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=464, Height=80}" /> |
||||||
|
<Text value="Start Options" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label2" /> |
||||||
|
<Text value="&Working directory:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="12" /> |
||||||
|
<Size value="{Width=148, Height=20}" /> |
||||||
|
<Location value="{X=4,Y=48}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label1" /> |
||||||
|
<Text value="Co&mmand line arguments:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="11" /> |
||||||
|
<Size value="{Width=148, Height=20}" /> |
||||||
|
<Location value="{X=8,Y=20}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="commandLineArgumentsTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="10" /> |
||||||
|
<Location value="{X=156,Y=20}" /> |
||||||
|
<Size value="{Width=300, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="workingDirectoryBrowseButton" /> |
||||||
|
<Location value="{X=416,Y=52}" /> |
||||||
|
<Size value="{Width=40, Height=21}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="workingDirectoryTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
<Location value="{X=156,Y=52}" /> |
||||||
|
<Size value="{Width=252, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.UserControl> |
||||||
|
</Components> |
@ -0,0 +1,250 @@ |
|||||||
|
<Components version="1.0"> |
||||||
|
<System.Windows.Forms.UserControl> |
||||||
|
<Name value="XmlUserControl1" /> |
||||||
|
<DockPadding value="" /> |
||||||
|
<ClientSize value="{Width=592, Height=480}" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="button5" /> |
||||||
|
<Location value="{X=472,Y=440}" /> |
||||||
|
<Size value="{Width=112, Height=23}" /> |
||||||
|
<Text value="Publish &Now" /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="button3" /> |
||||||
|
<Location value="{X=352,Y=440}" /> |
||||||
|
<Size value="{Width=112, Height=23}" /> |
||||||
|
<Text value="Publish &Wizard..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox2" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=8,Y=192}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=576, Height=152}" /> |
||||||
|
<Text value="Install Mode and Settings" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="button8" /> |
||||||
|
<Location value="{X=456,Y=121}" /> |
||||||
|
<Size value="{Width=112, Height=23}" /> |
||||||
|
<Text value="O&ptions..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="button7" /> |
||||||
|
<Location value="{X=456,Y=89}" /> |
||||||
|
<Size value="{Width=112, Height=23}" /> |
||||||
|
<Text value="&Updates..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="6" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="button6" /> |
||||||
|
<Location value="{X=456,Y=57}" /> |
||||||
|
<Size value="{Width=112, Height=23}" /> |
||||||
|
<Text value="Pr&erequisites..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="button4" /> |
||||||
|
<Location value="{X=456,Y=25}" /> |
||||||
|
<Size value="{Width=112, Height=23}" /> |
||||||
|
<Text value="Application &Files..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="checkBox1" /> |
||||||
|
<Location value="{X=8,Y=121}" /> |
||||||
|
<Size value="{Width=440, Height=24}" /> |
||||||
|
<Text value="For &CD installations, automatically start Setup when CD is inserted" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="radioButton2" /> |
||||||
|
<Location value="{X=8,Y=49}" /> |
||||||
|
<Size value="{Width=440, Height=24}" /> |
||||||
|
<Text value="The application is avaiable offline as well (launchable from Start &menu)" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="radioButton1" /> |
||||||
|
<Location value="{X=8,Y=25}" /> |
||||||
|
<Size value="{Width=440, Height=24}" /> |
||||||
|
<Text value="The application is avaiable &online only" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox1" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Location value="{X=8,Y=8}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=576, Height=176}" /> |
||||||
|
<Text value="Publish Location" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label2" /> |
||||||
|
<Text value="Documentation and &support URL:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="18" /> |
||||||
|
<Size value="{Width=560, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=122}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="comboBox2" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="19" /> |
||||||
|
<Location value="{X=8,Y=138}" /> |
||||||
|
<Size value="{Width=512, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="button2" /> |
||||||
|
<Location value="{X=528,Y=138}" /> |
||||||
|
<Size value="{Width=40, Height=21}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="20" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label1" /> |
||||||
|
<Text value="&Installation URL (if different than above):" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="15" /> |
||||||
|
<Size value="{Width=528, Height=16}" /> |
||||||
|
<Location value="{X=40,Y=74}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="comboBox1" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="16" /> |
||||||
|
<Location value="{X=40,Y=90}" /> |
||||||
|
<Size value="{Width=480, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="button1" /> |
||||||
|
<Location value="{X=528,Y=90}" /> |
||||||
|
<Size value="{Width=40, Height=21}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="17" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label5" /> |
||||||
|
<Text value="Pu&blishing Location (web site, ftp server, or file path)" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="12" /> |
||||||
|
<Size value="{Width=560, Height=16}" /> |
||||||
|
<Location value="{X=8,Y=26}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="applicationIconComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="13" /> |
||||||
|
<Location value="{X=8,Y=42}" /> |
||||||
|
<Size value="{Width=512, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="applicationIconBrowseButton" /> |
||||||
|
<Location value="{X=528,Y=42}" /> |
||||||
|
<Size value="{Width=40, Height=21}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="14" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox3" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
<Location value="{X=8,Y=352}" /> |
||||||
|
<Size value="{Width=328, Height=112}" /> |
||||||
|
<Text value="Publish Version" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="checkBox2" /> |
||||||
|
<Location value="{X=8,Y=82}" /> |
||||||
|
<Size value="{Width=312, Height=24}" /> |
||||||
|
<Text value="&Automatically increment revision with each release" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="8" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label7" /> |
||||||
|
<Text value="Revision:" /> |
||||||
|
<TextAlign value="BottomCenter" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
<Size value="{Width=56, Height=23}" /> |
||||||
|
<Location value="{X=200,Y=24}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="textBox4" /> |
||||||
|
<TabIndex value="6" /> |
||||||
|
<Location value="{X=200,Y=48}" /> |
||||||
|
<Size value="{Width=56, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label6" /> |
||||||
|
<Text value="Build:" /> |
||||||
|
<TextAlign value="BottomCenter" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
<Size value="{Width=56, Height=23}" /> |
||||||
|
<Location value="{X=136,Y=24}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="textBox3" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
<Location value="{X=136,Y=48}" /> |
||||||
|
<Size value="{Width=56, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label4" /> |
||||||
|
<Text value="Minor:" /> |
||||||
|
<TextAlign value="BottomCenter" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
<Size value="{Width=56, Height=23}" /> |
||||||
|
<Location value="{X=72,Y=24}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="textBox2" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
<Location value="{X=72,Y=48}" /> |
||||||
|
<Size value="{Width=56, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label3" /> |
||||||
|
<Text value="Major:" /> |
||||||
|
<TextAlign value="BottomCenter" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Size value="{Width=56, Height=23}" /> |
||||||
|
<Location value="{X=8,Y=24}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="textBox1" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Location value="{X=8,Y=48}" /> |
||||||
|
<Size value="{Width=56, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.UserControl> |
||||||
|
</Components> |
@ -0,0 +1,71 @@ |
|||||||
|
<Components version="1.0"> |
||||||
|
<System.Windows.Forms.UserControl> |
||||||
|
<Name value="XmlUserControl1" /> |
||||||
|
<DockPadding value="" /> |
||||||
|
<ClientSize value="{Width=360, Height=256}" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="removeButton" /> |
||||||
|
<Location value="{X=8,Y=216}" /> |
||||||
|
<Size value="{Width=88, Height=23}" /> |
||||||
|
<Text value="&Remove" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.ListView> |
||||||
|
<Name value="referencePathListView" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="6" /> |
||||||
|
<Location value="{X=8,Y=120}" /> |
||||||
|
<Size value="{Width=336, Height=88}" /> |
||||||
|
</System.Windows.Forms.ListView> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label2" /> |
||||||
|
<Text value="Reference &Path:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
<Size value="{Width=336, Height=23}" /> |
||||||
|
<Location value="{X=8,Y=96}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="updateButton" /> |
||||||
|
<Location value="{X=112,Y=64}" /> |
||||||
|
<Size value="{Width=80, Height=23}" /> |
||||||
|
<Text value="&Update" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="addFolderButton" /> |
||||||
|
<Location value="{X=8,Y=64}" /> |
||||||
|
<Size value="{Width=96, Height=23}" /> |
||||||
|
<Text value="&Add Folder" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.TextBox> |
||||||
|
<Name value="folderTextBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=8,Y=32}" /> |
||||||
|
<Size value="{Width=296, Height=21}" /> |
||||||
|
<Text value="" /> |
||||||
|
</System.Windows.Forms.TextBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label1" /> |
||||||
|
<Text value="&Folder:" /> |
||||||
|
<TextAlign value="BottomLeft" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
<Size value="{Width=344, Height=23}" /> |
||||||
|
<Location value="{X=8,Y=8}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="folderBrowseButton" /> |
||||||
|
<Location value="{X=312,Y=32}" /> |
||||||
|
<Size value="{Width=40, Height=23}" /> |
||||||
|
<Text value="..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.UserControl> |
||||||
|
</Components> |
@ -0,0 +1,94 @@ |
|||||||
|
<Components version="1.0"> |
||||||
|
<System.Windows.Forms.UserControl> |
||||||
|
<Name value="XmlUserControl1" /> |
||||||
|
<DockPadding value="" /> |
||||||
|
<ClientSize value="{Width=392, Height=312}" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.GroupBox> |
||||||
|
<Name value="groupBox1" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=8,Y=28}" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<Size value="{Width=368, Height=196}" /> |
||||||
|
<Text value="Key Selection" /> |
||||||
|
<Controls> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="delaySignOnlyCheckBox" /> |
||||||
|
<Location value="{X=4,Y=169}" /> |
||||||
|
<Size value="{Width=356, Height=24}" /> |
||||||
|
<Text value="Dela&y Sign only" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="8" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="containerComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="7" /> |
||||||
|
<Location value="{X=108,Y=133}" /> |
||||||
|
<Size value="{Width=252, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label2" /> |
||||||
|
<Text value="&Container:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="6" /> |
||||||
|
<Location value="{X=8,Y=128}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="providerNameComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="5" /> |
||||||
|
<Location value="{X=108,Y=105}" /> |
||||||
|
<Size value="{Width=252, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Label> |
||||||
|
<Name value="label1" /> |
||||||
|
<Text value="Provider &name:" /> |
||||||
|
<TextAlign value="MiddleRight" /> |
||||||
|
<TabIndex value="4" /> |
||||||
|
<Location value="{X=8,Y=100}" /> |
||||||
|
</System.Windows.Forms.Label> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="useKeyProviderRadioButton" /> |
||||||
|
<Location value="{X=4,Y=77}" /> |
||||||
|
<Size value="{Width=356, Height=24}" /> |
||||||
|
<Text value="Use this key &provider:" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="3" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
<System.Windows.Forms.ComboBox> |
||||||
|
<Name value="keyFileComboBox" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="1" /> |
||||||
|
<Location value="{X=20,Y=49}" /> |
||||||
|
<Size value="{Width=184, Height=21}" /> |
||||||
|
</System.Windows.Forms.ComboBox> |
||||||
|
<System.Windows.Forms.Button> |
||||||
|
<Name value="changePasswordButton" /> |
||||||
|
<Location value="{X=212,Y=49}" /> |
||||||
|
<Size value="{Width=148, Height=21}" /> |
||||||
|
<Text value="Change Pass&word..." /> |
||||||
|
<Anchor value="Top, Right" /> |
||||||
|
<TabIndex value="2" /> |
||||||
|
</System.Windows.Forms.Button> |
||||||
|
<System.Windows.Forms.RadioButton> |
||||||
|
<Name value="useKeyFileRadioButton" /> |
||||||
|
<Location value="{X=4,Y=25}" /> |
||||||
|
<Size value="{Width=356, Height=24}" /> |
||||||
|
<Text value="Use a key &file:" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
</System.Windows.Forms.RadioButton> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.GroupBox> |
||||||
|
<System.Windows.Forms.CheckBox> |
||||||
|
<Name value="signAssemblyCheckBox" /> |
||||||
|
<Location value="{X=8,Y=4}" /> |
||||||
|
<Size value="{Width=376, Height=24}" /> |
||||||
|
<Text value="Sign the &assembly" /> |
||||||
|
<Anchor value="Top, Left, Right" /> |
||||||
|
<TabIndex value="0" /> |
||||||
|
</System.Windows.Forms.CheckBox> |
||||||
|
</Controls> |
||||||
|
</System.Windows.Forms.UserControl> |
||||||
|
</Components> |
@ -0,0 +1,199 @@ |
|||||||
|
using System; |
||||||
|
using System.Collections; |
||||||
|
using System.IO; |
||||||
|
|
||||||
|
using ICSharpCode.TextEditor; |
||||||
|
using ICSharpCode.TextEditor.Document; |
||||||
|
|
||||||
|
namespace VBNetBinding.FormattingStrategy |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Interface used for the indentation class to access the document.
|
||||||
|
/// </summary>
|
||||||
|
public interface IDocumentAccessor |
||||||
|
{ |
||||||
|
/// <summary>Gets if something was changed in the document.</summary>
|
||||||
|
bool Dirty { get; } |
||||||
|
/// <summary>Gets if the current line is read only (because it is not in the
|
||||||
|
/// selected text region)</summary>
|
||||||
|
bool ReadOnly { get; } |
||||||
|
/// <summary>Gets the number of the current line.</summary>
|
||||||
|
int LineNumber { get; } |
||||||
|
/// <summary>Gets/Sets the text of the current line.</summary>
|
||||||
|
string Text { get; set; } |
||||||
|
/// <summary>Advances to the next line.</summary>
|
||||||
|
bool Next(); |
||||||
|
} |
||||||
|
|
||||||
|
#region DocumentAccessor
|
||||||
|
public class DocumentAccessor : IDocumentAccessor |
||||||
|
{ |
||||||
|
IDocument doc; |
||||||
|
|
||||||
|
int minLine; |
||||||
|
int maxLine; |
||||||
|
int changedLines = 0; |
||||||
|
|
||||||
|
public DocumentAccessor(IDocument document) |
||||||
|
{ |
||||||
|
doc = document; |
||||||
|
this.minLine = 0; |
||||||
|
this.maxLine = doc.TotalNumberOfLines - 1; |
||||||
|
} |
||||||
|
|
||||||
|
public DocumentAccessor(IDocument document, int minLine, int maxLine) |
||||||
|
{ |
||||||
|
doc = document; |
||||||
|
this.minLine = minLine; |
||||||
|
this.maxLine = maxLine; |
||||||
|
} |
||||||
|
|
||||||
|
int num = -1; |
||||||
|
bool dirty; |
||||||
|
string text; |
||||||
|
LineSegment line; |
||||||
|
|
||||||
|
public bool ReadOnly |
||||||
|
{ |
||||||
|
get { |
||||||
|
return num < minLine; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public bool Dirty |
||||||
|
{ |
||||||
|
get { |
||||||
|
return dirty; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int LineNumber |
||||||
|
{ |
||||||
|
get { |
||||||
|
return num; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int ChangedLines |
||||||
|
{ |
||||||
|
get { |
||||||
|
return changedLines; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
bool lineDirty = false; |
||||||
|
|
||||||
|
public string Text |
||||||
|
{ |
||||||
|
get { return text; } |
||||||
|
set { |
||||||
|
if (num < minLine) return; |
||||||
|
text = value; |
||||||
|
dirty = true; |
||||||
|
lineDirty = true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public bool Next() |
||||||
|
{ |
||||||
|
if (lineDirty) { |
||||||
|
doc.Replace(line.Offset, line.Length, text); |
||||||
|
lineDirty = false; |
||||||
|
++changedLines; |
||||||
|
} |
||||||
|
++num; |
||||||
|
if (num > maxLine) return false; |
||||||
|
line = doc.GetLineSegment(num); |
||||||
|
text = doc.GetText(line); |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region FileAccessor
|
||||||
|
public class FileAccessor : IDisposable, IDocumentAccessor |
||||||
|
{ |
||||||
|
public bool Dirty |
||||||
|
{ |
||||||
|
get { |
||||||
|
return dirty; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public bool ReadOnly |
||||||
|
{ |
||||||
|
get { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
FileStream f; |
||||||
|
StreamReader r; |
||||||
|
ArrayList lines = new ArrayList(); |
||||||
|
bool dirty = false; |
||||||
|
|
||||||
|
System.Text.Encoding encoding; |
||||||
|
|
||||||
|
string filename; |
||||||
|
public FileAccessor(string filename) |
||||||
|
{ |
||||||
|
this.filename = filename; |
||||||
|
f = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.None); |
||||||
|
// TODO: Auto-detect encoding
|
||||||
|
encoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); |
||||||
|
r = new StreamReader(f, encoding); |
||||||
|
} |
||||||
|
|
||||||
|
int num = 0; |
||||||
|
|
||||||
|
public int LineNumber |
||||||
|
{ |
||||||
|
get { return num; } |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
string text = ""; |
||||||
|
|
||||||
|
public string Text |
||||||
|
{ |
||||||
|
get { |
||||||
|
return text; |
||||||
|
} |
||||||
|
set { |
||||||
|
dirty = true; |
||||||
|
text = value; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public bool Next() |
||||||
|
{ |
||||||
|
if (num > 0) { |
||||||
|
lines.Add(text); |
||||||
|
} |
||||||
|
text = r.ReadLine(); |
||||||
|
++num; |
||||||
|
return text != null; |
||||||
|
} |
||||||
|
|
||||||
|
void IDisposable.Dispose() |
||||||
|
{ |
||||||
|
Close(); |
||||||
|
} |
||||||
|
|
||||||
|
public void Close() |
||||||
|
{ |
||||||
|
r.Close(); |
||||||
|
f.Close(); |
||||||
|
if (dirty) { |
||||||
|
f = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None); |
||||||
|
using (StreamWriter w = new StreamWriter(f, encoding)) { |
||||||
|
foreach (string line in lines) { |
||||||
|
w.WriteLine(line); |
||||||
|
} |
||||||
|
} |
||||||
|
f.Close(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
} |
@ -0,0 +1,375 @@ |
|||||||
|
using System; |
||||||
|
using System.Collections; |
||||||
|
using System.Text; |
||||||
|
|
||||||
|
namespace VBNetBinding.FormattingStrategy |
||||||
|
{ |
||||||
|
public class IndentationSettings |
||||||
|
{ |
||||||
|
public string IndentString = "\t"; |
||||||
|
} |
||||||
|
|
||||||
|
public class IndentationReformatter |
||||||
|
{ |
||||||
|
public struct Block |
||||||
|
{ |
||||||
|
public string OuterIndent; |
||||||
|
public string InnerIndent; |
||||||
|
public string LastWord; |
||||||
|
public char Bracket; |
||||||
|
public bool Continuation; |
||||||
|
public bool OneLineBlock; |
||||||
|
public int StartLine; |
||||||
|
|
||||||
|
public void Indent(IndentationSettings set) |
||||||
|
{ |
||||||
|
Indent(set, set.IndentString); |
||||||
|
} |
||||||
|
|
||||||
|
public void Indent(IndentationSettings set, string str) |
||||||
|
{ |
||||||
|
OuterIndent = InnerIndent; |
||||||
|
InnerIndent += str; |
||||||
|
Continuation = false; |
||||||
|
OneLineBlock = false; |
||||||
|
LastWord = ""; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
StringBuilder wordBuilder; |
||||||
|
Stack blocks; // blocks contains all blocks outside of the current
|
||||||
|
Block block; // block is the current block
|
||||||
|
|
||||||
|
bool inString = false; |
||||||
|
bool inChar = false; |
||||||
|
bool verbatim = false; |
||||||
|
bool escape = false; |
||||||
|
|
||||||
|
bool lineComment = false; |
||||||
|
bool blockComment = false; |
||||||
|
|
||||||
|
char lastRealChar = ' '; // last non-comment char
|
||||||
|
|
||||||
|
public void Reformat(IDocumentAccessor doc, IndentationSettings set) |
||||||
|
{ |
||||||
|
Init(); |
||||||
|
|
||||||
|
while (doc.Next()) { |
||||||
|
Step(doc, set); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void Init() |
||||||
|
{ |
||||||
|
wordBuilder = new StringBuilder(); |
||||||
|
blocks = new Stack(); |
||||||
|
block = new Block(); |
||||||
|
block.InnerIndent = ""; |
||||||
|
block.OuterIndent = ""; |
||||||
|
block.Bracket = '{'; |
||||||
|
block.Continuation = false; |
||||||
|
block.LastWord = ""; |
||||||
|
block.OneLineBlock = false; |
||||||
|
block.StartLine = 0; |
||||||
|
|
||||||
|
inString = false; |
||||||
|
inChar = false; |
||||||
|
verbatim = false; |
||||||
|
escape = false; |
||||||
|
|
||||||
|
lineComment = false; |
||||||
|
blockComment = false; |
||||||
|
|
||||||
|
lastRealChar = ' '; // last non-comment char
|
||||||
|
} |
||||||
|
|
||||||
|
public void Step(IDocumentAccessor doc, IndentationSettings set) |
||||||
|
{ |
||||||
|
string line = doc.Text.TrimStart(); |
||||||
|
|
||||||
|
StringBuilder indent = new StringBuilder(); |
||||||
|
if (line.Length == 0) { |
||||||
|
// Special threatment for empty lines:
|
||||||
|
if (blockComment || (inString && verbatim)) |
||||||
|
return; |
||||||
|
indent.Append(block.InnerIndent); |
||||||
|
if (block.OneLineBlock) |
||||||
|
indent.Append(set.IndentString); |
||||||
|
if (block.Continuation) |
||||||
|
indent.Append(set.IndentString); |
||||||
|
if (doc.Text != indent.ToString()) |
||||||
|
doc.Text = indent.ToString(); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
if (TrimEnd(doc)) |
||||||
|
line = doc.Text.TrimStart(); |
||||||
|
|
||||||
|
Block oldBlock = block; |
||||||
|
bool startInComment = blockComment; |
||||||
|
bool startInString = (inString && verbatim); |
||||||
|
|
||||||
|
#region Parse char by char
|
||||||
|
lineComment = false; |
||||||
|
inChar = false; |
||||||
|
escape = false; |
||||||
|
if (!verbatim) inString = false; |
||||||
|
|
||||||
|
lastRealChar = '\n'; |
||||||
|
|
||||||
|
char lastchar = ' '; |
||||||
|
char c = ' '; |
||||||
|
char nextchar = line[0]; |
||||||
|
for (int i = 0; i < line.Length; i++) { |
||||||
|
if (lineComment) break; // cancel parsing current line
|
||||||
|
|
||||||
|
lastchar = c; |
||||||
|
c = nextchar; |
||||||
|
if (i + 1 < line.Length) |
||||||
|
nextchar = line[i + 1]; |
||||||
|
else |
||||||
|
nextchar = '\n'; |
||||||
|
|
||||||
|
if (escape) { |
||||||
|
escape = false; |
||||||
|
continue; |
||||||
|
} |
||||||
|
|
||||||
|
#region Check for comment/string chars
|
||||||
|
switch (c) { |
||||||
|
case '/': |
||||||
|
if (blockComment && lastchar == '*') |
||||||
|
blockComment = false; |
||||||
|
if (!inString && !inChar) { |
||||||
|
if (!blockComment && nextchar == '/') |
||||||
|
lineComment = true; |
||||||
|
if (!lineComment && nextchar == '*') |
||||||
|
blockComment = true; |
||||||
|
} |
||||||
|
break; |
||||||
|
case '#': |
||||||
|
if (!(inChar || blockComment || inString)) |
||||||
|
lineComment = true; |
||||||
|
break; |
||||||
|
case '"': |
||||||
|
if (!(inChar || lineComment || blockComment)) { |
||||||
|
inString = !inString; |
||||||
|
if (!inString && verbatim) { |
||||||
|
if (nextchar == '"') { |
||||||
|
escape = true; // skip escaped quote
|
||||||
|
inString = true; |
||||||
|
} else { |
||||||
|
verbatim = false; |
||||||
|
} |
||||||
|
} else if (inString && lastchar == '@') { |
||||||
|
verbatim = true; |
||||||
|
} |
||||||
|
} |
||||||
|
break; |
||||||
|
case '\'': |
||||||
|
if (!(inString || lineComment || blockComment)) { |
||||||
|
inChar = !inChar; |
||||||
|
} |
||||||
|
break; |
||||||
|
case '\\': |
||||||
|
if ((inString && !verbatim) || inChar) |
||||||
|
escape = true; // skip next character
|
||||||
|
break; |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
if (lineComment || blockComment || inString || inChar) { |
||||||
|
if (wordBuilder.Length > 0) |
||||||
|
block.LastWord = wordBuilder.ToString(); |
||||||
|
wordBuilder.Length = 0; |
||||||
|
continue; |
||||||
|
} |
||||||
|
|
||||||
|
if (!Char.IsWhiteSpace(c) && c != '[' && c != '/') { |
||||||
|
if (block.Bracket == '{') |
||||||
|
block.Continuation = true; |
||||||
|
} |
||||||
|
|
||||||
|
if (Char.IsLetterOrDigit(c)) { |
||||||
|
wordBuilder.Append(c); |
||||||
|
} else { |
||||||
|
if (wordBuilder.Length > 0) |
||||||
|
block.LastWord = wordBuilder.ToString(); |
||||||
|
wordBuilder.Length = 0; |
||||||
|
} |
||||||
|
|
||||||
|
#region Push/Pop the blocks
|
||||||
|
switch (c) { |
||||||
|
case '{': |
||||||
|
block.OneLineBlock = false; |
||||||
|
blocks.Push(block); |
||||||
|
block.StartLine = doc.LineNumber; |
||||||
|
if (block.LastWord == "switch") |
||||||
|
block.Indent(set, set.IndentString + set.IndentString); |
||||||
|
else |
||||||
|
block.Indent(set); |
||||||
|
block.Bracket = '{'; |
||||||
|
break; |
||||||
|
case '}': |
||||||
|
while (block.Bracket != '{') { |
||||||
|
if (blocks.Count == 0) break; |
||||||
|
block = (Block)blocks.Pop(); |
||||||
|
} |
||||||
|
if (blocks.Count == 0) break; |
||||||
|
block = (Block)blocks.Pop(); |
||||||
|
block.Continuation = false; |
||||||
|
block.OneLineBlock = false; |
||||||
|
break; |
||||||
|
case '(': |
||||||
|
case '[': |
||||||
|
blocks.Push(block); |
||||||
|
if (block.StartLine == doc.LineNumber) |
||||||
|
block.InnerIndent = block.OuterIndent; |
||||||
|
else |
||||||
|
block.StartLine = doc.LineNumber; |
||||||
|
block.Indent(set, |
||||||
|
(oldBlock.OneLineBlock ? set.IndentString : "") + |
||||||
|
(oldBlock.Continuation ? set.IndentString : "") + |
||||||
|
new String(' ', i + 1)); |
||||||
|
block.Bracket = c; |
||||||
|
break; |
||||||
|
case ')': |
||||||
|
if (blocks.Count == 0) break; |
||||||
|
if (block.Bracket == '(') { |
||||||
|
block = (Block)blocks.Pop(); |
||||||
|
if (IsSingleStatementKeyword(block.LastWord)) |
||||||
|
block.Continuation = false; |
||||||
|
} |
||||||
|
break; |
||||||
|
case ']': |
||||||
|
if (blocks.Count == 0) break; |
||||||
|
if (block.Bracket == '[') |
||||||
|
block = (Block)blocks.Pop(); |
||||||
|
break; |
||||||
|
case ';': |
||||||
|
case ',': |
||||||
|
block.Continuation = false; |
||||||
|
block.OneLineBlock = false; |
||||||
|
break; |
||||||
|
case ':': |
||||||
|
if (block.LastWord == "case" || line.StartsWith("case ") || line.StartsWith(block.LastWord + ":")) { |
||||||
|
block.Continuation = false; |
||||||
|
block.OneLineBlock = false; |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
if (!Char.IsWhiteSpace(c)) { |
||||||
|
// register this char as last char
|
||||||
|
lastRealChar = c; |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
if (wordBuilder.Length > 0) |
||||||
|
block.LastWord = wordBuilder.ToString(); |
||||||
|
wordBuilder.Length = 0; |
||||||
|
|
||||||
|
if (startInString) return; |
||||||
|
if (startInComment && line[0] != '*') return; |
||||||
|
if (doc.Text.StartsWith("//\t")) |
||||||
|
return; |
||||||
|
|
||||||
|
if (line[0] == '}') { |
||||||
|
indent.Append(oldBlock.OuterIndent); |
||||||
|
oldBlock.OneLineBlock = false; |
||||||
|
oldBlock.Continuation = false; |
||||||
|
} else { |
||||||
|
indent.Append(oldBlock.InnerIndent); |
||||||
|
} |
||||||
|
|
||||||
|
if (indent.Length > 0 && oldBlock.Bracket == '(' && line[0] == ')') { |
||||||
|
indent.Remove(indent.Length - 1, 1); |
||||||
|
} else if (indent.Length > 0 && oldBlock.Bracket == '[' && line[0] == ']') { |
||||||
|
indent.Remove(indent.Length - 1, 1); |
||||||
|
} |
||||||
|
|
||||||
|
if (line[0] == ':') { |
||||||
|
oldBlock.Continuation = true; |
||||||
|
} else if (lastRealChar == ':' && indent.Length >= set.IndentString.Length) { |
||||||
|
if (block.LastWord == "case" || line.StartsWith("case ") || line.StartsWith(block.LastWord + ":")) |
||||||
|
indent.Remove(indent.Length - set.IndentString.Length, set.IndentString.Length); |
||||||
|
} else if (lastRealChar == ')') { |
||||||
|
if (IsSingleStatementKeyword(block.LastWord)) { |
||||||
|
block.OneLineBlock = true; |
||||||
|
} |
||||||
|
} else if (block.LastWord == "else" && lastRealChar == 'e') { |
||||||
|
block.OneLineBlock = true; |
||||||
|
block.Continuation = false; |
||||||
|
} |
||||||
|
|
||||||
|
if (doc.ReadOnly) { |
||||||
|
// We can't change the current line, but we should accept the existing
|
||||||
|
// indentation if possible (so if the current statement is not a multiline
|
||||||
|
// statement).
|
||||||
|
if (!oldBlock.Continuation && !oldBlock.OneLineBlock && |
||||||
|
oldBlock.StartLine == block.StartLine && |
||||||
|
block.StartLine < doc.LineNumber && lastRealChar != ':') { |
||||||
|
// use indent StringBuilder to get the indentation of the current line
|
||||||
|
indent.Length = 0; |
||||||
|
line = doc.Text; // get untrimmed line
|
||||||
|
for (int i = 0; i < line.Length; ++i) { |
||||||
|
if (!Char.IsWhiteSpace(line[i])) |
||||||
|
break; |
||||||
|
indent.Append(line[i]); |
||||||
|
} |
||||||
|
block.InnerIndent = indent.ToString(); |
||||||
|
} |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
if (line[0] != '{') { |
||||||
|
if (line[0] != ')' && oldBlock.Continuation && oldBlock.Bracket == '{') |
||||||
|
indent.Append(set.IndentString); |
||||||
|
if (oldBlock.OneLineBlock) |
||||||
|
indent.Append(set.IndentString); |
||||||
|
} |
||||||
|
|
||||||
|
// this is only for blockcomment lines starting with *,
|
||||||
|
// all others keep their old indentation
|
||||||
|
if (startInComment) |
||||||
|
indent.Append(' '); |
||||||
|
|
||||||
|
if (indent.Length != (doc.Text.Length - line.Length) || |
||||||
|
!doc.Text.StartsWith(indent.ToString()) || |
||||||
|
Char.IsWhiteSpace(doc.Text[indent.Length])) |
||||||
|
{ |
||||||
|
doc.Text = indent.ToString() + line; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
bool IsSingleStatementKeyword(string keyword) { |
||||||
|
switch (keyword) { |
||||||
|
case "if": |
||||||
|
case "for": |
||||||
|
case "while": |
||||||
|
case "do": |
||||||
|
case "foreach": |
||||||
|
case "using": |
||||||
|
case "lock": |
||||||
|
return true; |
||||||
|
default: |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
bool TrimEnd(IDocumentAccessor doc) |
||||||
|
{ |
||||||
|
string line = doc.Text; |
||||||
|
if (!Char.IsWhiteSpace(line[line.Length - 1])) return false; |
||||||
|
|
||||||
|
// one space after an empty comment is allowed
|
||||||
|
if (line.EndsWith("// ")) |
||||||
|
return false; |
||||||
|
|
||||||
|
doc.Text = line.TrimEnd(); |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,457 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="Markus Palme" email="MarkusPalme@gmx.de"/>
|
||||||
|
// <version value="$version"/>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Collections; |
||||||
|
using System.Collections.Specialized; |
||||||
|
using System.Text.RegularExpressions; |
||||||
|
using System.Diagnostics; |
||||||
|
using System.Drawing; |
||||||
|
using System.Text; |
||||||
|
|
||||||
|
using ICSharpCode.TextEditor.Document; |
||||||
|
using ICSharpCode.TextEditor.Actions; |
||||||
|
using ICSharpCode.TextEditor; |
||||||
|
|
||||||
|
using ICSharpCode.Core; |
||||||
|
|
||||||
|
namespace VBNetBinding.FormattingStrategy |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// This class handles the auto and smart indenting in the textbuffer while
|
||||||
|
/// you type.
|
||||||
|
/// </summary>
|
||||||
|
public class VBFormattingStrategy : DefaultFormattingStrategy |
||||||
|
{ |
||||||
|
ArrayList statements; |
||||||
|
StringCollection keywords; |
||||||
|
|
||||||
|
bool doCasing; |
||||||
|
bool doInsertion; |
||||||
|
|
||||||
|
public VBFormattingStrategy() |
||||||
|
{ |
||||||
|
|
||||||
|
statements = new ArrayList(); |
||||||
|
statements.Add(new VBStatement("^if.*?then$", "^end ?if$", "End If", 1)); |
||||||
|
statements.Add(new VBStatement("\\bclass \\w+$", "^end class$", "End Class", 1)); |
||||||
|
statements.Add(new VBStatement("\\bnamespace \\w+$", "^end namespace$", "End Namespace", 1)); |
||||||
|
statements.Add(new VBStatement("\\bmodule \\w+$", "^end module$", "End Module", 1)); |
||||||
|
statements.Add(new VBStatement("\\bstructure \\w+$", "^end structure$", "End Structure", 1)); |
||||||
|
statements.Add(new VBStatement("^while ", "^end while$", "End While", 1)); |
||||||
|
statements.Add(new VBStatement("^select case", "^end select$", "End Select", 2)); |
||||||
|
statements.Add(new VBStatement("(?<!\\bmustoverride )\\bsub \\w+", "^end sub$", "End Sub", 1)); |
||||||
|
statements.Add(new VBStatement("(?<!\\bmustoverride (readonly |writeonly )?)\\bproperty \\w+", "^end property$", "End Property", 1)); |
||||||
|
statements.Add(new VBStatement("(?<!\\bmustoverride )\\bfunction \\w+", "^end function$", "End Function", 1)); |
||||||
|
statements.Add(new VBStatement("\\bfor .*?$", "^next( \\w+)?$", "Next", 1)); |
||||||
|
statements.Add(new VBStatement("^synclock .*?$", "^end synclock$", "End SyncLock", 1)); |
||||||
|
statements.Add(new VBStatement("^get$", "^end get$", "End Get", 1)); |
||||||
|
statements.Add(new VBStatement("^with \\w+$", "^end with$", "End With", 1)); |
||||||
|
statements.Add(new VBStatement("^set(\\s*\\(.*?\\))?$", "^end set$", "End Set", 1)); |
||||||
|
statements.Add(new VBStatement("^try$", "^end try$", "End Try", 1)); |
||||||
|
statements.Add(new VBStatement("^do .+?$", "^loop$", "Loop", 1)); |
||||||
|
statements.Add(new VBStatement("^do$", "^loop .+?$", "Loop While ", 1)); |
||||||
|
statements.Add(new VBStatement("\\benum .*?$", "^end enum$", "End Enum", 1)); |
||||||
|
|
||||||
|
keywords = new StringCollection(); |
||||||
|
keywords.AddRange(new string[] { |
||||||
|
"AddHandler", "AddressOf", "Alias", "And", "AndAlso", "Ansi", "As", "Assembly", |
||||||
|
"Auto", "Boolean", "ByRef", "Byte", "ByVal", "Call", "Case", "Catch", |
||||||
|
"CBool", "CByte", "CChar", "CDate", "CDec", "CDbl", "Char", "CInt", "Class", |
||||||
|
"CLng", "CObj", "Const", "CShort", "CSng", "CStr", "CType", |
||||||
|
"Date", "Decimal", "Declare", "Default", "Delegate", "Dim", "DirectCast", "Do", |
||||||
|
"Double", "Each", "Else", "ElseIf", "End", "Enum", "Erase", "Error", |
||||||
|
"Event", "Exit", "False", "Finally", "For", "Friend", "Function", "Get", |
||||||
|
"GetType", "GoSub", "GoTo", "Handles", "If", "Implements", "Imports", "In", |
||||||
|
"Inherits", "Integer", "Interface", "Is", "Let", "Lib", "Like", "Long", |
||||||
|
"Loop", "Me", "Mod", "Module", "MustInherit", "MustOverride", "MyBase", "MyClass", |
||||||
|
"Namespace", "New", "Next", "Not", "Nothing", "NotInheritable", "NotOverridable", "Object", |
||||||
|
"On", "Option", "Optional", "Or", "OrElse", "Overloads", "Overridable", "Overrides", |
||||||
|
"ParamArray", "Preserve", "Private", "Property", "Protected", "Public", "RaiseEvent", "ReadOnly", |
||||||
|
"ReDim", "Region", "REM", "RemoveHandler", "Resume", "Return", "Select", "Set", "Shadows", |
||||||
|
"Shared", "Short", "Single", "Static", "Step", "Stop", "String", "Structure", |
||||||
|
"Sub", "SyncLock", "Then", "Throw", "To", "True", "Try", "TypeOf", |
||||||
|
"Unicode", "Until", "Variant", "When", "While", "With", "WithEvents", "WriteOnly", "Xor" |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Define VB.net specific smart indenting for a line :)
|
||||||
|
/// </summary>
|
||||||
|
protected override int SmartIndentLine(TextArea textArea, int lineNr) |
||||||
|
{ |
||||||
|
|
||||||
|
doCasing = PropertyService.Get("VBBinding.TextEditor.EnableCasing", true); |
||||||
|
IDocument document = textArea.Document; |
||||||
|
if (lineNr <= 0) |
||||||
|
return AutoIndentLine(textArea, lineNr); |
||||||
|
LineSegment lineAbove = document.GetLineSegment(lineNr - 1); |
||||||
|
string lineAboveText = document.GetText(lineAbove.Offset, lineAbove.Length).Trim(); |
||||||
|
|
||||||
|
LineSegment curLine = document.GetLineSegment(lineNr); |
||||||
|
string oldLineText = document.GetText(curLine.Offset, curLine.Length); |
||||||
|
string curLineText = oldLineText.Trim(); |
||||||
|
|
||||||
|
// remove comments
|
||||||
|
string texttoreplace = Regex.Replace(lineAboveText, "'.*$", "", RegexOptions.Singleline).Trim(); |
||||||
|
// remove string content
|
||||||
|
foreach (Match match in Regex.Matches(texttoreplace, "\"[^\"]*?\"")) { |
||||||
|
texttoreplace = texttoreplace.Remove(match.Index, match.Length).Insert(match.Index, new String('-', match.Length)); |
||||||
|
} |
||||||
|
|
||||||
|
string curLineReplace = Regex.Replace(curLineText, "'.*$", "", RegexOptions.Singleline).Trim(); |
||||||
|
// remove string content
|
||||||
|
foreach (Match match in Regex.Matches(curLineReplace, "\"[^\"]*?\"")) { |
||||||
|
curLineReplace = curLineReplace.Remove(match.Index, match.Length).Insert(match.Index, new String('-', match.Length)); |
||||||
|
} |
||||||
|
|
||||||
|
StringBuilder b = new StringBuilder(GetIndentation(textArea, lineNr - 1)); |
||||||
|
|
||||||
|
string indentString = Tab.GetIndentationString(document); |
||||||
|
|
||||||
|
if (texttoreplace.IndexOf(':') > 0) |
||||||
|
texttoreplace = texttoreplace.Substring(0, texttoreplace.IndexOf(':')).TrimEnd(); |
||||||
|
|
||||||
|
bool matched = false; |
||||||
|
foreach (VBStatement statement in statements) { |
||||||
|
if (statement.IndentPlus == 0) continue; |
||||||
|
if (Regex.IsMatch(curLineReplace, statement.EndRegex, RegexOptions.IgnoreCase)) { |
||||||
|
for (int i = 0; i < statement.IndentPlus; ++i) { |
||||||
|
RemoveIndent(b); |
||||||
|
} |
||||||
|
if (doCasing && !statement.EndStatement.EndsWith(" ")) |
||||||
|
curLineText = statement.EndStatement; |
||||||
|
matched = true; |
||||||
|
} |
||||||
|
if (Regex.IsMatch(texttoreplace, statement.StartRegex, RegexOptions.IgnoreCase)) { |
||||||
|
for (int i = 0; i < statement.IndentPlus; ++i) { |
||||||
|
b.Append(indentString); |
||||||
|
} |
||||||
|
matched = true; |
||||||
|
} |
||||||
|
if (matched) |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
if (lineNr >= 2) { |
||||||
|
if (texttoreplace.EndsWith("_")) { |
||||||
|
// Line continuation
|
||||||
|
char secondLastChar = ' '; |
||||||
|
for (int i = texttoreplace.Length - 2; i >= 0; --i) { |
||||||
|
secondLastChar = texttoreplace[i]; |
||||||
|
if (!Char.IsWhiteSpace(secondLastChar)) |
||||||
|
break; |
||||||
|
} |
||||||
|
if (secondLastChar != '>') { |
||||||
|
// is not end of attribute
|
||||||
|
LineSegment line2Above = document.GetLineSegment(lineNr - 2); |
||||||
|
string lineAboveText2 = document.GetText(line2Above.Offset, line2Above.Length).Trim(); |
||||||
|
lineAboveText2 = Regex.Replace(lineAboveText2, "'.*$", "", RegexOptions.Singleline).Trim(); |
||||||
|
if (!lineAboveText2.EndsWith("_")) { |
||||||
|
b.Append(indentString); |
||||||
|
} |
||||||
|
} |
||||||
|
} else { |
||||||
|
LineSegment line2Above = document.GetLineSegment(lineNr - 2); |
||||||
|
string lineAboveText2 = document.GetText(line2Above.Offset, line2Above.Length).Trim(); |
||||||
|
lineAboveText2 = StripComment(lineAboveText2); |
||||||
|
if (lineAboveText2.EndsWith("_")) { |
||||||
|
char secondLastChar = ' '; |
||||||
|
for (int i = texttoreplace.Length - 2; i >= 0; --i) { |
||||||
|
secondLastChar = texttoreplace[i]; |
||||||
|
if (!Char.IsWhiteSpace(secondLastChar)) |
||||||
|
break; |
||||||
|
} |
||||||
|
if (secondLastChar != '>') |
||||||
|
RemoveIndent(b); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (IsElseConstruct(curLineText)) |
||||||
|
RemoveIndent(b); |
||||||
|
|
||||||
|
if (IsElseConstruct(lineAboveText)) |
||||||
|
b.Append(indentString); |
||||||
|
|
||||||
|
int indentLength = b.Length; |
||||||
|
b.Append(curLineText); |
||||||
|
if (b.ToString() != oldLineText) |
||||||
|
textArea.Document.Replace(curLine.Offset, curLine.Length, b.ToString()); |
||||||
|
return indentLength; |
||||||
|
} |
||||||
|
|
||||||
|
bool IsElseConstruct(string line) |
||||||
|
{ |
||||||
|
string t = StripComment(line).ToLower(); |
||||||
|
if (t.StartsWith("case ")) return true; |
||||||
|
if (t == "else" || t.StartsWith("elseif ")) return true; |
||||||
|
if (t == "catch" || t.StartsWith("catch ")) return true; |
||||||
|
if (t == "finally") return true; |
||||||
|
|
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
string StripComment(string text) |
||||||
|
{ |
||||||
|
return Regex.Replace(text, "'.*$", "", RegexOptions.Singleline).Trim(); |
||||||
|
} |
||||||
|
|
||||||
|
void RemoveIndent(StringBuilder b) |
||||||
|
{ |
||||||
|
if (b.Length == 0) return; |
||||||
|
if (b[b.Length - 1] == '\t') { |
||||||
|
b.Remove(b.Length - 1, 1); |
||||||
|
} else { |
||||||
|
for (int j = 0; j < 4; ++j) { |
||||||
|
if (b.Length == 0) return; |
||||||
|
if (b[b.Length - 1] != ' ') |
||||||
|
break; |
||||||
|
b.Remove(b.Length - 1, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public override int FormatLine(TextArea textArea, int lineNr, int cursorOffset, char ch) |
||||||
|
{ |
||||||
|
|
||||||
|
doCasing = PropertyService.Get("VBBinding.TextEditor.EnableCasing", true); |
||||||
|
doInsertion = PropertyService.Get("VBBinding.TextEditor.EnableEndConstructs", true); |
||||||
|
|
||||||
|
if (lineNr > 0) { |
||||||
|
LineSegment curLine = textArea.Document.GetLineSegment(lineNr); |
||||||
|
LineSegment lineAbove = lineNr > 0 ? textArea.Document.GetLineSegment(lineNr - 1) : null; |
||||||
|
|
||||||
|
string curLineText = textArea.Document.GetText(curLine.Offset, curLine.Length); |
||||||
|
string lineAboveText = textArea.Document.GetText(lineAbove.Offset, lineAbove.Length); |
||||||
|
|
||||||
|
if (ch == '\n' && lineAboveText != null) { |
||||||
|
int undoCount = 1; |
||||||
|
|
||||||
|
// remove comments
|
||||||
|
string texttoreplace = Regex.Replace(lineAboveText, "'.*$", "", RegexOptions.Singleline); |
||||||
|
// remove string content
|
||||||
|
MatchCollection strmatches = Regex.Matches(texttoreplace, "\"[^\"]*?\"", RegexOptions.Singleline); |
||||||
|
foreach (Match match in strmatches) { |
||||||
|
texttoreplace = texttoreplace.Remove(match.Index, match.Length).Insert(match.Index, new String('-', match.Length)); |
||||||
|
} |
||||||
|
|
||||||
|
if (doCasing) { |
||||||
|
foreach (string keyword in keywords) { |
||||||
|
string regex = "(?:\\W|^)(" + keyword + ")(?:\\W|$)"; |
||||||
|
MatchCollection matches = Regex.Matches(texttoreplace, regex, RegexOptions.IgnoreCase | RegexOptions.Singleline); |
||||||
|
foreach (Match match in matches) { |
||||||
|
textArea.Document.Replace(lineAbove.Offset + match.Groups[1].Index, match.Groups[1].Length, keyword); |
||||||
|
++undoCount; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (doInsertion) { |
||||||
|
foreach (VBStatement statement in statements) { |
||||||
|
if (Regex.IsMatch(texttoreplace.Trim(), statement.StartRegex, RegexOptions.IgnoreCase)) { |
||||||
|
string indentation = GetIndentation(textArea, lineNr - 1); |
||||||
|
if (isEndStatementNeeded(textArea, statement, lineNr)) { |
||||||
|
textArea.Document.Insert(textArea.Caret.Offset, "\n" + indentation + statement.EndStatement); |
||||||
|
++undoCount; |
||||||
|
} |
||||||
|
for (int i = 0; i < statement.IndentPlus; i++) { |
||||||
|
indentation += Tab.GetIndentationString(textArea.Document); |
||||||
|
} |
||||||
|
|
||||||
|
textArea.Document.Replace(curLine.Offset, curLine.Length, indentation + curLineText.Trim()); |
||||||
|
textArea.Document.UndoStack.UndoLast(undoCount + 1); |
||||||
|
return indentation.Length; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if (IsInString(lineAboveText)) { |
||||||
|
if (IsFinishedString(curLineText)) { |
||||||
|
textArea.Document.Insert(lineAbove.Offset + lineAbove.Length, |
||||||
|
"\" & _"); |
||||||
|
curLine = textArea.Document.GetLineSegment(lineNr); |
||||||
|
textArea.Document.Insert(curLine.Offset, "\""); |
||||||
|
|
||||||
|
if (IsElseConstruct(lineAboveText)) |
||||||
|
SmartIndentLine(textArea, lineNr - 1); |
||||||
|
int result = SmartIndentLine(textArea, lineNr) + 1; |
||||||
|
textArea.Document.UndoStack.UndoLast(undoCount + 3); |
||||||
|
return result; |
||||||
|
} else { |
||||||
|
textArea.Document.Insert(lineAbove.Offset + lineAbove.Length, |
||||||
|
"\""); |
||||||
|
if (IsElseConstruct(lineAboveText)) |
||||||
|
SmartIndentLine(textArea, lineNr - 1); |
||||||
|
int result = SmartIndentLine(textArea, lineNr); |
||||||
|
textArea.Document.UndoStack.UndoLast(undoCount + 2); |
||||||
|
return result; |
||||||
|
} |
||||||
|
} else { |
||||||
|
string indent = GetIndentation(textArea, lineNr - 1); |
||||||
|
if (indent.Length > 0) { |
||||||
|
string newLineText = indent + TextUtilities.GetLineAsString(textArea.Document, lineNr).Trim(); |
||||||
|
curLine = textArea.Document.GetLineSegment(lineNr); |
||||||
|
textArea.Document.Replace(curLine.Offset, curLine.Length, newLineText); |
||||||
|
++undoCount; |
||||||
|
} |
||||||
|
if (IsElseConstruct(lineAboveText)) |
||||||
|
SmartIndentLine(textArea, lineNr - 1); |
||||||
|
textArea.Document.UndoStack.UndoLast(undoCount); |
||||||
|
return indent.Length; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
bool IsInString(string start) |
||||||
|
{ |
||||||
|
bool inString = false; |
||||||
|
for (int i = 0; i < start.Length; i++) { |
||||||
|
if (start[i] == '"') |
||||||
|
inString = !inString; |
||||||
|
if (!inString && start[i] == '\'') |
||||||
|
return false; |
||||||
|
} |
||||||
|
return inString; |
||||||
|
} |
||||||
|
bool IsFinishedString(string end) |
||||||
|
{ |
||||||
|
bool inString = true; |
||||||
|
for (int i = 0; i < end.Length; i++) { |
||||||
|
if (end[i] == '"') |
||||||
|
inString = !inString; |
||||||
|
if (!inString && end[i] == '\'') |
||||||
|
break; |
||||||
|
} |
||||||
|
return !inString; |
||||||
|
} |
||||||
|
|
||||||
|
bool isEndStatementNeeded(TextArea textArea, VBStatement statement, int lineNr) |
||||||
|
{ |
||||||
|
int count = 0; |
||||||
|
|
||||||
|
for (int i = 0; i < textArea.Document.TotalNumberOfLines; i++) { |
||||||
|
LineSegment line = textArea.Document.GetLineSegment(i); |
||||||
|
string lineText = textArea.Document.GetText(line.Offset, line.Length).Trim(); |
||||||
|
|
||||||
|
if (lineText.StartsWith("'")) { |
||||||
|
continue; |
||||||
|
} |
||||||
|
|
||||||
|
if (Regex.IsMatch(lineText, statement.StartRegex, RegexOptions.IgnoreCase)) { |
||||||
|
count++; |
||||||
|
} else if (Regex.IsMatch(lineText, statement.EndRegex, RegexOptions.IgnoreCase)) { |
||||||
|
count--; |
||||||
|
} |
||||||
|
} |
||||||
|
return count > 0; |
||||||
|
} |
||||||
|
|
||||||
|
class VBStatement |
||||||
|
{ |
||||||
|
public string StartRegex = ""; |
||||||
|
public string EndRegex = ""; |
||||||
|
public string EndStatement = ""; |
||||||
|
|
||||||
|
public int IndentPlus = 0; |
||||||
|
|
||||||
|
public VBStatement() |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
public VBStatement(string startRegex, string endRegex, string endStatement, int indentPlus) |
||||||
|
{ |
||||||
|
StartRegex = startRegex; |
||||||
|
EndRegex = endRegex; |
||||||
|
EndStatement = endStatement; |
||||||
|
IndentPlus = indentPlus; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#region SearchBracket
|
||||||
|
public override int SearchBracketBackward(IDocument document, int offset, char openBracket, char closingBracket) |
||||||
|
{ |
||||||
|
bool inString = false; |
||||||
|
char ch; |
||||||
|
int brackets = -1; |
||||||
|
for (int i = offset; i > 0; --i) { |
||||||
|
ch = document.GetCharAt(i); |
||||||
|
if (ch == openBracket && !inString) { |
||||||
|
++brackets; |
||||||
|
if (brackets == 0) return i; |
||||||
|
} else if (ch == closingBracket && !inString) { |
||||||
|
--brackets; |
||||||
|
} else if (ch == '"') { |
||||||
|
inString = !inString; |
||||||
|
} else if (ch == '\n') { |
||||||
|
int lineStart = ScanLineStart(document, i); |
||||||
|
if (lineStart >= 0) { // line could have a comment
|
||||||
|
inString = false; |
||||||
|
for (int j = lineStart; j < i; ++j) { |
||||||
|
ch = document.GetCharAt(j); |
||||||
|
if (ch == '"') inString = !inString; |
||||||
|
if (ch == '\'' && !inString) { |
||||||
|
// comment found!
|
||||||
|
// Skip searching in the comment:
|
||||||
|
i = j; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
inString = false; |
||||||
|
} |
||||||
|
} |
||||||
|
return -1; |
||||||
|
} |
||||||
|
|
||||||
|
static int ScanLineStart(IDocument document, int offset) |
||||||
|
{ |
||||||
|
bool hasComment = false; |
||||||
|
for (int i = offset - 1; i > 0; --i) { |
||||||
|
char ch = document.GetCharAt(i); |
||||||
|
if (ch == '\n') { |
||||||
|
if (!hasComment) return -1; |
||||||
|
return i + 1; |
||||||
|
} else if (ch == '\'') { |
||||||
|
hasComment = true; |
||||||
|
} |
||||||
|
} |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
public override int SearchBracketForward(IDocument document, int offset, char openBracket, char closingBracket) |
||||||
|
{ |
||||||
|
bool inString = false; |
||||||
|
bool inComment = false; |
||||||
|
int brackets = 1; |
||||||
|
for (int i = offset; i < document.TextLength; ++i) { |
||||||
|
char ch = document.GetCharAt(i); |
||||||
|
if (ch == '\n') { |
||||||
|
inString = false; |
||||||
|
inComment = false; |
||||||
|
} |
||||||
|
if (inComment) continue; |
||||||
|
if (ch == '"') inString = !inString; |
||||||
|
if (inString) continue; |
||||||
|
if (ch == '\'') { |
||||||
|
inComment = true; |
||||||
|
} else if (ch == openBracket) { |
||||||
|
++brackets; |
||||||
|
} else if (ch == closingBracket) { |
||||||
|
--brackets; |
||||||
|
if (brackets == 0) return i; |
||||||
|
} |
||||||
|
} |
||||||
|
return -1; |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,95 @@ |
|||||||
|
using System; |
||||||
|
using System.Drawing; |
||||||
|
using System.IO; |
||||||
|
using System.Windows.Forms; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Internal.ExternalTool; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
|
||||||
|
namespace VBNetBinding.OptionPanels |
||||||
|
{ |
||||||
|
public class ApplicationSettings : AbstractOptionPanel |
||||||
|
{ |
||||||
|
VBNetProject project; |
||||||
|
|
||||||
|
public ApplicationSettings() |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
public override void LoadPanelContents() |
||||||
|
{ |
||||||
|
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.ApplicationSettings.xfrm")); |
||||||
|
this.project = (VBNetProject)((Properties)CustomizationObject).Get("Project"); |
||||||
|
|
||||||
|
ConnectBrowseButton("applicationIconBrowseButton", "applicationIconComboBox", "${res:SharpDevelop.FileFilter.Icons}|*.ico|${res:SharpDevelop.FileFilter.AllFiles}|*.*"); |
||||||
|
|
||||||
|
// TODO: Suitable file filter.
|
||||||
|
ConnectBrowseButton("win32ResourceFileBrowseButton", "win32ResourceFileComboBox"); |
||||||
|
|
||||||
|
Get<TextBox>("assemblyName").Text = project.AssemblyName; |
||||||
|
Get<TextBox>("assemblyName").TextChanged += new EventHandler(RefreshOutputNameTextBox); |
||||||
|
Get<TextBox>("assemblyName").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("rootNamespace").Text = project.RootNamespace; |
||||||
|
Get<TextBox>("rootNamespace").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<ComboBox>("outputType").Items.Add(StringParser.Parse("${res:Dialog.Options.PrjOptions.Configuration.CompileTarget.Exe}")); |
||||||
|
Get<ComboBox>("outputType").Items.Add(StringParser.Parse("${res:Dialog.Options.PrjOptions.Configuration.CompileTarget.WinExe}")); |
||||||
|
Get<ComboBox>("outputType").Items.Add(StringParser.Parse("${res:Dialog.Options.PrjOptions.Configuration.CompileTarget.Library}")); |
||||||
|
Get<ComboBox>("outputType").Items.Add(StringParser.Parse("${res:Dialog.Options.PrjOptions.Configuration.CompileTarget.Module}")); |
||||||
|
|
||||||
|
Get<ComboBox>("outputType").SelectedIndex = (int)project.OutputType; |
||||||
|
Get<ComboBox>("outputType").SelectedIndexChanged += new EventHandler(RefreshOutputNameTextBox); |
||||||
|
Get<ComboBox>("outputType").SelectedIndexChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<ComboBox>("startupObject").Text = project.StartupObject; |
||||||
|
Get<ComboBox>("startupObject").SelectedIndexChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<ComboBox>("applicationIcon").Text = project.ApplicationIcon; |
||||||
|
Get<ComboBox>("applicationIcon").TextChanged += new EventHandler(ApplicationIconComboBoxTextChanged); |
||||||
|
Get<ComboBox>("applicationIcon").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<ComboBox>("win32ResourceFile").Text = project.Win32Resource; |
||||||
|
Get<ComboBox>("win32ResourceFile").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("projectFolder").Text = project.Directory; |
||||||
|
Get<TextBox>("projectFile").Text = Path.GetFileName(project.FileName); |
||||||
|
Get<TextBox>("projectFile").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
RefreshOutputNameTextBox(null, EventArgs.Empty); |
||||||
|
} |
||||||
|
|
||||||
|
void Save(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
StorePanelContents(); |
||||||
|
} |
||||||
|
|
||||||
|
public override bool StorePanelContents() |
||||||
|
{ |
||||||
|
project.AssemblyName = Get<TextBox>("assemblyName").Text; |
||||||
|
project.RootNamespace = Get<TextBox>("rootNamespace").Text; |
||||||
|
project.OutputType = (OutputType)Get<ComboBox>("outputType").SelectedIndex; |
||||||
|
project.StartupObject = Get<ComboBox>("startupObject").Text; |
||||||
|
project.ApplicationIcon = Get<ComboBox>("applicationIcon").Text; |
||||||
|
project.Win32Resource = Get<ComboBox>("win32ResourceFile").Text; |
||||||
|
project.Name = Path.GetFileNameWithoutExtension(Get<TextBox>("projectFile").Text); |
||||||
|
project.Save(); |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
void RefreshOutputNameTextBox(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
Get<TextBox>("outputName").Text = Get<TextBox>("assemblyName").Text + MSBuildProject.GetExtension((OutputType)Get<ComboBox>("outputType").SelectedIndex); |
||||||
|
} |
||||||
|
|
||||||
|
void ApplicationIconComboBoxTextChanged(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
string applicationIcon = Get<ComboBox>("applicationIcon").Text; |
||||||
|
if (File.Exists(applicationIcon)) { |
||||||
|
Get<PictureBox>("applicationIcon").Image = Image.FromFile(applicationIcon); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,55 @@ |
|||||||
|
using System; |
||||||
|
using System.Windows.Forms; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Internal.ExternalTool; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
|
||||||
|
namespace VBNetBinding.OptionPanels |
||||||
|
{ |
||||||
|
public class BuildEvents : AbstractOptionPanel |
||||||
|
{ |
||||||
|
VBNetProject project; |
||||||
|
|
||||||
|
public override void LoadPanelContents() |
||||||
|
{ |
||||||
|
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.BuildEvents.xfrm")); |
||||||
|
ConnectBrowseButton("preBuildEventBrowseButton", |
||||||
|
"preBuildEventTextBox", |
||||||
|
"${res:SharpDevelop.FileFilter.AllFiles}|*.*"); |
||||||
|
ConnectBrowseButton("postBuildEventBrowseButton", |
||||||
|
"postBuildEventTextBox", |
||||||
|
"${res:SharpDevelop.FileFilter.AllFiles}|*.*"); |
||||||
|
|
||||||
|
this.project = (VBNetProject)((Properties)CustomizationObject).Get("Project"); |
||||||
|
|
||||||
|
Get<TextBox>("preBuildEvent").Text = project.PreBuildEvent; |
||||||
|
Get<TextBox>("preBuildEvent").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("postBuildEvent").Text = project.PostBuildEvent; |
||||||
|
Get<TextBox>("postBuildEvent").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<ComboBox>("runPostBuildEvent").Items.Add("Always"); |
||||||
|
Get<ComboBox>("runPostBuildEvent").Items.Add("On successful build"); |
||||||
|
Get<ComboBox>("runPostBuildEvent").Items.Add("When the build updates the project output"); |
||||||
|
|
||||||
|
Get<ComboBox>("runPostBuildEvent").SelectedIndex = (int)project.RunPostBuildEvent; |
||||||
|
Get<ComboBox>("runPostBuildEvent").SelectedIndexChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
void Save(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
StorePanelContents(); |
||||||
|
} |
||||||
|
|
||||||
|
public override bool StorePanelContents() |
||||||
|
{ |
||||||
|
project.PreBuildEvent = Get<TextBox>("preBuildEvent").Text; |
||||||
|
project.PostBuildEvent = Get<TextBox>("postBuildEvent").Text; |
||||||
|
project.RunPostBuildEvent = (RunPostBuildEvent)Get<ComboBox>("runPostBuildEvent").SelectedIndex; |
||||||
|
project.Save(); |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,173 @@ |
|||||||
|
using System; |
||||||
|
using System.Windows.Forms; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Internal.ExternalTool; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
using ICSharpCode.SharpDevelop.Gui.XmlForms; |
||||||
|
|
||||||
|
namespace VBNetBinding.OptionPanels |
||||||
|
{ |
||||||
|
public class BuildOptions : AbstractOptionPanel |
||||||
|
{ |
||||||
|
VBNetProject project; |
||||||
|
|
||||||
|
public BuildOptions() |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
void ShowAdvancedOptions(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
using (AdvancedBuildOptionsDialog advancedBuildOptionsDialog = new AdvancedBuildOptionsDialog(project)) { |
||||||
|
advancedBuildOptionsDialog.ShowDialog(WorkbenchSingleton.MainForm); |
||||||
|
} |
||||||
|
} |
||||||
|
string Config = "Debug"; |
||||||
|
string Platform = "AnyCPU"; |
||||||
|
|
||||||
|
public override void LoadPanelContents() |
||||||
|
{ |
||||||
|
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.BuildOptions.xfrm")); |
||||||
|
this.project = (VBNetProject)((Properties)CustomizationObject).Get("Project"); |
||||||
|
|
||||||
|
ConnectBrowseFolder("outputPathBrowseButton", "outputPathTextBox", "${res:Dialog.Options.PrjOptions.Configuration.FolderBrowserDescription}"); |
||||||
|
Get<Button>("advancedOptions").Click += new EventHandler(ShowAdvancedOptions); |
||||||
|
|
||||||
|
Get<TextBox>("conditionalSymbols").Text = project.GetDefineConstants(Config, Platform); |
||||||
|
Get<TextBox>("conditionalSymbols").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
|
||||||
|
Get<CheckBox>("optimizeCode").Checked = project.GetOptimize(Config, Platform); |
||||||
|
Get<CheckBox>("optimizeCode").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<CheckBox>("allowUnsafeCode").Checked = project.GetAllowUnsafeBlocks(Config, Platform); |
||||||
|
Get<CheckBox>("allowUnsafeCode").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<ComboBox>("warningLevel").Items.AddRange( new object[] {0, 1, 2, 3, 4}); |
||||||
|
Get<ComboBox>("warningLevel").Text = project.WarningLevel.ToString(); |
||||||
|
Get<ComboBox>("warningLevel").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("suppressWarnings").Text = project.GetNoWarn(Config, Platform); |
||||||
|
Get<TextBox>("suppressWarnings").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("specificWarnings").Text = project.GetWarningsAsErrors(Config, Platform); |
||||||
|
Get<TextBox>("specificWarnings").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
|
||||||
|
WarningsAsErrors warningsAsErrors = project.GetTreatWarningsAsErrors(Config, Platform); |
||||||
|
Get<RadioButton>("none").Checked = warningsAsErrors == WarningsAsErrors.None; |
||||||
|
Get<RadioButton>("none").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<RadioButton>("specificWarnings").Checked = warningsAsErrors == WarningsAsErrors.Specific; |
||||||
|
Get<RadioButton>("specificWarnings").CheckedChanged += new EventHandler(UpdateEnabledStates); |
||||||
|
Get<RadioButton>("specificWarnings").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<RadioButton>("all").Checked = warningsAsErrors == WarningsAsErrors.All; |
||||||
|
Get<RadioButton>("all").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("outputPath").Text = project.GetOutputPath(Config, Platform); |
||||||
|
Get<TextBox>("outputPath").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("xmlDocumentation").Text = project.GetDocumentationFile(Config, Platform); |
||||||
|
Get<TextBox>("xmlDocumentation").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<CheckBox>("xmlDocumentation").Checked = Get<TextBox>("xmlDocumentation").Text.Length > 0; |
||||||
|
Get<CheckBox>("xmlDocumentation").CheckedChanged += new EventHandler(UpdateEnabledStates); |
||||||
|
|
||||||
|
Get<CheckBox>("registerCOMInterop").Checked = project.GetRegisterForComInterop(Config, Platform); |
||||||
|
Get<CheckBox>("registerCOMInterop").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
|
||||||
|
UpdateEnabledStates(this, EventArgs.Empty); |
||||||
|
} |
||||||
|
|
||||||
|
void Save(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
StorePanelContents(); |
||||||
|
} |
||||||
|
|
||||||
|
void UpdateEnabledStates(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
Get<TextBox>("specificWarnings").Enabled = Get<RadioButton>("specificWarnings").Checked; |
||||||
|
Get<TextBox>("xmlDocumentation").Enabled = Get<CheckBox>("xmlDocumentation").Checked; |
||||||
|
} |
||||||
|
public override bool StorePanelContents() |
||||||
|
{ |
||||||
|
project.SetDefineConstants(Config, Platform, Get<TextBox>("conditionalSymbols").Text); |
||||||
|
project.SetOptimize(Config, Platform, Get<CheckBox>("optimizeCode").Checked); |
||||||
|
project.SetAllowUnsafeBlocks(Config, Platform, Get<CheckBox>("allowUnsafeCode").Checked); |
||||||
|
project.WarningLevel = Int32.Parse(Get<ComboBox>("warningLevel").Text); |
||||||
|
project.SetNoWarn(Config, Platform, Get<TextBox>("suppressWarnings").Text); |
||||||
|
project.SetWarningsAsErrors(Config, Platform, Get<TextBox>("specificWarnings").Text); |
||||||
|
|
||||||
|
if (Get<RadioButton>("none").Checked) { |
||||||
|
project.SetTreatWarningsAsErrors(Config, Platform, WarningsAsErrors.None); |
||||||
|
} else if (Get<RadioButton>("specificWarnings").Checked) { |
||||||
|
project.SetTreatWarningsAsErrors(Config, Platform, WarningsAsErrors.Specific); |
||||||
|
} else { |
||||||
|
project.SetTreatWarningsAsErrors(Config, Platform, WarningsAsErrors.All); |
||||||
|
} |
||||||
|
project.SetOutputPath(Config, Platform, Get<TextBox>("outputPath").Text); |
||||||
|
|
||||||
|
if (Get<CheckBox>("xmlDocumentation").Checked) { |
||||||
|
project.SetDocumentationFile(Config, Platform, Get<TextBox>("xmlDocumentation").Text); |
||||||
|
} else { |
||||||
|
project.SetDocumentationFile(Config, Platform, ""); |
||||||
|
} |
||||||
|
|
||||||
|
project.SetRegisterForComInterop(Config, Platform, Get<CheckBox>("registerCOMInterop").Checked); |
||||||
|
project.Save(); |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public class AdvancedBuildOptionsDialog : BaseSharpDevelopForm |
||||||
|
{ |
||||||
|
string Config = "Debug"; |
||||||
|
string Platform = "AnyCPU"; |
||||||
|
VBNetProject project; |
||||||
|
|
||||||
|
public AdvancedBuildOptionsDialog(VBNetProject project) |
||||||
|
{ |
||||||
|
this.project = project; |
||||||
|
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.AdvancedBuildOptionsDialog.xfrm")); |
||||||
|
|
||||||
|
Get<ComboBox>("languageVersion").Text = project.GetLangVersion(Config, Platform); |
||||||
|
Get<ComboBox>("languageVersion").Items.AddRange(new string[] { "default", "ISO-1"}); |
||||||
|
|
||||||
|
Get<ComboBox>("reportCompilerError").Text = project.GetErrorReport(Config, Platform); |
||||||
|
Get<ComboBox>("reportCompilerError").Items.AddRange(new string[] { "none", "prompt", "send"}); |
||||||
|
|
||||||
|
|
||||||
|
Get<CheckBox>("checkOverUnderflow").Checked = project.GetCheckForOverflowUnderflow(Config, Platform); |
||||||
|
Get<CheckBox>("noMsCorLibReference").Checked = project.GetNoStdLib(Config, Platform); |
||||||
|
|
||||||
|
Get<ComboBox>("debugInfo").Text = project.GetDebugType(Config, Platform); |
||||||
|
Get<ComboBox>("debugInfo").Items.AddRange(new string[] { "none", "full", "pdb-only"}); |
||||||
|
Get<ComboBox>("fileAlignment").Text = project.GetFileAlignment(Config, Platform).ToString(); |
||||||
|
Get<ComboBox>("fileAlignment").Items.AddRange(new string[] { "512", "1024", "2048", "4096", "8192"}); |
||||||
|
|
||||||
|
|
||||||
|
Get<ComboBox>("DLLBaseAddress").Text = project.GetBaseAddress(Config, Platform).ToString(); |
||||||
|
|
||||||
|
Get<Button>("ok").Click += new EventHandler(OkButtonClick); |
||||||
|
} |
||||||
|
|
||||||
|
void OkButtonClick(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
if (Get<ComboBox>("languageVersion").Text != "default") { |
||||||
|
project.SetLangVersion(Config, Platform, Get<ComboBox>("languageVersion").Text); |
||||||
|
} else { |
||||||
|
project.SetLangVersion(Config, Platform, ""); |
||||||
|
} |
||||||
|
|
||||||
|
project.SetErrorReport(Config, Platform, Get<ComboBox>("reportCompilerError").Text); |
||||||
|
project.SetCheckForOverflowUnderflow(Config, Platform, Get<CheckBox>("checkOverUnderflow").Checked); |
||||||
|
project.SetNoStdLib(Config, Platform, Get<CheckBox>("noMsCorLibReference").Checked); |
||||||
|
project.SetDebugType(Config, Platform, Get<ComboBox>("debugInfo").Text); |
||||||
|
project.SetFileAlignment(Config, Platform, Int32.Parse(Get<ComboBox>("fileAlignment").Text)); |
||||||
|
project.SetBaseAddress(Config, Platform, Int32.Parse(Get<ComboBox>("DLLBaseAddress").Text)); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,87 @@ |
|||||||
|
using System; |
||||||
|
using System.Windows.Forms; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Internal.ExternalTool; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
|
||||||
|
namespace VBNetBinding.OptionPanels |
||||||
|
{ |
||||||
|
public class DebugOptions : AbstractOptionPanel |
||||||
|
{ |
||||||
|
VBNetProject project; |
||||||
|
|
||||||
|
string Config = "Debug"; |
||||||
|
string Platform = "AnyCPU"; |
||||||
|
|
||||||
|
public DebugOptions() |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
public override void LoadPanelContents() |
||||||
|
{ |
||||||
|
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.DebugOptions.xfrm")); |
||||||
|
ConnectBrowseButton("startExternalProgramBrowseButton", "startExternalProgramTextBox", "${res:SharpDevelop.FileFilter.AllFiles}|*.*"); |
||||||
|
ConnectBrowseFolder("workingDirectoryBrowseButton", "workingDirectoryTextBox"); |
||||||
|
this.project = (VBNetProject)((Properties)CustomizationObject).Get("Project"); |
||||||
|
|
||||||
|
StartAction startAction = project.GetStartAction(Config, Platform); |
||||||
|
|
||||||
|
Get<RadioButton>("startProject").Checked = startAction == StartAction.Project; |
||||||
|
Get<RadioButton>("startProject").CheckedChanged += new EventHandler(UpdateEnabledStates); |
||||||
|
Get<RadioButton>("startProject").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<RadioButton>("startExternalProgram").Checked = startAction == StartAction.Program; |
||||||
|
Get<RadioButton>("startExternalProgram").CheckedChanged += new EventHandler(UpdateEnabledStates); |
||||||
|
Get<RadioButton>("startExternalProgram").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<RadioButton>("startBrowserInURL").Checked = startAction == StartAction.StartURL; |
||||||
|
Get<RadioButton>("startBrowserInURL").CheckedChanged += new EventHandler(UpdateEnabledStates); |
||||||
|
Get<RadioButton>("startBrowserInURL").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("startExternalProgram").Text = project.GetStartProgram(Config, Platform); |
||||||
|
Get<TextBox>("startExternalProgram").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("startBrowserInURL").Text = project.GetStartURL(Config, Platform); |
||||||
|
Get<TextBox>("startBrowserInURL").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("commandLineArguments").Text = project.GetStartArguments(Config, Platform); |
||||||
|
Get<TextBox>("commandLineArguments").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<TextBox>("workingDirectory").Text = project.GetStartWorkingDirectory(Config, Platform); |
||||||
|
Get<TextBox>("workingDirectory").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
UpdateEnabledStates(this, EventArgs.Empty); |
||||||
|
} |
||||||
|
|
||||||
|
void Save(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
StorePanelContents(); |
||||||
|
} |
||||||
|
|
||||||
|
void UpdateEnabledStates(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
Get<TextBox>("startExternalProgram").Enabled = Get<Button>("startExternalProgramBrowse").Enabled = Get<RadioButton>("startExternalProgram").Checked; |
||||||
|
Get<TextBox>("startBrowserInURL").Enabled = Get<RadioButton>("startBrowserInURL").Checked; |
||||||
|
} |
||||||
|
|
||||||
|
public override bool StorePanelContents() |
||||||
|
{ |
||||||
|
project.SetStartProgram(Config, Platform, Get<TextBox>("startExternalProgram").Text); |
||||||
|
project.SetStartURL(Config, Platform, Get<TextBox>("startBrowserInURL").Text); |
||||||
|
project.SetStartArguments(Config, Platform, Get<TextBox>("commandLineArguments").Text); |
||||||
|
project.SetStartWorkingDirectory(Config, Platform, Get<TextBox>("workingDirectory").Text); |
||||||
|
|
||||||
|
if (Get<RadioButton>("startProject").Checked) { |
||||||
|
project.SetStartAction(Config, Platform, StartAction.Project); |
||||||
|
} else if (Get<RadioButton>("startExternalProgram").Checked) { |
||||||
|
project.SetStartAction(Config, Platform, StartAction.Program); |
||||||
|
} else { |
||||||
|
project.SetStartAction(Config, Platform, StartAction.StartURL); |
||||||
|
} |
||||||
|
project.Save(); |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
using System; |
||||||
|
using System.Windows.Forms; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Internal.ExternalTool; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
|
||||||
|
namespace VBNetBinding.OptionPanels |
||||||
|
{ |
||||||
|
public class Publish : AbstractOptionPanel |
||||||
|
{ |
||||||
|
VBNetProject project; |
||||||
|
|
||||||
|
public override void LoadPanelContents() |
||||||
|
{ |
||||||
|
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.Publish.xfrm")); |
||||||
|
this.project = (VBNetProject)((Properties)CustomizationObject).Get("Project"); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public override bool StorePanelContents() |
||||||
|
{ |
||||||
|
// TODO
|
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
using System; |
||||||
|
using System.Windows.Forms; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Internal.ExternalTool; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
|
||||||
|
namespace VBNetBinding.OptionPanels |
||||||
|
{ |
||||||
|
public class ReferencePaths : AbstractOptionPanel |
||||||
|
{ |
||||||
|
VBNetProject project; |
||||||
|
|
||||||
|
public override void LoadPanelContents() |
||||||
|
{ |
||||||
|
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.ReferencePaths.xfrm")); |
||||||
|
this.project = (VBNetProject)((Properties)CustomizationObject).Get("Project"); |
||||||
|
} |
||||||
|
|
||||||
|
public override bool StorePanelContents() |
||||||
|
{ |
||||||
|
// TODO
|
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,82 @@ |
|||||||
|
using System; |
||||||
|
using System.Windows.Forms; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Internal.ExternalTool; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
|
||||||
|
namespace VBNetBinding.OptionPanels |
||||||
|
{ |
||||||
|
public class Signing : AbstractOptionPanel |
||||||
|
{ |
||||||
|
VBNetProject project; |
||||||
|
|
||||||
|
public override void LoadPanelContents() |
||||||
|
{ |
||||||
|
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.Signing.xfrm")); |
||||||
|
this.project = (VBNetProject)((Properties)CustomizationObject).Get("Project"); |
||||||
|
|
||||||
|
Get<CheckBox>("signAssembly").Checked = project.SignAssembly; |
||||||
|
Get<CheckBox>("signAssembly").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<RadioButton>("useKeyFile").Checked = project.AssemblyOriginatorKeyMode == AssemblyOriginatorKeyMode.File; |
||||||
|
Get<RadioButton>("useKeyFile").CheckedChanged += new EventHandler(UpdateEnabledStates); |
||||||
|
Get<RadioButton>("useKeyFile").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
|
||||||
|
Get<RadioButton>("useKeyProvider").Checked = project.AssemblyOriginatorKeyMode == AssemblyOriginatorKeyMode.Provider; |
||||||
|
Get<RadioButton>("useKeyProvider").CheckedChanged += new EventHandler(UpdateEnabledStates); |
||||||
|
Get<RadioButton>("useKeyProvider").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<ComboBox>("keyFile").Text = project.AssemblyOriginatorKeyFile; |
||||||
|
Get<ComboBox>("keyFile").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<ComboBox>("providerName").Text = project.AssemblyKeyProviderName; |
||||||
|
Get<ComboBox>("providerName").Items.Add("TODO: GetKeyProviders()"); |
||||||
|
Get<ComboBox>("providerName").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<ComboBox>("container").Text = "TODO"; |
||||||
|
Get<ComboBox>("container").TextChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
Get<CheckBox>("delaySignOnly").Checked = project.DelaySign; |
||||||
|
Get<CheckBox>("delaySignOnly").CheckedChanged += new EventHandler(Save); |
||||||
|
|
||||||
|
UpdateEnabledStates(this, EventArgs.Empty); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void Save(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
StorePanelContents(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void UpdateEnabledStates(object sender, EventArgs e) |
||||||
|
{ |
||||||
|
Get<Button>("changePassword").Enabled = false; |
||||||
|
|
||||||
|
Get<ComboBox>("providerName").Enabled = Get<ComboBox>("container").Enabled = Get<RadioButton>("useKeyProvider").Checked; |
||||||
|
Get<ComboBox>("keyFile").Enabled = Get<RadioButton>("useKeyFile").Checked; |
||||||
|
Get<CheckBox>("signAssembly").Enabled = Get<RadioButton>("useKeyFile").Checked; |
||||||
|
} |
||||||
|
|
||||||
|
public override bool StorePanelContents() |
||||||
|
{ |
||||||
|
project.SignAssembly = Get<CheckBox>("signAssembly").Checked; |
||||||
|
project.DelaySign = Get<CheckBox>("delaySignOnly").Checked; |
||||||
|
|
||||||
|
project.AssemblyOriginatorKeyFile = Get<ComboBox>("keyFile").Text; |
||||||
|
project.AssemblyKeyProviderName = Get<ComboBox>("providerName").Text; |
||||||
|
// TODO : Container ????
|
||||||
|
|
||||||
|
if (Get<RadioButton>("useKeyFile").Checked) { |
||||||
|
project.AssemblyOriginatorKeyMode = AssemblyOriginatorKeyMode.File; |
||||||
|
} else if (Get<RadioButton>("useKeyProvider").Checked) { |
||||||
|
project.AssemblyOriginatorKeyMode = AssemblyOriginatorKeyMode.Provider; |
||||||
|
} |
||||||
|
project.Save(); |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,440 @@ |
|||||||
|
using System; |
||||||
|
using System.Text; |
||||||
|
using ICSharpCode.SharpDevelop.Dom; |
||||||
|
|
||||||
|
namespace VBNetBinding.Parser |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Description of ExpressionFinder.
|
||||||
|
/// </summary>
|
||||||
|
public class ExpressionFinder : IExpressionFinder |
||||||
|
{ |
||||||
|
public string FindExpression(string inText, int offset) |
||||||
|
{ |
||||||
|
this.text = FilterComments(inText, ref offset); |
||||||
|
this.offset = this.lastAccept = offset; |
||||||
|
this.state = START; |
||||||
|
if (this.text == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
while (state != ERROR) { |
||||||
|
ReadNextToken(); |
||||||
|
state = stateTable[state, curTokenType]; |
||||||
|
|
||||||
|
if (state == ACCEPT || state == ACCEPT2) { |
||||||
|
lastAccept = this.offset; |
||||||
|
} |
||||||
|
if (state == ACCEPTNOMORE) { |
||||||
|
return this.text.Substring(this.offset + 1, offset - this.offset); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return this.text.Substring(this.lastAccept + 1, offset - this.lastAccept); |
||||||
|
} |
||||||
|
|
||||||
|
#region Comment Filter and 'inside string watcher'
|
||||||
|
int initialOffset; |
||||||
|
public string FilterComments(string text, ref int offset) |
||||||
|
{ |
||||||
|
this.initialOffset = offset; |
||||||
|
StringBuilder outText = new StringBuilder(); |
||||||
|
int curOffset = 0; |
||||||
|
|
||||||
|
while (curOffset <= initialOffset) { |
||||||
|
char ch = text[curOffset]; |
||||||
|
|
||||||
|
switch (ch) { |
||||||
|
case '@': |
||||||
|
if (curOffset + 1 < text.Length && text[curOffset + 1] == '"') { |
||||||
|
outText.Append(text[curOffset++]); // @
|
||||||
|
outText.Append(text[curOffset++]); // "
|
||||||
|
if (!ReadVerbatimString(outText, text, ref curOffset)) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
}else{ |
||||||
|
outText.Append(ch); |
||||||
|
++curOffset; |
||||||
|
} |
||||||
|
break; |
||||||
|
case '\'': |
||||||
|
outText.Append(ch); |
||||||
|
curOffset++; |
||||||
|
if(! ReadChar(outText, text, ref curOffset)) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
break; |
||||||
|
case '"': |
||||||
|
outText.Append(ch); |
||||||
|
curOffset++; |
||||||
|
if (!ReadString(outText, text, ref curOffset)) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
break; |
||||||
|
case '/': |
||||||
|
if (curOffset + 1 < text.Length && text[curOffset + 1] == '/') { |
||||||
|
offset -= 2; |
||||||
|
curOffset += 2; |
||||||
|
if (!ReadToEOL(text, ref curOffset, ref offset)) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} else if (curOffset + 1 < text.Length && text[curOffset + 1] == '*') { |
||||||
|
offset -= 2; |
||||||
|
curOffset += 2; |
||||||
|
if (!ReadMultiLineComment(text, ref curOffset, ref offset)) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} else { |
||||||
|
goto default; |
||||||
|
} |
||||||
|
break; |
||||||
|
default: |
||||||
|
outText.Append(ch); |
||||||
|
++curOffset; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return outText.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
bool ReadToEOL(string text, ref int curOffset, ref int offset) |
||||||
|
{ |
||||||
|
while (curOffset <= initialOffset) { |
||||||
|
char ch = text[curOffset++]; |
||||||
|
--offset; |
||||||
|
if (ch == '\n') { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
bool ReadChar(StringBuilder outText, string text, ref int curOffset) |
||||||
|
{ |
||||||
|
char first = text[curOffset]; |
||||||
|
|
||||||
|
if (curOffset <= initialOffset) { |
||||||
|
outText.Append(text[curOffset++]); |
||||||
|
} |
||||||
|
if (curOffset <= initialOffset) { |
||||||
|
outText.Append(text[curOffset++]); |
||||||
|
} |
||||||
|
|
||||||
|
// special case: '\''
|
||||||
|
if(first == '\\' && curOffset <= initialOffset) { |
||||||
|
outText.Append(text[curOffset++]); |
||||||
|
} |
||||||
|
return text[curOffset - 1] == '\''; |
||||||
|
} |
||||||
|
|
||||||
|
bool ReadString(StringBuilder outText, string text, ref int curOffset) |
||||||
|
{ |
||||||
|
while (curOffset <= initialOffset) { |
||||||
|
char ch = text[curOffset++]; |
||||||
|
outText.Append(ch); |
||||||
|
if (ch == '"') { |
||||||
|
return true; |
||||||
|
} else if (ch == '\\') { |
||||||
|
outText.Append(text[curOffset++]); |
||||||
|
} |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
bool ReadVerbatimString(StringBuilder outText, string text, ref int curOffset) |
||||||
|
{ |
||||||
|
while (curOffset <= initialOffset) { |
||||||
|
char ch = text[curOffset++]; |
||||||
|
outText.Append(ch); |
||||||
|
if (ch == '"') { |
||||||
|
if (curOffset < text.Length && text[curOffset] == '"') { |
||||||
|
outText.Append(text[curOffset++]); |
||||||
|
} else { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
bool ReadMultiLineComment(string text, ref int curOffset, ref int offset) |
||||||
|
{ |
||||||
|
while (curOffset <= initialOffset) { |
||||||
|
char ch = text[curOffset++]; |
||||||
|
--offset; |
||||||
|
if (ch == '*') { |
||||||
|
if (curOffset < text.Length && text[curOffset] == '/') { |
||||||
|
++curOffset; |
||||||
|
--offset; |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region mini backward lexer
|
||||||
|
string text; |
||||||
|
int offset; |
||||||
|
|
||||||
|
char GetNext() |
||||||
|
{ |
||||||
|
if (offset >= 0) { |
||||||
|
return text[offset--]; |
||||||
|
} |
||||||
|
return '\0'; |
||||||
|
} |
||||||
|
|
||||||
|
char Peek(int n) |
||||||
|
{ |
||||||
|
if (offset - n >= 0) { |
||||||
|
return text[offset - n]; |
||||||
|
} |
||||||
|
return '\0'; |
||||||
|
} |
||||||
|
|
||||||
|
char Peek() |
||||||
|
{ |
||||||
|
if (offset >= 0) { |
||||||
|
return text[offset]; |
||||||
|
} |
||||||
|
return '\0'; |
||||||
|
} |
||||||
|
|
||||||
|
void UnGet() |
||||||
|
{ |
||||||
|
++offset; |
||||||
|
} |
||||||
|
|
||||||
|
// tokens for our lexer
|
||||||
|
static int Err = 0; |
||||||
|
static int Dot = 1; |
||||||
|
static int StrLit = 2; |
||||||
|
static int Ident = 3; |
||||||
|
static int New = 4; |
||||||
|
static int Bracket = 5; |
||||||
|
static int Parent = 6; |
||||||
|
static int Curly = 7; |
||||||
|
static int Using = 8; |
||||||
|
static int Digit = 9; |
||||||
|
int curTokenType; |
||||||
|
|
||||||
|
readonly static string[] tokenStateName = new string[] { |
||||||
|
"Err", "Dot", "StrLit", "Ident", "New", "Bracket", "Paren", "Curly", "Using", "Digit" |
||||||
|
}; |
||||||
|
|
||||||
|
string GetTokenName(int state) |
||||||
|
{ |
||||||
|
return tokenStateName[state]; |
||||||
|
} |
||||||
|
|
||||||
|
void ReadNextToken() |
||||||
|
{ |
||||||
|
char ch = GetNext(); |
||||||
|
|
||||||
|
curTokenType = Err; |
||||||
|
if (ch == '\0') { |
||||||
|
return; |
||||||
|
} |
||||||
|
while (Char.IsWhiteSpace(ch)) { |
||||||
|
ch = GetNext(); |
||||||
|
} |
||||||
|
|
||||||
|
switch (ch) { |
||||||
|
case '}': |
||||||
|
if (ReadBracket('{', '}')) { |
||||||
|
curTokenType = Curly; |
||||||
|
} |
||||||
|
break; |
||||||
|
case ')': |
||||||
|
if (ReadBracket('(', ')')) { |
||||||
|
curTokenType = Parent; |
||||||
|
} |
||||||
|
break; |
||||||
|
case ']': |
||||||
|
if (ReadBracket('[', ']')) { |
||||||
|
curTokenType = Bracket; |
||||||
|
} |
||||||
|
break; |
||||||
|
case '.': |
||||||
|
curTokenType = Dot; |
||||||
|
break; |
||||||
|
case '\'': |
||||||
|
case '"': |
||||||
|
if (ReadStringLiteral(ch)) { |
||||||
|
curTokenType = StrLit; |
||||||
|
} |
||||||
|
break; |
||||||
|
default: |
||||||
|
if (IsDigit()) { |
||||||
|
string digit = ReadDigit(ch); |
||||||
|
curTokenType = Digit; |
||||||
|
} else if (IsIdentifierPart(ch)) { |
||||||
|
string ident = ReadIdentifier(ch); |
||||||
|
if (ident != null) { |
||||||
|
switch (ident) { |
||||||
|
case "new": |
||||||
|
curTokenType = New; |
||||||
|
break; |
||||||
|
case "using": |
||||||
|
curTokenType = Using; |
||||||
|
break; |
||||||
|
default: |
||||||
|
curTokenType = Ident; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
bool IsDigit() |
||||||
|
{ |
||||||
|
int n = 0; |
||||||
|
while (true) { |
||||||
|
char ch = Peek(n); |
||||||
|
if (Char.IsDigit(ch)) { |
||||||
|
n++; |
||||||
|
continue; |
||||||
|
} |
||||||
|
return n > 0 && !Char.IsLetter(ch); |
||||||
|
} |
||||||
|
} |
||||||
|
bool ReadStringLiteral(char litStart) |
||||||
|
{ |
||||||
|
while (true) { |
||||||
|
char ch = GetNext(); |
||||||
|
if (ch == '\0') { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (ch == litStart) { |
||||||
|
if (Peek() == '@' && litStart == '"') { |
||||||
|
GetNext(); |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
bool ReadBracket(char openBracket, char closingBracket) |
||||||
|
{ |
||||||
|
int curlyBraceLevel = 0; |
||||||
|
int squareBracketLevel = 0; |
||||||
|
int parenthesisLevel = 0; |
||||||
|
switch (openBracket) { |
||||||
|
case '(': |
||||||
|
parenthesisLevel++; |
||||||
|
break; |
||||||
|
case '[': |
||||||
|
squareBracketLevel++; |
||||||
|
break; |
||||||
|
case '{': |
||||||
|
curlyBraceLevel++; |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
while (parenthesisLevel != 0 || squareBracketLevel != 0 || curlyBraceLevel != 0) { |
||||||
|
char ch = GetNext(); |
||||||
|
if (ch == '\0') { |
||||||
|
return false; |
||||||
|
} |
||||||
|
switch (ch) { |
||||||
|
case '(': |
||||||
|
parenthesisLevel--; |
||||||
|
break; |
||||||
|
case '[': |
||||||
|
squareBracketLevel--; |
||||||
|
break; |
||||||
|
case '{': |
||||||
|
curlyBraceLevel--; |
||||||
|
break; |
||||||
|
case ')': |
||||||
|
parenthesisLevel++; |
||||||
|
break; |
||||||
|
case ']': |
||||||
|
squareBracketLevel++; |
||||||
|
break; |
||||||
|
case '}': |
||||||
|
curlyBraceLevel++; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
string ReadIdentifier(char ch) |
||||||
|
{ |
||||||
|
string identifier = ch.ToString(); |
||||||
|
while (IsIdentifierPart(Peek())) { |
||||||
|
identifier = GetNext() + identifier; |
||||||
|
} |
||||||
|
return identifier; |
||||||
|
} |
||||||
|
|
||||||
|
string ReadDigit(char ch) |
||||||
|
{ |
||||||
|
string digit = ch.ToString(); |
||||||
|
while (Char.IsDigit(Peek()) || Peek() == '.') { |
||||||
|
digit = GetNext() + digit; |
||||||
|
} |
||||||
|
return digit; |
||||||
|
} |
||||||
|
|
||||||
|
bool IsIdentifierPart(char ch) |
||||||
|
{ |
||||||
|
return Char.IsLetterOrDigit(ch) || ch == '_'; |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region finite state machine
|
||||||
|
readonly static int ERROR = 0; |
||||||
|
readonly static int START = 1; |
||||||
|
readonly static int DOT = 2; |
||||||
|
readonly static int MORE = 3; |
||||||
|
readonly static int CURLY = 4; |
||||||
|
readonly static int CURLY2 = 5; |
||||||
|
readonly static int CURLY3 = 6; |
||||||
|
|
||||||
|
readonly static int ACCEPT = 7; |
||||||
|
readonly static int ACCEPTNOMORE = 8; |
||||||
|
readonly static int ACCEPT2 = 9; |
||||||
|
|
||||||
|
readonly static string[] stateName = new string[] { |
||||||
|
"ERROR", |
||||||
|
"START", |
||||||
|
"DOT", |
||||||
|
"MORE", |
||||||
|
"CURLY", |
||||||
|
"CURLY2", |
||||||
|
"CURLY3", |
||||||
|
"ACCEPT", |
||||||
|
"ACCEPTNOMORE", |
||||||
|
"ACCEPT2" |
||||||
|
}; |
||||||
|
|
||||||
|
string GetStateName(int state) |
||||||
|
{ |
||||||
|
return stateName[state]; |
||||||
|
} |
||||||
|
|
||||||
|
int state = 0; |
||||||
|
int lastAccept = 0; |
||||||
|
static int[,] stateTable = new int[,] { |
||||||
|
// Err, Dot, Str, ID, New, Brk, Par, Cur, Using, digit
|
||||||
|
/*ERROR*/ { ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR}, |
||||||
|
/*START*/ { ERROR, DOT, ACCEPT, ACCEPT, ERROR, MORE, ACCEPT2, CURLY, ACCEPTNOMORE, ERROR}, |
||||||
|
/*DOT*/ { ERROR, ERROR, ACCEPT, ACCEPT, ERROR, MORE, ACCEPT, CURLY, ERROR, ACCEPT}, |
||||||
|
/*MORE*/ { ERROR, ERROR, ACCEPT, ACCEPT, ERROR, MORE, ACCEPT2, CURLY, ERROR, ACCEPT}, |
||||||
|
/*CURLY*/ { ERROR, ERROR, ERROR, ERROR, ERROR, CURLY2, ERROR, ERROR, ERROR, ERROR}, |
||||||
|
/*CURLY2*/ { ERROR, ERROR, ERROR, CURLY3, ERROR, ERROR, ERROR, ERROR, ERROR, CURLY3}, |
||||||
|
/*CURLY3*/ { ERROR, ERROR, ERROR, ERROR, ACCEPTNOMORE, ERROR, ERROR, ERROR, ERROR, ERROR}, |
||||||
|
/*ACCEPT*/ { ERROR, MORE, ERROR, ERROR, ACCEPT, ERROR, ERROR, ERROR, ACCEPTNOMORE, ERROR}, |
||||||
|
/*ACCEPTNOMORE*/ { ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR}, |
||||||
|
/*ACCEPT2*/ { ERROR, MORE, ERROR, ACCEPT, ACCEPT, ERROR, ERROR, ERROR, ERROR, ACCEPT}, |
||||||
|
}; |
||||||
|
#endregion
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,141 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="Andrea Paatz" email="andrea@icsharpcode.net"/>
|
||||||
|
// <version value="$version"/>
|
||||||
|
// </file>
|
||||||
|
using System; |
||||||
|
using System.Text; |
||||||
|
using System.IO; |
||||||
|
using System.Drawing; |
||||||
|
using System.Collections; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
using ICSharpCode.SharpDevelop.Dom; |
||||||
|
using ICSharpCode.SharpDevelop.Dom.NRefactoryResolver; |
||||||
|
//using ICSharpCode.NRefactory.Parser;
|
||||||
|
|
||||||
|
namespace VBNetBinding.Parser |
||||||
|
{ |
||||||
|
public class TParser : IParser |
||||||
|
{ |
||||||
|
///<summary>IParser Interface</summary>
|
||||||
|
string[] lexerTags; |
||||||
|
|
||||||
|
public string[] LexerTags { |
||||||
|
get { |
||||||
|
return lexerTags; |
||||||
|
} |
||||||
|
set { |
||||||
|
lexerTags = value; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public IExpressionFinder ExpressionFinder { |
||||||
|
get { |
||||||
|
return new ExpressionFinder(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public bool CanParse(string fileName) |
||||||
|
{ |
||||||
|
return Path.GetExtension(fileName).ToUpper() == ".CS"; |
||||||
|
} |
||||||
|
|
||||||
|
public bool CanParse(IProject project) |
||||||
|
{ |
||||||
|
return project.Language == "C#"; |
||||||
|
} |
||||||
|
|
||||||
|
void RetrieveRegions(ICompilationUnit cu, ICSharpCode.NRefactory.Parser.SpecialTracker tracker) |
||||||
|
{ |
||||||
|
for (int i = 0; i < tracker.CurrentSpecials.Count; ++i) { |
||||||
|
ICSharpCode.NRefactory.Parser.PreProcessingDirective directive = tracker.CurrentSpecials[i] as ICSharpCode.NRefactory.Parser.PreProcessingDirective; |
||||||
|
if (directive != null) { |
||||||
|
if (directive.Cmd == "#region") { |
||||||
|
int deep = 1; |
||||||
|
for (int j = i + 1; j < tracker.CurrentSpecials.Count; ++j) { |
||||||
|
ICSharpCode.NRefactory.Parser.PreProcessingDirective nextDirective = tracker.CurrentSpecials[j] as ICSharpCode.NRefactory.Parser.PreProcessingDirective; |
||||||
|
if (nextDirective != null) { |
||||||
|
switch (nextDirective.Cmd) { |
||||||
|
case "#region": |
||||||
|
++deep; |
||||||
|
break; |
||||||
|
case "#endregion": |
||||||
|
--deep; |
||||||
|
if (deep == 0) { |
||||||
|
cu.FoldingRegions.Add(new FoldingRegion(directive.Arg.Trim(), new DefaultRegion(directive.Start, new Point(nextDirective.End.X, nextDirective.End.Y)))); |
||||||
|
goto end; |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
end: ; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public ICompilationUnitBase Parse(string fileName) |
||||||
|
{ |
||||||
|
// ICSharpCode.NRefactory.Parser.Parser p = new ICSharpCode.NRefactory.Parser.Parser();
|
||||||
|
//
|
||||||
|
// Lexer lexer = new Lexer(new FileReader(fileName));
|
||||||
|
// lexer.SpecialCommentTags = lexerTags;
|
||||||
|
// p.Parse(lexer);
|
||||||
|
|
||||||
|
Properties textEditorProperties = ((Properties)PropertyService.Get("ICSharpCode.TextEditor.Document.Document.DefaultDocumentAggregatorProperties", new Properties())); |
||||||
|
ICSharpCode.NRefactory.Parser.IParser p = ICSharpCode.NRefactory.Parser.ParserFactory.CreateParser(fileName, Encoding.GetEncoding(textEditorProperties.Get("Encoding", 1252))); |
||||||
|
p.Lexer.SpecialCommentTags = lexerTags; |
||||||
|
p.Parse(); |
||||||
|
|
||||||
|
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(); |
||||||
|
visitor.Visit(p.CompilationUnit, null); |
||||||
|
visitor.Cu.FileName = fileName; |
||||||
|
visitor.Cu.ErrorsDuringCompile = p.Errors.count > 0; |
||||||
|
RetrieveRegions(visitor.Cu, p.Lexer.SpecialTracker); |
||||||
|
AddCommentTags(visitor.Cu, p.Lexer.TagComments); |
||||||
|
return visitor.Cu; |
||||||
|
} |
||||||
|
|
||||||
|
public ICompilationUnitBase Parse(string fileName, string fileContent) |
||||||
|
{ |
||||||
|
// ICSharpCode.NRefactory.Parser.Parser p = new ICSharpCode.NRefactory.Parser.Parser();
|
||||||
|
//
|
||||||
|
// Lexer lexer = new Lexer(new StringReader(fileContent));
|
||||||
|
// lexer.SpecialCommentTags = lexerTags;
|
||||||
|
// p.Parse(lexer);
|
||||||
|
|
||||||
|
ICSharpCode.NRefactory.Parser.IParser p = ICSharpCode.NRefactory.Parser.ParserFactory.CreateParser(ICSharpCode.NRefactory.Parser.SupportedLanguages.CSharp, new StringReader(fileContent)); |
||||||
|
p.Lexer.SpecialCommentTags = lexerTags; |
||||||
|
p.Parse(); |
||||||
|
|
||||||
|
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(); |
||||||
|
visitor.Visit(p.CompilationUnit, null); |
||||||
|
visitor.Cu.FileName = fileName; |
||||||
|
visitor.Cu.ErrorsDuringCompile = p.Errors.count > 0; |
||||||
|
visitor.Cu.Tag = p.CompilationUnit; |
||||||
|
|
||||||
|
RetrieveRegions(visitor.Cu, p.Lexer.SpecialTracker); |
||||||
|
AddCommentTags(visitor.Cu, p.Lexer.TagComments); |
||||||
|
return visitor.Cu; |
||||||
|
} |
||||||
|
|
||||||
|
void AddCommentTags(ICompilationUnit cu, ArrayList tagComments) |
||||||
|
{ |
||||||
|
foreach (ICSharpCode.NRefactory.Parser.TagComment tagComment in tagComments) { |
||||||
|
DefaultRegion tagRegion = new DefaultRegion(tagComment.StartPosition.Y, tagComment.StartPosition.X); |
||||||
|
ICSharpCode.SharpDevelop.Dom.Tag tag = new ICSharpCode.SharpDevelop.Dom.Tag(tagComment.Tag, tagRegion); |
||||||
|
tag.CommentString = tagComment.CommentText; |
||||||
|
cu.TagComments.Add(tag); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public IResolver CreateResolver() |
||||||
|
{ |
||||||
|
return new ICSharpCode.SharpDevelop.Dom.NRefactoryResolver.NRefactoryResolver(ICSharpCode.NRefactory.Parser.SupportedLanguages.CSharp); |
||||||
|
} |
||||||
|
///////// IParser Interface END
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,599 @@ |
|||||||
|
using System; |
||||||
|
using System.ComponentModel; |
||||||
|
using System.IO; |
||||||
|
using System.Diagnostics; |
||||||
|
using System.Collections; |
||||||
|
using System.Reflection; |
||||||
|
using System.Resources; |
||||||
|
using System.Windows.Forms; |
||||||
|
using System.Xml; |
||||||
|
using System.CodeDom.Compiler; |
||||||
|
using System.Threading; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
using ICSharpCode.SharpDevelop.Internal.Templates; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
using ICSharpCode.Core; |
||||||
|
|
||||||
|
namespace VBNetBinding |
||||||
|
{ |
||||||
|
public enum WarningsAsErrors |
||||||
|
{ |
||||||
|
None, |
||||||
|
Specific, |
||||||
|
All |
||||||
|
} |
||||||
|
|
||||||
|
public enum AssemblyOriginatorKeyMode |
||||||
|
{ |
||||||
|
None, |
||||||
|
File, |
||||||
|
Provider |
||||||
|
} |
||||||
|
|
||||||
|
public enum RunPostBuildEvent |
||||||
|
{ |
||||||
|
Always, |
||||||
|
OnSuccessfulBuild, |
||||||
|
OnOutputUpdated |
||||||
|
} |
||||||
|
|
||||||
|
public enum StartAction |
||||||
|
{ |
||||||
|
Project, |
||||||
|
Program, |
||||||
|
StartURL |
||||||
|
} |
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Description of CSharpProject.
|
||||||
|
/// </summary>
|
||||||
|
public class VBNetProject : MSBuildProject |
||||||
|
{ |
||||||
|
[Browsable(false)] |
||||||
|
public int WarningLevel |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("WarningLevel", 4); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("WarningLevel", 4, value); |
||||||
|
} |
||||||
|
} |
||||||
|
[Browsable(false)] |
||||||
|
public string ApplicationIcon |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration["ApplicationIcon"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("ApplicationIcon", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#region Signing
|
||||||
|
[Browsable(false)] |
||||||
|
public bool SignAssembly { |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("SignAssembly", false); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("SignAssembly", false, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public bool DelaySign { |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("DelaySign", false); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("DelaySign", false, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string AssemblyOriginatorKeyFile { |
||||||
|
get { |
||||||
|
return BaseConfiguration["AssemblyOriginatorKeyFile"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("AssemblyOriginatorKeyFile", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string AssemblyKeyProviderName { |
||||||
|
get { |
||||||
|
return BaseConfiguration["AssemblyKeyProviderName"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("AssemblyKeyProviderName", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public AssemblyOriginatorKeyMode AssemblyOriginatorKeyMode { |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("AssemblyOriginatorKeyMode", AssemblyOriginatorKeyMode.None); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("AssemblyOriginatorKeyMode", AssemblyOriginatorKeyMode.None, value); |
||||||
|
} |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string StartupObject |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration["StartupObject"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("StartupObject", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string Win32Resource |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration["Win32Resource"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("Win32Resource", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#region Build events
|
||||||
|
[Browsable(false)] |
||||||
|
public RunPostBuildEvent RunPostBuildEvent { |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("RunPostBuildEvent", RunPostBuildEvent.OnSuccessfulBuild); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("RunPostBuildEvent", RunPostBuildEvent.OnSuccessfulBuild, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string PreBuildEvent { |
||||||
|
get { |
||||||
|
return BaseConfiguration["PreBuildEvent"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("PreBuildEvent", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string PostBuildEvent { |
||||||
|
get { |
||||||
|
return BaseConfiguration["PostBuildEvent"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("PostBuildEvent", value); |
||||||
|
} |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string PublishUrl |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration["PublishUrl"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("PublishUrl", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public bool Install |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("Install", false); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("Install", false, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public bool UpdateEnabled |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("UpdateEnabled", false); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("UpdateEnabled", false, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public bool UpdatePeriodically |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("UpdatePeriodically", false); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("UpdatePeriodically", false, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public bool UpdateRequired |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("UpdateRequired", false); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("UpdateRequired", false, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public bool UpdateUrlEnabled |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("UpdateUrlEnabled", false); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("UpdateUrlEnabled", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public bool BootstrapperEnabled |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("BootstrapperEnabled", false); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("BootstrapperEnabled", false, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string InstallFrom |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration["InstallFrom"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("InstallFrom", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string FallbackCulture |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration["FallbackCulture"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("FallbackCulture", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string UpdateMode |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration["UpdateMode"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("UpdateMode", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string UpdateIntervalUnits |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration["UpdateIntervalUnits"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("UpdateIntervalUnits", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public string ApplicationVersion |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration["ApplicationVersion"]; |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("ApplicationVersion", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public int UpdateInterval |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("UpdateInterval", 0); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("UpdateInterval", 0, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[Browsable(false)] |
||||||
|
public int ApplicationRevision |
||||||
|
{ |
||||||
|
get { |
||||||
|
return BaseConfiguration.Get("ApplicationRevision", 0); |
||||||
|
} |
||||||
|
set { |
||||||
|
BaseConfiguration.Set("ApplicationRevision", 0, value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public bool GetDebugSymbols(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform).Get("DebugSymbols", false); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetDebugSymbols(string configurationName, string platform, bool val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform).Set("DebugSymbols", val); |
||||||
|
} |
||||||
|
|
||||||
|
public bool GetOptimize(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform).Get("Optimize", false); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetOptimize(string configurationName, string platform, bool val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform).Set("Optimize", false, val); |
||||||
|
} |
||||||
|
|
||||||
|
public bool GetAllowUnsafeBlocks(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform).Get("AllowUnsafeBlocks", false); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetAllowUnsafeBlocks(string configurationName, string platform, bool val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform).Set("AllowUnsafeBlocks", false, val); |
||||||
|
} |
||||||
|
|
||||||
|
public WarningsAsErrors GetTreatWarningsAsErrors(string configurationName, string platform) |
||||||
|
{ |
||||||
|
PropertyGroup properties = GetConfiguration(configurationName, platform); |
||||||
|
if (!properties.IsSet("TreatWarningsAsErrors")) { |
||||||
|
return WarningsAsErrors.Specific; |
||||||
|
} |
||||||
|
bool warningAsErrors = properties.Get("TreatWarningsAsErrors", false); |
||||||
|
return warningAsErrors ? WarningsAsErrors.All : WarningsAsErrors.None; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetTreatWarningsAsErrors(string configurationName, string platform, WarningsAsErrors warningsAsErrors) |
||||||
|
{ |
||||||
|
PropertyGroup properties = GetConfiguration(configurationName, platform); |
||||||
|
switch (warningsAsErrors) { |
||||||
|
case WarningsAsErrors.None: |
||||||
|
properties.Set("TreatWarningsAsErrors", false, false); |
||||||
|
break; |
||||||
|
case WarningsAsErrors.Specific: |
||||||
|
properties.Remove("TreatWarningsAsErrors"); |
||||||
|
break; |
||||||
|
case WarningsAsErrors.All: |
||||||
|
properties.Set("TreatWarningsAsErrors", false, true); |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public bool GetRegisterForComInterop(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform).Get("RegisterForComInterop", false); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetRegisterForComInterop(string configurationName, string platform, bool val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform).Set("RegisterForComInterop", false, val); |
||||||
|
} |
||||||
|
|
||||||
|
public string GetDefineConstants(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform)["DefineConstants"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetDefineConstants(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform)["DefineConstants"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
public string GetNoWarn(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform)["NoWarn"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetNoWarn(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform)["NoWarn"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
public string GetWarningsAsErrors(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform)["WarningsAsErrors"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetWarningsAsErrors(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform)["WarningsAsErrors"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public string GetDocumentationFile(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform)["DocumentationFile"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetDocumentationFile(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform)["DocumentationFile"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
public string GetLangVersion(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform)["LangVersion"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetLangVersion(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform)["LangVersion"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
public string GetErrorReport(string configurationName, string platform) |
||||||
|
{ // none, prompt, send
|
||||||
|
return GetConfiguration(configurationName, platform)["ErrorReport"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetErrorReport(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform)["ErrorReport"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
public int GetBaseAddress(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform).Get<int>("BaseAddress", 4194304); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetBaseAddress(string configurationName, string platform, int val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform).Set("BaseAddress", 4194304, val); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public int GetFileAlignment(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform).Get<int>("FileAlignment", 4096); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetFileAlignment(string configurationName, string platform, int val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform).Set("FileAlignment", 4096, val); |
||||||
|
} |
||||||
|
|
||||||
|
public string GetDebugType(string configurationName, string platform) |
||||||
|
{ // none, full, pdbonly
|
||||||
|
return GetConfiguration(configurationName, platform)["DebugType"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetDebugType(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform)["DebugType"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
public bool GetCheckForOverflowUnderflow(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform).Get("CheckForOverflowUnderflow", false); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetCheckForOverflowUnderflow(string configurationName, string platform, bool val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform).Set("CheckForOverflowUnderflow", false, val); |
||||||
|
} |
||||||
|
public bool GetNoStdLib(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetConfiguration(configurationName, platform).Get("NoStdLib", false); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetNoStdLib(string configurationName, string platform, bool val) |
||||||
|
{ |
||||||
|
GetConfiguration(configurationName, platform).Set("NoStdLib", false, val); |
||||||
|
} |
||||||
|
|
||||||
|
#region Debug Options
|
||||||
|
public string GetStartProgram(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetUserConfiguration(configurationName, platform)["StartProgram"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetStartProgram(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetUserConfiguration(configurationName, platform)["StartProgram"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
public string GetStartURL(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetUserConfiguration(configurationName, platform)["StartURL"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetStartURL(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetUserConfiguration(configurationName, platform)["StartURL"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
public StartAction GetStartAction(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetUserConfiguration(configurationName, platform).Get("StartAction", StartAction.Project); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetStartAction(string configurationName, string platform, StartAction val) |
||||||
|
{ |
||||||
|
GetUserConfiguration(configurationName, platform).Set("StartAction", StartAction.Project, val); |
||||||
|
} |
||||||
|
|
||||||
|
public string GetStartArguments(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetUserConfiguration(configurationName, platform)["StartArguments"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetStartArguments(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetUserConfiguration(configurationName, platform)["StartArguments"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
public string GetStartWorkingDirectory(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetUserConfiguration(configurationName, platform)["StartWorkingDirectory"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetStartWorkingDirectory(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetUserConfiguration(configurationName, platform)["StartWorkingDirectory"] = val; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public bool GetRemoteDebugEnabled(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetUserConfiguration(configurationName, platform).Get("RemoteDebugEnabled", false); |
||||||
|
} |
||||||
|
|
||||||
|
public void SetRemoteDebugEnabled(string configurationName, string platform, bool val) |
||||||
|
{ |
||||||
|
GetUserConfiguration(configurationName, platform).Set("RemoteDebugEnabled", false, val); |
||||||
|
} |
||||||
|
|
||||||
|
public string GetRemoteDebugMachine(string configurationName, string platform) |
||||||
|
{ |
||||||
|
return GetUserConfiguration(configurationName, platform)["RemoteDebugMachine"]; |
||||||
|
} |
||||||
|
|
||||||
|
public void SetRemoteDebugMachine(string configurationName, string platform, string val) |
||||||
|
{ |
||||||
|
GetUserConfiguration(configurationName, platform)["RemoteDebugMachine"] = val; |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
public VBNetProject(string fileName, string projectName) |
||||||
|
{ |
||||||
|
this.Name = projectName; |
||||||
|
Language = "VB.NET"; |
||||||
|
SetupProject(fileName); |
||||||
|
IdGuid = BaseConfiguration["ProjectGuid"]; |
||||||
|
} |
||||||
|
|
||||||
|
public VBNetProject(ProjectCreateInformation info) |
||||||
|
{ |
||||||
|
Language = "VB.NET"; |
||||||
|
Create(info); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,570 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
||||||
|
// <version value="$version"/>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Collections; |
||||||
|
using System.Text; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Dom; |
||||||
|
using ICSharpCode.Core; |
||||||
|
|
||||||
|
namespace VBNetBinding |
||||||
|
{ |
||||||
|
public class VBNetAmbience : AbstractAmbience |
||||||
|
{ |
||||||
|
static string[,] typeConversionList = new string[,] { |
||||||
|
{"System.String", "String"}, |
||||||
|
{"System.Single", "Single"}, |
||||||
|
{"System.Int16", "Short"}, |
||||||
|
{"System.Void", "Void"}, |
||||||
|
{"System.Object", "Object"}, |
||||||
|
{"System.Int64", "Long"}, |
||||||
|
{"System.Int32", "Integer"}, |
||||||
|
{"System.Double", "Double"}, |
||||||
|
{"System.Char", "Char"}, |
||||||
|
{"System.Boolean", "Boolean"}, |
||||||
|
{"System.Byte", "Byte"}, |
||||||
|
{"System.Decimal", "Decimal"}, |
||||||
|
{"System.DateTime", "Date"}, |
||||||
|
}; |
||||||
|
|
||||||
|
static Hashtable typeConversionTable = new Hashtable(); |
||||||
|
|
||||||
|
static VBNetAmbience() |
||||||
|
{ |
||||||
|
for (int i = 0; i < typeConversionList.GetLength(0); ++i) { |
||||||
|
typeConversionTable[typeConversionList[i, 0]] = typeConversionList[i, 1]; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
string GetModifier(IDecoration decoration) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("<i>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (decoration.IsStatic) { |
||||||
|
builder.Append("Shared "); |
||||||
|
} |
||||||
|
if (decoration.IsAbstract) { |
||||||
|
builder.Append("MustOverride "); |
||||||
|
} else if (decoration.IsFinal) { |
||||||
|
builder.Append("NotOverridable "); |
||||||
|
} else if (decoration.IsVirtual) { |
||||||
|
builder.Append("Overridable "); |
||||||
|
} else if (decoration.IsOverride) { |
||||||
|
builder.Append("Overrides "); |
||||||
|
} else if (decoration.IsNew) { |
||||||
|
builder.Append("Shadows "); |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</i>"); |
||||||
|
} |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string Convert(ModifierEnum modifier) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
if (ShowAccessibility) { |
||||||
|
if ((modifier & ModifierEnum.Public) == ModifierEnum.Public) { |
||||||
|
builder.Append("Public"); |
||||||
|
} else if ((modifier & ModifierEnum.Private) == ModifierEnum.Private) { |
||||||
|
builder.Append("Private"); |
||||||
|
} else if ((modifier & (ModifierEnum.Protected | ModifierEnum.Internal)) == (ModifierEnum.Protected | ModifierEnum.Internal)) { |
||||||
|
builder.Append("Protected Friend"); |
||||||
|
} else if ((modifier & ModifierEnum.ProtectedOrInternal) == ModifierEnum.ProtectedOrInternal) { |
||||||
|
builder.Append("Protected Friend"); |
||||||
|
} else if ((modifier & ModifierEnum.Internal) == ModifierEnum.Internal) { |
||||||
|
builder.Append("Friend"); |
||||||
|
} else if ((modifier & ModifierEnum.Protected) == ModifierEnum.Protected) { |
||||||
|
builder.Append("Protected"); |
||||||
|
} |
||||||
|
builder.Append(' '); |
||||||
|
} |
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string Convert(IClass c) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
|
||||||
|
builder.Append(Convert(c.Modifiers)); |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("<i>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (ShowModifiers) { |
||||||
|
if (c.IsSealed) { |
||||||
|
if (c.ClassType == ClassType.Class) { |
||||||
|
builder.Append("NotInheritable "); |
||||||
|
} |
||||||
|
} else if (c.IsAbstract && c.ClassType != ClassType.Interface) { |
||||||
|
builder.Append("MustInherit "); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</i>"); |
||||||
|
} |
||||||
|
|
||||||
|
switch (c.ClassType) { |
||||||
|
case ClassType.Delegate: |
||||||
|
builder.Append("Delegate "); |
||||||
|
if (ShowReturnType) { |
||||||
|
foreach (IMethod m in c.Methods) { |
||||||
|
if (m.Name != "Invoke") { |
||||||
|
continue; |
||||||
|
} |
||||||
|
|
||||||
|
if (m.ReturnType == null || m.ReturnType.FullyQualifiedName == "System.Void") { |
||||||
|
builder.Append("Sub"); |
||||||
|
} else { |
||||||
|
builder.Append("Function"); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
break; |
||||||
|
case ClassType.Class: |
||||||
|
builder.Append("Class"); |
||||||
|
break; |
||||||
|
case ClassType.Struct: |
||||||
|
builder.Append("Structure"); |
||||||
|
break; |
||||||
|
case ClassType.Interface: |
||||||
|
builder.Append("Interface"); |
||||||
|
break; |
||||||
|
case ClassType.Enum: |
||||||
|
builder.Append("Enum"); |
||||||
|
break; |
||||||
|
} |
||||||
|
builder.Append(' '); |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("<b>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (UseFullyQualifiedMemberNames) { |
||||||
|
builder.Append(c.FullyQualifiedName); |
||||||
|
} else { |
||||||
|
builder.Append(c.Name); |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</b>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (c.ClassType == ClassType.Delegate) { |
||||||
|
builder.Append("("); |
||||||
|
if (IncludeHTMLMarkup) builder.Append("<br>"); |
||||||
|
|
||||||
|
foreach (IMethod m in c.Methods) { |
||||||
|
if (m.Name != "Invoke") continue; |
||||||
|
|
||||||
|
for (int i = 0; i < m.Parameters.Count; ++i) { |
||||||
|
if (IncludeHTMLMarkup) builder.Append(" "); |
||||||
|
|
||||||
|
builder.Append(Convert(m.Parameters[i])); |
||||||
|
if (i + 1 < m.Parameters.Count) builder.Append(", "); |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) builder.Append("<br>"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
builder.Append(")"); |
||||||
|
|
||||||
|
foreach (IMethod m in c.Methods) { |
||||||
|
if (m.Name != "Invoke") continue; |
||||||
|
|
||||||
|
if (m.ReturnType == null || m.ReturnType.FullyQualifiedName == "System.Void") { |
||||||
|
} else { |
||||||
|
if (ShowReturnType) { |
||||||
|
builder.Append(" As "); |
||||||
|
builder.Append(Convert(m.ReturnType)); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} else if (ShowInheritanceList) { |
||||||
|
if (c.BaseTypes.Count > 0) { |
||||||
|
builder.Append(" Inherits "); |
||||||
|
for (int i = 0; i < c.BaseTypes.Count; ++i) { |
||||||
|
builder.Append(c.BaseTypes[i]); |
||||||
|
if (i + 1 < c.BaseTypes.Count) { |
||||||
|
builder.Append(", "); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string ConvertEnd(IClass c) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
|
||||||
|
builder.Append("End "); |
||||||
|
|
||||||
|
switch (c.ClassType) { |
||||||
|
case ClassType.Delegate: |
||||||
|
builder.Append("Delegate"); |
||||||
|
break; |
||||||
|
case ClassType.Class: |
||||||
|
builder.Append("Class"); |
||||||
|
break; |
||||||
|
case ClassType.Struct: |
||||||
|
builder.Append("Structure"); |
||||||
|
break; |
||||||
|
case ClassType.Interface: |
||||||
|
builder.Append("Interface"); |
||||||
|
break; |
||||||
|
case ClassType.Enum: |
||||||
|
builder.Append("Enum"); |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string Convert(IField field) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
|
||||||
|
builder.Append(Convert(field.Modifiers)); |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("<i>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (ShowModifiers) { |
||||||
|
if (field.IsStatic && field.IsLiteral) { |
||||||
|
builder.Append("Const "); |
||||||
|
} else if (field.IsStatic) { |
||||||
|
builder.Append("Shared "); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</i>"); |
||||||
|
builder.Append("<b>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (UseFullyQualifiedMemberNames) { |
||||||
|
builder.Append(field.FullyQualifiedName); |
||||||
|
} else { |
||||||
|
builder.Append(field.Name); |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</b>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (field.ReturnType != null && ShowReturnType) { |
||||||
|
builder.Append(" As "); |
||||||
|
builder.Append(Convert(field.ReturnType)); |
||||||
|
} |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string Convert(IProperty property) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
|
||||||
|
builder.Append(Convert(property.Modifiers)); |
||||||
|
|
||||||
|
if (ShowModifiers) { |
||||||
|
builder.Append(GetModifier(property)); |
||||||
|
} |
||||||
|
|
||||||
|
if (property.CanGet && !property.CanSet) { |
||||||
|
builder.Append("ReadOnly "); |
||||||
|
} |
||||||
|
|
||||||
|
if (property.CanSet && !property.CanGet) { |
||||||
|
builder.Append("WriteOnly "); |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("<b>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (UseFullyQualifiedMemberNames) { |
||||||
|
builder.Append(property.FullyQualifiedName); |
||||||
|
} else { |
||||||
|
builder.Append(property.Name); |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</b>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (property.Parameters.Count > 0) { |
||||||
|
builder.Append("("); |
||||||
|
if (IncludeHTMLMarkup) builder.Append("<br>"); |
||||||
|
|
||||||
|
for (int i = 0; i < property.Parameters.Count; ++i) { |
||||||
|
if (IncludeHTMLMarkup) builder.Append(" "); |
||||||
|
builder.Append(Convert(property.Parameters[i])); |
||||||
|
if (i + 1 < property.Parameters.Count) { |
||||||
|
builder.Append(", "); |
||||||
|
} |
||||||
|
if (IncludeHTMLMarkup) builder.Append("<br>"); |
||||||
|
} |
||||||
|
|
||||||
|
builder.Append(')'); |
||||||
|
} |
||||||
|
|
||||||
|
if (property.ReturnType != null && ShowReturnType) { |
||||||
|
builder.Append(" As "); |
||||||
|
builder.Append(Convert(property.ReturnType)); |
||||||
|
} |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string Convert(IEvent e) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
|
||||||
|
builder.Append(Convert(e.Modifiers)); |
||||||
|
|
||||||
|
if (ShowModifiers) { |
||||||
|
builder.Append(GetModifier(e)); |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("<b>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (UseFullyQualifiedMemberNames) { |
||||||
|
builder.Append(e.FullyQualifiedName); |
||||||
|
} else { |
||||||
|
builder.Append(e.Name); |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</b>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (e.ReturnType != null && ShowReturnType) { |
||||||
|
builder.Append(" As "); |
||||||
|
builder.Append(Convert(e.ReturnType)); |
||||||
|
} |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string Convert(IIndexer m) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
builder.Append(Convert(m.Modifiers)); |
||||||
|
|
||||||
|
if (ShowModifiers) { |
||||||
|
if (m.IsStatic) { |
||||||
|
builder.Append("Shared "); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("<b>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (UseFullyQualifiedMemberNames) { |
||||||
|
builder.Append(m.FullyQualifiedName); |
||||||
|
} else { |
||||||
|
builder.Append(m.Name); |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</b>"); |
||||||
|
} |
||||||
|
|
||||||
|
builder.Append("Item("); |
||||||
|
if (IncludeHTMLMarkup) builder.Append("<br>"); |
||||||
|
|
||||||
|
for (int i = 0; i < m.Parameters.Count; ++i) { |
||||||
|
if (IncludeHTMLMarkup) builder.Append(" "); |
||||||
|
builder.Append(Convert(m.Parameters[i])); |
||||||
|
if (i + 1 < m.Parameters.Count) { |
||||||
|
builder.Append(", "); |
||||||
|
} |
||||||
|
if (IncludeHTMLMarkup) builder.Append("<br>"); |
||||||
|
} |
||||||
|
|
||||||
|
builder.Append(")"); |
||||||
|
|
||||||
|
if (m.ReturnType != null && ShowReturnType) { |
||||||
|
builder.Append(" As "); |
||||||
|
builder.Append(Convert(m.ReturnType)); |
||||||
|
} |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string Convert(IMethod m) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
builder.Append(Convert(m.Modifiers)); |
||||||
|
|
||||||
|
if (ShowModifiers) { |
||||||
|
builder.Append(GetModifier(m)); |
||||||
|
} |
||||||
|
if (ShowReturnType) { |
||||||
|
if (m.ReturnType == null || m.ReturnType.FullyQualifiedName == "System.Void") { |
||||||
|
builder.Append("Sub "); |
||||||
|
} else { |
||||||
|
builder.Append("Function "); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
string dispName = UseFullyQualifiedMemberNames ? m.FullyQualifiedName : m.Name; |
||||||
|
if (m.Name == "ctor" || m.Name == "cctor" || m.Name == "#ctor" || m.Name == "#cctor" || m.IsConstructor) { |
||||||
|
dispName = "New"; |
||||||
|
} |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("<b>"); |
||||||
|
} |
||||||
|
|
||||||
|
builder.Append(dispName); |
||||||
|
|
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</b>"); |
||||||
|
} |
||||||
|
|
||||||
|
builder.Append("("); |
||||||
|
if (IncludeHTMLMarkup) builder.Append("<br>"); |
||||||
|
|
||||||
|
for (int i = 0; i < m.Parameters.Count; ++i) { |
||||||
|
if (IncludeHTMLMarkup) builder.Append(" "); |
||||||
|
builder.Append(Convert(m.Parameters[i])); |
||||||
|
if (i + 1 < m.Parameters.Count) { |
||||||
|
builder.Append(", "); |
||||||
|
} |
||||||
|
if (IncludeHTMLMarkup) builder.Append("<br>"); |
||||||
|
} |
||||||
|
|
||||||
|
builder.Append(')'); |
||||||
|
|
||||||
|
if (ShowReturnType && m.ReturnType != null && m.ReturnType.FullyQualifiedName != "System.Void") { |
||||||
|
builder.Append(" As "); |
||||||
|
builder.Append(Convert(m.ReturnType)); |
||||||
|
} |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string ConvertEnd(IMethod m) |
||||||
|
{ |
||||||
|
if (m.ReturnType == null || m.ReturnType.FullyQualifiedName == "System.Void") { |
||||||
|
return "End Sub"; |
||||||
|
} else { |
||||||
|
return "End Function"; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public override string Convert(IReturnType returnType) |
||||||
|
{ |
||||||
|
if (returnType == null) { |
||||||
|
return String.Empty; |
||||||
|
} |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
|
||||||
|
bool linkSet = false; |
||||||
|
// TODO: #Assembly dependance:
|
||||||
|
|
||||||
|
// if (UseLinkArrayList) {
|
||||||
|
// SharpAssemblyReturnType ret = returnType as SharpAssemblyReturnType;
|
||||||
|
// if (ret != null) {
|
||||||
|
// if (ret.UnderlyingClass != null) {
|
||||||
|
// builder.Append("<a href='as://" + linkArrayList.Add(ret.UnderlyingClass) + "'>");
|
||||||
|
// linkSet = true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (returnType.FullyQualifiedName != null && typeConversionTable[returnType.FullyQualifiedName] != null) { |
||||||
|
builder.Append(typeConversionTable[returnType.FullyQualifiedName].ToString()); |
||||||
|
} else { |
||||||
|
builder.Append(UseFullyQualifiedNames ? returnType.FullyQualifiedName : returnType.Name); |
||||||
|
} |
||||||
|
|
||||||
|
if (linkSet) { |
||||||
|
builder.Append("</a>"); |
||||||
|
} |
||||||
|
|
||||||
|
for (int i = 0; i < returnType.PointerNestingLevel; ++i) { |
||||||
|
builder.Append('*'); |
||||||
|
} |
||||||
|
|
||||||
|
for (int i = 0; i < returnType.ArrayCount; ++i) { |
||||||
|
builder.Append('('); |
||||||
|
for (int j = 1; j < returnType.ArrayDimensions[i]; ++j) { |
||||||
|
builder.Append(','); |
||||||
|
} |
||||||
|
builder.Append(')'); |
||||||
|
} |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string Convert(IParameter param) |
||||||
|
{ |
||||||
|
StringBuilder builder = new StringBuilder(); |
||||||
|
if (ShowParameterNames) { |
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("<i>"); |
||||||
|
} |
||||||
|
|
||||||
|
if (param.IsRef || param.IsOut) { |
||||||
|
builder.Append("ByRef "); |
||||||
|
} else if (param.IsParams) { |
||||||
|
builder.Append("ByVal ParamArray "); |
||||||
|
} else { |
||||||
|
builder.Append("ByVal "); |
||||||
|
} |
||||||
|
if (IncludeHTMLMarkup) { |
||||||
|
builder.Append("</i>"); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
builder.Append(param.Name); |
||||||
|
builder.Append(" As "); |
||||||
|
} |
||||||
|
|
||||||
|
builder.Append(Convert(param.ReturnType)); |
||||||
|
|
||||||
|
return builder.ToString(); |
||||||
|
} |
||||||
|
|
||||||
|
public override string WrapAttribute(string attribute) |
||||||
|
{ |
||||||
|
return "<" + attribute + ">"; |
||||||
|
} |
||||||
|
|
||||||
|
public override string WrapComment(string comment) |
||||||
|
{ |
||||||
|
return "' " + comment; |
||||||
|
} |
||||||
|
|
||||||
|
public override string GetIntrinsicTypeName(string dotNetTypeName) |
||||||
|
{ |
||||||
|
if (typeConversionTable[dotNetTypeName] != null) { |
||||||
|
return (string)typeConversionTable[dotNetTypeName]; |
||||||
|
} |
||||||
|
return dotNetTypeName; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,85 @@ |
|||||||
|
//// <file>
|
||||||
|
//// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
//// <license see="prj:///doc/license.txt"/>
|
||||||
|
//// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
||||||
|
//// <version value="$version"/>
|
||||||
|
//// </file>
|
||||||
|
//
|
||||||
|
//using System;
|
||||||
|
//using System.IO;
|
||||||
|
//using System.Diagnostics;
|
||||||
|
//using System.Collections;
|
||||||
|
//using System.Reflection;
|
||||||
|
//using System.Resources;
|
||||||
|
//using System.Windows.Forms;
|
||||||
|
//using System.Xml;
|
||||||
|
//using System.CodeDom.Compiler;
|
||||||
|
//using System.Threading;
|
||||||
|
//
|
||||||
|
//using ICSharpCode.SharpDevelop.Project;
|
||||||
|
//using ICSharpCode.SharpDevelop.Gui;
|
||||||
|
//using ICSharpCode.Core;
|
||||||
|
//
|
||||||
|
//namespace CSharpBinding
|
||||||
|
//{
|
||||||
|
// /// <summary>
|
||||||
|
// /// This class describes the main functionalaty of a language codon
|
||||||
|
// /// </summary>
|
||||||
|
// public class CSharpBindingExecutionManager
|
||||||
|
// {
|
||||||
|
// public void Execute(string filename, bool debug)
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public void Execute(IProject project, bool debug)
|
||||||
|
// {
|
||||||
|
// CSharpCompilerParameters parameters = (CSharpCompilerParameters)project.ActiveConfiguration;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// string directory = FileUtility.GetDirectoryNameWithSeparator(((CSharpCompilerParameters)project.ActiveConfiguration).OutputDirectory);
|
||||||
|
// string exe = ((CSharpCompilerParameters)project.ActiveConfiguration).OutputAssembly + ".exe";
|
||||||
|
// string args = ((CSharpCompilerParameters)project.ActiveConfiguration).CommandLineParameters;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// bool customStartup = false;
|
||||||
|
// ProcessStartInfo psi;
|
||||||
|
// if (parameters.ExecuteScript != null && parameters.ExecuteScript.Length > 0) {
|
||||||
|
// customStartup = true;
|
||||||
|
// psi = new ProcessStartInfo("\"" + parameters.ExecuteScript + "\"", args);
|
||||||
|
// } else {
|
||||||
|
// if (parameters.CompileTarget == CompileTarget.Library) {
|
||||||
|
//
|
||||||
|
// MessageService.ShowError("${res:BackendBindings.ExecutionManager.CantExecuteDLLError}");
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// string runtimeStarter = String.Empty;
|
||||||
|
//
|
||||||
|
// switch (parameters.NetRuntime) {
|
||||||
|
// case NetRuntime.Mono:
|
||||||
|
// runtimeStarter = "mono ";
|
||||||
|
// break;
|
||||||
|
// case NetRuntime.MonoInterpreter:
|
||||||
|
// runtimeStarter = "mint ";
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (parameters.CompileTarget != CompileTarget.WinExe && parameters.PauseConsoleOutput) {
|
||||||
|
// psi = new ProcessStartInfo(Environment.GetEnvironmentVariable("ComSpec"), "/c " + runtimeStarter + "\"" + directory + exe + "\" " + args + " & pause");
|
||||||
|
// } else {
|
||||||
|
// psi = new ProcessStartInfo(runtimeStarter + "\"" + directory + exe + "\"");
|
||||||
|
// psi.Arguments = args;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// psi.WorkingDirectory = Path.GetDirectoryName(directory);
|
||||||
|
// psi.UseShellExecute = false;
|
||||||
|
// DebuggerService DebuggerService = (DebuggerService)ServiceManager.Services.GetService(typeof(DebuggerService));
|
||||||
|
// if (debug && !customStartup) {
|
||||||
|
// DebuggerService.Start(Path.Combine(directory, exe), directory, args);
|
||||||
|
// } else {
|
||||||
|
// DebuggerService.StartWithoutDebugging(psi);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
@ -0,0 +1,90 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
||||||
|
// <version value="$version"/>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.IO; |
||||||
|
using System.Diagnostics; |
||||||
|
using System.Collections; |
||||||
|
using System.Reflection; |
||||||
|
using System.Resources; |
||||||
|
using System.Windows.Forms; |
||||||
|
using System.Xml; |
||||||
|
using System.CodeDom.Compiler; |
||||||
|
using System.Threading; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
using ICSharpCode.SharpDevelop.Internal.Templates; |
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
using ICSharpCode.Core; |
||||||
|
|
||||||
|
namespace VBNetBinding |
||||||
|
{ |
||||||
|
public class VBNetLanguageBinding : ILanguageBinding |
||||||
|
{ |
||||||
|
public const string LanguageName = "C#"; |
||||||
|
|
||||||
|
public string Language { |
||||||
|
get { |
||||||
|
return LanguageName; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#region routines for single file compilation
|
||||||
|
public bool CanCompile(string fileName) |
||||||
|
{ |
||||||
|
Debug.Assert(fileName != null); |
||||||
|
|
||||||
|
string ext = Path.GetExtension(fileName); |
||||||
|
if (ext == null) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
return ext.ToUpper() == ".CS"; |
||||||
|
} |
||||||
|
|
||||||
|
public string GetCompiledOutputName(string fileName) |
||||||
|
{ |
||||||
|
Debug.Assert(CanCompile(fileName)); |
||||||
|
|
||||||
|
return Path.ChangeExtension(fileName, ".exe"); |
||||||
|
} |
||||||
|
|
||||||
|
public CompilerResults CompileFile(string fileName) |
||||||
|
{ |
||||||
|
Debug.Assert(CanCompile(fileName)); |
||||||
|
|
||||||
|
// TODO: Implement me!
|
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
public void Execute(string fileName, bool debug) |
||||||
|
{ |
||||||
|
string exe = GetCompiledOutputName(fileName); |
||||||
|
|
||||||
|
|
||||||
|
if (debug) { |
||||||
|
DebuggerService.Start(exe, Path.GetDirectoryName(exe), ""); |
||||||
|
} else { |
||||||
|
ProcessStartInfo psi = new ProcessStartInfo(Environment.GetEnvironmentVariable("ComSpec"), "/c " + "\"" + exe + "\"" + " & pause"); |
||||||
|
psi.WorkingDirectory = Path.GetDirectoryName(exe); |
||||||
|
psi.UseShellExecute = false; |
||||||
|
|
||||||
|
DebuggerService.StartWithoutDebugging(psi); |
||||||
|
} |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
public IProject LoadProject(string fileName, string projectName) |
||||||
|
{ |
||||||
|
return new VBNetProject(fileName, projectName); |
||||||
|
} |
||||||
|
|
||||||
|
public IProject CreateProject(ProjectCreateInformation info, XmlElement projectOptions) |
||||||
|
{ |
||||||
|
return new VBNetProject(info); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,77 @@ |
|||||||
|
<AddIn name = "SharpDevelop Bindings" |
||||||
|
author = "Mike Krueger, Markus Palme" |
||||||
|
copyright = "GPL" |
||||||
|
url = "http://www.icsharpcode.net" |
||||||
|
description = "SharpDevelop VB.NET language binding" |
||||||
|
version = "1.0.0"> |
||||||
|
|
||||||
|
<Runtime> |
||||||
|
<Import assembly = "VBNetBinding.dll"/> |
||||||
|
</Runtime> |
||||||
|
|
||||||
|
<Path name = "/SharpDevelop/Workbench/Ambiences"> |
||||||
|
<Class id = "VBNet" |
||||||
|
class = "VBNetBinding.VBNetAmbience"/> |
||||||
|
</Path> |
||||||
|
|
||||||
|
<Path name = "/SharpDevelop/Workbench/FileFilter"> |
||||||
|
<FileFilter id = "VBNet" |
||||||
|
insertbefore="AllFiles" |
||||||
|
name = "${res:SharpDevelop.FileFilter.VBNetFiles}" |
||||||
|
extensions = "*.vb"/> |
||||||
|
</Path> |
||||||
|
|
||||||
|
<Path name = "/Workspace/Parser"> |
||||||
|
<Parser id = "VBNet" |
||||||
|
supportedextensions = ".vb" |
||||||
|
projectfileextension = ".vbproj" |
||||||
|
class = "VBNetBinding.Parser.TParser"/> |
||||||
|
</Path> |
||||||
|
|
||||||
|
<Path path = "/SharpDevelop/BackendBindings/ProjectOptions/VBNet"> |
||||||
|
<DialogPanel id = "Application" |
||||||
|
label = "Application" |
||||||
|
class = "VBNetBinding.OptionPanels.ApplicationSettings"/> |
||||||
|
<DialogPanel id = "ReferencePaths" |
||||||
|
label = "Reference Paths" |
||||||
|
class = "VBNetBinding.OptionPanels.ReferencePaths"/> |
||||||
|
<DialogPanel id = "Signing" |
||||||
|
label = "Signing" |
||||||
|
class = "VBNetBinding.OptionPanels.Signing"/> |
||||||
|
<DialogPanel id = "BuildEvents" |
||||||
|
label = "Build Events" |
||||||
|
class = "VBNetBinding.OptionPanels.BuildEvents"/> |
||||||
|
<DialogPanel id = "BuildOptions" |
||||||
|
label = "Build" |
||||||
|
class = "VBNetBinding.OptionPanels.BuildOptions"/> |
||||||
|
<DialogPanel id = "DebugOptions" |
||||||
|
label = "Debug" |
||||||
|
class = "VBNetBinding.OptionPanels.DebugOptions"/> |
||||||
|
<DialogPanel id = "Publish" |
||||||
|
label = "Publish" |
||||||
|
class = "VBNetBinding.OptionPanels.Publish"/> |
||||||
|
</Path> |
||||||
|
|
||||||
|
<Path name = "/AddIns/DefaultTextEditor/Formatter/VBNet"> |
||||||
|
<Class id ="VBNetFormatter" insertbefore="DefaultFormatter" class = "CSharpBinding.FormattingStrategy.VBNetFormattingStrategy"/> |
||||||
|
</Path> |
||||||
|
|
||||||
|
<Path name = "/Workspace/Icons"> |
||||||
|
<!-- C# --> |
||||||
|
<Icon id = "VBNetPrj" |
||||||
|
language = "VBNet" |
||||||
|
resource = "VBNet.ProjectIcon"/> |
||||||
|
|
||||||
|
<Icon id = "VBNetFile" |
||||||
|
extensions = ".vb" |
||||||
|
resource = "VBNet.FileIcon"/> |
||||||
|
</Path> |
||||||
|
|
||||||
|
<Path path = "/SharpDevelop/Workbench/LanguageBindings"> |
||||||
|
<LanguageBinding id = "VBNet" |
||||||
|
guid = "{634FA0F9-5C09-48ec-9E9E-29428AE97251}" |
||||||
|
supportedextensions = ".vb" |
||||||
|
projectfileextension = ".vbproj" |
||||||
|
class = "VBNetBinding.VBNetLanguageBinding" /> |
||||||
|
</Path> |
||||||
|
</AddIn> |
@ -0,0 +1,111 @@ |
|||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||||
|
<PropertyGroup> |
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
||||||
|
<ProductVersion>8.0.41115</ProductVersion> |
||||||
|
<SchemaVersion>2.0</SchemaVersion> |
||||||
|
<ProjectGuid>{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}</ProjectGuid> |
||||||
|
<AssemblyName>VBNetBinding</AssemblyName> |
||||||
|
<OutputTarget>Library</OutputTarget> |
||||||
|
<WarningLevel>4</WarningLevel> |
||||||
|
<NoStdLib>False</NoStdLib> |
||||||
|
<NoConfig>False</NoConfig> |
||||||
|
<RunPostBuildEvent>OnSuccessfulBuild</RunPostBuildEvent> |
||||||
|
<OutputType>Library</OutputType> |
||||||
|
<AssemblyOriginatorKeyFile /> |
||||||
|
<AssemblyKeyProviderName /> |
||||||
|
<AssemblyOriginatorKeyMode>File</AssemblyOriginatorKeyMode> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
||||||
|
<DebugSymbols>True</DebugSymbols> |
||||||
|
<Optimize>True</Optimize> |
||||||
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks> |
||||||
|
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> |
||||||
|
<OutputPath>..\..\..\..\..\AddIns\AddIns\BackendBindings\VBNetBinding\</OutputPath> |
||||||
|
<TreatWarningsAsErrors>True</TreatWarningsAsErrors> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
||||||
|
<DebugSymbols>True</DebugSymbols> |
||||||
|
<Optimize>True</Optimize> |
||||||
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks> |
||||||
|
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> |
||||||
|
<OutputPath>..\..\..\..\..\AddIns\AddIns\BackendBindings\VBNetBinding\</OutputPath> |
||||||
|
<TreatWarningsAsErrors>False</TreatWarningsAsErrors> |
||||||
|
</PropertyGroup> |
||||||
|
<ItemGroup> |
||||||
|
<Reference Include="System" /> |
||||||
|
<Reference Include="System.Drawing" /> |
||||||
|
<Reference Include="System.Windows.Forms" /> |
||||||
|
<Reference Include="System.XML" /> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<Compile Include="Configuration\AssemblyInfo.cs" /> |
||||||
|
<EmbeddedResource Include="Resources\AdvancedBuildOptionsDialog.xfrm" /> |
||||||
|
<EmbeddedResource Include="Resources\ApplicationSettings.xfrm" /> |
||||||
|
<EmbeddedResource Include="Resources\BuildEvents.xfrm" /> |
||||||
|
<EmbeddedResource Include="Resources\BuildOptions.xfrm" /> |
||||||
|
<EmbeddedResource Include="Resources\DebugOptions.xfrm" /> |
||||||
|
<EmbeddedResource Include="Resources\Publish.xfrm" /> |
||||||
|
<EmbeddedResource Include="Resources\ReferencePaths.xfrm" /> |
||||||
|
<EmbeddedResource Include="Resources\Signing.xfrm" /> |
||||||
|
<Compile Include="Src\VBNetAmbience.cs" /> |
||||||
|
<Compile Include="Src\VBNetBindingExecutionManager.cs" /> |
||||||
|
<Compile Include="Src\VBNetLanguageBinding.cs" /> |
||||||
|
<Compile Include="Src\FormattingStrategy\VBNetFormattingStrategy.cs" /> |
||||||
|
<Compile Include="Src\FormattingStrategy\DocumentAccessor.cs" /> |
||||||
|
<Compile Include="Src\FormattingStrategy\Indentation.cs" /> |
||||||
|
<Compile Include="Src\OptionPanels\ApplicationSettings.cs"> |
||||||
|
<SubType>UserControl</SubType> |
||||||
|
</Compile> |
||||||
|
<Compile Include="Src\OptionPanels\BuildEvents.cs"> |
||||||
|
<SubType>UserControl</SubType> |
||||||
|
</Compile> |
||||||
|
<Compile Include="Src\OptionPanels\BuildOptions.cs"> |
||||||
|
<SubType>UserControl</SubType> |
||||||
|
</Compile> |
||||||
|
<Compile Include="Src\OptionPanels\DebugOptions.cs"> |
||||||
|
<SubType>UserControl</SubType> |
||||||
|
</Compile> |
||||||
|
<Compile Include="Src\OptionPanels\Publish.cs"> |
||||||
|
<SubType>UserControl</SubType> |
||||||
|
</Compile> |
||||||
|
<Compile Include="Src\OptionPanels\ReferencePaths.cs"> |
||||||
|
<SubType>UserControl</SubType> |
||||||
|
</Compile> |
||||||
|
<Compile Include="Src\OptionPanels\Signing.cs"> |
||||||
|
<SubType>UserControl</SubType> |
||||||
|
</Compile> |
||||||
|
<Compile Include="Src\Parser\ExpressionFinder.cs" /> |
||||||
|
<Compile Include="Src\Parser\Parser.cs" /> |
||||||
|
<Compile Include="Src\Project\VBNetProject.cs" /> |
||||||
|
<None Include="VBNetBinding.addin"> |
||||||
|
<CopyToOutputDirectory>True</CopyToOutputDirectory> |
||||||
|
</None> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<ProjectReference Include="..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj"> |
||||||
|
<Project>{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}</Project> |
||||||
|
<Name>ICSharpCode.TextEditor</Name> |
||||||
|
<Private>False</Private> |
||||||
|
</ProjectReference> |
||||||
|
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\Project\NRefactory.csproj"> |
||||||
|
<Project>{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}</Project> |
||||||
|
<Name>NRefactory</Name> |
||||||
|
<Private>False</Private> |
||||||
|
</ProjectReference> |
||||||
|
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> |
||||||
|
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project> |
||||||
|
<Name>ICSharpCode.SharpDevelop</Name> |
||||||
|
<Private>False</Private> |
||||||
|
</ProjectReference> |
||||||
|
<ProjectReference Include="..\..\..\..\Main\Core\Project\ICSharpCode.Core.csproj"> |
||||||
|
<Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project> |
||||||
|
<Name>ICSharpCode.Core</Name> |
||||||
|
<Private>False</Private> |
||||||
|
</ProjectReference> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<Folder Include="Src\PrettyPrinter\Gui\" /> |
||||||
|
</ItemGroup> |
||||||
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" /> |
||||||
|
</Project> |
@ -0,0 +1,11 @@ |
|||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
||||||
|
<StartProgram>..\..\..\..\..\bin\SharpDevelop.exe</StartProgram> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " /> |
||||||
|
<PropertyGroup> |
||||||
|
<LastOpenVersion>8.0.41115</LastOpenVersion> |
||||||
|
<ProjectView>ShowAllFiles</ProjectView> |
||||||
|
<ProjectTrust>0</ProjectTrust> |
||||||
|
</PropertyGroup> |
||||||
|
</Project> |
@ -0,0 +1,20 @@ |
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 9.00 |
||||||
|
# Visual Studio 2005 |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBNetBinding", "VBNetBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}" |
||||||
|
EndProject |
||||||
|
Global |
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
||||||
|
Debug|Any CPU = Debug|Any CPU |
||||||
|
Release|Any CPU = Release|Any CPU |
||||||
|
EndGlobalSection |
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
||||||
|
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
EndGlobalSection |
||||||
|
GlobalSection(SolutionProperties) = preSolution |
||||||
|
HideSolutionNode = FALSE |
||||||
|
EndGlobalSection |
||||||
|
EndGlobal |
Binary file not shown.
Loading…
Reference in new issue