Release Notes - SonarSlang - Version 1.4 - HTML format

False-Positive

  • [SONARSLANG-292] - Constructor and "virtual" methods with empty body should not raise an issue.
  • [SONARSLANG-294] - Constructor that starts with an uppercase should not raise an issue.
  • [SONARSLANG-336] - [Slang] FP on ternary operator S134: Control flow statements should not be nested too deeply

Bug

  • [SONARSLANG-325] - Cognitive Complexity is not computed correctly for nested IF
  • [SONARSLANG-327] - [Scala] Rename SonarScala's plugin key to not conflict with community Scala plugin
  • [SONARSLANG-342] - Cognitive Complexity is not computed correctly for ternary operator
  • [SONARSLANG-346] - [Ruby] Fix NoClassDefFoundError RubyBigDecimal

New Feature

  • [SONARSLANG-256] - [Apex] Enable Rule: S1134 Track uses of "FIXME" tags
  • [SONARSLANG-257] - [Apex] Enable Rule: S1135 Track uses of "TODO" tags
  • [SONARSLANG-258] - [Apex] Enable Rule: S4663 Multi-line comments should not be empty
  • [SONARSLANG-259] - [Apex] Enable Rule: S105 Tabulation characters should not be used
  • [SONARSLANG-260] - [Apex] Enable Rule: S103 Lines should not be too long
  • [SONARSLANG-261] - [Apex] Enable Rule: S104 Files should not have too many lines of code
  • [SONARSLANG-262] - [Apex] Enable Rule: S1451 Track lack of copyright and license headers
  • [SONARSLANG-264] - [Apex] Reduce size of the Apex plugin
  • [SONARSLANG-267] - [Apex] Enable Rule: S101 Class names should comply with a naming convention
  • [SONARSLANG-274] - [Apex] Enable Rule: S126 "if ... else if" constructs should end with "else" clauses
  • [SONARSLANG-275] - [Apex] Enable Rule: S138 Methods should not have too many lines of code
  • [SONARSLANG-276] - [Apex] Enable Rule: S1186 Methods should not be empty
  • [SONARSLANG-277] - [Apex] Enable Rule: S100 Method names should comply with a naming convention
  • [SONARSLANG-278] - [Apex] Enable Rule: S107 Functions should not have too many parameters
  • [SONARSLANG-279] - [Apex] Enable Rule: S1066 Collapsible "if" statements should be merged
  • [SONARSLANG-280] - [Apex] Enable Rule: S1479 "switch" expressions should not have too many "case" clauses
  • [SONARSLANG-281] - [Apex] Enable Rule: S1313 Using hardcoded IP addresses is security-sensitive
  • [SONARSLANG-282] - [Apex] Enable Rule: S1151 "switch case" clauses should not have too many lines of code
  • [SONARSLANG-283] - [Apex] Enable Rule: S1821 "switch" statements should not be nested
  • [SONARSLANG-284] - [Apex] Enable Rule: S1764 Identical expressions should not be used on both sides of a binary operator
  • [SONARSLANG-285] - [Apex] Add Cognitive Complexity ITs
  • [SONARSLANG-288] - Support Kotlin 1.3.10
  • [SONARSLANG-296] - [Apex] Enable Rule: S122 Statements should be on separate lines
  • [SONARSLANG-297] - [Apex] Enable Rule: S108 Nested blocks of code should not be left empty
  • [SONARSLANG-298] - [Apex] Enable Rule: S1145 Useless "if(true) {...}" and "if(false){...}" blocks should be removed
  • [SONARSLANG-299] - [Apex] Enable Rule: S1940 Boolean checks should not be inverted
  • [SONARSLANG-305] - [Apex] Enable Rule: S1110 Redundant pairs of parentheses should be removed
  • [SONARSLANG-306] - [Apex] Enable Rule: S1125 Boolean literals should not be redundant
  • [SONARSLANG-307] - [Apex] Enable Rule: S1144 Unused "private" methods should be removed
  • [SONARSLANG-308] - [Apex] Enable Rule: S125 Sections of code should not be commented out
  • [SONARSLANG-309] - [Apex] Enable Rule: S1314 Octal values should not be used
  • [SONARSLANG-310] - [Apex] Enable Rule: S2757 "=+" should not be used instead of "+="
  • [SONARSLANG-311] - [Apex] Enable Rule: S1481 Unused local variables should be removed
  • [SONARSLANG-312] - [Apex] Enable Rule: S131 "switch" statements should have "default" clauses
  • [SONARSLANG-313] - [Apex] Enable Rule: S1172 Unused function parameters should be removed
  • [SONARSLANG-314] - [Apex] Enable Rule: S4144 Methods should not have identical implementations
  • [SONARSLANG-315] - [Apex] Enable Rule: S1763 Jump statements should not be followed by dead code
  • [SONARSLANG-316] - [Apex] Enable Rule: S117 Local variable and function parameter names should comply with a naming convention
  • [SONARSLANG-317] - [Apex] Enable Rule: S1067 Expressions should not be too complex
  • [SONARSLANG-318] - [Apex] Enable Rule: S1656 Variables should not be self-assigned
  • [SONARSLANG-319] - [Apex] Enable Rule: S134 Control flow statements "if", "for", "while", "switch" and "try" should not be nested too deeply
  • [SONARSLANG-320] - [Apex] Enable Rule: S3776 Cognitive Complexity of functions should not be too high
  • [SONARSLANG-321] - [Apex] Enable Rule: S2068 Credentials should not be hard-coded
  • [SONARSLANG-322] - [Apex] Enable Rule: S1862 Related "if/else if" statements should not have the same condition
  • [SONARSLANG-323] - [Apex] Enable Rule: S1871 Two branches in a conditional structure should not have exactly the same implementation
  • [SONARSLANG-324] - [Apex] Enable Rule: S3923 All branches in a conditional structure should not have exactly the same implementation
  • [SONARSLANG-328] - [Apex] SonarApex's plugin key should be "sonarapex"
  • [SONARSLANG-343] - Allow the import PMD-Apex report
  • [SONARSLANG-345] - [Apex] Allow the import of Salesforce DX projects test coverage reports

