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

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

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# 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}"
EndProject
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 @@ -34,9 +34,11 @@ namespace MattEverson.SourceAnalysis
string path = StyleCopWrapper.FindStyleCopPath();
if (path == null) {
Get<Label>("status").Text = StringParser.Parse("StyleCop not found in the given path.");
Get<Button>("ModifyStyleCopSettings").Enabled = false;
} else {
Get<Label>("status").Text = StringParser.Parse("StyleCop was found in: ")
+ Environment.NewLine + path;
Get<Button>("ModifyStyleCopSettings").Enabled = true;
}
}
@ -60,7 +62,7 @@ namespace MattEverson.SourceAnalysis @@ -60,7 +62,7 @@ namespace MattEverson.SourceAnalysis
void ModifyStyleCopSettingsClick(object sender, EventArgs e)
{
var executable = "\"" + StyleCopWrapper.FindStyleCopPath() + "\\SourceAnalysisSettingsEditor.exe\"";
var parameters = AnalysisProjectOptionsPanel.MasterSettingsFileName;
var parameters = StyleCopWrapper.GetMasterSettingsFile();
using(Process p = Process.Start(executable, parameters))
{
// 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 @@ @@ -8,7 +8,7 @@
using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
@ -16,8 +16,6 @@ using ICSharpCode.SharpDevelop.Project; @@ -16,8 +16,6 @@ using ICSharpCode.SharpDevelop.Project;
namespace MattEverson.SourceAnalysis {
public class AnalysisProjectOptionsPanel : AbstractProjectOptionPanel {
public static readonly string MasterSettingsFileName = StringParser.Parse("\"${AddInPath:MattEverson.SourceAnalysis}\\Settings.SourceAnalysis\"");
public override void LoadPanelContents() {
InitializeHelper();
@ -25,7 +23,7 @@ namespace MattEverson.SourceAnalysis { @@ -25,7 +23,7 @@ namespace MattEverson.SourceAnalysis {
if (masterSettingsFile.Length == 0) {
helper.SetProperty<string>("SourceAnalysisOverrideSettingsFile",
MasterSettingsFileName,
StyleCopWrapper.GetMasterSettingsFile(),
true,
PropertyStorageLocations.Base);
}
@ -50,7 +48,7 @@ namespace MattEverson.SourceAnalysis { @@ -50,7 +48,7 @@ namespace MattEverson.SourceAnalysis {
void ModifyStyleCopSettingsClick(object sender, EventArgs e) {
var settingsFile = helper.GetProperty<string>("SourceAnalysisOverrideSettingsFile", "", true);
if (settingsFile == MasterSettingsFileName) {
if (settingsFile == StyleCopWrapper.GetMasterSettingsFile()) {
if (ConfirmSwitchFromMaster()) {
settingsFile = CopyFromMaster();
}
@ -110,7 +108,7 @@ namespace MattEverson.SourceAnalysis { @@ -110,7 +108,7 @@ namespace MattEverson.SourceAnalysis {
private string CopyFromMaster() {
var newSettingsFile = helper.Project.Directory + "\\Settings.SourceAnalysis";
System.IO.File.Copy(
MasterSettingsFileName,
StyleCopWrapper.GetMasterSettingsFile(),
newSettingsFile,
true
);

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

@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
using System;
using System.IO;
using System.Xml;
using ICSharpCode.Core;
@ -14,6 +15,8 @@ namespace MattEverson.SourceAnalysis @@ -14,6 +15,8 @@ namespace MattEverson.SourceAnalysis
{
public static class StyleCopWrapper
{
public static readonly string MasterSettingsFileName = Path.Combine(PropertyService.ConfigDirectory, @"\Settings.SourceAnalysis");
public static bool IsStyleCopPath(string styleCopPath)
{
if (string.IsNullOrEmpty(styleCopPath))
@ -30,5 +33,18 @@ namespace MattEverson.SourceAnalysis @@ -30,5 +33,18 @@ namespace MattEverson.SourceAnalysis
}
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