package Ġno . t ornado . t orn ad of x . idea . quick fixes Ċ Ċ import Ġcom . intellij . code Insight . int ention . impl . Base Int ention Action Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġorg . jetbrains . kotlin . psi . Kt Call Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Lambda Argument Ċ import Ġorg . jetbrains . kotlin . psi . Kt Psi Factory Ċ Ċ /** Ċ Ġ* ĠAdds Ġa Ġquick fix Ġfor Ġin verting Ġcalls Ġto Ġ< code > visible When </ code > Ġand Ġ< code > hidden When </ code > Ċ Ġ* Ġif Ġthe Ġargument Ġis Ġinverted . Ċ Ġ* ĠThis Ġworks Ġin Ġboth Ġcases Ġwhen Ġthe Ġargument Ġis Ġa Ġproperty Ġor Ġa Ġlambda . Ċ Ġ* Ċ Ġ* ĠExample : Ċ Ġ* Ġvisible When ( empty Property . not ()) Ġ-> Ġhidden When ( empty Property ) Ċ Ġ*/ Ċ class ĠIn vert Visible Hidden When Quick fix ( private Ġval Ġelement : ĠK t Call Expression , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġis Visible When : ĠBoolean ) Ġ: ĠBase Int ention Action () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġreplace Function Ġ= Ġif Ġ( isVisible When ) Ġ" hidden When " Ġelse Ġ" visible When " ĊĊĠĠĠ Ġoverride Ġfun Ġget Family Name (): ĠString Ġ= Ġtext ĊĠĠĠ Ġoverride Ġfun ĠgetText (): ĠString Ġ= Ġ" Invert Ġcall Ġto Ġ" Ġ+ Ġif Ġ( isVisible When ) Ġ" visible When " Ġelse Ġ" hidden When " ĊĊĠĠĠ Ġoverride Ġfun Ġis Available ( project : ĠProject , Ġeditor : ĠEditor ?, Ġfile : ĠPsi File ?): ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke ( project : ĠProject , Ġeditor : ĠEditor ?, Ġfile : ĠPsi File ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġargument Ġ= Ġelement . value Arguments . first () ĊĠĠĠĠĠĠĠ Ġ// ĠStrip Ġaway Ġthe Ġ". not ()" ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġargument . text . substring ( 0 , Ġargument . text . length Ġ- Ġ". not () ". length ) ĊĠĠĠĠĠĠĠ Ġif Ġ( argument Ġis ĠK t Lambda Argument ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplace Lambda ( argument ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠK t Psi Factory ( element . project ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement . replace ( factory . create Expression ("$ replace Function ($ body ) ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreplace Lambda ( argument : ĠK t Lambda Argument ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠK t Psi Factory ( element . project ) ĊĠĠĠĠĠĠĠ Ġ// ĠRemove Ġ". not ()" Ġwhile Ġkeeping Ġthe Ġformatting ĊĠĠĠĠĠĠĠ Ġval Ġlambda Ġ= Ġargument . text . replace ( Regex ("( \\. not \\ (\\ ))( \\ s * }) $ "), Ġ"$ 2 ") ĊĠĠĠĠĠĠĠ Ġelement . replace ( factory . create Expression ("$ replace Function $ lambda ")) ĊĠĠĠ Ġ} Ċ } Ċ