package Ġcom . intellij . plugin . powershell . lang Ċ Ċ import Ġcom . intellij . application . options . Code Style Ċ import Ġcom . intellij . openapi . application . Application Manager Ċ import Ġcom . intellij . openapi . command . Command Processor Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġcom . intellij . plugin . powershell . ide . editor . formatting . PowerShell Code Style Settings Ċ import Ġcom . intellij . psi . Psi Document Manager Ċ import Ġcom . intellij . psi . Psi File Factory Ċ import Ġcom . intellij . psi . code Style . Code Style Manager Ċ import Ġcom . intellij . psi . code Style . Common Code Style Settings Ċ import Ġcom . intellij . psi . formatter . Formatter TestCase Ċ import Ġcom . intellij . util . Incorrect OperationException Ċ import Ġjunit . framework . TestCase Ċ Ċ class ĠPowerShell Formatter Test Ġ: ĠFormatter TestCase () Ġ{ ĊĊĠ Ġprivate Ġval Ġmy TestData Dir Ġ= Ġ" src / test / resources / testData /" ĊĊĠ Ġoverride Ġfun Ġget BasePath (): ĠString Ġ= Ġ" format " ĊĠ Ġoverride Ġfun ĠgetFile Extension (): ĠString Ġ= Ġ" ps 1 " ĊĠ Ġoverride Ġfun Ġget TestData Path (): ĠString Ġ= Ġmy TestData Dir ĊĊĠ Ġfun Ġtest Block Indent () Ġ{ ĊĠĠĠ Ġdo Test (" indent s ", Ġ" indent s _ res ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Br aces Shift ed Indent () Ġ{ ĊĠĠĠ Ġval Ġtemp Test Settings Ġ= Ġget Common Settings () ĊĠĠĠ Ġtemp Test Settings . BRACE _ STYLE Ġ= ĠCommon Code Style Settings . NEXT _ LINE _ SHIFT ED 2 ĊĠĠĠ Ġtemp Test Settings . METHOD _ BRACE _ STYLE Ġ= ĠCommon Code Style Settings . NEXT _ LINE _ SHIFT ED 2 ĊĠĠĠ Ġdo Test (" indent _ brace ", Ġ" indent _ brace _ res ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Dependent Brace Placement () Ġ{ ĊĠĠĠ Ġval Ġsettings Ġ= Ġget Common Settings () ĊĠĠĠ Ġsettings . BRACE _ STYLE Ġ= ĠCommon Code Style Settings . NEXT _ LINE _ IF _ WRAP PED ĊĠĠĠ Ġsettings . METHOD _ BRACE _ STYLE Ġ= ĠCommon Code Style Settings . NEXT _ LINE _ IF _ WRAP PED ĊĠĠĠ Ġdo Test (" br aces 1 ", Ġ" br aces 1 _ if _ wrapped _ res ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Pipeline Wrap () Ġ{ ĊĠĠĠ Ġval Ġps Settings Ġ= Ġget PowerShell Settings () ĊĠĠĠ Ġps Settings . PIPELINE _ TAIL _ WRAP Ġ= ĠCommon Code Style Settings . WRAP _ ALWAYS ĊĠĠĠ Ġps Settings . ALIGN _ MULT IL INE _ PIPELINE _ STATE MENT Ġ= Ġtrue ĊĠĠĠ Ġdo Test (" indent _ brace ", Ġ" indent _ brace _ pipeline _ wrap _ res ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Block Parameters Wrap () Ġ{ ĊĠĠĠ Ġdo Test (" wrap _ block _ parameters ", Ġ" wrap _ block _ parameters _ default _ res ") ĊĠĠĠ Ġval Ġps Settings Ġ= Ġget PowerShell Settings () ĊĠĠĠ Ġps Settings . ALIGN _ MULT IL INE _ BLOCK _ PARAMETERS Ġ= Ġtrue ĊĠĠĠ Ġps Settings . BLOCK _ PARAMETER _ CLA USE _ WRAP Ġ= ĠCommon Code Style Settings . WRAP _ ALWAYS ĊĠĠĠ Ġdo Test (" wrap _ block _ parameters ", Ġ" wrap _ block _ parameters _ res ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Default 1 () Ġ{ ĊĠĠĠ Ġval Ġtemp Test Settings Ġ= Ġget Common Settings () ĊĠĠĠ Ġtemp Test Settings . KEEP _ LINE _ BREAK S Ġ= Ġfalse ĊĠĠĠ Ġdo Test (" default 1 ", Ġ" default 1 _ res ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Chain ed Call Wrap () Ġ{ ĊĠĠĠ Ġval Ġsettings Ġ= Ġget Common Settings () ĊĠĠĠ Ġsettings . RIGHT _ M ARGIN Ġ= Ġ 6 0 ĊĠĠĠ Ġsettings . METHOD _ CALL _ CHAIN _ WRAP Ġ= ĠCommon Code Style Settings . WRAP _ AS _ NE EDED ĊĠĠĠ Ġdo Test (" wrap _ chain ed _ call ", Ġ" wrap _ chain ed _ call _ if _ long _ res ") ĊĊĠĠĠ Ġsettings . WRAP _ FIRST _ METHOD _ IN _ CALL _ CHAIN Ġ= Ġtrue ĊĠĠĠ Ġdo Test (" wrap _ chain ed _ call ", Ġ" wrap _ chain ed _ call _ if _ long _ first _ wrap _ res ") ĊĠ Ġ} ĊĠĠĊĠ Ġfun Ġtest No Spacing For Compound Identifiers () Ġ{ ĊĠĠĠ Ġval Ġsettings Ġ= Ġget Common Settings () ĊĠĠĠ Ġsettings . SPACE _ AR O UND _ MULTI PL IC ATIVE _ OPER ATORS Ġ= Ġtrue ĊĠĠĠ Ġdo Test (" compound _ identifiers ", Ġ" compound _ identifiers _ res ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Chain ed Call Wrap Alignment () Ġ{ ĊĠĠĠ Ġval Ġsettings Ġ= Ġget Common Settings () ĊĠĠĠ Ġsettings . RIGHT _ M ARGIN Ġ= Ġ 6 0 ĊĠĠĠ Ġsettings . METHOD _ CALL _ CHAIN _ WRAP Ġ= ĠCommon Code Style Settings . WRAP _ AS _ NE EDED ĊĠĠĠ Ġsettings . ALIGN _ MULT IL INE _ CHAIN ED _ METHO DS Ġ= Ġtrue ĊĊĠĠĠ Ġdo Test (" wrap _ chain ed _ call ", Ġ" wrap _ chain ed _ call _ align _ res ") ĊĊĠĠĠ Ġsettings . METHOD _ CALL _ CHAIN _ WRAP Ġ= ĠCommon Code Style Settings . WRAP _ ALWAYS ĊĠĠĠ Ġdo Test (" wrap _ chain ed _ call ", Ġ" wrap _ chain ed _ call _ always _ res ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Wrap Binary Expr () Ġ{ ĊĠĠĠ Ġval Ġsettings Ġ= Ġget Common Settings () ĊĠĠĠ Ġsettings . RIGHT _ M ARGIN Ġ= Ġ 3 0 ĊĠĠĠ Ġsettings . BINARY _ OPERATION _ WRAP Ġ= ĠCommon Code Style Settings . WRAP _ ALWAYS ĊĊĠĠĠ Ġdo Test (" wrap _ binary _ expr ", Ġ" wrap _ binary _ expr _ always _ res ") ĊĊĠĠĠ Ġsettings . ALIGN _ MULT IL INE _ BINARY _ OPERATION Ġ= Ġtrue ĊĠĠĠ Ġdo Test (" wrap _ binary _ expr ", Ġ" wrap _ binary _ expr _ align ") ĊĊĠĠĠ Ġsettings . BINARY _ OPERATION _ WRAP Ġ= ĠCommon Code Style Settings . WRAP _ AS _ NE EDED ĊĠĠĠ Ġdo Test (" wrap _ binary _ expr ", Ġ" wrap _ binary _ expr _ as _ needed ") ĊĊĠĠĠ Ġsettings . ALIGN _ MULT IL INE _ BINARY _ OPERATION Ġ= Ġfalse ĊĠĠĠ Ġsettings . PARENT HE SES _ EXPRESSION _ LP AREN _ WRAP Ġ= Ġtrue ĊĠĠĠ Ġdo Test (" wrap _ binary _ expr ", Ġ" wrap _ binary _ expr _ lp _ new _ line ") ĊĠ Ġ} ĊĊĊĠ Ġfun Ġtest Br aces () Ġ{ ĊĠĠĠ Ġval Ġbefore Ġ= Ġ" switch Ġ- regex Ġ- cases ensitive Ġ( get - child item Ġ| Ġsort Ġlength ) Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ\" Ġ^ 5 \" Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġ\" length Ġfor Ġ\ $_ Ġstarted Ġwith Ġ 5 \"; Ġcontinue \ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ{ Ġ\$ _. length Ġ> 2 0 0 0 0 Ġ} Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġ\" length Ġof Ġ\ $_ Ġis Ġgreater Ġthan Ġ 2 0 0 0 0 \"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġdefault Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġ\" Did n 't Ġmatch Ġanything Ġelse ... \"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" }\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" function ĠT rap Test Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġtrap Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġ\" Error Ġfound . \"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġn ons ense String \ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" }\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" class ĠA Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġdo Something Method () Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" }" ĊĠĠĠ Ġval Ġafter Ġ= Ġ" switch Ġ- regex Ġ- cases ensitive Ġ( get - child item Ġ| Ġsort Ġlength )\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" {\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ\" Ġ^ 5 \" Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġ\" length Ġfor Ġ\ $_ Ġstarted Ġwith Ġ 5 \"; Ġcontinue \ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ{ Ġ\$ _. length Ġ> 2 0 0 0 0 Ġ} Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġ\" length Ġof Ġ\ $_ Ġis Ġgreater Ġthan Ġ 2 0 0 0 0 \"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġdefault Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġ\" Did n 't Ġmatch Ġanything Ġelse ... \"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" }\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" function ĠT rap Test \ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" {\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġtrap \ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġ\" Error Ġfound . \"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġn ons ense String \ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" }\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" class ĠA \ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" {\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġdo Something Method ()\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ"\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠ Ġ" }" ĊĊĠĠĠ Ġdo Text Test ( before , Ġafter ) ĊĊĠĠĠ Ġval Ġsettings Ġ= Ġget Common Settings () ĊĠĠĠ Ġsettings . BRACE _ STYLE Ġ= ĠCommon Code Style Settings . END _ OF _ LINE ĊĠĠĠ Ġsettings . METHOD _ BRACE _ STYLE Ġ= ĠCommon Code Style Settings . END _ OF _ LINE ĊĠĠĠ Ġsettings . CLASS _ BRACE _ STYLE Ġ= ĠCommon Code Style Settings . END _ OF _ LINE ĊĊĠĠĠ Ġdo Text Test ( after , Ġbefore , Ġfalse ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdo Text Test ( text : ĠString , Ġtext After : ĠString , Ġre format As Text : ĠBoolean Ġ= Ġtrue , Ġtext Range : ĠText Range ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= Ġcreate File FromText ( text ) ĊĠĠĠ Ġval Ġmanager Ġ= ĠPsi Document Manager . getInstance ( project ) ĊĠĠĠ Ġval Ġdocument Ġ= Ġmanager . getDocument ( file ) ĊĠĠĠ ĠCommand Processor . getInstance (). execute Command ( project , Ġ{ ĊĠĠĠĠĠ ĠApplication Manager . getApplication (). run Write Action Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( text Range Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCode Style Manager . getInstance ( project ). re format Text ( file , Ġtext Range . start Offset , Ġtext Range . end Offset ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( re format As Text ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Range Ġ= Ġfile . text Range ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCode Style Manager . getInstance ( project ). re format Text ( file , Ġformat Range . start Offset , Ġformat Range . end Offset ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCode Style Manager . getInstance ( project ). re format ( file ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInc orrect OperationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠTestCase . assertTrue ( e . localized Message , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}, Ġ"", Ġ"") ĊĊĠĠĠ ĠassertEquals ( text After , Ġdocument !!. text ) ĊĠĠĠ Ġmanager . commit Document ( document ) ĊĠĠĠ ĠassertEquals ( text After , Ġfile . text ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġcreate File FromText ( text : ĠString ) Ġ= ĠPsi File Factory . getInstance ( project ). create File FromText ( PowerShell Language . INSTANCE , Ġtext ) ĊĊĠ Ġprivate Ġfun Ġget PowerShell Settings (): ĠPowerShell Code Style Settings Ġ= Ġsettings . get Custom Settings ( PowerShell Code Style Settings :: class . java ) ĊĊĠ Ġprivate Ġfun Ġget Common Settings () Ġ= Ġ ĠCode Style . get Language Settings ( create File FromText (""), ĠPowerShell Language . INSTANCE ) Ċ }