Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
330 commits
Select commit Hold shift + click to select a range
d6f9c56
Fix cloning OrderedDictionary.
Werebunny Jun 25, 2025
55bb710
Use common architecture types for Duplicator and Valuer.
Werebunny Jun 25, 2025
fea6072
Use hint architecture for Extractor.
Werebunny Jun 28, 2025
ea9eca9
Fix tests.
Werebunny Jun 28, 2025
d95eacc
Try crash fix.
Werebunny Jun 28, 2025
93b50f1
Test fix and updated windows integration action.
Werebunny Jun 28, 2025
de12363
Fix tests.
Werebunny Jun 28, 2025
cbff12b
Add known exception.
Werebunny Jun 28, 2025
c31cc67
Type extension cleanup.
Werebunny Jul 11, 2025
3ed26d3
Clean up delays.
Werebunny Jul 11, 2025
1358fc7
Protect against harness failures.
Werebunny Jul 13, 2025
d78224a
Improve integration workflow.
Werebunny Jul 13, 2025
b5f0d7f
Disable fail-fast for matrix.
Werebunny Jul 13, 2025
dc37973
Constraint mod generation.
Werebunny Jul 14, 2025
e9509d8
Break up describer and tracker.
Werebunny Jul 14, 2025
e1fac38
Begin test sample cleanup.
Werebunny Jul 15, 2025
5a9635d
Add a bunch of samples.
Werebunny Jul 22, 2025
11ca240
Utilize TypeDescriber universally.
Werebunny Jul 23, 2025
796ee03
Seed comparison fixes.
Werebunny Jul 24, 2025
c6ae1ff
Comparable limiter.
Werebunny Jul 27, 2025
14c7731
Test fix.
Werebunny Jul 27, 2025
480a439
Better Valuer interfaces.
Werebunny Jul 28, 2025
cf2d162
Runner improvements.
Werebunny Jul 28, 2025
f8e62e2
Clean slate for tests.
Werebunny Jul 28, 2025
42af0a8
Reorganize fluent code.
Werebunny Jul 30, 2025
45348fe
Update to .net 10.
Werebunny Nov 25, 2025
48fc14c
Update test frameworks.
Werebunny Nov 26, 2025
b176773
MSTest v4 binary incompatibility forces branched projects.
Werebunny Nov 26, 2025
dead628
Revert broken xUnit 3.2.0 upgrade.
Werebunny Nov 26, 2025
096b467
Try fixing windows integration workflow.
Werebunny Nov 26, 2025
8b0090a
Fix casing for github actions.
Werebunny Nov 26, 2025
a04b625
Revert nullability changes.
Werebunny Nov 26, 2025
a4f34e1
Format all files.
Werebunny Nov 27, 2025
d365dc7
Disable problematic tests.
Werebunny Nov 27, 2025
05e0ded
Enable some valid tests.
Werebunny Nov 27, 2025
f9e6e0e
Re-disable problem tests.
Werebunny Nov 27, 2025
d346c8f
Add self-test for RandomData methods.
Werebunny Nov 28, 2025
e3ae420
Fix RandomizerEngine tests.
Werebunny Nov 29, 2025
50d95df
Potential intermittent test fixes.
Werebunny Nov 29, 2025
c64a0f2
Fix IFormatProvider support.
Werebunny Dec 1, 2025
bc8ee0f
Fix issue tests.
Werebunny Dec 1, 2025
e4be21c
Better nested value hash behavior.
Werebunny Dec 1, 2025
d2d3a43
Test better parameter and method base support.
Werebunny Dec 1, 2025
13e1fab
Limit cultures.
Werebunny Dec 1, 2025
bdc02ba
Fix MethodInfo generation.
Werebunny Dec 1, 2025
6e3a831
Use IAsyncEnumerable.
Werebunny Dec 2, 2025
469ba1f
Prevent overflows via ToString.
Werebunny Dec 2, 2025
f18d5c4
Fix Randomizer Limit behavior.
Werebunny Dec 2, 2025
9500353
Separate and fix unwrapper code.
Werebunny Dec 4, 2025
7c58a5a
Fix the Runner async problem.
Werebunny Dec 4, 2025
f8054c6
Remove version specific ValueTask constructors.
Werebunny Dec 7, 2025
22d31f6
Test exception exclusions.
Werebunny Dec 7, 2025
d46f714
Descriptive timeout.
Werebunny Dec 7, 2025
37a3d92
Fix enumerator disposal.
Werebunny Dec 19, 2025
d2b88f6
Merge AsyncAsserter into Asserter.
Werebunny Dec 27, 2025
ad63da9
Add fluent async assertions for objects.
Werebunny Dec 27, 2025
1daf934
Fix tests.
Werebunny Dec 27, 2025
75cf4b5
Fix tests.
Werebunny Dec 27, 2025
7e8afb9
Add configuration via file support.
Werebunny Dec 31, 2025
996e9a6
Set and test all configurable options.
Werebunny Jan 6, 2026
bb2fff1
Test fixes.
Werebunny Jan 6, 2026
ea3827a
Update dependencies.
Werebunny Jan 6, 2026
79c30e0
Start of adding CancellationToken.
Werebunny Jan 9, 2026
7a529f3
More cancellation support.
Werebunny Jan 12, 2026
68cecca
Start of enhanced specific type configuration for hints.
Werebunny Jan 14, 2026
d0a1c8a
TypeSupporter pattern for Duplicator.
Werebunny Jan 15, 2026
a2a144b
Supported types start and chainer enhancements.
Werebunny Jan 18, 2026
257dee5
CallerArgumentExpression improvements to ArgumentGuard.
Werebunny Jan 18, 2026
7c86c92
Use IHintTool for supported types instead.
Werebunny Jan 18, 2026
7d2b1dc
Fix warnings and tests.
Werebunny Jan 19, 2026
31486ed
Cross sync/async enumerable comparison.
Werebunny Jan 21, 2026
2eb2f83
Lock optimization.
Werebunny Jan 21, 2026
06557c4
Test fix.
Werebunny Jan 21, 2026
18b54ed
Continuing cleanup and testing.
Werebunny Jan 23, 2026
84aa366
Continued cleanup and tests.
Werebunny Jan 24, 2026
6f2b1f1
Continued cleanup and testing.
Werebunny Jan 26, 2026
cb03b5a
Completed value random redesign.
Werebunny Jan 27, 2026
229ae1a
Support infinity for ValueRandom.
Werebunny Jan 28, 2026
3d2e3e9
Continued Limiter cleanup.
Werebunny Jan 28, 2026
b20b503
Continued testing.
Werebunny Jan 28, 2026
4057f0f
.NET 4.8 and test fixes.
Werebunny Jan 29, 2026
df4c18d
Second attempt at fixing .NET 4.8.
Werebunny Jan 29, 2026
7b15466
Fix Ubuntu tests.
Werebunny Jan 29, 2026
f27a39a
Fix .NET 4.8 tests.
Werebunny Jan 29, 2026
68185b4
Begin optimizing Randomizer using handlers.
Werebunny Jan 30, 2026
82168ec
Continued Randomizer improvements.
Werebunny Jan 31, 2026
6c6807a
Prepare for generating any kind of random object type.
Werebunny Jan 31, 2026
c24328b
Continue cleanup.
Werebunny Feb 1, 2026
1b13257
Add Runtime type provider.
Werebunny Feb 3, 2026
d5ec294
Convert Mutator tool to be hint based and add hints.
Werebunny Feb 6, 2026
46f0544
Set priorities for hints to prepare for auto-loading.
Werebunny Feb 6, 2026
a778fdc
Automatic hint loading.
Werebunny Feb 7, 2026
d6dad28
Serialization Tester tests.
Werebunny Feb 9, 2026
0b3301d
Clean up tool design interfaces.
Werebunny Feb 10, 2026
d382e30
Mutator tool cleanup.
Werebunny Feb 10, 2026
4e7f473
Test, fix and clean mutator hints.
Werebunny Feb 12, 2026
2d8d805
Finish Mutator cleanup.
Werebunny Feb 13, 2026
8e9f2c6
Begin cleaning Duplicator.
Werebunny Feb 13, 2026
562be79
Begin cleanup of Extractor.
Werebunny Feb 13, 2026
7c0562d
Fix Enum.GetValues for legacy .NET.
Werebunny Feb 13, 2026
876cb7b
Begin optimizing and cleaning Valuer.
Werebunny Feb 14, 2026
cf2f59d
Add DateTimeOffset support.
Werebunny Feb 16, 2026
6ab353e
Revert to excluding all non-system exceptions.
Werebunny Feb 16, 2026
1932845
Fix exception compatibility issues for legacy .NET.
Werebunny Feb 16, 2026
6329102
Add more blocked exceptions.
Werebunny Feb 16, 2026
22e1e27
Value hint nullability cleanup.
Werebunny Feb 17, 2026
970dc3e
Continued CompareHint cleanup.
Werebunny Feb 17, 2026
98f9a83
Compare hint async and task cleanup.
Werebunny Feb 18, 2026
4fa0e16
Continued compare hint cleanup.
Werebunny Feb 18, 2026
400165c
Proper error handling for Valuer.
Werebunny Feb 18, 2026
68ad442
Timeout for Valuer async methods.
Werebunny Feb 18, 2026
a4010e2
Increase async timeout.
Werebunny Feb 18, 2026
15c3511
Fix configuration test setting.
Werebunny Feb 18, 2026
a7e7d44
Increase integration timeout.
Werebunny Feb 18, 2026
24a27ef
Copy immutable internals by ref performance increase.
Werebunny Feb 19, 2026
8712435
Begin cleaning create hints.
Werebunny Feb 19, 2026
7a21549
Combine collection create hints.
Werebunny Feb 20, 2026
47a1a5a
Make whitespace consistent.
Werebunny Feb 20, 2026
8dc3628
Fix exception strings.
Werebunny Feb 20, 2026
e3ea568
Random cleanup and options.
Werebunny Feb 20, 2026
a2bbbe4
Try to prevent fatal exception leak for legacy .NET.
Werebunny Feb 21, 2026
0c61934
Additional attempt to fix .NET 4.8.
Werebunny Feb 21, 2026
059e47e
Test integration overflow issue.
Werebunny Feb 21, 2026
618c34e
Try disabling just passthrough tests.
Werebunny Feb 21, 2026
181edd7
Try disabling just parameter mutation tests.
Werebunny Feb 21, 2026
2c56572
Reenable mutation tests.
Werebunny Feb 21, 2026
dd40198
Plumb CancellationToken into Runner.
Werebunny Feb 21, 2026
32d2e72
Inject CancellationToken in Tester methods.
Werebunny Feb 21, 2026
e215415
Common pattern for await foreach with cancellation and iteration limit.
Werebunny Feb 22, 2026
f604728
Iteration limit guard cleanup.
Werebunny Feb 23, 2026
bd53f0e
Inspect and limit all potential bad for each cases.
Werebunny Feb 23, 2026
28b1c8a
Fix coverage test to include statics.
Werebunny Feb 24, 2026
84be7d3
Update dependencies.
Werebunny Feb 24, 2026
fa4eea4
Move subclass detection into InheritanceTracker.
Werebunny Feb 27, 2026
72a3744
Visible field and property methods.
Werebunny Mar 1, 2026
faf4cf8
Constructor and factory support for TypeDescriber.
Werebunny Mar 1, 2026
24a6265
Use custom UnsupportedException instead of NotSupportedException.
Werebunny Mar 2, 2026
7fc904f
Use types from all assemblies, not just ones currently loaded.
Werebunny Mar 2, 2026
d9a5369
Cleanup configuration value loading.
Werebunny Mar 5, 2026
a2063b2
Proper generic type definition population.
Werebunny Mar 5, 2026
7abf7f9
Add extra unsupported .NET 4.8 exceptions.
Werebunny Mar 5, 2026
2dc77a6
Update contributing doc.
Werebunny Mar 7, 2026
29987f6
Move member reflection to InheritanceTracker.
Werebunny Mar 8, 2026
c4cf3da
Fix test.
Werebunny Mar 8, 2026
a91cc43
Fix some tests.
Werebunny Mar 8, 2026
4ea1545
Fix UriBuilder cloning.
Werebunny Mar 8, 2026
d1390da
Fix UriBuilder support.
Werebunny Mar 8, 2026
8962bd4
Fix .NET 4.8 TryAdd issue.
Werebunny Mar 8, 2026
fbe652b
Fix UriBuilder for .NET 4.8 again.
Werebunny Mar 8, 2026
727bcb4
Break up member tracking into scanner classes.
Werebunny Mar 11, 2026
5c0fa19
Naming cleanup.
Werebunny Mar 11, 2026
1a64d6c
Use generics for clone interfaces.
Werebunny Mar 23, 2026
834ffc2
Fix assembly loading behavior for .NET 5+ specific value handlers.
Werebunny Mar 23, 2026
6351979
Design comment spacing cleanup.
Werebunny Mar 23, 2026
f78f258
Split TypeHelper and better naming.
Werebunny Mar 24, 2026
701e020
Add Tester test for validating test method naming.
Werebunny Mar 31, 2026
02576a8
Split up Tester to clean up code.
Werebunny Mar 31, 2026
bb39747
Add factory support for object duplication.
Werebunny Mar 31, 2026
8d6046c
Add full internal support for cloning.
Werebunny Mar 31, 2026
88de5c4
Remove ECDsa algorithm.
Werebunny Mar 31, 2026
45edeb4
Add error details for test.
Werebunny Mar 31, 2026
bcfa879
Fix MethodWrapper generation for .NET.
Werebunny Mar 31, 2026
68507b7
Try fix .NET 4.8 tests.
Werebunny Mar 31, 2026
35af643
Fix test issue.
Werebunny Mar 31, 2026
a7df675
Test fix for .NET 4.8.
Werebunny Mar 31, 2026
388e620
Coverage settings.
Werebunny Mar 31, 2026
588f165
Test tweaks.
Werebunny Mar 31, 2026
565160d
Try specifying test-adapter-path.
Werebunny Mar 31, 2026
10e38d2
Re-enable tester tests.
Werebunny Mar 31, 2026
6007579
Use Async for Async assertions.
Werebunny Apr 3, 2026
072a33d
Adding Task unwrapping for assertions.
Werebunny Jun 2, 2026
4c66d07
Add chaining for fluent delegate results.
Werebunny Jun 5, 2026
c5d4193
Split up behavior assertions into delegate/action/func.
Werebunny Jun 12, 2026
9382172
Extensions for Action/Delegate/Task.
Werebunny Jun 14, 2026
2d3ea7b
More fluent work.
Werebunny Jun 14, 2026
e9d2d78
Can cleanup Asserter organization.
Werebunny Jun 15, 2026
e677de5
Test organization.
Werebunny Jun 15, 2026
7253273
Added support for ValueTask and ValueTask<>.
Werebunny Jun 23, 2026
1a1ab9d
Fix tests.
Werebunny Jun 23, 2026
3ba82db
Add proper assert task support.
Werebunny Jun 23, 2026
b8c7fec
Chainer improvements.
Werebunny Jun 25, 2026
2a8d8cc
Begin setup for Faker tool to use hints.
Werebunny Jun 29, 2026
d31071f
Hint method naming standard.
Werebunny Jun 29, 2026
1ad258f
Setup fake hint behavior.
Werebunny Jun 30, 2026
181a4b1
Fake and behavior naming changes.
Werebunny Jul 1, 2026
49b01b2
Improved random fakes.
Werebunny Jul 2, 2026
2fec24f
Asserter fail restructuring.
Werebunny Jul 2, 2026
35be1d1
Add Debug asserts.
Werebunny Jul 3, 2026
cccaf4a
Assertion cleanup.
Werebunny Jul 3, 2026
01ea766
Wrap Tools extensions into class with single extension call.
Werebunny Jul 3, 2026
bb00778
Add .gitattributes.
Werebunny Jul 3, 2026
85179b8
Improve Unwrapper.
Werebunny Jul 4, 2026
9bd55e6
Runner run fix.
Werebunny Jul 4, 2026
91d91e1
Add equality validator.
Werebunny Jul 7, 2026
aad3243
Fix naming style config.
Werebunny Jul 8, 2026
b1ef3da
Add exclusion attribute.
Werebunny Jul 8, 2026
1b8339a
Complete style naming enforcement.
Werebunny Jul 8, 2026
e031c9e
Better async fluent assertions.
Werebunny Jul 9, 2026
fe794e7
Update analyzers.
Werebunny Jul 9, 2026
c36625f
Begin Limiter for tasks fix.
Werebunny Jul 9, 2026
b33b060
Fix limiter comparisons.
Werebunny Jul 11, 2026
3055b08
Fix PropertyScanner to not use statics.
Werebunny Jul 14, 2026
6ce9982
Scanner performance improvements.
Werebunny Jul 15, 2026
430a72d
Add static method scanner.
Werebunny Jul 15, 2026
5d79d41
Test fixes.
Werebunny Jul 15, 2026
b1f48c5
Exclude object privates from scanning.
Werebunny Jul 15, 2026
4a1a9bc
Fix method scanning tests.
Werebunny Jul 15, 2026
bb668e8
Require xunit 3.0 core to utilize labels.
Werebunny Jul 15, 2026
2532a1c
Disable xunit 2 big test to check overflow.
Werebunny Jul 15, 2026
d6b06cc
Better MethodCallWrapper ToString, debug strings and runner errors.
Werebunny Jul 16, 2026
39e9b10
Enable debug failures.
Werebunny Jul 16, 2026
eb8dd7c
Disable debug failures.
Werebunny Jul 16, 2026
b341ae8
Full testing with disable tester features.
Werebunny Jul 16, 2026
36af106
Fix test with option disabled.
Werebunny Jul 16, 2026
99214bb
Enable passthrough tests.
Werebunny Jul 16, 2026
cd53896
Try enabling null ref exception tests.
Werebunny Jul 16, 2026
b0e1bb8
Add proper disposal.
Werebunny Jul 16, 2026
3109ba8
Small fixes.
Werebunny Jul 17, 2026
16114c2
Check if issue is with static methods.
Werebunny Jul 17, 2026
e46c959
Check if it's constructors.
Werebunny Jul 17, 2026
ea85cfd
Add generics for test name string details.
Werebunny Jul 17, 2026
30aff4f
Add test settings for all test projects.
Werebunny Jul 17, 2026
a3fdcd6
Small test improvements.
Werebunny Jul 17, 2026
646d434
Permanent fix for decimal overflow issue.
Werebunny Jul 17, 2026
338bb56
Fill test coverage for test frameworks.
Werebunny Jul 17, 2026
bda7cfa
Disable crash due to RuntimeMethodHandle.
Werebunny Jul 18, 2026
164098e
Test fixes.
Werebunny Jul 18, 2026
0015224
Isolate problem Windows tests.
Werebunny Jul 18, 2026
1ece5f4
Test fixes.
Werebunny Jul 18, 2026
24afa14
Fix .NET 4.8 bug around dynamically awaiting generic tasks.
Werebunny Jul 19, 2026
2de0ed9
Test fixes.
Werebunny Jul 20, 2026
c76854d
Legacy .NET StringWriter is not async compatible.
Werebunny Jul 20, 2026
5cd7527
Test using all valid samples.
Werebunny Jul 20, 2026
e106225
Increase coverage.
Werebunny Jul 21, 2026
bc912f1
Coverage.
Werebunny Jul 22, 2026
d7ca509
Fix .NET 4.8 coverage.
Werebunny Jul 23, 2026
e759e61
Coverage.
Werebunny Jul 23, 2026
d668f88
Tweak to fix coverage.
Werebunny Jul 23, 2026
9191168
Coverage improvements.
Werebunny Jul 23, 2026
d720398
Improve coverage and test name validation.
Werebunny Jul 24, 2026
320041f
Fix internal visibility issue when inheriting internals from non-visi…
Werebunny Jul 26, 2026
55308ee
Fix NullGuarder to call all methods.
Werebunny Jul 28, 2026
3f8f22d
Fix getter/setter coverage in guarders.
Werebunny Jul 28, 2026
a534971
Improve fake provider information passing for methods.
Werebunny Jul 29, 2026
f64fbfd
Add coverage.
Werebunny Jul 29, 2026
e1f115d
Update code of conduct version.
Werebunny Aug 8, 2026
a5eb9e0
Small fixes.
Werebunny Aug 9, 2026
d315cb0
Transfer to Werecodent.
Werebunny Aug 9, 2026
9284942
Use the organization GitHub files.
Werebunny Aug 9, 2026
a9cc888
Prepare for swap branch to main.
Werebunny Aug 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
355 changes: 138 additions & 217 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,227 +1,148 @@
# Remove the line below if you want to inherit .editorconfig settings from higher directories
# Remove the line below if you want to inherit .editorconfig settings from higher directories.
root = true

