package Ġcom . github . r afa ell di . ty e plugin . services Ċ Ċ import Ġcom . github . r afa ell di . ty e plugin . settings . T ye Settings Ċ import Ġcom . intellij . openapi . components . Service Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . System Info Ċ import Ġcom . intellij . util . Environment Util Ċ import Ġjava . io . File Ċ Ċ @ Service Ċ class ĠT ye Path Provider ( private Ġval Ġproject : ĠProject ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠT YE _ TOOL Ġ= Ġ" ty e " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠWINDO WS _ HOME _ VARIABLE Ġ= Ġ" USER PROFILE " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLIN UX _ HOME _ VARIABLE Ġ= Ġ" HOME " ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetDefault Global Path (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhome Folder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( System Info . is Windows ) ĠEnvironment Util . getValue ( WINDOWS _ HOME _ VARIABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠEnvironment Util . getValue ( LINUX _ HOME _ VARIABLE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( System Info . is Windows ) Ġ"$ home Folder \\. dotnet \\ tools \\ ty e . exe " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ"$ home Folder /. dotnet / tools / ty e " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetPath (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustom Path Ġ= ĠT ye Settings . getInstance ( project ). ty e Tool Path ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! custom Path . isNull OrEmpty () Ġ&& Ġis Tool Exists ( custom Path )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcustom Path ĊĊĠĠĠĠĠĠĠ Ġval Ġdefault Path Ġ= ĠgetDefault Global Path () ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Tool Exists ( default Path )) Ġdefault Path Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Tool Exists ( path : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( path ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfile . exists () Ġ&& Ġfile . can Execute () ĊĠĠĠ Ġ} Ċ }