/* Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ċ Ġ* Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . rust . ide . ins pe ctions . fixes Ċ Ċ import Ġcom . intellij . code Inspection . Local Quick Fix And Int ention Action On Psi Element Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġorg . rust . lang . core . psi .* Ċ import Ġorg . rust . lang . core . psi . ext . Rs Element Ċ import Ġorg . rust . lang . core . psi . ext . ancestor Or Self Ċ import Ġorg . rust . lang . core . resolve . known Items Ċ import Ġorg . rust . lang . core . resolve . process Local Variables Ċ import Ġorg . rust . lang . core . types . declaration Ċ import Ġorg . rust . lang . core . types . type Ċ import Ġorg . rust . openapi ext . build And Run Template Ċ import Ġorg . rust . openapi ext . create Smart Pointer Ċ Ċ class ĠInitialize With DefaultValue Fix ( element : ĠRs Element ) Ġ: ĠLocal Quick Fix And Int ention Action On Psi Element ( element ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetText () Ġ= Ġ" Initialize Ġwith Ġa Ġdefault Ġvalue " ĊĠĠĠ Ġoverride Ġfun Ġget Family Name () Ġ= Ġname ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke ( project : ĠProject , Ġfile : ĠPsi File , Ġeditor : ĠEditor ?, Ġstart Element : ĠPsi Element , Ġend Element : ĠPsi Element ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvariable Ġ= Ġstart Element . ancestor Or Self < Rs Expr >() Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġpat Binding Ġ= Ġvariable . declaration Ġas ? ĠRs Pat Binding Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġdeclaration Ġ= Ġpat Binding . ancestor Or Self < Rs Let Decl >() Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġsem icolon Ġ= Ġdeclaration . sem icolon Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġpsi Factory Ġ= ĠRs Psi Factory ( project ) ĊĠĠĠĠĠĠĠ Ġval Ġinit Expr Ġ= ĠRs DefaultValue Builder ( declaration . known Items , Ġdeclaration . containing Mod , Ġpsi Factory , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build For ( pat Binding . type , ĠRs DefaultValue Builder . get Visible Bindings ( start Element Ġas ĠRs Element )) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( declaration . eq Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeclaration . add Before ( psi Factory . create Eq (), Ġsem icolon ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġadded Init Expr Ġ= Ġdeclaration . add Before ( init Expr , Ġsem icolon ) ĊĠĠĠĠĠĠĠ Ġeditor ?. build And Run Template ( declaration , ĠlistOf ( added Init Expr . create Smart Pointer ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate If Compatible ( element : ĠRs Element ): ĠInitialize With DefaultValue Fix ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvariable Ġ= Ġelement . ancestor Or Self < Rs Expr >() Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpat Binding Ġ= Ġvariable . declaration Ġas ? ĠRs Pat Binding Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeclaration Ġ= Ġpat Binding . ancestor Or Self < Rs Let Decl >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( declaration ?. pat Ġ! is ĠRs Pat Ident Ġ|| Ġdeclaration . sem icolon Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠInitialize With DefaultValue Fix ( element ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