Task

  • [SONARSLANG-250] - [Apex] Create sonar-apex-plugin skeleton
  • [SONARSLANG-251] - [Apex] Add front-end using "Apex Parser"
  • [SONARSLANG-265] - [Apex] Create documentation https://docs.sonarqube.org/display/PLUG/SonarApex
  • [SONARSLANG-266] - [Apex] Add ruling IT
  • [SONARSLANG-268] - [Apex] Add "yguard" obfuscation to "sonar-apex-plugin-1.0.jar"
  • [SONARSLANG-269] - [Apex] Enable Licence
  • [SONARSLANG-271] - [Apex] Includes Literal, Identifier and ClassDeclaration in Slang AST conversion
  • [SONARSLANG-272] - [Apex] Resolve ambiguity between identifiers and keywords using Apex AST
  • [SONARSLANG-273] - Move the TestUtils in main Slang repository
  • [SONARSLANG-332] - [Slang] Enhance TreeMetaDataProvider API to provide access to all tokens, index of tokens and update of token types
  • [SONARSLANG-335] - [Apex] Support TernaryExpr in AST conversion
  • [SONARSLANG-338] - [Slang] Fix intermittent build failure due to concurrent modification of LogTester
  • [SONARSLANG-339] - [Apex] Move SonarSource/sonar-apex repository into SonarSource/slang-enterprise/private
  • [SONARSLANG-344] - [Slang, Apex] Update rules metadata
  • [SONARSLANG-349] - Fix SSF-63
  • [SONARSLANG-368] - Update SonarLint IT to test APEX and Scala

Improvement

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.