kalidasya / sonar-erlang-plugin Goto Github PK
View Code? Open in Web Editor NEWAn Erlang plugin for sonar to make it possible to analyse Erlang projects as well
An Erlang plugin for sonar to make it possible to analyse Erlang projects as well
Add new metrics gathered by RefactorErl:
http://pnyf.inf.elte.hu/trac/refactorerl/wiki/MetricQuery
To implement this, refactor needed in the dialyzer package.
New branch has been created for this called: extendRules
It seems the sensor is using the rule.xml and not the currently active profile... these references must be removed
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 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:
Check how is it possible in Sonar, where can we store the number of TODOs
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.