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.
		
		
		
		
		
			
		
			
				
					
					
						
							1040 lines
						
					
					
						
							18 KiB
						
					
					
				
			
		
		
	
	
							1040 lines
						
					
					
						
							18 KiB
						
					
					
				//  | 
						|
// CSharpFormattingOptions.cs | 
						|
//   | 
						|
// Author: | 
						|
//       Mike Krüger <mkrueger@novell.com> | 
						|
//   | 
						|
// Copyright (c) 2009 Novell, Inc (http://www.novell.com) | 
						|
//  | 
						|
// 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.ComponentModel; | 
						|
 | 
						|
namespace ICSharpCode.Decompiler.CSharp.OutputVisitor | 
						|
{ | 
						|
	public enum BraceStyle | 
						|
	{ | 
						|
		DoNotChange, | 
						|
		EndOfLine, | 
						|
		EndOfLineWithoutSpace, | 
						|
		NextLine, | 
						|
		NextLineShifted, | 
						|
		NextLineShifted2, | 
						|
		BannerStyle | 
						|
	} | 
						|
 | 
						|
	public enum PropertyFormatting | 
						|
	{ | 
						|
		AllowOneLine, | 
						|
		ForceOneLine, | 
						|
		ForceNewLine | 
						|
	} | 
						|
 | 
						|
	public enum Wrapping { | 
						|
		DoNotChange, | 
						|
		DoNotWrap, | 
						|
		WrapAlways, | 
						|
		WrapIfTooLong | 
						|
	} | 
						|
 | 
						|
	public enum NewLinePlacement { | 
						|
		DoNotCare, | 
						|
		NewLine, | 
						|
		SameLine | 
						|
	} | 
						|
 | 
						|
	public enum UsingPlacement { | 
						|
		TopOfFile, | 
						|
		InsideNamespace | 
						|
	} | 
						|
 | 
						|
	public enum EmptyLineFormatting { | 
						|
		DoNotChange, | 
						|
		Indent, | 
						|
		DoNotIndent | 
						|
	} | 
						|
 | 
						|
	[TypeConverter(typeof(ExpandableObjectConverter))] | 
						|
	public class CSharpFormattingOptions | 
						|
	{ | 
						|
		public string Name { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IsBuiltIn { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public CSharpFormattingOptions Clone () | 
						|
		{ | 
						|
			return (CSharpFormattingOptions)MemberwiseClone (); | 
						|
		} | 
						|
 | 
						|
		#region Indentation | 
						|
		public string IndentationString { get; set; } = "\t"; | 
						|
 | 
						|
		public bool IndentNamespaceBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentClassBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentInterfaceBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentStructBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentEnumBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentMethodBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentPropertyBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentEventBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentBlocks { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentSwitchBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentCaseBody { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentBreakStatements { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AlignEmbeddedStatements { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AlignElseInIfStatements { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
 | 
						|
 | 
						|
		public PropertyFormatting AutoPropertyFormatting { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public PropertyFormatting SimplePropertyFormatting { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public EmptyLineFormatting EmptyLineFormatting { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentPreprocessorDirectives { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AlignToMemberReferenceDot { // TODO! | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool IndentBlocksInsideExpressions { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		#endregion | 
						|
		 | 
						|
		#region Braces | 
						|
		public BraceStyle NamespaceBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle ClassBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle InterfaceBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle StructBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle EnumBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle MethodBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle AnonymousMethodBraceStyle { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle ConstructorBraceStyle {  // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle DestructorBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle PropertyBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle PropertyGetBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle PropertySetBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public PropertyFormatting SimpleGetBlockFormatting { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public PropertyFormatting SimpleSetBlockFormatting { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle EventBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle EventAddBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle EventRemoveBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AllowEventAddBlockInline { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AllowEventRemoveBlockInline { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle StatementBraceStyle { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AllowIfBlockInline { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		bool allowOneLinedArrayInitialziers = true; | 
						|
		public bool AllowOneLinedArrayInitialziers { | 
						|
			get { | 
						|
				return allowOneLinedArrayInitialziers; | 
						|
			} | 
						|
			set { | 
						|
				allowOneLinedArrayInitialziers = value; | 
						|
			} | 
						|
		} | 
						|
		#endregion | 
						|
 | 
						|
		#region NewLines | 
						|
		public NewLinePlacement ElseNewLinePlacement { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement ElseIfNewLinePlacement { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement CatchNewLinePlacement { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement FinallyNewLinePlacement { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement WhileNewLinePlacement { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		NewLinePlacement embeddedStatementPlacement = NewLinePlacement.NewLine; | 
						|
		public NewLinePlacement EmbeddedStatementPlacement { | 
						|
			get { | 
						|
				return embeddedStatementPlacement; | 
						|
			} | 
						|
			set { | 
						|
				embeddedStatementPlacement = value; | 
						|
			} | 
						|
		} | 
						|
		#endregion | 
						|
		 | 
						|
		#region Spaces | 
						|
		// Methods | 
						|
		public bool SpaceBeforeMethodDeclarationParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBetweenEmptyMethodDeclarationParentheses { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeMethodDeclarationParameterComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterMethodDeclarationParameterComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceWithinMethodDeclarationParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		 | 
						|
		// Method calls | 
						|
		public bool SpaceBeforeMethodCallParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBetweenEmptyMethodCallParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeMethodCallParameterComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterMethodCallParameterComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceWithinMethodCallParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		 | 
						|
		// fields | 
						|
		 | 
						|
		public bool SpaceBeforeFieldDeclarationComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterFieldDeclarationComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		 | 
						|
		// local variables | 
						|
		 | 
						|
		public bool SpaceBeforeLocalVariableDeclarationComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterLocalVariableDeclarationComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		 | 
						|
		// constructors | 
						|
		 | 
						|
		public bool SpaceBeforeConstructorDeclarationParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBetweenEmptyConstructorDeclarationParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeConstructorDeclarationParameterComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterConstructorDeclarationParameterComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceWithinConstructorDeclarationParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement NewLineBeforeConstructorInitializerColon { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement NewLineAfterConstructorInitializerColon { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		 | 
						|
		// indexer | 
						|
		public bool SpaceBeforeIndexerDeclarationBracket { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceWithinIndexerDeclarationBracket { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeIndexerDeclarationParameterComma { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterIndexerDeclarationParameterComma { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		 | 
						|
		// delegates | 
						|
		 | 
						|
		public bool SpaceBeforeDelegateDeclarationParentheses { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBetweenEmptyDelegateDeclarationParentheses { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeDelegateDeclarationParameterComma { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterDelegateDeclarationParameterComma { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceWithinDelegateDeclarationParentheses { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeNewParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeIfParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeWhileParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeForParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeForeachParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeCatchParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeSwitchParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeLockParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeUsingParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundAssignment { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundLogicalOperator { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundEqualityOperator { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundRelationalOperator { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundBitwiseOperator { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundAdditiveOperator { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundMultiplicativeOperator { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundShiftOperator { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundNullCoalescingOperator { // Tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterUnsafeAddressOfOperator { // Tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterUnsafeAsteriskOfOperator { // Tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAroundUnsafeArrowOperator { // Tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinIfParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinWhileParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinForParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinForeachParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinCatchParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinSwitchParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinLockParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinUsingParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinCastParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinSizeOfParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeSizeOfParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinTypeOfParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinNewParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesBetweenEmptyNewParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeNewParameterComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterNewParameterComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeTypeOfParentheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesWithinCheckedExpressionParantheses { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeConditionalOperatorCondition { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterConditionalOperatorCondition { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeConditionalOperatorSeparator { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterConditionalOperatorSeparator { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		 | 
						|
		// brackets | 
						|
		public bool SpacesWithinBrackets { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpacesBeforeBrackets { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeBracketComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterBracketComma { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeForSemicolon { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterForSemicolon { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceAfterTypecast { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeArrayDeclarationBrackets { // tested | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceInNamedArgumentAfterDoubleColon { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool RemoveEndOfLineWhiteSpace { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool SpaceBeforeSemicolon { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		#endregion | 
						|
		 | 
						|
		#region Blank Lines | 
						|
		public int MinimumBlankLinesBeforeUsings { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public int MinimumBlankLinesAfterUsings { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public int MinimumBlankLinesBeforeFirstDeclaration { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public int MinimumBlankLinesBetweenTypes { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public int MinimumBlankLinesBetweenFields { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public int MinimumBlankLinesBetweenEventFields { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public int MinimumBlankLinesBetweenMembers { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public int MinimumBlankLinesAroundRegion { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public int MinimumBlankLinesInsideRegion { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		#endregion | 
						|
 | 
						|
 | 
						|
		#region Keep formatting | 
						|
		public bool KeepCommentsAtFirstColumn { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		#endregion | 
						|
 | 
						|
		#region Wrapping | 
						|
 | 
						|
		public Wrapping ArrayInitializerWrapping { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public BraceStyle ArrayInitializerBraceStyle { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public Wrapping ChainedMethodCallWrapping { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public Wrapping MethodCallArgumentWrapping { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement NewLineAferMethodCallOpenParentheses { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement MethodCallClosingParenthesesOnNewLine { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public Wrapping IndexerArgumentWrapping { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement NewLineAferIndexerOpenBracket { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement IndexerClosingBracketOnNewLine { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public Wrapping MethodDeclarationParameterWrapping { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement NewLineAferMethodDeclarationOpenParentheses { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement MethodDeclarationClosingParenthesesOnNewLine { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public Wrapping IndexerDeclarationParameterWrapping { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement NewLineAferIndexerDeclarationOpenBracket { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement IndexerDeclarationClosingBracketOnNewLine { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AlignToFirstIndexerArgument { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AlignToFirstIndexerDeclarationParameter { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AlignToFirstMethodCallArgument { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public bool AlignToFirstMethodDeclarationParameter { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		public NewLinePlacement NewLineBeforeNewQueryClause { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
 | 
						|
		#endregion | 
						|
 | 
						|
		#region Using Declarations | 
						|
		public UsingPlacement UsingPlacement { | 
						|
			get; | 
						|
			set; | 
						|
		} | 
						|
		#endregion | 
						|
 | 
						|
		internal CSharpFormattingOptions() | 
						|
		{ | 
						|
		} | 
						|
 | 
						|
		/*public static CSharpFormattingOptions Load (FilePath selectedFile) | 
						|
		{ | 
						|
			using (var stream = System.IO.File.OpenRead (selectedFile)) { | 
						|
				return Load (stream); | 
						|
			} | 
						|
		} | 
						|
 | 
						|
		public static CSharpFormattingOptions Load (System.IO.Stream input) | 
						|
		{ | 
						|
			CSharpFormattingOptions result = FormattingOptionsFactory.CreateMonoOptions (); | 
						|
			result.Name = "noname"; | 
						|
			using (XmlTextReader reader = new XmlTextReader (input)) { | 
						|
				while (reader.Read ()) { | 
						|
					if (reader.NodeType == XmlNodeType.Element) { | 
						|
						if (reader.LocalName == "Property") { | 
						|
							var info = typeof(CSharpFormattingOptions).GetProperty (reader.GetAttribute ("name")); | 
						|
							string valString = reader.GetAttribute ("value"); | 
						|
							object value; | 
						|
							if (info.PropertyType == typeof(bool)) { | 
						|
								value = Boolean.Parse (valString); | 
						|
							} else if (info.PropertyType == typeof(int)) { | 
						|
								value = Int32.Parse (valString); | 
						|
							} else { | 
						|
								value = Enum.Parse (info.PropertyType, valString); | 
						|
							} | 
						|
							info.SetValue (result, value, null); | 
						|
						} else if (reader.LocalName == "FormattingProfile") { | 
						|
							result.Name = reader.GetAttribute ("name"); | 
						|
						} | 
						|
					} else if (reader.NodeType == XmlNodeType.EndElement && reader.LocalName == "FormattingProfile") { | 
						|
						//Console.WriteLine ("result:" + result.Name); | 
						|
						return result; | 
						|
					} | 
						|
				} | 
						|
			} | 
						|
			return result; | 
						|
		} | 
						|
 | 
						|
		public void Save (string fileName) | 
						|
		{ | 
						|
			using (var writer = new XmlTextWriter (fileName, Encoding.Default)) { | 
						|
				writer.Formatting = System.Xml.Formatting.Indented; | 
						|
				writer.Indentation = 1; | 
						|
				writer.IndentChar = '\t'; | 
						|
				writer.WriteStartElement ("FormattingProfile"); | 
						|
				writer.WriteAttributeString ("name", Name); | 
						|
				foreach (PropertyInfo info in typeof (CSharpFormattingOptions).GetProperties ()) { | 
						|
					if (info.GetCustomAttributes (false).Any (o => o.GetType () == typeof(ItemPropertyAttribute))) { | 
						|
						writer.WriteStartElement ("Property"); | 
						|
						writer.WriteAttributeString ("name", info.Name); | 
						|
						writer.WriteAttributeString ("value", info.GetValue (this, null).ToString ()); | 
						|
						writer.WriteEndElement (); | 
						|
					} | 
						|
				} | 
						|
				writer.WriteEndElement (); | 
						|
			} | 
						|
		} | 
						|
 | 
						|
		public bool Equals (CSharpFormattingOptions other) | 
						|
		{ | 
						|
			foreach (PropertyInfo info in typeof (CSharpFormattingOptions).GetProperties ()) { | 
						|
				if (info.GetCustomAttributes (false).Any (o => o.GetType () == typeof(ItemPropertyAttribute))) { | 
						|
					object val = info.GetValue (this, null); | 
						|
					object otherVal = info.GetValue (other, null); | 
						|
					if (val == null) { | 
						|
						if (otherVal == null) | 
						|
							continue; | 
						|
						return false; | 
						|
					} | 
						|
					if (!val.Equals (otherVal)) { | 
						|
						//Console.WriteLine ("!equal"); | 
						|
						return false; | 
						|
					} | 
						|
				} | 
						|
			} | 
						|
			//Console.WriteLine ("== equal"); | 
						|
			return true; | 
						|
		}*/ | 
						|
	} | 
						|
}
 | 
						|
 |