mirror of https://github.com/icsharpcode/ILSpy.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
228 lines
5.6 KiB
228 lines
5.6 KiB
// Copyright (c) 2011 AlphaSierraPapa for the SharpDevelop Team |
|
// |
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of this |
|
// software and associated documentation files (the "Software"), to deal in the Software |
|
// without restriction, including without limitation the rights to use, copy, modify, merge, |
|
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons |
|
// to whom the Software is furnished to do so, subject to the following conditions: |
|
// |
|
// The above copyright notice and this permission notice shall be included in all copies or |
|
// substantial portions of the Software. |
|
// |
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, |
|
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
|
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE |
|
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
|
// DEALINGS IN THE SOFTWARE. |
|
|
|
using System; |
|
using System.ComponentModel; |
|
|
|
namespace ICSharpCode.Decompiler |
|
{ |
|
/// <summary> |
|
/// Settings for the decompiler. |
|
/// </summary> |
|
public class DecompilerSettings : INotifyPropertyChanged |
|
{ |
|
bool anonymousMethods = true; |
|
|
|
/// <summary> |
|
/// Decompile anonymous methods/lambdas. |
|
/// </summary> |
|
public bool AnonymousMethods { |
|
get { return anonymousMethods; } |
|
set { |
|
if (anonymousMethods != value) { |
|
anonymousMethods = value; |
|
OnPropertyChanged("AnonymousMethods"); |
|
} |
|
} |
|
} |
|
|
|
bool yieldReturn = true; |
|
|
|
/// <summary> |
|
/// Decompile enumerators. |
|
/// </summary> |
|
public bool YieldReturn { |
|
get { return yieldReturn; } |
|
set { |
|
if (yieldReturn != value) { |
|
yieldReturn = value; |
|
OnPropertyChanged("YieldReturn"); |
|
} |
|
} |
|
} |
|
|
|
bool automaticProperties = true; |
|
|
|
/// <summary> |
|
/// Decompile automatic properties |
|
/// </summary> |
|
public bool AutomaticProperties { |
|
get { return automaticProperties; } |
|
set { |
|
if (automaticProperties != value) { |
|
automaticProperties = value; |
|
OnPropertyChanged("AutomaticProperties"); |
|
} |
|
} |
|
} |
|
|
|
bool automaticEvents = true; |
|
|
|
/// <summary> |
|
/// Decompile automatic events |
|
/// </summary> |
|
public bool AutomaticEvents { |
|
get { return automaticEvents; } |
|
set { |
|
if (automaticEvents != value) { |
|
automaticEvents = value; |
|
OnPropertyChanged("AutomaticEvents"); |
|
} |
|
} |
|
} |
|
|
|
bool usingStatement = true; |
|
|
|
/// <summary> |
|
/// Decompile using statements. |
|
/// </summary> |
|
public bool UsingStatement { |
|
get { return usingStatement; } |
|
set { |
|
if (usingStatement != value) { |
|
usingStatement = value; |
|
OnPropertyChanged("UsingStatement"); |
|
} |
|
} |
|
} |
|
|
|
bool forEachStatement = true; |
|
|
|
/// <summary> |
|
/// Decompile foreach statements. |
|
/// </summary> |
|
public bool ForEachStatement { |
|
get { return forEachStatement; } |
|
set { |
|
if (forEachStatement != value) { |
|
forEachStatement = value; |
|
OnPropertyChanged("ForEachStatement"); |
|
} |
|
} |
|
} |
|
|
|
bool lockStatement = true; |
|
|
|
/// <summary> |
|
/// Decompile lock statements. |
|
/// </summary> |
|
public bool LockStatement { |
|
get { return lockStatement; } |
|
set { |
|
if (lockStatement != value) { |
|
lockStatement = value; |
|
OnPropertyChanged("LockStatement"); |
|
} |
|
} |
|
} |
|
|
|
bool switchStatementOnString = true; |
|
|
|
public bool SwitchStatementOnString { |
|
get { return switchStatementOnString; } |
|
set { |
|
if (switchStatementOnString != value) { |
|
switchStatementOnString = value; |
|
OnPropertyChanged("SwitchStatementOnString"); |
|
} |
|
} |
|
} |
|
|
|
bool usingDeclarations = true; |
|
|
|
public bool UsingDeclarations { |
|
get { return usingDeclarations; } |
|
set { |
|
if (usingDeclarations != value) { |
|
usingDeclarations = value; |
|
OnPropertyChanged("UsingDeclarations"); |
|
} |
|
} |
|
} |
|
|
|
bool queryExpressions = true; |
|
|
|
public bool QueryExpressions { |
|
get { return queryExpressions; } |
|
set { |
|
if (queryExpressions != value) { |
|
queryExpressions = value; |
|
OnPropertyChanged("QueryExpressions"); |
|
} |
|
} |
|
} |
|
|
|
bool fullyQualifyAmbiguousTypeNames = true; |
|
|
|
public bool FullyQualifyAmbiguousTypeNames { |
|
get { return fullyQualifyAmbiguousTypeNames; } |
|
set { |
|
if (fullyQualifyAmbiguousTypeNames != value) { |
|
fullyQualifyAmbiguousTypeNames = value; |
|
OnPropertyChanged("FullyQualifyAmbiguousTypeNames"); |
|
} |
|
} |
|
} |
|
|
|
bool useDebugSymbols = true; |
|
|
|
/// <summary> |
|
/// Gets/Sets whether to use variable names from debug symbols, if available. |
|
/// </summary> |
|
public bool UseDebugSymbols { |
|
get { return useDebugSymbols; } |
|
set { |
|
if (useDebugSymbols != value) { |
|
useDebugSymbols = value; |
|
OnPropertyChanged("UseDebugSymbols"); |
|
} |
|
} |
|
} |
|
|
|
bool objectCollectionInitializers = true; |
|
|
|
/// <summary> |
|
/// Gets/Sets whether to use C# 3.0 object/collection initializers |
|
/// </summary> |
|
public bool ObjectOrCollectionInitializers { |
|
get { return objectCollectionInitializers; } |
|
set { |
|
if (objectCollectionInitializers != value) { |
|
objectCollectionInitializers = value; |
|
OnPropertyChanged("ObjectCollectionInitializers"); |
|
} |
|
} |
|
} |
|
|
|
public event PropertyChangedEventHandler PropertyChanged; |
|
|
|
protected virtual void OnPropertyChanged(string propertyName) |
|
{ |
|
if (PropertyChanged != null) { |
|
PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); |
|
} |
|
} |
|
|
|
public DecompilerSettings Clone() |
|
{ |
|
DecompilerSettings settings = (DecompilerSettings)MemberwiseClone(); |
|
settings.PropertyChanged = null; |
|
return settings; |
|
} |
|
} |
|
}
|
|
|