Browse Source

StyleCop Addin: Moved Settings.SourceAnalysis into assembly as embedded resource. During runtime the file will be extracted to PropertyService.ConfigDirectory.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3374 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Everson 17 years ago
parent
commit
77b8454297
  1. 0
      src/AddIns/Misc/SourceAnalysis/Resources/Settings.SourceAnalysis
  2. 6
      src/AddIns/Misc/SourceAnalysis/SourceAnalysis.csproj
  3. 2
      src/AddIns/Misc/SourceAnalysis/SourceAnalysis.sln
  4. 4
      src/AddIns/Misc/SourceAnalysis/Src/AnalysisIdeOptionsPanel.cs
  5. 10
      src/AddIns/Misc/SourceAnalysis/Src/AnalysisProjectOptionsPanel.cs
  6. 16
      src/AddIns/Misc/SourceAnalysis/Src/StyleCopWrapper.cs

0
src/AddIns/Misc/SourceAnalysis/Settings.SourceAnalysis → src/AddIns/Misc/SourceAnalysis/Resources/Settings.SourceAnalysis

6
src/AddIns/Misc/SourceAnalysis/SourceAnalysis.csproj

@ -44,9 +44,9 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Settings.SourceAnalysis"> <EmbeddedResource Include="Resources\Settings.SourceAnalysis">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None> </EmbeddedResource>
<None Include="SharpDevelop.SourceAnalysis.targets"> <None Include="SharpDevelop.SourceAnalysis.targets">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>

2
src/AddIns/Misc/SourceAnalysis/SourceAnalysis.sln

@ -1,7 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 10.00 Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008 # Visual Studio 2008
# SharpDevelop 3.0.0.3280 # SharpDevelop 3.0.0.3047
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SourceAnalysis", "SourceAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SourceAnalysis", "SourceAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"

4
src/AddIns/Misc/SourceAnalysis/Src/AnalysisIdeOptionsPanel.cs

@ -34,9 +34,11 @@ namespace MattEverson.SourceAnalysis
string path = StyleCopWrapper.FindStyleCopPath(); string path = StyleCopWrapper.FindStyleCopPath();
if (path == null) { if (path == null) {
Get<Label>("status").Text = StringParser.Parse("StyleCop not found in the given path."); Get<Label>("status").Text = StringParser.Parse("StyleCop not found in the given path.");
Get<Button>("ModifyStyleCopSettings").Enabled = false;
} else { } else {
Get<Label>("status").Text = StringParser.Parse("StyleCop was found in: ") Get<Label>("status").Text = StringParser.Parse("StyleCop was found in: ")
+ Environment.NewLine + path; + Environment.NewLine + path;
Get<Button>("ModifyStyleCopSettings").Enabled = true;
} }
} }
@ -60,7 +62,7 @@ namespace MattEverson.SourceAnalysis
void ModifyStyleCopSettingsClick(object sender, EventArgs e) void ModifyStyleCopSettingsClick(object sender, EventArgs e)
{ {
var executable = "\"" + StyleCopWrapper.FindStyleCopPath() + "\\SourceAnalysisSettingsEditor.exe\""; var executable = "\"" + StyleCopWrapper.FindStyleCopPath() + "\\SourceAnalysisSettingsEditor.exe\"";
var parameters = AnalysisProjectOptionsPanel.MasterSettingsFileName; var parameters = StyleCopWrapper.GetMasterSettingsFile();
using(Process p = Process.Start(executable, parameters)) using(Process p = Process.Start(executable, parameters))
{ {
// No need to wait for the settings dialog to close - we can leave it open. // No need to wait for the settings dialog to close - we can leave it open.

10
src/AddIns/Misc/SourceAnalysis/Src/AnalysisProjectOptionsPanel.cs

@ -8,7 +8,7 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Windows.Forms; using System.Windows.Forms;
using System.IO;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui.OptionPanels; using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
@ -16,8 +16,6 @@ using ICSharpCode.SharpDevelop.Project;
namespace MattEverson.SourceAnalysis { namespace MattEverson.SourceAnalysis {
public class AnalysisProjectOptionsPanel : AbstractProjectOptionPanel { public class AnalysisProjectOptionsPanel : AbstractProjectOptionPanel {
public static readonly string MasterSettingsFileName = StringParser.Parse("\"${AddInPath:MattEverson.SourceAnalysis}\\Settings.SourceAnalysis\"");
public override void LoadPanelContents() { public override void LoadPanelContents() {
InitializeHelper(); InitializeHelper();
@ -25,7 +23,7 @@ namespace MattEverson.SourceAnalysis {
if (masterSettingsFile.Length == 0) { if (masterSettingsFile.Length == 0) {
helper.SetProperty<string>("SourceAnalysisOverrideSettingsFile", helper.SetProperty<string>("SourceAnalysisOverrideSettingsFile",
MasterSettingsFileName, StyleCopWrapper.GetMasterSettingsFile(),
true, true,
PropertyStorageLocations.Base); PropertyStorageLocations.Base);
} }
@ -50,7 +48,7 @@ namespace MattEverson.SourceAnalysis {
void ModifyStyleCopSettingsClick(object sender, EventArgs e) { void ModifyStyleCopSettingsClick(object sender, EventArgs e) {
var settingsFile = helper.GetProperty<string>("SourceAnalysisOverrideSettingsFile", "", true); var settingsFile = helper.GetProperty<string>("SourceAnalysisOverrideSettingsFile", "", true);
if (settingsFile == MasterSettingsFileName) { if (settingsFile == StyleCopWrapper.GetMasterSettingsFile()) {
if (ConfirmSwitchFromMaster()) { if (ConfirmSwitchFromMaster()) {
settingsFile = CopyFromMaster(); settingsFile = CopyFromMaster();
} }
@ -110,7 +108,7 @@ namespace MattEverson.SourceAnalysis {
private string CopyFromMaster() { private string CopyFromMaster() {
var newSettingsFile = helper.Project.Directory + "\\Settings.SourceAnalysis"; var newSettingsFile = helper.Project.Directory + "\\Settings.SourceAnalysis";
System.IO.File.Copy( System.IO.File.Copy(
MasterSettingsFileName, StyleCopWrapper.GetMasterSettingsFile(),
newSettingsFile, newSettingsFile,
true true
); );

16
src/AddIns/Misc/SourceAnalysis/Src/StyleCopWrapper.cs

@ -7,6 +7,7 @@
using System; using System;
using System.IO; using System.IO;
using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
@ -14,6 +15,8 @@ namespace MattEverson.SourceAnalysis
{ {
public static class StyleCopWrapper public static class StyleCopWrapper
{ {
public static readonly string MasterSettingsFileName = Path.Combine(PropertyService.ConfigDirectory, @"\Settings.SourceAnalysis");
public static bool IsStyleCopPath(string styleCopPath) public static bool IsStyleCopPath(string styleCopPath)
{ {
if (string.IsNullOrEmpty(styleCopPath)) if (string.IsNullOrEmpty(styleCopPath))
@ -30,5 +33,18 @@ namespace MattEverson.SourceAnalysis
} }
return null; return null;
} }
public static string GetMasterSettingsFile()
{
var resource = typeof(StyleCopWrapper).Assembly.GetManifestResourceStream("MattEverson.SourceAnalysis.Resources.Settings.SourceAnalysis");
if(!File.Exists(MasterSettingsFileName))
{
var xmlDoc = new XmlDocument();
xmlDoc.Load(resource);
xmlDoc.PreserveWhitespace = true;
xmlDoc.Save(MasterSettingsFileName);
}
return MasterSettingsFileName;
}
} }
} }

Loading…
Cancel
Save