Get repositories from binaries
This commit is contained in:
parent
94b152ec45
commit
2d25fb098f
|
@ -30,32 +30,34 @@ namespace cashew
|
||||||
public partial class MainForm : MetroForm
|
public partial class MainForm : MetroForm
|
||||||
{
|
{
|
||||||
#region General
|
#region General
|
||||||
ThreadState[] runningStates = new ThreadState[] { ThreadState.Background, ThreadState.Running, ThreadState.StopRequested, ThreadState.WaitSleepJoin };
|
private readonly ThreadState[] runningStates = new ThreadState[] { ThreadState.Background, ThreadState.Running, ThreadState.StopRequested, ThreadState.WaitSleepJoin };
|
||||||
private IMetroControl[] metroControls;
|
private readonly IMetroControl[] metroControls;
|
||||||
private Control[] normalControls;
|
private readonly Control[] normalControls;
|
||||||
private ToolStripMenuItem[] menuItems;
|
private readonly ToolStripMenuItem[] menuItems;
|
||||||
private string[] cseditcodel;
|
private string[] cseditcodel;
|
||||||
private string[] cseditrefl;
|
private string[] cseditrefl;
|
||||||
|
|
||||||
public MainForm()
|
public MainForm()
|
||||||
{
|
{
|
||||||
Splash splash = new Splash();
|
using (Splash splash = new Splash())
|
||||||
splash.Show();
|
{
|
||||||
InitializeComponent();
|
splash.Show();
|
||||||
metroControls = new IMetroControl[] { nmtext, languageTabControl, cstab, infotab, nightmodeToggle, cseditopen, cseditrun, cseditsave, csediterrorpanel, csediterrors, cseditref, infoPanel, htmltab, htmltitle, htmlOptionsTile, htmlOptionsMenu, htmlRefreshTile, htmlLoad, htmlSave, htmlLoadIndicator, htmlUpdateToggle, htmlLiveLabel, livehider, nightmodehide, pythontab,
|
InitializeComponent();
|
||||||
|
metroControls = new IMetroControl[] { nmtext, languageTabControl, cstab, infotab, nightmodeToggle, cseditopen, cseditrun, cseditsave, csediterrorpanel, csediterrors, cseditref, infoPanel, htmltab, htmltitle, htmlOptionsTile, htmlOptionsMenu, htmlRefreshTile, htmlLoad, htmlSave, htmlLoadIndicator, htmlUpdateToggle, htmlLiveLabel, livehider, nightmodehide, pythontab,
|
||||||
pythonSave, pythonRun, pythonOpen};
|
pythonSave, pythonRun, pythonOpen};
|
||||||
normalControls = new Control[] { htmlSep, htmldisplay, cseditCode, pythonCode, htmlText };
|
normalControls = new Control[] { htmlSep, htmldisplay, cseditCode, pythonCode, htmlText };
|
||||||
menuItems = new ToolStripMenuItem[] { hTMLToolStripMenuItem, javaScriptToolStripMenuItem, cSSToolStripMenuItem, pHPToolStripMenuItem, hTMLStructureSetupToolStripMenuItem, javaStructureSetupToolStripMenuItem, cSSStructureSetupToolStripMenuItem, pHPStructureSetupToolStripMenuItem, linkToolStripMenuItem, imageToolStripMenuItem, textToolStripMenuItem, tableToolStripMenuItem,
|
menuItems = new ToolStripMenuItem[] { hTMLToolStripMenuItem, javaScriptToolStripMenuItem, cSSToolStripMenuItem, pHPToolStripMenuItem, hTMLStructureSetupToolStripMenuItem, javaStructureSetupToolStripMenuItem, cSSStructureSetupToolStripMenuItem, pHPStructureSetupToolStripMenuItem, linkToolStripMenuItem, imageToolStripMenuItem, textToolStripMenuItem, tableToolStripMenuItem,
|
||||||
listsToolStripMenuItem, functionToolStripMenuItem, textToolStripMenuItem1, alertBoxToolStripMenuItem, timeoutToolStripMenuItem, randomNumberToolStripMenuItem, cSSCustomizeTagToolStripMenuItem, cSSCustomTagPropertiesToolStripMenuItem, textToolStripMenuItem3, headingsToolStripMenuItem, boldbToolStripMenuItem, underlineuToolStripMenuItem, italiciToolStripMenuItem,
|
listsToolStripMenuItem, functionToolStripMenuItem, textToolStripMenuItem1, alertBoxToolStripMenuItem, timeoutToolStripMenuItem, randomNumberToolStripMenuItem, cSSCustomizeTagToolStripMenuItem, cSSCustomTagPropertiesToolStripMenuItem, textToolStripMenuItem3, headingsToolStripMenuItem, boldbToolStripMenuItem, underlineuToolStripMenuItem, italiciToolStripMenuItem,
|
||||||
deleteddelToolStripMenuItem, subscriptedSubToolStripMenuItem, superscriptedsupToolStripMenuItem, tableFormatSetupToolStripMenuItem, tableHeadingthToolStripMenuItem, newHorizontalItemtdToolStripMenuItem, newRowtrToolStripMenuItem, orderedListSetupolToolStripMenuItem, unorderedListSetupulToolStripMenuItem, listItemliToolStripMenuItem, heading1h1ToolStripMenuItem,
|
deleteddelToolStripMenuItem, subscriptedSubToolStripMenuItem, superscriptedsupToolStripMenuItem, tableFormatSetupToolStripMenuItem, tableHeadingthToolStripMenuItem, newHorizontalItemtdToolStripMenuItem, newRowtrToolStripMenuItem, orderedListSetupolToolStripMenuItem, unorderedListSetupulToolStripMenuItem, listItemliToolStripMenuItem, heading1h1ToolStripMenuItem,
|
||||||
heading2h2ToolStripMenuItem, heading3h3ToolStripMenuItem, heading4h4ToolStripMenuItem, heading5h5ToolStripMenuItem, heading6h6ToolStripMenuItem, textToolStripMenuItem2, backgroundToolStripMenuItem, backgroundRepeatToolStripMenuItem, backgroundPositionToolStripMenuItem, backgroundImageToolStripMenuItem, backgroundColorToolStripMenuItem, backgroundAttachmentToolStripMenuItem,
|
heading2h2ToolStripMenuItem, heading3h3ToolStripMenuItem, heading4h4ToolStripMenuItem, heading5h5ToolStripMenuItem, heading6h6ToolStripMenuItem, textToolStripMenuItem2, backgroundToolStripMenuItem, backgroundRepeatToolStripMenuItem, backgroundPositionToolStripMenuItem, backgroundImageToolStripMenuItem, backgroundColorToolStripMenuItem, backgroundAttachmentToolStripMenuItem,
|
||||||
fontToolStripMenuItem, sizeToolStripMenuItem, weightToolStripMenuItem, colorToolStripMenuItem, directionToolStripMenuItem, lineHeightToolStripMenuItem, alignToolStripMenuItem, letterSpacingToolStripMenuItem, decorationToolStripMenuItem, indentToolStripMenuItem, shadowToolStripMenuItem, transformToolStripMenuItem, wordspacingToolStripMenuItem, centercenterToolStripMenuItem,
|
fontToolStripMenuItem, sizeToolStripMenuItem, weightToolStripMenuItem, colorToolStripMenuItem, directionToolStripMenuItem, lineHeightToolStripMenuItem, alignToolStripMenuItem, letterSpacingToolStripMenuItem, decorationToolStripMenuItem, indentToolStripMenuItem, shadowToolStripMenuItem, transformToolStripMenuItem, wordspacingToolStripMenuItem, centercenterToolStripMenuItem,
|
||||||
paragraphpToolStripMenuItem};
|
paragraphpToolStripMenuItem};
|
||||||
cseditrefl = new string[1] { "System.Windows.Forms.dll" };
|
cseditrefl = new string[1] { "System.Windows.Forms.dll" };
|
||||||
htmldisplay.DocumentText = htmlText.Text;
|
htmldisplay.DocumentText = htmlText.Text;
|
||||||
metroToggle1_CheckedChanged(this, new EventArgs());
|
metroToggle1_CheckedChanged(this, new EventArgs());
|
||||||
languageTabControl.SelectedTab = infotab;
|
languageTabControl.SelectedTab = infotab;
|
||||||
splash.Hide();
|
splash.Hide();
|
||||||
|
}
|
||||||
cseditCode.SetHighlighting("C#");
|
cseditCode.SetHighlighting("C#");
|
||||||
pythonCode.SetHighlighting("Python");
|
pythonCode.SetHighlighting("Python");
|
||||||
htmlText.SetHighlighting("HTML");
|
htmlText.SetHighlighting("HTML");
|
||||||
|
@ -147,33 +149,7 @@ namespace cashew
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
csediterrors.Text = "";
|
File.Copy(compileCS(false).PathToAssembly, csSaveFileDialog.FileName);
|
||||||
if (cseditref.Text == "Code")
|
|
||||||
{
|
|
||||||
cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
|
|
||||||
}
|
|
||||||
CSharpCodeProvider provider = new CSharpCodeProvider();
|
|
||||||
CompilerParameters parameters = new CompilerParameters
|
|
||||||
{
|
|
||||||
GenerateInMemory = true,
|
|
||||||
GenerateExecutable = true
|
|
||||||
};
|
|
||||||
for (int i = 0; i < cseditrefl.Length; i++)
|
|
||||||
parameters.ReferencedAssemblies.Add(cseditrefl[i]);
|
|
||||||
CompilerResults results = provider.CompileAssemblyFromSource(parameters, string.Join("\r\n", cseditcodel));
|
|
||||||
if (results.Errors.HasErrors)
|
|
||||||
{
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
foreach (CompilerError error in results.Errors)
|
|
||||||
{
|
|
||||||
sb.AppendLine(string.Format("Error ({0}): {1}", error.ErrorNumber, error.ErrorText));
|
|
||||||
}
|
|
||||||
throw new InvalidOperationException(sb.ToString());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e1)
|
catch (Exception e1)
|
||||||
|
@ -193,40 +169,23 @@ namespace cashew
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
csediterrors.Text = "";
|
CompilerResults results = compileCS();
|
||||||
if (cseditref.Text == "Code")
|
|
||||||
{
|
|
||||||
cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
|
|
||||||
}
|
|
||||||
CompilerParameters parameters = new CompilerParameters
|
|
||||||
{
|
|
||||||
GenerateInMemory = true,
|
|
||||||
GenerateExecutable = true,
|
|
||||||
};
|
|
||||||
parameters.ReferencedAssemblies.AddRange(cseditrefl);
|
|
||||||
CompilerResults results = new CSharpCodeProvider().CompileAssemblyFromSource(parameters, string.Join("\r\n", cseditcodel));
|
|
||||||
if (results.Errors.HasErrors)
|
|
||||||
throw new InvalidOperationException(string.Join("\r\n\r\n", results.Errors.OfType<CompilerError>().Select(s => "Error in line " + s.Line.ToString() + ": " + s.ErrorNumber + " - " + s.ErrorText).ToArray()));
|
|
||||||
cseditrun.Text = "Stop";
|
cseditrun.Text = "Stop";
|
||||||
csScript = new Thread(() =>
|
csScript = new Thread(() =>
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
_ = results.CompiledAssembly.EntryPoint.Invoke(null, null);
|
try
|
||||||
}
|
{
|
||||||
catch (Exception e1)
|
_ = results.CompiledAssembly.EntryPoint.Invoke(null, null);
|
||||||
{
|
}
|
||||||
if (!e1.tryCast(out ThreadAbortException ex))
|
catch (Exception e1)
|
||||||
Invoke((MethodInvoker)delegate ()
|
{
|
||||||
{
|
if (!e1.tryCast(out ThreadAbortException ex))
|
||||||
MetroMessageBox.Show(this, e1.Message, "Execution Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
Invoke((MethodInvoker)delegate ()
|
||||||
});
|
{
|
||||||
}
|
MetroMessageBox.Show(this, e1.Message, "Execution Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
csScript.Start();
|
csScript.Start();
|
||||||
csediterrors.Text = "Ready";
|
csediterrors.Text = "Ready";
|
||||||
}
|
}
|
||||||
|
@ -238,6 +197,33 @@ namespace cashew
|
||||||
cseditrun.Text = csScript.ThreadState == System.Threading.ThreadState.Running ? "Stop" : "Run";
|
cseditrun.Text = csScript.ThreadState == System.Threading.ThreadState.Running ? "Stop" : "Run";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private CompilerResults compileCS(bool memory = true)
|
||||||
|
{
|
||||||
|
csediterrors.Text = "";
|
||||||
|
if (cseditref.Text == "Code")
|
||||||
|
{
|
||||||
|
cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
|
||||||
|
}
|
||||||
|
CompilerParameters parameters = new CompilerParameters
|
||||||
|
{
|
||||||
|
GenerateInMemory = memory,
|
||||||
|
GenerateExecutable = true,
|
||||||
|
};
|
||||||
|
parameters.ReferencedAssemblies.AddRange(cseditrefl);
|
||||||
|
CompilerResults results;
|
||||||
|
using (CSharpCodeProvider provider = new CSharpCodeProvider())
|
||||||
|
{
|
||||||
|
results = provider.CompileAssemblyFromSource(parameters, string.Join("\r\n", cseditcodel));
|
||||||
|
if (results.Errors.HasErrors)
|
||||||
|
throw new InvalidOperationException(string.Join("\r\n\r\n", results.Errors.OfType<CompilerError>().Select(s => "Error in line " + s.Line.ToString() + ": " + s.ErrorNumber + " - " + s.ErrorText).ToArray()));
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
private void cseditopen_Click(object sender, EventArgs e)
|
private void cseditopen_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (csOpenFileDialog.ShowDialog() == DialogResult.OK)
|
if (csOpenFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
|
@ -260,7 +246,9 @@ namespace cashew
|
||||||
{
|
{
|
||||||
CSharpDecompiler decompiler = new CSharpDecompiler(csOpenFileDialog.FileName, new DecompilerSettings());
|
CSharpDecompiler decompiler = new CSharpDecompiler(csOpenFileDialog.FileName, new DecompilerSettings());
|
||||||
cseditcodel = decompiler.DecompileWholeModuleAsString().Split(new string[] { "\r\n" }, StringSplitOptions.None);
|
cseditcodel = decompiler.DecompileWholeModuleAsString().Split(new string[] { "\r\n" }, StringSplitOptions.None);
|
||||||
cseditrefl = new string[] { };
|
cseditrefl = Assembly.LoadFrom(csOpenFileDialog.FileName)
|
||||||
|
.GetReferencedAssemblies().Where(s => !new string[] { "mscorlib" }.Contains(s.Name))
|
||||||
|
.Select(s => string.IsNullOrWhiteSpace(s.CodeBase) ? (s.Name + ".dll") : s.CodeBase).ToArray();
|
||||||
if (cseditref.Text == "References")
|
if (cseditref.Text == "References")
|
||||||
cseditCode.Text = string.Join("\r\n", cseditcodel);
|
cseditCode.Text = string.Join("\r\n", cseditcodel);
|
||||||
else
|
else
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
<Reference Include="System.Runtime.Serialization" />
|
||||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
|
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Xaml" />
|
<Reference Include="System.Xaml" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
|
|
@ -16,5 +16,5 @@
|
||||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
|
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
|
||||||
<package id="System.Reflection.Metadata" version="1.7.0" targetFramework="net472" />
|
<package id="System.Reflection.Metadata" version="1.7.0" targetFramework="net472" />
|
||||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.6.0" targetFramework="net472" />
|
<package id="System.Runtime.CompilerServices.Unsafe" version="4.6.0" targetFramework="net472" />
|
||||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" requireReinstallation="true" />
|
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
Reference in New Issue
Block a user