Releases: RalfKoban/MiKo-Analyzers
Releases · RalfKoban/MiKo-Analyzers
v0.0.46
What's Changed
- NCrunch instrumentation adjusted to speed up tests by @RalfKoban in #814
- MiKo_2018 code fix is now better prepared for "Checks if ", "Checks that ", "Tests if " or "Tests that " by @RalfKoban in #815
- names for VSIX packages corrected by @RalfKoban in #816
- MiKo_1300 now uses '_1' or '2' for discarded lambda identifiers in case there are other '' identifiers present by @RalfKoban in #819
- MiKo_1046 and MiKo_1047 are now aware of suffix 'AsyncCore' by @RalfKoban in #820
- Update README.md by @RalfKoban in #821
- MiKo_2023 refactored to slightly increase performance by @RalfKoban in #824
- Added new rule MiKo_3219 that reports if public members are virtual by @RalfKoban in #825
- MiKo_3219 is now prepared for partial generated code that is not marked as generated by @RalfKoban in #826
- MiKo_2004 now better determines whether to use 'A' or 'An' as article by @RalfKoban in #827
- visibility changed to private where possible by @RalfKoban in #828
- start arguments for VSIX disabled to prevent random build failures by @RalfKoban in #829
- MiKo_1300 now uses underscores again for discarded lambda identifiers (as "_1" violates style cop rule SA1313) by @RalfKoban in #830
- MiKo_2004 is now aware of multi-line texts by @RalfKoban in #831
- tests adjusted to increase test run on AppVeyor by @RalfKoban in #832
- RDI deactivated for extensions, RDI coverage for specific code switched off by @RalfKoban in #833
- Added new rule MiKo_6053 that reports when arguments can be placed on single lines if they are spanning multiple lines by @RalfKoban in #835
- RDI collection disabled for unnecessary parts by @RalfKoban in #836
- RDI collection disabled for unnecessary parts; code refactored for performance reasons by @RalfKoban in #837
- MiKo_3039 is now aware of expression body properties by @RalfKoban in #838
- MiKo_3039 now also reports for property setters by @RalfKoban in #839
- MiKo_1063 now detects 'Op' as abbreviation for 'Operation' by @RalfKoban in #841
- MiKo_2207 now considers a summary with more than 42 words as too long by @RalfKoban in #840
- MiKo_1063 now detects 'Env' as abbreviation for 'Environment' by @RalfKoban in #842
- MiKo_2040 and MiKo_2080 tests refactored to specify test limits by @RalfKoban in #844
- Added new rule MiKo_6054 that reports when arrow tokens of lambdas are placed on separate lines by @RalfKoban in #843
- MiKo_1063 is now aware of abbreviations "ctl", "ctrl" and "cli" by @RalfKoban in #845
- MiKo_1063 is now aware of 'cls', 'diff' and 'diffs' by @RalfKoban in #846
- MiKo_2023 now ignores NCrunch comments by @RalfKoban in #849
- NCrunch coverage disabled to speed up testing by @RalfKoban in #847
- MiKo_2033 refactored to ignore 'To' conversion methods by @RalfKoban in #848
- Introduced StringBuilder extension methods 'Trim', 'TrimStart' and 'TrimEnd' by @RalfKoban in #850
- MiKo_2023 codefix refactored to handle 'A ', 'An ' and 'The ' separately by @RalfKoban in #851
- MiKo_2023 codefix is now aware of comment's first word being a gerund and fixes that by @RalfKoban in #852
- MiKo_2012 codefix can now fix some more phrases by @RalfKoban in #853
- Code refactored to speed up MiKo_2023 (and other) codefixes by @RalfKoban in #855
- Introduced lazy initialization to speed up tests by @RalfKoban in #856
- MiKo 2023 codefix can now handle some more phrases by @RalfKoban in #857
- test limit for AppVeyor increased to see how long tests are taking now by @RalfKoban in #858
- MiKo_2023 et al codefix provider performance optimizations by @RalfKoban in #859
- MiKo_3217 is now aware of Tasks by @RalfKoban in #860
- MiKo_3217 is now aware of Actions, Funcs, Predicates, Expressions and Moq Mocks by @RalfKoban in #861
- MiKo_3006 is now aware of params array by @RalfKoban in #862
- MiKo_1030 description now makes clear that cluttering the name is an unnecessary distraction for the users by @RalfKoban in #863
- MiKo_3219 now ignores records by @RalfKoban in #864
- Records are now no longer considered to inherit from some types by @RalfKoban in #865
- Disabled RDI for some parts, refactored code for some performance gains (and less garbage to collect) by @RalfKoban in #866
- MiKo_1063 is now aware of more abbreviations by @RalfKoban in #867
- MiKo_2060, MiKo_3210 & MiKo_3214 now inspect named methods only by @RalfKoban in #868
- Code refactored to prevent AD0001 due to duplicate key exception, added inlining hints by @RalfKoban in #869
- Adjusted checks for documentation and characters to increase performance by @RalfKoban in #870
- MiKo_6035 is now able to fix generic brackets that are placed on different lines by @RalfKoban in #871
- MiKo_6037 is now able to fix parenthesis that are placed on different lines as well by @RalfKoban in #872
- MiKo_6054 texts adjusted (titles, messages, descriptions) by @RalfKoban in #873
- MiKo_6043 codefix now preserves leading trivia (white spaces) from lambda expressions by @RalfKoban in #874
- Added new rule MiKo_6055 for simple assignments surrounded by invocations by @RalfKoban in #875
- MiKo_1080 is now aware of 'fourth', 'fifth', 'ninth' and 'tenth' by @RalfKoban in #876
- Base types are now considered for comparisons by @RalfKoban in #877
- Method signature is now aware of 'in' parameter by @RalfKoban in #878
- Code refactored for local functions speed-up by @RalfKoban in #879
- MiKo_2022 codefix provider is now able to fix some more phrases by @RalfKoban in #880
- MiKo_2074 now inspects only first parameter by @RalfKoban in #881
- MiKo_3017 is now aware of coalesce calls by @RalfKoban in #882
- MiKo_6030 and MiKo_6043 are now aware of anonymous object creations by @RalfKoban in #883
- MiKo_1063 is now also aware of abbreviations 'auth' and 'environ' by @RalfKoban in #884
- MiKo_1401 now reports for 'DTO', 'Platform', 'Record', 'API(s)', 'Controller(s)', 'Func/Function(s)' and 'Itf(s)' by @RalfKoban in #885
- MiKo_1400 is now aware of 'Azure' and 'Docker' by @RalfKoban in #886
- MiKo_1401 is now aware of some more technical terms by @RalfKoban in #887
- Tests switched from .NET 6 to .NET 8 by @RalfKoban in #888
- MiKo_0001 & MiKo_0005 test code samples corrected by @RalfKoban in #889
- Code refactored to use switch/case for SyntaxKind instead of types by @RalfKoban in #890
- Versions increased to v0.0.46 by @RalfKoban in #891
Full Changelog: v0.0.45...v0.0.46
v0.0.45
What's Changed
- Added rule MiKo_5016 that checks if Contains() calls in RemoveAll() are done on HashSet by @RalfKoban in #586
- Consolidated duplicate code of 'GetAllLocations' by @RalfKoban in #587
- Fixed a bug that documentation was not detected if a method returned an array by @RalfKoban in #588
- MiKo_2207 refactored to squiggle <summary> instead of symbol by @RalfKoban in #589
- Added new rule MiKo_2228 that suggests to use positive wording instead of negative by @RalfKoban in #590
- MiKo_1063 no longer reports 'ext' inside 'text' as abbreviation by @RalfKoban in #591
- dogfooding own rules by @RalfKoban in #592
- Added tests and some more wordings for MiKo_2228 by @RalfKoban in #593
- MiKo_2228 enhanced to investigate sentences instead of complete text by @RalfKoban in #594
- MiKo_1063 no longer reports 'ext' inside 'next' as abbreviation by @RalfKoban in #595
- Added new rule MiKo_3118 that reports if test methods use ambiguous Linq calls (such as "Skip" or "FirstOrDefault") by @RalfKoban in #600
- Added new rule MiKo_3097 that reports for unnecessary cast when returning objects by @RalfKoban in #601
- Added fix for MiKo_6001 that reports no issue for calls like 'if (Log.IsDebugEnabled) Log.Debug()' by @RalfKoban in #603
- MiKo_5001 code fix applies trivia from replaced statement, is aware of Moq and lambdas by @RalfKoban in #602
- MiKo_5001 is now able to combine multiple consecutive calls of 'Debug…' into a single 'if (IsDebugEnabled)' block by @RalfKoban in #607
- MiKo_5001 is now able to combine multiple consecutive calls of 'Debug…' into a single 'if (IsDebugEnabled)' block by @RalfKoban in #609
- Redundant sealed removed by @RalfKoban in #610
- Dogfooding some rules by @RalfKoban in #612
- MiKo_5002 & MiKo_6001 are now aware of Moq call (resolves #604) by @RalfKoban in #611
- Added RDI support, MiKo_0004 and MiKo_0007 now ignore [out] parameters, MiKo_1107 refactored to have a timeout, some minor performance optimization / code cleanup by @RalfKoban in #613
- MiKo_2207 now ignores enum fields (resolves #615) by @RalfKoban in #616
- MiKo_2013 enhanced to better fix phrases (resolves #618) by @RalfKoban in #619
- MiKo_2082 now has a codefix provider by @RalfKoban in #621
- MiKo_2300 now tries to determine if comment contains reason by @RalfKoban in #623
- MiKo_3107 now also detects Moq condition matchers in test case data by @RalfKoban in #624
- Added new rule MiKo_3098 that checks for proper justifications on [SuppressMessage] by @RalfKoban in #625
- Fixed NRE thrown by MiKo_3107 analyzer when analyzing an array initializer that contains an object initializer without an argument list by @RalfKoban in #626
- Added new rule MiKo_6049 that reports if event (un-)registrations are not surrounded by blank lines by @RalfKoban in #627
- Tests adjusted for RDI support by @RalfKoban in #629
- Added new rule MiKo_3201 that reports in case an 'if' statement can be inverted to ease method reading by @RalfKoban in #631
- code now uses IsAnyKind(ISet) by @RalfKoban in #632
- MiKo_3201 is now aware of comments by @RalfKoban in #633
- MiKo_6020 changed to MiKo_6018 by @RalfKoban in #634
- Added new rule MiKo_6020 which reports missing blank lines around 'throw' by @RalfKoban in #635
- Added new rule MiKo_3202 that reports in case a negative condition can be inverted into positive to ease method reading by @RalfKoban in #637
- MiKo_3026 refactored by @RalfKoban in #640
- removed unused usings by @RalfKoban in #641
- MiKo_3026 now ignores event handling methods by @RalfKoban in #642
- MiKo_3026 now ignores methods used as callback-arguments by @RalfKoban in #644
- Added new rule MiKo_6050 that reports multi-line arguments to be positioned outdented right below method call by @RalfKoban in #645
- Changed call from 'First' to 'FirstOrDefault' to avoid crashes inside VS when attempting to fix incomplete code by @RalfKoban in #646
- Dogfooding: Applied MiKo_6050 to code by @RalfKoban in #647
- MiKo_6050 is now aware of arguments that span multiple lines by @RalfKoban in #648
- MiKo_6040 now also adjusts descendant arguments of invocations by @RalfKoban in #650
- MiKo_3201 enhanced to not report in case the 'return' inside the 'if' statement contains a comment by @RalfKoban in #651
- Renamed rule MiKo_1111 to MiKo_1115 and added new rule MiKo_1111 that reports parameterless tests suffixed with underscores by @RalfKoban in #652
- Dogfooding by @RalfKoban in #653
- Dogfooding by @RalfKoban in #654
- Added new rule MiKo_5017 that proposes to convert hardcoded string variable or field into constant by @RalfKoban in #655
- MiKo_3201 now ignores locks and switch statements by @RalfKoban in #656
- codefix providers now keep comments when adjusting modifiers by @RalfKoban in #658
- MiKo_2049 is now better aware of plurals and "will not" by @RalfKoban in #661
- added new ascending string comparer by @RalfKoban in #662
- MiKo_3073 is now aware of all kinds of lambda expressions by @RalfKoban in #663
- Dogfooding rules by @RalfKoban in #664
- GetDocumentationCommentTriviaSyntax refactored by @RalfKoban in #665
- refactored 'GetSummaryXmls', 'GetXmlSyntax', 'GetEmptyXmlSyntax', 'HasAttribute' by @RalfKoban in #666
- HashSet<SyntaxKind> replaced by SyntaxKind[] where set contains only a few elements by @RalfKoban in #667
- added new rule MiKo_3210 to report 'virtual' or 'abstract' on overloads by @RalfKoban in #670
- MiKo_1063 no longer reports "enum" as bad postfix by @RalfKoban in #671
- some resource texts updated by @RalfKoban in #672
- Added rule MiKo_3211 that reports finalizers on public types by @RalfKoban in #676
- Added new rule MiKo_3212 to help codify the Basic Dispose pattern by @RalfKoban in #677
- Added new rule MiKo_3213 that checks for 'Dispose()' method invoking 'Dispose(true)' as only call by @RalfKoban in #678
- MiKo_3213 is now aware of 'GC.SuppressFinalize(this)' by @RalfKoban in #680
- Messages for MiKo_3201 and MiKo_3210 rephrased by @RalfKoban in #681
- Update README.md by @RalfKoban in #682
- MiKo_2038 is now able to fix some more texts by @RalfKoban in #685
- MiKo_2015 now keeps leading space by @RalfKoban in #686
- MiKo_2038 is now able to fix some more texts by @RalfKoban in #688
- MiKo_2038 is now able to fix some more texts by @RalfKoban in #691
- MiKo_3114 code fix provider now applies trivia from original code to keep leading spaces by @RalfKoban in #692
- MiKo_1087 no longer causes an AD0001 due to an exception becaus...
v0.0.44
What's Changed
- Added LICENSE.txt by @RalfKoban in #559
- Added new rule MiKo_2077 that reports
<code>
inside<summary>
by @RalfKoban in #578 - Added new rule MiKo_2227 that reports ReSharper suppressions inside XML documentation by @RalfKoban in #567
- Added new rule MiKo_3046 that reports when using strings instead of 'nameof' on 'OnPropertyChanged' method invocations by @RalfKoban in #550
- Added new rule MiKo_3096 to convert large switch statements into dictionaries by @RalfKoban in #579
- Added new rule MiKo_5015 that reports interned string literals by @RalfKoban in #570
- Added new rule MiKo_6048 that reports for complex logical conditions to be on same line by @RalfKoban in #564
- Added new rules MiKo_3116 and MiKo_3117 that report empty test initialization or cleanup methods as unneeded by @RalfKoban in #549
- Added rule MiKo_3055 that checks types that end with "ViewModel" to implement "INotifyPropertyChanged" by @RalfKoban in #562
- Added rule MiKo_3087 that reports complex negative 'if' conditions by @RalfKoban in #557
- Added tests for multi-line comments on MiKo_2309 and others by @RalfKoban in #576
- Codefix for MiKo_2033 is now aware of some more texts to fix by @RalfKoban in #560
- Converted foreach loops into 'for' loops to gain a bit performance by @RalfKoban in #556
- DocumentationAnalyzer refactored to reuse API comment XML by @RalfKoban in #568
- Dogfooding MiKo_6048 to MiKo_5010 by @RalfKoban in #565
- Dogfooding own rules by @RalfKoban in #551
- Enhanced MiKo_2080 code fix to consider more boolean comments by @RalfKoban in #545
- MiKo 5010 enhancement negative comparison on struct and generic/dynamics by @RalfKoban in #546
- MiKo_1063 is now aware of abbreviations 'assoc', 'conf', 'config', 'init' and 'meth' and ignores 'Decrypt' and 'Encrypt' by @RalfKoban in #583
- MiKo_1063 is now aware of more abbreviations by @RalfKoban in #584
- MiKo_1070 now checks for ending 's' by @RalfKoban in #566
- MiKo_1072 is now aware of some more phrases by @RalfKoban in #548
- MiKo_2023 codefix no longer tries to always create an infinite verb by @RalfKoban in #544
- MiKo_2218 is now aware of "used internally" by @RalfKoban in #573
- MiKo_2223 is now aware of past tense abbreviations such as 'MEFed' by @RalfKoban in #575
- MiKo_2224 is now able to detect empty XML elements (resolves #513) by @RalfKoban in #554
- MiKo_2302 now ignores 'ncrunch:' markers by @RalfKoban in #572
- MiKo_3031 now better detects a ICloneable.Clone method by @RalfKoban in #581
- MiKo_3081 now keeps indentation by @RalfKoban in #547
- MiKo_3087 number corrected in Readme.md by @RalfKoban in #558
- MiKo_5010 now detects 'Equals' methods with multiple parameters by @RalfKoban in #552
- MiKo_5010 squiggle fixed by @RalfKoban in #553
- Removed duplicate space in description for MiKo_3114 by @RalfKoban in #574
- Update README.md by @RalfKoban in #580
- version increased to v0.0.44 by @RalfKoban in #585
Full Changelog: v0.0.43...v0.0.44
v0.0.42
v0.0.41
v0.0.40
New codefix providers
- MiKo_2002
- MiKo_2032
- MiKo_2040
- MiKo_3054
- MiKo_3060
- MiKo_4001
- MiKo_4002
Updated
- MiKo_1063 now knows term 'kept'
- MiKo_1070 is now aware of IGrouping (resolves #402)
- MiKo_1102 title fixed (resolves #398)
- MiKo_1400 enhanced to accept more namespaces
- MiKo_2022 code fix analyzer can now handle more phrases
- MiKo_2032 is now aware of some more phrases containing 'true:'
- MiKo_2033 is now aware of XML comments (resolves #401)
- MiKo_2035 can now fix some more texts
- MiKo_2070 is now able to fix more phrases (resolves #396)
- MiKo_2074 codefix provider is now able to handle empty XML
- MiKo_2300 - MiKo_2308 now also consider ctors
- MiKo_2302 now detects 'lock (...)'
- MiKo_3108 now better detects Moq.Verify invocations
- MiKo_3109 message slightly rephrased
- MiKo_3109 now ignores 'Assert.Multiple' itself (fixes #392)
- MiKo_3202 performance enhanced, better detection of commented out code
- MiKo_3205 now is aware of multiple 'yield return' in a row (fixes #391)
- MiKo_3206 is now aware of paranthesized lambda expressions
- Performance optimizations
- Updated to Microsoft.CodeAnalysis.CSharp.Workspaces v3.11.0
v0.0.38
Added new rules incl. codefix providers:
- MiKo_2059
- MiKo_2308
- MiKo_3030
- MiKo_3074
- MiKo_3109
- MiKo_3201
- MiKo_3202
- MiKo_3203
- MiKo_3204
- MiKo_3205
- MiKo_3206
- MiKo_3207
Added codefix providers for existing rules:
- MiKo_1018
- MiKo_1054
- MiKo_1059
- MiKo_3032
- MiKo_3104