/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 7 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . intellij . code Insight . hints Ċ Ċ import Ġcom . intellij . code Insight . completion . Completion Memory Ċ import Ġcom . intellij . code Insight . hints . Hint Info . MethodInfo Ċ import Ġcom . intellij . lang . java . Java Language Ċ import Ġcom . intellij . openapi . util . text . StringUtil Ċ import Ġcom . intellij . psi . Psi Call Expression Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi Method Ċ Ċ class ĠJava In lay Parameter Hints Provider Ġ: ĠIn lay Parameter Hints Provider Ġ{ ĊĠĠĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun ĠgetInstance () Ġ= ĠIn lay Parameter Hints Extension . for Language ( Java Language . INSTANCE ) Ġas ĠJava In lay Parameter Hints Provider ĊĠ Ġ} ĊĠĠĊĠ Ġoverride Ġfun Ġget Hint Info ( element : ĠPsi Element ): ĠMethodInfo ? Ġ{ ĊĠĠĠ Ġif Ġ( element Ġis ĠPsi Call Expression ) Ġ{ ĊĠĠĠĠĠ Ġval Ġresolved Element Ġ= ĠCompletion Memory . get Ch osen Method ( element ) Ġ?: Ġelement . resolve Method Gener ics Ġ(). element ĊĠĠĠĠĠ Ġif Ġ( resolved Element Ġis ĠPsi Method ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget MethodInfo ( resolved Element ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnull ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Parameter Hints ( element : ĠPsi Element ): ĠList < In lay Info > Ġ{ ĊĠĠĠ Ġif Ġ( element Ġis ĠPsi Call Expression ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĠJava In lay Hints Provider . hints ( element ). toList () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġempty List () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcan Show Hints When Disabled (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġtrue ĊĠ Ġ} ĊĊĠ Ġfun Ġget MethodInfo ( method : ĠPsi Method ): ĠMethodInfo ? Ġ{ ĊĠĠĠ Ġval Ġcontaining Class Ġ= Ġmethod . containing Class Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġfull MethodName Ġ= ĠString Util . get QualifiedName ( containing Class . qualified Name , Ġmethod . name ) ĊĊĠĠĠ Ġval Ġparam Names : ĠList < String > Ġ= Ġmethod . parameter List . parameters . map Ġ{ Ġit . name Ġ?: Ġ"" Ġ} ĊĠĠĠ Ġreturn ĠMethodInfo ( full MethodName , Ġparam Names ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetDefault Black List () Ġ= Ġdefault Black List ĊĊĠ Ġprivate Ġval Ġdefault Black List Ġ= Ġset Of ( ĊĠĠĠĠĠ Ġ"( begin *, Ġend *) ", ĊĠĠĠĠĠ Ġ"( start *, Ġend *) ", ĊĠĠĠĠĠ Ġ"( first *, Ġlast *) ", ĊĠĠĠĠĠ Ġ"( first *, Ġsecond *) ", ĊĠĠĠĠĠ Ġ"( from *, Ġto *) ", ĊĠĠĠĠĠ Ġ"( min *, Ġmax *) ", ĊĠĠĠĠĠ Ġ"( key , Ġvalue )", ĊĠĠĠĠĠ Ġ"( format , Ġarg *) ", ĊĠĠĠĠĠ Ġ"( message )", ĊĠĠĠĠĠ Ġ"( message , Ġerror )", ĊĠĠĠĠĠĠĊĠĠĠĠĠ Ġ"* Exception ", ĊĊĠĠĠĠĠ Ġ"*. set * (* )", ĊĠĠĠĠĠ Ġ"*. add (* )", ĊĠĠĠĠĠ Ġ"*. set (* ,*) ", ĊĠĠĠĠĠ Ġ"*. get (* )", ĊĠĠĠĠĠ Ġ"*. create (* )", ĊĠĠĠĠĠ Ġ"*. getProperty (* )", ĊĠĠĠĠĠ Ġ"*. setProperty (* ,*) ", ĊĠĠĠĠĠ Ġ"*. print (* )", ĊĠĠĠĠĠ Ġ"*. println (* )", ĊĠĠĠĠĠ Ġ"*. append (* )", ĊĠĠĠĠĠ Ġ"*. charAt (* )", ĊĠĠĠĠĠ Ġ"*. indexOf (* )", ĊĠĠĠĠĠ Ġ"*. contains (* )", ĊĠĠĠĠĠ Ġ"*. startsWith (* )", ĊĠĠĠĠĠ Ġ"*. endsWith (* )", ĊĠĠĠĠĠ Ġ"*. equals (* )", ĊĠĠĠĠĠ Ġ"*. equal (* )", ĊĠĠĠĠĠ Ġ"*. compareTo (* )", ĊĠĠĠĠĠ Ġ"*. compare (* ,*) ", ĊĊĠĠĠĠĠ Ġ" java . lang . Math .* ", ĊĠĠĠĠĠ Ġ" org . slf 4 j . Logger .* ", ĊĠĠĠĠĠĠĊĠĠĠĠĠ Ġ"*. singleton (* )", ĊĠĠĠĠĠ Ġ"*. singletonList (* )", ĊĠĠĠĠĠĠĊĠĠĠĠĠ Ġ"*. Set . of ", ĊĠĠĠĠĠ Ġ"*. ImmutableList . of ", ĊĠĠĠĠĠ Ġ"*. Immutable Multi set . of ", ĊĠĠĠĠĠ Ġ"*. Immutable Sorted Multi set . of ", ĊĠĠĠĠĠ Ġ"*. Immutable Sorted Set . of ", ĊĠĠĠĠĠ Ġ"*. Arrays . asList " ĊĠ Ġ) ĊĠĠĊĠ Ġval Ġis DoNot Show If MethodName Contains ParameterName Ġ= ĠOption (" java . method . name . contains . parameter . name ", Ġ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Do Ġnot Ġshow Ġif Ġmethod Ġname Ġcontains Ġparameter Ġname ", Ġ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ) ĊĠĠĊĠ Ġval Ġis Show For Params With Same Type Ġ= ĠOption (" java . multiple . params . same . type ", Ġ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Show Ġfor Ġnon - literals Ġin Ġcase Ġof Ġmultiple Ġparams Ġwith Ġthe Ġsame Ġtype ", Ġ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ) ĊĠĠĊĠ Ġval Ġis DoNot Show For Builder Like Methods Ġ= ĠOption (" java . build . like . method ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Do Ġnot Ġshow Ġfor Ġbuilder - like Ġmethods ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ) ĊĊĊĠ Ġval Ġignore One Char One Digit Hints Ġ= ĠOption (" java . simple . sequent ially . number ed ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Do Ġnot Ġshow Ġfor Ġmethods Ġwith Ġsame - named Ġnumber ed Ġparameters ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ) ĊĊĠ Ġoverride Ġfun Ġget Supported Options (): ĠList < Option > Ġ{ ĊĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠ Ġis DoNot Show If MethodName Contains ParameterName , ĊĠĠĠĠĠ Ġis Show For Params With Same Type , ĊĠĠĠĠĠ Ġis DoNot Show For Builder Like Methods , ĊĠĠĠĠĠ Ġignore One Char One Digit Hints ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ }