// ĠCopyright Ġ 2 0 0 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . gr az ie . ide . f us Ċ Ċ import Ġcom . intellij . gr az ie . Gr az ie Config Ċ import Ġcom . intellij . gr az ie . config . Checking Context Ċ import Ġcom . intellij . gr az ie . ide . ui . grammar . tabs . rules . component . all Rules Ċ import Ġcom . intellij . internal . statistic . beans . Metric Event Ċ import Ġcom . intellij . internal . statistic . beans . new Metric Ċ import Ġcom . intellij . internal . statistic . event Log . Feature Usage Data Ċ import Ġcom . intellij . internal . statistic . service . f us . collect ors . Application Usage s Collector Ċ import Ġcom . intellij . internal . statistic . utils . get Plugin Info Ċ Ċ internal Ġclass ĠGr az ie F US State Ġ: ĠApplication Usage s Collector () Ġ{ ĊĠ Ġoverride Ġfun Ġget GroupId (): ĠString Ġ= Ġ" gr az ie . state " ĊĠ Ġoverride Ġfun Ġget Version (): ĠInt Ġ= Ġ 3 ĊĊĠ Ġoverride Ġfun Ġget Metrics (): ĠSet < Metric Event > Ġ{ ĊĠĠĠ Ġval Ġmetrics Ġ= ĠHashSet < Metric Event >() ĊĊĠĠĠ Ġval Ġstate Ġ= ĠGr az ie Config . get () ĊĊĠĠĠ Ġfor Ġ( lang Ġin Ġstate . enabled Languages ) Ġ{ ĊĠĠĠĠĠ Ġmetrics . add ( new Metric (" enabled . language ", Ġlang . iso )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġall Rules Ġby Ġlazy Ġ{ Ġall Rules (). values . flatten (). groupBy Ġ{ Ġit . global Id Ġ} Ġ} ĊĠĠĠ Ġfun Ġlog Rule ( id : ĠString , Ġenabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠ Ġval Ġrule Ġ= Ġall Rules [ id ]?. first OrNull () Ġ?: Ġreturn ĊĠĠĠĠĠ Ġmetrics . add ( new Metric (" rule ", ĠFeature Usage Data () ĊĠĠĠĠĠĠĠ Ġ. add Plugin Info ( get Plugin Info ( rule . java Class )) ĊĠĠĠĠĠĠĠ Ġ. addData (" id ", Ġid ) ĊĠĠĠĠĠĠĠ Ġ. addData (" enabled ", Ġenabled ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġstate . user Enabled Rules . forEach Ġ{ Ġlog Rule ( it , Ġenabled Ġ= Ġtrue ) Ġ} ĊĠĠĠ Ġstate . user Disabled Rules . forEach Ġ{ Ġlog Rule ( it , Ġenabled Ġ= Ġfalse ) Ġ} ĊĊĠĠĠ Ġval Ġchecking Context Ġ= Ġstate . checking Context ĊĠĠĠ Ġfor Ġ( id Ġin Ġchecking Context . disabled Languages ) Ġ{ ĊĠĠĠĠĠ Ġmetrics . add ( new Metric (" checking Context ", ĠFeature Usage Data (). addData (" language ", Ġid ). addData (" user Change ", Ġ" disabled "))) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor Ġ( id Ġin Ġchecking Context . enabled Languages ) Ġ{ ĊĠĠĠĠĠ Ġmetrics . add ( new Metric (" checking Context ", ĠFeature Usage Data (). addData (" language ", Ġid ). addData (" user Change ", Ġ" enabled "))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdefaults Ġ= ĠChecking Context () ĊĠĠĠ Ġfun Ġcheck Domain ( name : ĠString , Ġis Enabled : Ġ( Checking Context ) Ġ-> ĠBoolean ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( isEnabled ( defaults ) Ġ!= Ġis Enabled ( checking Context )) Ġ{ ĊĠĠĠĠĠĠĠ Ġmetrics . add ( new Metric (" checking Context ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFeature Usage Data (). addData ( name , Ġif Ġ( isEnabled ( checking Context )) Ġ" enabled " Ġelse Ġ" disabled "))) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcheck Domain (" documentation ") Ġ{ Ġit . is Check In Documentation Enabled Ġ} ĊĠĠĠ Ġcheck Domain (" comments ") Ġ{ Ġit . is Check In Comments Enabled Ġ} ĊĠĠĠ Ġcheck Domain (" literals ") Ġ{ Ġit . is Check In String L iterals Enabled Ġ} ĊĠĠĠ Ġcheck Domain (" commit ") Ġ{ Ġit . is Check In Commit Messages Enabled Ġ} ĊĊĠĠĠ Ġreturn Ġmetrics ĊĠ Ġ} Ċ } Ċ