# C# files
[*]
end_of_line = lf
insert_final_newline = true

[*.{cmd,ps1}]
end_of_line = crlf

[*.cs]
guidelines = 120, 140
guidelines = 120
max_line_length = 100

#### Core EditorConfig Options ####
csharp_style_namespace_declarations = file_scoped
dotnet_code_quality.CA1062.null_check_validation_methods = Werecodent.CreateAndFake.Design.ArgumentGuard.ThrowIfNull

# Indentation and spacing
indent_size = 4
indent_style = space
tab_width = 4
#### Naming styles: ####

# New line preferences
end_of_line = crlf
insert_final_newline = false

#### .NET Coding Conventions ####

# Organize usings
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = true

# this. and Me. preferences
dotnet_style_qualification_for_event = false:silent
dotnet_style_qualification_for_field = false:silent
dotnet_style_qualification_for_method = false:silent
dotnet_style_qualification_for_property = false:silent

# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
dotnet_style_predefined_type_for_member_access = true:silent

# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent

# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent

# Expression-level preferences
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_throw_expression = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_object_initializer = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion

# Field preferences
dotnet_style_readonly_field = true:suggestion

# Parameter preferences
dotnet_code_quality_unused_parameters = all:suggestion

#### C# Coding Conventions ####

# var preferences
csharp_style_var_elsewhere = false:silent
csharp_style_var_for_built_in_types = false:silent
csharp_style_var_when_type_is_apparent = false:silent

