package Ġorg . cq fn . di kt at . rule set . rules . chapter 5 Ċ Ċ import Ġorg . cq fn . di kt at . common . config . rules . Rule Configuration Ċ import Ġorg . cq fn . di kt at . common . config . rules . Rules Config Ċ import Ġorg . cq fn . di kt at . common . config . rules . get Rule Config Ċ import Ġorg . cq fn . di kt at . rule set . constants . Warnings . TOO _ MAN Y _ LINES _ IN _ L AMBDA Ċ import Ġorg . cq fn . di kt at . rule set . rules . D ik tat Rule Ċ import Ġorg . cq fn . di kt at . rule set . utils .* Ċ Ċ import Ġcom . p interest . kt lint . core . ast . ElementType Ċ import Ġorg . jetbrains . kotlin . com . intellij . lang . AST Node Ċ Ċ /** Ċ Ġ* ĠRule Ġ 5 . 2 . 5 Ġcheck Ġlambda Ġlength Ġwithout Ġparameters Ċ Ġ*/ Ċ class ĠLambda Length Rule ( config Rules : ĠList < Rules Config >) Ġ: ĠD ik tat Rule ( ĊĠĠĠ ĠNAME _ ID , ĊĠĠĠ Ġconfig Rules , ĊĠĠĠ ĠlistOf ( TOO _ MAN Y _ LINES _ IN _ L AMBDA ) Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġconfiguration Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠLambda Length Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . config Rules . get Rule Config ( TOO _ MAN Y _ LINES _ IN _ L AMBDA )?. configuration Ġ?: Ġempty Map () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlogic ( node : ĠAST Node ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( node . elementType Ġ== ĠElementType . L AMBDA _ EXPRESSION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Lambda ( node , Ġconfiguration ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Lambda ( node : ĠAST Node , Ġconfiguration : ĠLambda Length Configuration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Lambda Ġ= Ġcount Code Lines ( node ) ĊĠĠĠĠĠĠĠ Ġif Ġ( size Lambda Ġ> Ġconfiguration . max Lambda Length Ġ&& Ġdoes Lambda Contain It ( node )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTO O _ MAN Y _ LINES _ IN _ L AMBDA . warn ( config Rules , Ġemit Warn , Ġis Fix Mode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" max Ġlength Ġlambda Ġwithout Ġarguments Ġis Ġ${ configuration . max Lambda Length }, Ġbut Ġyou Ġhave Ġ$ size Lambda ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode . start Offset , Ġnode ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ[ Rule Configuration ] Ġfor Ġlambda Ġlength ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠLambda Length Configuration ( config : ĠMap < String , ĠString >) Ġ: ĠRule Configuration ( config ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠMaximum Ġallowed Ġlambda Ġlength ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġmax Lambda Length Ġ= Ġconfig [" max Lambda Length "] ?. to Long () Ġ?: ĠMAX _ LINES _ IN _ L AMBDA ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMAX _ LINES _ IN _ L AMBDA Ġ= Ġ 1 0 L ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNAME _ ID Ġ= Ġ" lambda - length " ĊĠĠĠ Ġ} Ċ } Ċ