Release Notes - SonarSwift - Version 1.0 - HTML format

New Feature

  • [SONARSWIFT-1] - Swift Plugin
  • [SONARSWIFT-35] - Track duplications of code
  • [SONARSWIFT-36] - Compute basic metrics
  • [SONARSWIFT-37] - Protect the use of the Swift plugin by embedding the licensing mechanism
  • [SONARSWIFT-38] - Highlight Swift source code by using the SonarQube syntax highlighting mechanism
  • [SONARSWIFT-39] - Coding Rules Engine
  • [SONARSWIFT-40] - Rule: Each statement should end with a semicolon
  • [SONARSWIFT-42] - Rule: Function names should comply with a naming convention
  • [SONARSWIFT-43] - Rule: Class names should comply with a naming convention
  • [SONARSWIFT-44] - Rule: Lines should not be too long
  • [SONARSWIFT-45] - Rule: Tabulation characters should not be used
  • [SONARSWIFT-46] - Rule: Files should contain an empty new line at the end
  • [SONARSWIFT-47] - Rule: Local variable and function parameter names should comply with a naming convention
  • [SONARSWIFT-48] - Rule: Statements should be on separate lines
  • [SONARSWIFT-49] - Rule: "if ... else if" constructs shall be terminated with an "else" clause
  • [SONARSWIFT-51] - Rule: Control flow statements should not be nested too deeply
  • [SONARSWIFT-52] - Rule: Comments should not be located at the end of lines of code
  • [SONARSWIFT-53] - Rule: Collapsible "if" statements should be merged
  • [SONARSWIFT-54] - Rule: Expressions should not be too complex
  • [SONARSWIFT-55] - Rule: Lines should not end with trailing whitespaces
  • [SONARSWIFT-56] - Rule: Classes should not be too complex
  • [SONARSWIFT-58] - Rule: Functions should not be too complex
  • [SONARSWIFT-62] - Rule: Files should not be too complex
  • [SONARSWIFT-64] - Rule: "switch" statements should not be nested
  • [SONARSWIFT-65] - Rule: Jump statements should not be followed by other statements
  • [SONARSWIFT-66] - Rule: "switch" statements should have at least 3 "case" clauses
  • [SONARSWIFT-67] - Rule: Files should not have too many lines
  • [SONARSWIFT-68] - Rule: Nested blocks of code should not be left empty
  • [SONARSWIFT-69] - Provide a default "Sonar way" Quality Profile
  • [SONARSWIFT-101] - Rule: Create an issue on a file when parsing fails

Task

  • [SONARSWIFT-2] - Lexer for Swift
  • [SONARSWIFT-3] - Create Swift Grammar for GLL Parser based on Apple specification
  • [SONARSWIFT-4] - Resolve ambiguity: newline not allowed before identifier in break and continue statements
  • [SONARSWIFT-5] - Resolve ambiguity: newline not allowed before arguments in function call expression
  • [SONARSWIFT-6] - Resolve ambiguity
  • [SONARSWIFT-7] - Resolve ambiguity: forbid closure tail in condition of for, while and if statements
  • [SONARSWIFT-8] - Resolve ambiguity
  • [SONARSWIFT-9] - Resolve ambiguity: expression statements starting with dot sometimes should be merged with previous statement
  • [SONARSWIFT-10] - Resolve ambiguity: expression following 'return' should be treated as an argument of the 'return'
  • [SONARSWIFT-11] - Resolve ambiguity: statement cannot begin with a closure expression
  • [SONARSWIFT-13] - Parse correctly operator function name followed by generic
  • [SONARSWIFT-14] - Parse complex optional type
  • [SONARSWIFT-15] - Resolve usage of appropriate patterns in switch cases
  • [SONARSWIFT-16] - Resolve problem of using special operators as custom operators
  • [SONARSWIFT-18] - Resolve ambiguity
  • [SONARSWIFT-19] - Disambiguate between the closing > characters
  • [SONARSWIFT-20] - Create a stub for preprocessor directives
  • [SONARSWIFT-21] - Resolve ambiguity: function type should be constructed from right to left
  • [SONARSWIFT-22] - Fix closure expression with var parameter clause
  • [SONARSWIFT-24] - Resolve ambiguity: make parameter-clause treated differently in different contexts

Improvement

  • [SONARSWIFT-17] - Grammar: add "final" modifier to class-declaration
  • [SONARSWIFT-25] - Grammar: replace identifier by postfix-expression in in-out-expression
  • [SONARSWIFT-26] - Grammar: statements should be optional in closure-expression
  • [SONARSWIFT-27] - Grammar: replace last expression by expression-list in for-statement
  • [SONARSWIFT-28] - Grammar: allow semicolon at the end of declarations inside classes and structs
  • [SONARSWIFT-29] - Grammar: allow attributes for the type of array elements
  • [SONARSWIFT-30] - Grammar: allow negative literals in raw-value-assignment
  • [SONARSWIFT-31] - Grammar: allow precedence-clause before associativity-clause
  • [SONARSWIFT-32] - Grammar: willSet-clause should be optional in willSet-didSet-block
  • [SONARSWIFT-33] - Grammar: replace expression-list by expression-element-list in subscript-expression
  • [SONARSWIFT-34] - Grammar: add operators into expression-element

Edit/Copy Release Notes

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