Skip to content

Releases: RalfKoban/MiKo-Analyzers

v0.0.46

06 Jun 15:56
e39df16
Compare
Choose a tag to compare
v0.0.46 Pre-release
Pre-release

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

25 Mar 17:50
98a731c
Compare
Choose a tag to compare
v0.0.45 Pre-release
Pre-release

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...
Read more

v0.0.44

21 Oct 13:44
c4e6b55
Compare
Choose a tag to compare
v0.0.44 Pre-release
Pre-release

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

22 Feb 12:40
Compare
Choose a tag to compare
v0.0.42 Pre-release
Pre-release
  • Added support for Visual Studio 2022

TODO

v0.0.41

22 Feb 12:42
Compare
Choose a tag to compare
v0.0.41 Pre-release
Pre-release

v0.0.40

07 Oct 11:43
Compare
Choose a tag to compare
v0.0.40 Pre-release
Pre-release

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

08 Aug 09:35
Compare
Choose a tag to compare
v0.0.38 Pre-release
Pre-release

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

v0.0.37

21 Nov 12:50
29832bf
Compare
Choose a tag to compare
v0.0.37 Pre-release
Pre-release
Merge pull request #361 from RalfKoban/CodeFixProviders

Added Code fix providers and fixed some false positives

v0.0.36

09 Oct 11:21
Compare
Choose a tag to compare
v0.0.36 Pre-release
Pre-release

v0.0.35

07 Sep 14:39
Compare
Choose a tag to compare
v0.0.35 Pre-release
Pre-release

Code fix providers added for rules:

MiKo_1016
MiKo_1044
MiKo_1070
MiKo_2001
MiKo_2015
MiKo_2018
MiKo_2022
MiKo_2023
MiKo_2050
MiKo_2074
MiKo_2080
MiKo_4004