package Ġcom . github . o ow ek y ala . ij cc . ide . ins pe ctions Ċ Ċ import Ġcom . github . o ow ek y ala . ij cc . lang . psi .* Ċ import Ġcom . github . o ow ek y ala . ij cc . util . En closed Logger Ċ import Ġcom . intellij . code Inspection . Local Quick Fix Ċ import Ġcom . intellij . code Inspection . Problem Descriptor Ċ import Ġcom . intellij . code Inspection . Problems Holder Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . Psi Element Visitor Ċ import Ġcom . intellij . util . Incorrect OperationException Ċ import Ġorg . intellij . lang . annotations . Language Ċ Ċ /** Ċ Ġ* Ġ@ author ĠCl Ã©ment ĠF o urn ier Ċ Ġ* Ġ@ since Ġ 1 . 0 Ċ Ġ*/ Ċ class ĠUn necessary Angle d Br aces Regex Inspection Ġ: ĠJ cc Inspection Base ( Inspection Name ) Ġ{ ĊĊĠĠĠ Ġ@ Language (" HTML ") ĊĠĠĠ Ġoverride Ġfun ĠgetStatic Description (): ĠString ? Ġ= Ġ""" ĊĠĠĠĠĠĠĠ ĠReports Ġunnecessary Ġangle d Ġbr aces Ġaround Ġa Ġstring Ġliteral Ġor Ġa Ġtoken Ġreference . ĊĠĠĠĠĠĠĠ ĠE . g . Ġ< b >< code >& lt ; Ġ" foo " Ġ& gt ;</ code ></ b > Ġis Ġequivalent Ġto Ġ< b >< code >" foo "</ code ></ b >. ĊĠĠĠĠĠĠĠ ĠFor Ġtoken Ġreferences , Ġe . g . Ġ< code >& lt ; Ġ& lt ; FOO & gt ; Ġ& gt ;</ code > Ġis Ġonly Ġequivalent ĊĠĠĠĠĠĠĠ Ġto Ġ< code >& lt ; FOO & gt ;</ code > Ġif Ġthe Ġregular Ġexpression Ġ< code > FOO </ code > Ġis Ġnot Ġprivate . ĊĠĠĠ Ġ""" . trim Indent () ĊĊĊĠĠĠ Ġoverride Ġfun Ġbuild Visitor ( holder : ĠPro blems Holder , Ġis On The Fly : ĠBoolean ): ĠPsi Element Visitor Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠJ cc Visitor () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Container Regular Expression ( o : ĠJ cc Container Regular Expression ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( o . is Un closed ) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregex Ġ= Ġo . regex Element Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( regex Ġis ĠJ cc Literal Regex Unit Ġ|| Ġregex Ġis ĠJ cc Token Reference Regex Unit Ġ&& Ġregex . typed Reference . resolve Token ()?. is Private Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . register Problem ( o , ĠProblem Description , ĠMy Quick Fix ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġobject ĠLog Ġ: ĠEn closed Logger () ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIns pection Name Ġ= Ġ" Un necessary Ġangle d Ġbr aces Ġaround Ġregex " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠProblem Description Ġ= Ġ" Un necessary Ġangle d Ġbr aces " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠQuick Fix Name Ġ= Ġ" Un wrap Ġangle d Ġbr aces " ĊĊĊĠĠĠĠĠĠĠ Ġprivate Ġclass ĠMy Quick Fix Ġ: ĠLocal Quick Fix Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Family Name (): ĠString Ġ= Ġname ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ= ĠQuick Fix Name ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġapply Fix ( project : ĠProject , Ġdescriptor : ĠProblem Descriptor ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinline Ġ= Ġdescriptor . psi Element Ġas ĠJ cc Container Regular Expression ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregex Ġ= Ġinline . regex Element !!. prom ote To Regex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline . safe Replace ( regex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInc orrect OperationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Ġ{ Ġerror ( e ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