Uploaded image for project: 'Clover'
  1. Clover
  2. CLOV-1785

Extend database format to handle statements and methods in a file

    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

      Allow better modelling of file-level statements and methods so that we can better support languages like Ruby which support top-level scripting constructs.

      Example:

      session.enterFile(..);
      session.enterMethod(...); // top-level-method, not inside a class
      ...
      // some statements
      ...
      session.exitMethod();
      ...
      session.addStatement(...); // top-level-statement, not inside a class or a method
      ...
      session.exitFile();
      

      Some preparation have been already done for Java 8 (Clover 3.2).

      Things to be checked:

      • how our code calculates the start/end line/col range for a statement/method outside a class
      • how it calculates code metrics for a file having top-level statements/methods
      • how it handles exclusion filters (statement/method regexp)
      • how it handles nested entities (method-in-method etc)

      Things to be implemented:

      • take into account these top-level statements/methods in reporting
        • show in XML / HTML / PDF / JSON
        • render lines
        • show in tables etc

      Out of scope:

      • test optimization

      Note:
      Looking at how Clojure is written, for any Clojure file there would only ever be one FileInfo containing lots of StatementInfos and MethodInfos but no ClassInfos.

            [CLOV-1785] Extend database format to handle statements and methods in a file

            No work has yet been logged on this issue.

              Unassigned Unassigned
              mparfianowicz Marek Parfianowicz
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Estimated:
                  Original Estimate - 5m
                  5m
                  Remaining:
                  Remaining Estimate - 5m
                  5m
                  Logged:
                  Time Spent - Not Specified
                  Not Specified