# Expression-bodied members
csharp_style_expression_bodied_accessors = true:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent

# Pattern matching preferences
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_prefer_switch_expression = true:suggestion

# Null-checking preferences
csharp_style_conditional_delegate_call = true:suggestion

# Modifier preferences
csharp_prefer_static_local_function = true:suggestion
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async

# Code-block preferences
csharp_prefer_braces = true:silent
csharp_prefer_simple_using_statement = true:suggestion

# Expression-level preferences
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_pattern_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
csharp_style_unused_value_expression_statement_preference = discard_variable:silent

# 'using' directive preferences
csharp_using_directive_placement = outside_namespace:silent

#### C# Formatting Rules ####

# New line preferences
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true

# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true

# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false

# Wrapping preferences
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true

#### Naming styles ####

# Naming rules

dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i

dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.private_or_internal_static_field_should_be_begins_with__pascal.severity = warning
dotnet_naming_rule.private_or_internal_static_field_should_be_begins_with__pascal.symbols = private_or_internal_static_field
dotnet_naming_rule.private_or_internal_static_field_should_be_begins_with__pascal.style = begins_with__pascal

dotnet_naming_rule.private_or_internal_field_should_be_begins_with__camel.severity = warning
dotnet_naming_rule.private_or_internal_field_should_be_begins_with__camel.symbols = private_or_internal_field
dotnet_naming_rule.private_or_internal_field_should_be_begins_with__camel.style = begins_with__camel

# Symbol specifications

dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.interface.required_modifiers =

dotnet_naming_symbols.private_or_internal_field.applicable_kinds = field
dotnet_naming_symbols.private_or_internal_field.applicable_accessibilities = internal, private
dotnet_naming_symbols.private_or_internal_field.required_modifiers =

dotnet_naming_symbols.private_or_internal_static_field.applicable_kinds = field
dotnet_naming_symbols.private_or_internal_static_field.applicable_accessibilities = internal, private
dotnet_naming_symbols.private_or_internal_static_field.required_modifiers = static

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.types.required_modifiers =

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.non_field_members.required_modifiers =

# Naming styles

dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
# Define naming styles:
dotnet_naming_style.underscored_camel.required_prefix = _
dotnet_naming_style.underscored_camel.capitalization = camel_case

dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
dotnet_naming_style.underscored_pascal.required_prefix = _
dotnet_naming_style.underscored_pascal.capitalization = pascal_case

dotnet_naming_style.begins_with__camel.required_prefix = _
dotnet_naming_style.begins_with__camel.required_suffix =
dotnet_naming_style.begins_with__camel.word_separator =
dotnet_naming_style.begins_with__camel.capitalization = camel_case
dotnet_naming_style.underscored_i.required_prefix = I
dotnet_naming_style.underscored_i.capitalization = pascal_case

