package Ġjp . free apps . intellij . plugin . ph par ray . converter Ċ Ċ import Ġcom . intellij . lang . Language Ċ import Ġcom . intellij . openapi . editor . Caret Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . psi . Psi File Factory Ċ import Ġcom . intellij . refactor ing . suggest ed . start Offset Ċ import Ġjp . free apps . intellij . plugin . ph par ray . messages . ErrorMessage Ċ Ċ abstract Ġclass ĠConverter Ġinternal Ġconstructor () Ġ{ ĊĠĠĠ Ġ// Ġconstants ĊĠĠĠ Ġprotected Ġval Ġopen Br aket Ġ= Ġ"[" ĊĠĠĠ Ġprotected Ġval Ġclose Br aket Ġ= Ġ" ]" ĊĠĠĠ Ġprotected Ġval Ġopen Brace Ġ= Ġ" {" ĊĠĠĠ Ġprotected Ġval Ġclose Brace Ġ= Ġ" }" ĊĠĠĠ Ġprotected Ġval Ġopen Parent heses Ġ= Ġ"(" ĊĠĠĠ Ġprotected Ġval Ġclose Parent heses Ġ= Ġ")" ĊĠĠĠ Ġprotected Ġval Ġsingle Quote Ġ= Ġ"'" ĊĠĠĠ Ġprotected Ġval Ġdouble Quote Ġ= Ġ"\"" ĊĠĠĠ Ġprotected Ġval Ġcolon Ġ= Ġ":" ĊĠĠĠ Ġprotected Ġval Ġarrow Ġ= Ġ" =>" ĊĠĠĠ Ġprotected Ġval Ġcomma Ġ= Ġ"," ĊĊĠĠĠ Ġ// Ġvariables ĊĠĠĠ Ġprotected Ġvar ĠcurrentIndex Ġ= Ġ 0 ĊĊĠĠĠ Ġ// Ġjud gment Ġresult Ġwhether Ġconversion Ġis Ġpossible ĊĠĠĠ Ġprotected Ġvar Ġconversion Target : ĠPsi Element ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġconversion Target Text : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġprotected Ġset ĊĠĠĠ Ġval Ġhas Conversion Target ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconversion Target Ġ!= Ġnull ĊĠĠĠ Ġvar Ġconversion Target Range : ĠText Range ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprotected Ġset ĊĠĠĠ Ġvar Ġerror Messages Ġ= ĠarrayOf < ErrorMessage >() ĊĠĠĠĠĠĠĠ Ġprotected Ġset ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfield . sorted With Ġ{ Ġo 1 , Ġo 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( o 1 . start Offset Ġ!= Ġo 2 . start Offset ) Ġo 1 . start Offset Ġ- Ġo 2 . start Offset Ġelse Ġo 1 . end Offset Ġ- Ġo 2 . end Offset ĊĠĠĠĠĠĠĠ Ġ}. to Typed Array () ĊĠĠĠ Ġval Ġlanguage : ĠLanguage ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġconversion Target ?. language ĊĠĠĠ Ġval Ġconversion Message Key : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠJson Converter Ġ-> Ġ" tool window . button . json To Php Array " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠPhp Array Converter Ġ-> Ġ" tool window . button . php Array ToJson " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" tool window . button . default " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġval Ġindent : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( conversion Target Ġ!= Ġnull Ġ&& Ġconversion Target !!. text . contains ("\ n ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbefore Start Offset Ġ= Ġconversion Target !!. containing File . text . substring ( 0 , Ġconversion Target !!. start Offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Line Ġ= Ġbefore Start Offset . substring ( before Start Offset . lastIndexOf ("\ n ") Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatch Ġ= ĠRegex (""" ^ ([\ t Ġ] * ). * "" "). find ( last Line ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( match Ġ!= Ġnull Ġ&& Ġmatch . groups . size Ġ> Ġ 1 ) Ġmatch . groups [ 1 ]?. value Ġelse Ġnull ) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ"" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExecute Ġconvert ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġconverted Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġdo Convert (): ĠString ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġproject : ĠProject ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfun Ġfactory ( project : ĠProject , Ġcaret : ĠCare t ): ĠConverter Ġ= Ġcreate Converter ( project , Ġcaret ) ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Converter ( project : ĠProject , Ġcaret : ĠCare t ): ĠConverter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . project Ġ= Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġcaret . editor . document . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġcaret . offset ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate ĠPhp Array Converter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphp File Ġ= Ġcreate File FromText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhp Array Converter . language , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Php Array Converter . prefix }${ text }${ Php Array Converter . suffix }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphp Array Converter Ġ= ĠPhp Array Converter ( php File , Ġoffset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( php Array Converter . has Conversion Target Ġ&& Ġphp Array Converter . error Messages . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġphp Array Converter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate ĠJson Converter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson File Ġ= Ġcreate File FromText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Converter . language , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Json Converter . prefix }${ text }${ Json Converter . suffix }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Converter Ġ= ĠJson Converter ( json File , Ġoffset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( json Converter . has Conversion Target Ġ&& Ġjson Converter . error Messages . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġjson Converter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReturn Ġwhat Ġcannot Ġbe Ġconversion . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( php Array Converter . has Conversion Target Ġ&& Ġjson Converter . has Conversion Target ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( php Array Converter . conversion Target Range !!. start Offset Ġ< Ġjson Converter . conversion Target Range !!. start Offset ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Converter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġphp Array Converter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( php Array Converter . has Conversion Target ) Ġreturn Ġphp Array Converter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( json Converter . has Conversion Target ) Ġreturn Ġjson Converter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠConverter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo Convert (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Messages Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Message ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" error . not Found . conversion Target ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText Range ( offset , Ġoffset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġcreate File FromText ( language : ĠLanguage , Ġtext : ĠString ): ĠPsi File Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpsi File Factory Ġ= ĠPsi File Factory . getInstance ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpsi File Factory . create File FromText ( language , Ġtext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }