package Ġnl . h ann ah sten . tex ify idea . lang Ċ Ċ import Ġnl . h ann ah sten . tex ify idea . lang . commands . Argument Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . search . Global Search Scope Ċ import Ġcom . intellij . util . indexing . File Based Index Ċ import Ġnl . h ann ah sten . tex ify idea . index . file . Lat ex External Environment Index Ċ import Ġnl . h ann ah sten . tex ify idea . lang . commands . Lat ex Command Ċ import Ġnl . h ann ah sten . tex ify idea . lang . commands . Lat ex Generic Regular Command .* Ċ import Ġnl . h ann ah sten . tex ify idea . util . files . remove File Extension Ċ import Ġnl . h ann ah sten . tex ify idea . util . startsWith Any Ċ Ċ /** Ċ Ġ* Ġ@ author ĠH ann ah ĠS che lle ken s Ċ Ġ*/ Ċ interface ĠEnvironment Ġ: ĠDepend end , ĠDescri bed Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠLooks Ġup Ġa Ġdefault Ġenvironment Ġby Ġthe Ġgiven Ġname . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġenvironment Name ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThe Ġname Ġof Ġthe Ġenvironment Ġobject Ġto Ġget . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe Ġ[ Default Environment ] Ġwith Ġthe Ġgiven Ġname , Ġor Ġ` null ` Ġwhen Ġit Ġcouldn 't ĊĠĠĠĠĠĠĠĠ Ġ* Ġbe Ġfound . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġlookup ( environment Name : ĠString ) Ġ= ĠDefault Environment [ environment Name ] ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreate Ġan Ġ[ Environment ] Ġfor Ġthe Ġgiven Ġenvironment Ġname . ĊĠĠĠĠĠĠĠĠ Ġ* ĠSee Ġ[ Lat ex Command . lookup In Index ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġlookup In Index ( environment Name : ĠString , Ġproject : ĠProject ): ĠSet < Environment > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenv s Ġ= Ġmutable Set Of < Environment >() ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Based Index . getInstance (). process Values ( Lat ex External Environment Index . id , Ġenvironment Name , Ġnull , Ġ{ Ġfile , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependency Ġ= Ġfile . name . remove File Extension () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenv Ġ= Ġobject Ġ: ĠEnvironment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġarguments Ġ= Ġextract Arguments From Docs ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġdescription Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġdependency Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dependency . isBlank ()) ĠLat ex Package . DEFAULT Ġelse ĠLat ex Package . create ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġcontext Ġ= ĠContext . NORMAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġinitial Contents Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġenvironment Name Ġ= Ġenvironment Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenv s . add ( env ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĠGlobal Search Scope . everything Scope ( project )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSee ĠLat ex Command # look Up In Index () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiltered En vs Ġ= Ġenv s . distinct By Ġ{ ĠlistOf ( it . environment Name , Ġit . dependency , Ġit . context , Ġit . description ). plus ( it . arguments ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy Ġ{ ĠlistOf ( it . environment Name , Ġit . dependency , Ġit . context ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Values Ġ{ Ġit . value . max By OrNull Ġ{ Ġcmd Ġ-> Ġcmd . description Ġ} !! Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. values . toSet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfiltered En vs ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġextract Arguments From Docs ( docs : ĠString ): ĠArray < Argument > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMaybe Ġthe Ġarguments Ġare Ġgiven Ġright Ġat Ġthe Ġbeginning Ġof Ġthe Ġdocs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarg Commands Ġ= ĠarrayOf ( O ARG , ĠM ARG , ĠP ARG ). map Ġ{ Ġit . command With Slash Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( docs . startsWith Any (* arg Commands )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLat ex Command . get Arguments From Start Of String ( docs , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ lookup ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġget ( environment Name : ĠString ) Ġ= Ġlookup ( environment Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġwhat Ġtype Ġof Ġcontext Ġthis Ġenv iro ment Ġhas Ġinside . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcontext : ĠContext ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġcontents Ġthat Ġmust Ġbe Ġplaced Ġinto Ġthe Ġenvironment Ġjust Ġafter Ġit Ġhas Ġbeen ĊĠĠĠĠ Ġ* Ġinserted Ġusing Ġthe Ġauto Ġcomplete . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġinitial Contents : ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġname Ġof Ġthe Ġenvironment . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġenvironment Name : ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġall Ġthe Ġenvironment Ġmy Arguments . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġarguments : ĠArray < out ĠArgument > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConcat en ates Ġall Ġarguments Ġto Ġeach Ġother . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġe . g . Ġ`{ ARG 1 }{ ARG 2 }[ ARG 3 ]` ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" K Doc Un resolved Reference ") ĊĠĠĠ Ġfun Ġget Arguments Display (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( arg Ġin Ġarguments ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( arg . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsb . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ author ĠH ann ah ĠS che lle ken s ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġenum Ġclass ĠContext Ġ{ ĊĊĠĠĠĠĠĠĠ ĠNORMAL , ĊĠĠĠĠĠĠĠ ĠM ATH , ĊĠĠĠĠĠĠĠ ĠCOMMENT ĊĠĠĠ Ġ} Ċ } Ċ