package Ġio . github . k sm ire n ko . kotlin . feature Calc . metrics Ċ Ċ import Ġcom . intellij . psi . Java Recursive Element Visitor Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . six rr . stock metrics . utils . Line Util Ċ import Ġorg . jetbrains . kotlin . psi . Kt Named Function Ċ Ċ class ĠMethod Relative Loc Metric Ġ: ĠMetric ( ĊĠĠĠĠĠĠĠ Ġcsv Name Ġ= Ġ" relative Loc ", ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Ðŀ ÑĤ Ð½Ð¾ Ñģ Ð¸ÑĤÐµÐ»ÑĮ Ð½Ð¾Ðµ ĠÑĩ Ð¸Ñģ Ð»Ð¾ ĠÑģÑĤÑĢÐ¾Ðº ĠÐº Ð¾Ð´Ð° " Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġvisitor : ĠVisitor Ġby Ġlazy Ġ{ ĠVisitor () Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠVisitor Ġ: ĠJava Recursive Element Visitor () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Element ( element : ĠPsi Element ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( element Ġ! is ĠK t Named Function ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfun Lines Count Ġ= ĠLine Util . count Lines ( element ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġparent Ġis Ġassumed Ġto Ġbe Ġclass , Ġobject Ġor Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Lines Count Ġ= ĠLine Util . count Lines ( element . parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfun Name Ġ= Ġelement . fq Name . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend Record ( fun Name , Ġ 1 . 0 Ġ* Ġfun Lines Count Ġ/ Ġparent Lines Count ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