Giter Site home page Giter Site logo

sonar-erlang-plugin's People

Contributors

kalidasya avatar spil-tamas avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

sonar-erlang-plugin's Issues

coverage report can be based on XML

I know it might have been too late, but still. You could have XML output instead of HTML if you used covertool plugin:

It returns this kind of XML after invocation:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<coverage timestamp="1340136630515" line-rate="0.0" lines-covered="0" lines-valid="0" branch-rate="0.0" branches-covered="0" branches-valid="0" complexity="0" version="1.9.4.1">
  <sources>
    <source>/home/motiejus/code/Game-Logic-Service/src</source>
  </sources>
  <packages>
    <package name="gl.gl.worker" line-rate="0.800000" branch-rate="0.0" complexity="0">
      <classes>
        <class name="gl_worker" filename="gl_worker.erl" line-rate="0.800000" branch-rate="0.0" complexity="0">
          <methods/>
          <lines>
            <line number="25" hits="8"/>
            <line number="27" hits="8"/>
            <line number="29" hits="8"/>
            <line number="30" hits="8"/>
            <line number="32" hits="0"/>
            <line number="34" hits="8"/>
            <line number="35" hits="8"/>
            <line number="39" hits="8"/>
            <line number="41" hits="0"/>
            <line number="46" hits="6"/>
            <line number="47" hits="6"/>
            <line number="51" hits="2"/>
            <line number="53" hits="2"/>
            <line number="55" hits="6"/>
            <line number="56" hits="6"/>
            <line number="57" hits="0"/>
            <line number="58" hits="6"/>
            <line number="65" hits="3"/>
            <line number="67" hits="6"/>
            <line number="72" hits="6"/>
            <line number="76" hits="3"/>
            <line number="80" hits="8"/>
            <line number="81" hits="5"/>
            <line number="82" hits="3"/>
            <line number="85" hits="8"/>
            <line number="86" hits="6"/>
            <line number="87" hits="6"/>
            <line number="88" hits="0"/>
            <line number="89" hits="6"/>
            <line number="97" hits="18"/>
            <line number="99" hits="0"/>
            <line number="100" hits="0"/>
            <line number="103" hits="2"/>
            <line number="104" hits="2"/>
            <line number="106" hits="0"/>
          </lines>
        </class>
      </classes>
    </package>
    <package name="gl.gl.app" line-rate="1.000000" branch-rate="0.0" complexity="0">
      <classes>
        <class name="gl_app" filename="gl_app.erl" line-rate="1.000000" branch-rate="0.0" complexity="0">
          <methods/>
          <lines>
            <line number="13" hits="8"/>
            <line number="16" hits="8"/>
          </lines>
        </class>
      </classes>
    </package>
    <package name="gl.gen.gamelogic" line-rate="0.0" branch-rate="0.0" complexity="0">
      <classes>
        <class name="gen_gamelogic" filename="gen_gamelogic.erl" line-rate="0.0" branch-rate="0.0" complexity="0">
          <methods/>
          <lines/>
        </class>
      </classes>
    </package>
    <package name="gl.gl" line-rate="1.000000" branch-rate="0.0" complexity="0">
      <classes>
        <class name="gl" filename="gl.erl" line-rate="1.000000" branch-rate="0.0" complexity="0">
          <methods/>
          <lines>
            <line number="10" hits="8"/>
          </lines>
        </class>
      </classes>
    </package>
    <package name="gl.gl.control" line-rate="1.000000" branch-rate="0.0" complexity="0">
      <classes>
        <class name="gl_control" filename="gl_control.erl" line-rate="1.000000" branch-rate="0.0" complexity="0">
          <methods/>
          <lines>
            <line number="28" hits="8"/>
            <line number="29" hits="8"/>
            <line number="30" hits="8"/>
            <line number="40" hits="3"/>
            <line number="41" hits="3"/>
            <line number="46" hits="5"/>
            <line number="47" hits="5"/>
            <line number="52" hits="3"/>
            <line number="53" hits="3"/>
          </lines>
        </class>
      </classes>
    </package>
    <package name="gl.gl.sup" line-rate="1.000000" branch-rate="0.0" complexity="0">
      <classes>
        <class name="gl_sup" filename="gl_sup.erl" line-rate="1.000000" branch-rate="0.0" complexity="0">
          <methods/>
          <lines>
            <line number="20" hits="8"/>
            <line number="27" hits="8"/>
          </lines>
        </class>
      </classes>
    </package>
    <package name="gl.gl.types" line-rate="0.0" branch-rate="0.0" complexity="0">
      <classes>
        <class name="gl_types" filename="gl_types.erl" line-rate="0.0" branch-rate="0.0" complexity="0">
          <methods/>
          <lines/>
        </class>
      </classes>
    </package>
    <package name="gl.gl.tic" line-rate="0.000000" branch-rate="0.0" complexity="0">
      <classes>
        <class name="gl_tic_tac_toe" filename="gl_tic_tac_toe.erl" line-rate="0.000000" branch-rate="0.0" complexity="0">
          <methods/>
          <lines>
            <line number="29" hits="0"/>
            <line number="30" hits="0"/>
            <line number="34" hits="0"/>
            <line number="36" hits="0"/>
            <line number="38" hits="0"/>
            <line number="39" hits="0"/>
            <line number="45" hits="0"/>
            <line number="46" hits="0"/>
            <line number="48" hits="0"/>
            <line number="50" hits="0"/>
            <line number="57" hits="0"/>
            <line number="58" hits="0"/>
            <line number="59" hits="0"/>
            <line number="62" hits="0"/>
            <line number="64" hits="0"/>
            <line number="72" hits="0"/>
            <line number="75" hits="0"/>
            <line number="84" hits="0"/>
            <line number="91" hits="0"/>
            <line number="92" hits="0"/>
            <line number="93" hits="0"/>
            <line number="95" hits="0"/>
            <line number="96" hits="0"/>
            <line number="97" hits="0"/>
            <line number="99" hits="0"/>
            <line number="100" hits="0"/>
            <line number="103" hits="0"/>
            <line number="104" hits="0"/>
            <line number="105" hits="0"/>
            <line number="110" hits="0"/>
            <line number="111" hits="0"/>
            <line number="113" hits="0"/>
            <line number="114" hits="0"/>
          </lines>
        </class>
      </classes>
    </package>
    <package name="gl.mpserver.play" line-rate="0.0" branch-rate="0.0" complexity="0">
      <classes/>
    </package>
    <package name="gl.mpserver.starter" line-rate="0.0" branch-rate="0.0" complexity="0">
      <classes/>
    </package>
    <package name="gl.mpserver" line-rate="0.0" branch-rate="0.0" complexity="0">
      <classes/>
    </package>
    <package name="gl.mpserver.sup" line-rate="0.0" branch-rate="0.0" complexity="0">
      <classes/>
    </package>
    <package name="gl.mpserver.types" line-rate="0.0" branch-rate="0.0" complexity="0">
      <classes/>
    </package>
    <package name="gl.mpserver.app" line-rate="0.0" branch-rate="0.0" complexity="0">
      <classes/>
    </package>
  </packages>
</coverage>

idea for "bad smell" :: record coupling between modules

Idea for record coupling evaluation

When same record is used in many modules, it is a sign of inter-module coupling. Usually having 3 or more modules use the same record is a sign of bad smell.

Here is a prototype that does this. It shows the point.

If you decide to make a proper version, note these defficiencies of the prototype. I might be able to suggest ideas how to overcome them:

  • source and include directories should be consulted from rebar.config
  • two unrelated header files can define a record with the same name. Then script is wrong.
  • a record can be defined in a header file, and another record with the same name in an unrelated module. Then script thinks that the same record is in that module. But it is not.
  • record "usage" in strings and binaries are false positives.

Add TODO counter

Check how is it possible in Sonar, where can we store the number of TODOs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.