package Ġcom . no he lt cj . z inc . compiler . plugin . registration Ċ Ċ import Ġcom . google . auto . service . Auto Service Ċ import Ġcom . no he lt cj . z inc . compiler . plugin . Service Locator Ċ import Ġcom . no he lt cj . z inc . compiler . plugin . analysis . Z inc Analysis Handler Extension Ċ import Ġcom . no he lt cj . z inc . compiler . plugin . configuration . Resolved Configuration Ċ import Ġorg . jetbrains . kotlin . cli . common . messages . Compiler Message Severity Ċ import Ġorg . jetbrains . kotlin . com . intellij . mock . Mock Project Ċ import Ġorg . jetbrains . kotlin . com . intellij . openapi . extensions . impl . Extension Point Impl Ċ import Ġorg . jetbrains . kotlin . com . intellij . openapi . project . Project Ċ import Ġorg . jetbrains . kotlin . compiler . plugin . Component Registrar Ċ import Ġorg . jetbrains . kotlin . config . Compiler Configuration Ċ import Ġorg . jetbrains . kotlin . extensions . Project Extension Descriptor Ċ import Ġorg . jetbrains . kotlin . resolve . jvm . extensions . Analysis Handler Extension Ċ Ċ @ Auto Service ( Component Registrar :: class ) Ċ class ĠZ inc Component Registrar Ġ: ĠComponent Registrar Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġregister Project Components ( project : ĠMock Project , Ġconfiguration : ĠCompiler Configuration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage Collector Ġ= ĠService Locator . provide Message Collector ( configuration ) ĊĊĠĠĠĠĠĠĠ Ġmessage Collector . report ( Compiler Message Severity . INFO , Ġ" Register ing ĠZ inc Ġcomponents ...") ĊĊĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresolved Configuration Ġ= ĠResolved Configuration . from Configuration ( configuration ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resolved Configuration . isEnabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnalysis Handler Extension . register Extension As First ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Ġ= Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= ĠZ inc Analysis Handler Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Code Directory Ġ= Ġresolved Configuration . generated Sources Directory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġit . message Ġ?: Ġ" An Ġunknown Ġerror Ġoccurred ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Collector . report ( Compiler Message Severity . ERROR , Ġmessage , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > ĠProject Extension Descriptor < T >. register Extension As First ( ĊĠĠĠĠĠĠĠ Ġproject : ĠProject , ĊĠĠĠĠĠĠĠ Ġextension : ĠT ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . extension Area ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getExtension Point ( extension Point Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġit Ġas ĠExtension Point Impl Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Extension ( extension , Ġproject ) ĊĠĠĠ Ġ} Ċ } Ċ