Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 6de90c4

Browse files
committed
Fix #414, the next attempt. To avoid problems with XML namespaces when serialized properties are saved directly inside of an MSBuild project, now project-specific formatting rules are saved in .csproj.sdsettings files (similar to solutions).
1 parent e0e1df5 commit 6de90c4

2 files changed

Lines changed: 17 additions & 11 deletions

File tree

src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public static CSharpFormattingOptionsPersistence GetProjectOptions(IProject proj
9191
if (!projectOptions.ContainsKey(key)) {
9292
// Lazily create options container for project
9393
projectOptions[key] = new CSharpFormattingOptionsPersistence(
94-
csproject.ExtensionProperties,
94+
csproject.GlobalPreferences,
9595
new CSharpFormattingOptionsContainer((SolutionOptions ?? GlobalOptions).OptionsContainer)
9696
{
9797
DefaultText = StringParser.Parse("${res:CSharpBinding.Formatting.ProjectOptionReference}")

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

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ namespace CSharpBinding
3939
/// </summary>
4040
public class CSharpProject : CompilableProject
4141
{
42-
const string ExtensionPropertiesName = "SharpDevelopExtensions";
43-
Properties extensionProperties;
42+
Properties globalPreferences;
43+
FileName globalSettingsFileName;
4444

4545
public override IAmbience GetAmbience()
4646
{
@@ -66,6 +66,8 @@ public Version LanguageVersion {
6666

6767
void Init()
6868
{
69+
globalPreferences = new Properties();
70+
6971
reparseReferencesSensitiveProperties.Add("TargetFrameworkVersion");
7072
reparseCodeSensitiveProperties.Add("DefineConstants");
7173
reparseCodeSensitiveProperties.Add("AllowUnsafeBlocks");
@@ -124,28 +126,32 @@ public CompilerSettings CompilerSettings {
124126
}
125127
}
126128

127-
public Properties ExtensionProperties
129+
public Properties GlobalPreferences
128130
{
129131
get {
130-
return extensionProperties;
132+
return globalPreferences;
131133
}
132134
}
133135

134136
public override void ProjectLoaded()
135137
{
136138
base.ProjectLoaded();
137139

138-
// Load project extensions
139-
extensionProperties = Properties.Load(LoadProjectExtensions(ExtensionPropertiesName));
140+
// Load SD settings file
141+
globalSettingsFileName = new FileName(FileName + ".sdsettings");
142+
if (File.Exists(globalSettingsFileName)) {
143+
globalPreferences = Properties.Load(globalSettingsFileName);
144+
}
145+
if (globalPreferences == null)
146+
globalPreferences = new Properties();
140147
}
141148

142149
public override void Save(string fileName)
143150
{
144151
// Save project extensions
145-
if (extensionProperties != null && extensionProperties.IsDirty) {
146-
var propertiesXElement = extensionProperties.Save();
147-
SaveProjectExtensions(ExtensionPropertiesName, propertiesXElement);
148-
extensionProperties.IsDirty = false;
152+
if (globalPreferences != null && globalPreferences.IsDirty) {
153+
globalPreferences.Save(new FileName(fileName + ".sdsettings"));
154+
globalPreferences.IsDirty = false;
149155
}
150156
base.Save(fileName);
151157
}

0 commit comments

Comments
 (0)