dotnet_naming_style.begins_with__pascal.required_prefix = _
dotnet_naming_style.begins_with__pascal.required_suffix =
dotnet_naming_style.begins_with__pascal.word_separator =
dotnet_naming_style.begins_with__pascal.capitalization = pascal_case
dotnet_naming_style.pascal_case.capitalization = pascal_case

csharp_style_namespace_declarations = file_scoped
dotnet_code_quality.CA1062.null_check_validation_methods = CreateAndFake.Design.ArgumentGuard.ThrowIfNull
dotnet_naming_style.camel_case.capitalization = camel_case

# Define symbol groups:
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.private_fields.applicable_accessibilities = private

dotnet_naming_symbols.private_static_fields.applicable_kinds = field
dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private
dotnet_naming_symbols.private_static_fields.required_modifiers = static

dotnet_naming_symbols.interfaces.applicable_kinds = interface

dotnet_naming_symbols.structures.applicable_kinds = class, struct, interface, enum, property, event, method, type_parameter

dotnet_naming_symbols.locals.applicable_kinds = parameters, local, local_function

# Define naming rules:
dotnet_naming_rule.private_fields_prefix.symbols = private_fields
dotnet_naming_rule.private_fields_prefix.style = underscored_camel
dotnet_naming_rule.private_fields_prefix.severity = warning

dotnet_naming_rule.private_static_fields_prefix.symbols = private_static_fields
dotnet_naming_rule.private_static_fields_prefix.style = underscored_pascal
dotnet_naming_rule.private_static_fields_prefix.severity = warning

dotnet_naming_rule.interfaces_prefix.symbols = interfaces
dotnet_naming_rule.interfaces_prefix.style = begins_with_i
dotnet_naming_rule.interfaces_prefix.severity = warning

dotnet_naming_rule.structures_casing.symbols = structures
dotnet_naming_rule.structures_casing.style = pascal_case
dotnet_naming_rule.structures_casing.severity = warning

dotnet_naming_rule.locals_casing.symbols = locals
dotnet_naming_rule.locals_casing.style = camel_case
dotnet_naming_rule.locals_casing.severity = warning

#### Analyzer Overrides ####

dotnet_analyzer_diagnostic.severity = warning

# Controlled by CSharpier.
dotnet_diagnostic.IDE0055.severity = None
dotnet_diagnostic.MA0051.severity = None

# Bad warnings that can create bugs or are clearly intended behavior.
dotnet_diagnostic.CA1000.severity = None
dotnet_diagnostic.CA1040.severity = None
dotnet_diagnostic.MA0018.severity = None
dotnet_diagnostic.MA0165.severity = None
dotnet_diagnostic.RCS1241.severity = None
dotnet_diagnostic.S1133.severity = None
dotnet_diagnostic.S1694.severity = None
dotnet_diagnostic.S1994.severity = None
dotnet_diagnostic.S3011.severity = None
dotnet_diagnostic.S3220.severity = None
dotnet_diagnostic.S3453.severity = None
dotnet_diagnostic.S3878.severity = None

