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

Commit 41763fb

Browse files
committed
Formatting options hierarchy shown in editor is now defined in XAML. Started adding all options there.
1 parent 0cbabd9 commit 41763fb

2 files changed

Lines changed: 340 additions & 62 deletions

File tree

src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/CSharpFormattingEditor.xaml

Lines changed: 237 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,244 @@
44
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
55
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
66
xmlns:sd="http://icsharpcode.net/sharpdevelop/core"
7+
xmlns:core="clr-namespace:ICSharpCode.Core.Presentation;assembly=ICSharpCode.Core.Presentation"
78
xmlns:local="clr-namespace:CSharpBinding.OptionPanels"
89
xmlns:format="clr-namespace:CSharpBinding.FormattingStrategy">
910

1011
<UserControl.Resources>
1112

13+
<!-- All formatting options shown inside of editor control -->
14+
<local:FormattingGroupContainer x:Key="rootEntries">
15+
<local:FormattingGroupContainer Text="Indentation">
16+
<local:FormattingOptionContainer>
17+
<local:FormattingOption Option="IndentNamespaceBody" Text="Indent namespace body" />
18+
<local:FormattingOption Option="IndentClassBody" Text="Indent class body" />
19+
<local:FormattingOption Option="IndentInterfaceBody" Text="Indent interface body" />
20+
<local:FormattingOption Option="IndentStructBody" Text="Indent struct body" />
21+
<local:FormattingOption Option="IndentEnumBody" Text="Indent enum body" />
22+
<local:FormattingOption Option="IndentMethodBody" Text="Indent method body" />
23+
<local:FormattingOption Option="IndentPropertyBody" Text="Indent property body" />
24+
<local:FormattingOption Option="IndentEventBody" Text="Indent event body" />
25+
<local:FormattingOption Option="IndentBlocks" Text="Indent blocks" />
26+
<local:FormattingOption Option="IndentSwitchBody" Text="Indent switch body" />
27+
<local:FormattingOption Option="IndentCaseBody" Text="Indent case body" />
28+
<local:FormattingOption Option="IndentBreakStatements" Text="Indent break statements" />
29+
<local:FormattingOption Option="AlignEmbeddedUsingStatements" Text="Align embedded using statements" />
30+
<local:FormattingOption Option="AlignEmbeddedIfStatements" Text="Align embedded if statements" />
31+
<local:FormattingOption Option="AlignElseInIfStatements" Text="Align else in if statements" />
32+
<local:FormattingOption Option="AutoPropertyFormatting" Text="Auto property formatting" />
33+
<local:FormattingOption Option="SimplePropertyFormatting" Text="Simple property formatting" />
34+
<local:FormattingOption Option="EmptyLineFormatting" Text="Empty line formatting" />
35+
<local:FormattingOption Option="IndentPreprocessorDirectives" Text="Indent preprocessor directives" />
36+
<local:FormattingOption Option="AlignToMemberReferenceDot" Text="Align to member reference dot" />
37+
</local:FormattingOptionContainer>
38+
</local:FormattingGroupContainer>
39+
<local:FormattingGroupContainer Text="Braces">
40+
<local:FormattingOptionContainer>
41+
<local:FormattingOption Option="NamespaceBraceStyle" Text="Namespace brace style" />
42+
<local:FormattingOption Option="ClassBraceStyle" Text="Class brace style" />
43+
<local:FormattingOption Option="InterfaceBraceStyle" Text="Interface brace style" />
44+
<local:FormattingOption Option="StructBraceStyle" Text="Struct brace style" />
45+
<local:FormattingOption Option="EnumBraceStyle" Text="Enum brace style" />
46+
<local:FormattingOption Option="MethodBraceStyle" Text="Method brace style" />
47+
<local:FormattingOption Option="AnonymousMethodBraceStyle" Text="Anonymous brace style" />
48+
<local:FormattingOption Option="ConstructorBraceStyle" Text="Constructor brace style" />
49+
<local:FormattingOption Option="DestructorBraceStyle" Text="Destructor brace style" />
50+
<local:FormattingOption Option="PropertyBraceStyle" Text="Property brace style" />
51+
<local:FormattingOption Option="PropertyGetBraceStyle" Text="Property &quot;get&quot; brace style" />
52+
<local:FormattingOption Option="PropertySetBraceStyle" Text="Property &quot;set&quot; brace style" />
53+
<local:FormattingOption Option="SimpleGetBlockFormatting" Text="Simple &quot;get&quot; block formatting" />
54+
<local:FormattingOption Option="SimpleSetBlockFormatting" Text="Simple &quot;set&quot; block formatting" />
55+
<local:FormattingOption Option="EventBraceStyle" Text="Event brace style" />
56+
<local:FormattingOption Option="EventAddBraceStyle" Text="Event &quot;add&quot; brace style" />
57+
<local:FormattingOption Option="EventRemoveBraceStyle" Text="Event &quot;remove&quot; brace style" />
58+
<local:FormattingOption Option="AllowEventAddBlockInline" Text="Allow event &quot;add&quot; block inline" />
59+
<local:FormattingOption Option="AllowEventRemoveBlockInline" Text="Allow event &quot;remove&quot; block inline" />
60+
<local:FormattingOption Option="StatementBraceStyle" Text="Statement brace style" />
61+
<local:FormattingOption Option="AllowIfBlockInline" Text="Allow &quot;if&quot; block inline" />
62+
<local:FormattingOption Option="AllowOneLinedArrayInitialziers" Text="Allow one-lined array initializers" />
63+
</local:FormattingOptionContainer>
64+
</local:FormattingGroupContainer>
65+
<local:FormattingGroupContainer Text="New lines">
66+
<local:FormattingOptionContainer>
67+
<local:FormattingOption Option="ElseNewLinePlacement" Text="&quot;else&quot; placement" />
68+
<local:FormattingOption Option="ElseIfNewLinePlacement" Text="&quot;else if&quot; placement" />
69+
<local:FormattingOption Option="CatchNewLinePlacement" Text="&quot;catch&quot; placement" />
70+
<local:FormattingOption Option="FinallyNewLinePlacement" Text="&quot;finally&quot; placement" />
71+
<local:FormattingOption Option="WhileNewLinePlacement" Text="&quot;while&quot; placement" />
72+
<local:FormattingOption Option="EmbeddedStatementPlacement" Text="Embedded statement placement" />
73+
</local:FormattingOptionContainer>
74+
</local:FormattingGroupContainer>
75+
<local:FormattingGroupContainer Text="Spaces">
76+
<local:FormattingGroupContainer Text="Methods">
77+
<local:FormattingOptionContainer>
78+
<local:FormattingOption Option="SpaceBeforeMethodDeclarationParentheses" Text="Space before parantheses" />
79+
<local:FormattingOption Option="SpaceBetweenEmptyMethodDeclarationParentheses" Text="Space between parantheses" />
80+
<local:FormattingOption Option="SpaceBeforeMethodDeclarationParameterComma" Text="Space before parameter comma" />
81+
<local:FormattingOption Option="SpaceAfterMethodDeclarationParameterComma" Text="Space after parameter comma" />
82+
<local:FormattingOption Option="SpaceWithinMethodDeclarationParentheses" Text="Space within parantheses" />
83+
</local:FormattingOptionContainer>
84+
</local:FormattingGroupContainer>
85+
<local:FormattingGroupContainer Text="Method calls">
86+
<local:FormattingOptionContainer>
87+
<local:FormattingOption Option="SpaceBeforeMethodCallParentheses" Text="Space before parantheses" />
88+
<local:FormattingOption Option="SpaceBetweenEmptyMethodCallParentheses" Text="Space between empty parantheses" />
89+
<local:FormattingOption Option="SpaceBeforeMethodCallParameterComma" Text="Space before parameter comma" />
90+
<local:FormattingOption Option="SpaceAfterMethodCallParameterComma" Text="Space after parameter comma" />
91+
<local:FormattingOption Option="SpaceWithinMethodCallParentheses" Text="Space within parantheses" />
92+
</local:FormattingOptionContainer>
93+
</local:FormattingGroupContainer>
94+
<local:FormattingGroupContainer Text="Fields">
95+
<local:FormattingOptionContainer>
96+
<local:FormattingOption Option="SpaceBeforeFieldDeclarationComma" Text="Space before comma" />
97+
<local:FormattingOption Option="SpaceAfterFieldDeclarationComma" Text="Space after comma" />
98+
</local:FormattingOptionContainer>
99+
</local:FormattingGroupContainer>
100+
<local:FormattingGroupContainer Text="Local variables">
101+
<local:FormattingOptionContainer>
102+
<local:FormattingOption Option="SpaceBeforeLocalVariableDeclarationComma" Text="Space before declaration comma" />
103+
<local:FormattingOption Option="SpaceAfterLocalVariableDeclarationComma" Text="Space after declaration comma" />
104+
</local:FormattingOptionContainer>
105+
</local:FormattingGroupContainer>
106+
<local:FormattingGroupContainer Text="Constructors">
107+
<local:FormattingOptionContainer>
108+
<local:FormattingOption Option="SpaceBeforeConstructorDeclarationParentheses" Text="Space before parantheses" />
109+
<local:FormattingOption Option="SpaceBetweenEmptyConstructorDeclarationParentheses" Text="Space between empty parantheses" />
110+
<local:FormattingOption Option="SpaceBeforeConstructorDeclarationParameterComma" Text="Space before parameter comma" />
111+
<local:FormattingOption Option="SpaceAfterConstructorDeclarationParameterComma" Text="Space after parameter comma" />
112+
<local:FormattingOption Option="SpaceWithinConstructorDeclarationParentheses" Text="Space within parantheses" />
113+
</local:FormattingOptionContainer>
114+
</local:FormattingGroupContainer>
115+
<local:FormattingGroupContainer Text="Indexers">
116+
<local:FormattingOptionContainer>
117+
<local:FormattingOption Option="SpaceBeforeIndexerDeclarationBracket" Text="Space before bracket" />
118+
<local:FormattingOption Option="SpaceWithinIndexerDeclarationBracket" Text="Space within brackets" />
119+
<local:FormattingOption Option="SpaceBeforeIndexerDeclarationParameterComma" Text="Space before parameter comma" />
120+
<local:FormattingOption Option="SpaceAfterIndexerDeclarationParameterComma" Text="Space after parameter comma" />
121+
</local:FormattingOptionContainer>
122+
</local:FormattingGroupContainer>
123+
<local:FormattingGroupContainer Text="Delegates">
124+
<local:FormattingOptionContainer>
125+
<local:FormattingOption Option="SpaceBeforeDelegateDeclarationParentheses" Text="Space before parantheses" />
126+
<local:FormattingOption Option="SpaceBetweenEmptyDelegateDeclarationParentheses" Text="Space between empty parantheses" />
127+
<local:FormattingOption Option="SpaceBeforeDelegateDeclarationParameterComma" Text="Space before parameter comma" />
128+
<local:FormattingOption Option="SpaceAfterDelegateDeclarationParameterComma" Text="Space after parameter comma" />
129+
<local:FormattingOption Option="SpaceWithinDelegateDeclarationParentheses" Text="Space within parantheses" />
130+
</local:FormattingOptionContainer>
131+
</local:FormattingGroupContainer>
132+
<local:FormattingGroupContainer Text="Statements">
133+
<local:FormattingOptionContainer>
134+
<local:FormattingOption Option="SpaceBeforeNewParentheses" Text="" />
135+
<local:FormattingOption Option="SpaceBeforeIfParentheses" Text="" />
136+
<local:FormattingOption Option="SpaceBeforeWhileParentheses" Text="" />
137+
<local:FormattingOption Option="SpaceBeforeForParentheses" Text="" />
138+
<local:FormattingOption Option="SpaceBeforeForeachParentheses" Text="" />
139+
<local:FormattingOption Option="SpaceBeforeCatchParentheses" Text="" />
140+
<local:FormattingOption Option="SpaceBeforeSwitchParentheses" Text="" />
141+
<local:FormattingOption Option="SpaceBeforeLockParentheses" Text="" />
142+
<local:FormattingOption Option="SpaceBeforeUsingParentheses" Text="" />
143+
<local:FormattingOption Option="SpaceAroundAssignment" Text="" />
144+
<local:FormattingOption Option="SpaceAroundLogicalOperator" Text="" />
145+
<local:FormattingOption Option="SpaceAroundEqualityOperator" Text="" />
146+
<local:FormattingOption Option="SpaceAroundRelationalOperator" Text="" />
147+
<local:FormattingOption Option="SpaceAroundBitwiseOperator" Text="" />
148+
<local:FormattingOption Option="SpaceAroundAdditiveOperator" Text="" />
149+
<local:FormattingOption Option="SpaceAroundMultiplicativeOperator" Text="" />
150+
<local:FormattingOption Option="SpaceAroundShiftOperator" Text="" />
151+
<local:FormattingOption Option="SpaceAroundNullCoalescingOperator" Text="" />
152+
<local:FormattingOption Option="SpaceAfterUnsafeAddressOfOperator" Text="" />
153+
<local:FormattingOption Option="SpaceAfterUnsafeAsteriskOfOperator" Text="" />
154+
<local:FormattingOption Option="SpaceAroundUnsafeArrowOperator" Text="" />
155+
<local:FormattingOption Option="SpacesWithinParentheses" Text="" />
156+
<local:FormattingOption Option="SpacesWithinIfParentheses" Text="" />
157+
<local:FormattingOption Option="SpacesWithinWhileParentheses" Text="" />
158+
<local:FormattingOption Option="SpacesWithinForParentheses" Text="" />
159+
<local:FormattingOption Option="SpacesWithinForeachParentheses" Text="" />
160+
<local:FormattingOption Option="SpacesWithinCatchParentheses" Text="" />
161+
<local:FormattingOption Option="SpacesWithinSwitchParentheses" Text="" />
162+
<local:FormattingOption Option="SpacesWithinLockParentheses" Text="" />
163+
<local:FormattingOption Option="SpacesWithinUsingParentheses" Text="" />
164+
<local:FormattingOption Option="SpacesWithinCastParentheses" Text="" />
165+
<local:FormattingOption Option="SpacesWithinSizeOfParentheses" Text="" />
166+
<local:FormattingOption Option="SpaceBeforeSizeOfParentheses" Text="" />
167+
<local:FormattingOption Option="SpacesWithinTypeOfParentheses" Text="" />
168+
<local:FormattingOption Option="SpacesWithinNewParentheses" Text="" />
169+
<local:FormattingOption Option="SpacesBetweenEmptyNewParentheses" Text="" />
170+
<local:FormattingOption Option="SpaceBeforeNewParameterComma" Text="" />
171+
<local:FormattingOption Option="SpaceAfterNewParameterComma" Text="" />
172+
<local:FormattingOption Option="SpaceBeforeTypeOfParentheses" Text="" />
173+
<local:FormattingOption Option="SpacesWithinCheckedExpressionParantheses" Text="" />
174+
<local:FormattingOption Option="SpaceBeforeConditionalOperatorCondition" Text="" />
175+
<local:FormattingOption Option="SpaceAfterConditionalOperatorCondition" Text="" />
176+
<local:FormattingOption Option="SpaceBeforeConditionalOperatorSeparator" Text="" />
177+
<local:FormattingOption Option="SpaceAfterConditionalOperatorSeparator" Text="" />
178+
</local:FormattingOptionContainer>
179+
</local:FormattingGroupContainer>
180+
<local:FormattingGroupContainer Text="Brackets">
181+
<local:FormattingOptionContainer>
182+
<local:FormattingOption Option="SpacesWithinBrackets" Text="Spaces within brackets" />
183+
<local:FormattingOption Option="SpacesBeforeBrackets" Text="Spaces before brackets" />
184+
<local:FormattingOption Option="SpaceBeforeBracketComma" Text="Space before bracket comma" />
185+
<local:FormattingOption Option="SpaceAfterBracketComma" Text="Space after bracket comma" />
186+
<local:FormattingOption Option="SpaceBeforeForSemicolon" Text="Space before &quot;for&quot; semicolon" />
187+
<local:FormattingOption Option="SpaceAfterForSemicolon" Text="Space after &quot;for&quot; semicolon" />
188+
<local:FormattingOption Option="SpaceAfterTypecast" Text="Space after type cast" />
189+
<local:FormattingOption Option="SpaceBeforeArrayDeclarationBrackets" Text="Space before array declaration brackets" />
190+
<local:FormattingOption Option="SpaceInNamedArgumentAfterDoubleColon" Text="Space in named argument after double colon" />
191+
<local:FormattingOption Option="RemoveEndOfLineWhiteSpace" Text="Remove end of line whitespace" />
192+
<local:FormattingOption Option="SpaceBeforeSemicolon" Text="Space before semicolon" />
193+
</local:FormattingOptionContainer>
194+
</local:FormattingGroupContainer>
195+
</local:FormattingGroupContainer>
196+
<local:FormattingGroupContainer Text="Blank lines">
197+
<local:FormattingOptionContainer>
198+
<local:FormattingOption Option="BlankLinesBeforeUsings" Text="Before usings" />
199+
<local:FormattingOption Option="BlankLinesAfterUsings" Text="After usings" />
200+
<local:FormattingOption Option="BlankLinesBeforeFirstDeclaration" Text="Before first declaration" />
201+
<local:FormattingOption Option="BlankLinesBetweenTypes" Text="Between types" />
202+
<local:FormattingOption Option="BlankLinesBetweenFields" Text="Between fields" />
203+
<local:FormattingOption Option="BlankLinesBetweenEventFields" Text="Between event fields" />
204+
<local:FormattingOption Option="BlankLinesBetweenMembers" Text="Between members" />
205+
<local:FormattingOption Option="BlankLinesAroundRegion" Text="Around region" />
206+
<local:FormattingOption Option="BlankLinesInsideRegion" Text="Inside region" />
207+
</local:FormattingOptionContainer>
208+
</local:FormattingGroupContainer>
209+
<local:FormattingGroupContainer Text="Keep formatting">
210+
<local:FormattingOptionContainer>
211+
<local:FormattingOption Option="KeepCommentsAtFirstColumn" Text="Keep comments at first column" />
212+
</local:FormattingOptionContainer>
213+
</local:FormattingGroupContainer>
214+
<local:FormattingGroupContainer Text="Wrapping">
215+
<local:FormattingOptionContainer>
216+
<local:FormattingOption Option="ArrayInitializerWrapping" Text="" />
217+
<local:FormattingOption Option="ArrayInitializerBraceStyle" Text="" />
218+
<local:FormattingOption Option="ChainedMethodCallWrapping" Text="" />
219+
<local:FormattingOption Option="MethodCallArgumentWrapping" Text="" />
220+
<local:FormattingOption Option="NewLineAferMethodCallOpenParentheses" Text="" />
221+
<local:FormattingOption Option="MethodCallClosingParenthesesOnNewLine" Text="" />
222+
<local:FormattingOption Option="IndexerArgumentWrapping" Text="" />
223+
<local:FormattingOption Option="NewLineAferIndexerOpenBracket" Text="" />
224+
<local:FormattingOption Option="IndexerClosingBracketOnNewLine" Text="" />
225+
<local:FormattingOption Option="MethodDeclarationParameterWrapping" Text="" />
226+
<local:FormattingOption Option="NewLineAferMethodDeclarationOpenParentheses" Text="" />
227+
<local:FormattingOption Option="MethodDeclarationClosingParenthesesOnNewLine" Text="" />
228+
<local:FormattingOption Option="IndexerDeclarationParameterWrapping" Text="" />
229+
<local:FormattingOption Option="NewLineAferIndexerDeclarationOpenBracket" Text="" />
230+
<local:FormattingOption Option="IndexerDeclarationClosingBracketOnNewLine" Text="" />
231+
<local:FormattingOption Option="AlignToFirstIndexerArgument" Text="" />
232+
<local:FormattingOption Option="AlignToFirstIndexerDeclarationParameter" Text="" />
233+
<local:FormattingOption Option="AlignToFirstMethodCallArgument" Text="" />
234+
<local:FormattingOption Option="AlignToFirstMethodDeclarationParameter" Text="" />
235+
<local:FormattingOption Option="NewLineBeforeNewQueryClause" Text="" />
236+
</local:FormattingOptionContainer>
237+
</local:FormattingGroupContainer>
238+
<local:FormattingGroupContainer Text="Using declarations">
239+
<local:FormattingOptionContainer>
240+
<local:FormattingOption Option="UsingPlacement" Text="&quot;using&quot; placement" />
241+
</local:FormattingOptionContainer>
242+
</local:FormattingGroupContainer>
243+
</local:FormattingGroupContainer>
244+
12245
<DataTemplate DataType="{x:Type local:FormattingOption}">
13246
<TextBlock Text="{Binding Text}" Height="16" />
14247
</DataTemplate>
@@ -49,7 +282,9 @@
49282
</UserControl.Resources>
50283

51284
<sd:RestrictDesiredSize Margin="0,4,0,0">
52-
<ItemsControl ItemsSource="{Binding}" Background="{x:Static SystemColors.WindowBrush}">
53-
</ItemsControl>
285+
<ScrollViewer VerticalScrollBarVisibility="Auto">
286+
<ItemsControl ItemsSource="{Binding}" Background="{x:Static SystemColors.WindowBrush}">
287+
</ItemsControl>
288+
</ScrollViewer>
54289
</sd:RestrictDesiredSize>
55290
</UserControl>

0 commit comments

Comments
 (0)