@ -39,8 +39,8 @@ namespace CSharpBinding
/// </summary>
/// </summary>
public class CSharpProject : CompilableProject
public class CSharpProject : CompilableProject
{
{
const string ExtensionPropertiesName = "SharpDevelopExtensions" ;
Properties globalPreferences ;
Properties extensionProperties ;
FileName globalSettingsFileName ;
public override IAmbience GetAmbience ( )
public override IAmbience GetAmbience ( )
{
{
@ -66,6 +66,8 @@ namespace CSharpBinding
void Init ( )
void Init ( )
{
{
globalPreferences = new Properties ( ) ;
reparseReferencesSensitiveProperties . Add ( "TargetFrameworkVersion" ) ;
reparseReferencesSensitiveProperties . Add ( "TargetFrameworkVersion" ) ;
reparseCodeSensitiveProperties . Add ( "DefineConstants" ) ;
reparseCodeSensitiveProperties . Add ( "DefineConstants" ) ;
reparseCodeSensitiveProperties . Add ( "AllowUnsafeBlocks" ) ;
reparseCodeSensitiveProperties . Add ( "AllowUnsafeBlocks" ) ;
@ -124,10 +126,10 @@ namespace CSharpBinding
}
}
}
}
public Properties ExtensionProperti es
public Properties GlobalPreferenc es
{
{
get {
get {
return extensionProperti es;
return globalPreferenc es;
}
}
}
}
@ -135,17 +137,21 @@ namespace CSharpBinding
{
{
base . ProjectLoaded ( ) ;
base . ProjectLoaded ( ) ;
// Load project extensions
// Load SD settings file
extensionProperties = Properties . Load ( LoadProjectExtensions ( ExtensionPropertiesName ) ) ;
globalSettingsFileName = new FileName ( FileName + ".sdsettings" ) ;
if ( File . Exists ( globalSettingsFileName ) ) {
globalPreferences = Properties . Load ( globalSettingsFileName ) ;
}
if ( globalPreferences = = null )
globalPreferences = new Properties ( ) ;
}
}
public override void Save ( string fileName )
public override void Save ( string fileName )
{
{
// Save project extensions
// Save project extensions
if ( extensionProperties ! = null & & extensionProperties . IsDirty ) {
if ( globalPreferences ! = null & & globalPreferences . IsDirty ) {
var propertiesXElement = extensionProperties . Save ( ) ;
globalPreferences . Save ( new FileName ( fileName + ".sdsettings" ) ) ;
SaveProjectExtensions ( ExtensionPropertiesName , propertiesXElement ) ;
globalPreferences . IsDirty = false ;
extensionProperties . IsDirty = false ;
}
}
base . Save ( fileName ) ;
base . Save ( fileName ) ;
}
}