# Redundancy that's good for clarity.
dotnet_diagnostic.CA1805.severity = None
dotnet_diagnostic.RCS1033.severity = None
dotnet_diagnostic.RCS1034.severity = None
dotnet_diagnostic.RCS1071.severity = None
dotnet_diagnostic.RCS1129.severity = None
dotnet_diagnostic.RCS1188.severity = None
dotnet_diagnostic.S108.severity = None
dotnet_diagnostic.S1125.severity = None
dotnet_diagnostic.S1199.severity = None
dotnet_diagnostic.S3626.severity = None

# Unnecessary overcaution against default behavior that hurts readability.
dotnet_diagnostic.IDE0045.severity = None
dotnet_diagnostic.IDE0046.severity = None
dotnet_diagnostic.IDE0048.severity = None
dotnet_diagnostic.MA0002.severity = None
dotnet_diagnostic.MA0003.severity = None
dotnet_diagnostic.MA0006.severity = None
dotnet_diagnostic.MA0076.severity = None
dotnet_diagnostic.MA0169.severity = None
dotnet_diagnostic.RCS1089.severity = None
dotnet_diagnostic.RCS1123.severity = None
dotnet_diagnostic.S1751.severity = None
dotnet_diagnostic.S2743.severity = None
dotnet_diagnostic.S3993.severity = None

# Design choice.
dotnet_diagnostic.MA0029.severity = None
dotnet_diagnostic.MA0071.severity = None
dotnet_diagnostic.RCS1112.severity = None
dotnet_diagnostic.RCS1211.severity = None
dotnet_diagnostic.S3267.severity = None

# Unavoidable for handling anything thrown at the libary.
dotnet_diagnostic.CA1031.severity = None
dotnet_diagnostic.RCS1075.severity = None

# Deprecated.
dotnet_diagnostic.MA0038.severity = None
dotnet_diagnostic.MA0041.severity = None

# Not supported in all .NET versions.
dotnet_diagnostic.CA1865.severity = None
dotnet_diagnostic.CA2249.severity = None
dotnet_diagnostic.IDE0057.severity = None
dotnet_diagnostic.IDE0370.severity = None
dotnet_diagnostic.MA0001.severity = None
dotnet_diagnostic.MA0089.severity = None

# Specifically for Visual Studio extensions and don't apply to this library.
dotnet_diagnostic.VSTHRD003.severity = None

# TODO: Documentation work.
dotnet_diagnostic.RCS1228.severity = None

# TODO: Remove commented out code.
dotnet_diagnostic.S125.severity = None
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* text=auto eol=lf
*.cmd text eol=crlf
*.ps1 text eol=crlf
Loading