/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 4 Ġ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 Ġorg . jetbrains . jet . plugin . completion Ċ Ċ import Ġcom . intellij . code Insight . completion .* Ċ import Ġcom . intellij . code Insight . lookup . Lookup Element Ċ import Ġcom . intellij . code Insight . lookup . Lookup Element Decorator Ċ import Ġcom . intellij . psi . Psi Class Ċ import Ġcom . intellij . util . Consumer Ċ import Ġorg . jetbrains . jet . as Java . Kotlin Light Class Ċ import Ġorg . jetbrains . jet . lang . descriptors . Class Kind Ċ import Ġorg . jetbrains . jet . lang . psi . Jet File Ċ import Ġorg . jetbrains . jet . lang . resolve . java . Java Resolver Psi Utils Ċ import Ġorg . jetbrains . jet . lang . resolve . lazy . Resolve Session Utils Ċ import Ġorg . jetbrains . jet . lang . resolve . name . Fq Name Ċ import Ġorg . jetbrains . jet . lang . types . lang . Kotlin Built Ins Ċ import Ġorg . jetbrains . jet . plugin . cache s . Jet From Java Descriptor Helper Ċ import Ġorg . jetbrains . jet . plugin . completion . handlers . Jet Java Class Insert Handler Ċ import Ġorg . jetbrains . jet . plugin . project . Project Structure Util Ċ import Ġorg . jetbrains . jet . plugin . project . Resolve Session For B odies Ċ import Ġorg . jetbrains . jet . plugin . cache s . Kotlin Indices Helper Ċ import Ġorg . jetbrains . jet . plugin . search . search Scope For Source Element Dependencies Ċ Ċ class ĠTypes Completion ( val Ġparameters : ĠCompletion Parameters , Ġval Ġresolve Session : ĠResolve Session For B odies , Ġval Ġprefix Matcher : ĠPrefix Matcher ) Ġ{ ĊĠĠĠ Ġfun Ġadd All Types ( result : ĠLookup Elements Collector ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . add Descriptor Elements ( Kotlin Built Ins . getInstance (). get Non Physical Classes ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġparameters . get Original File (). getProject () ĊĠĠĠĠĠĠĠ Ġval Ġsearch Scope Ġ= Ġsearch Scope For Source Element Dependencies ( parameters . get Original File ()) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġresult . add Descriptor Elements ( Kotlin Indices Helper ( project ). getClass Descriptors ({ Ġprefix Matcher . prefix Matches ( it ) Ġ}, Ġresolve Session , Ġsearch Scope )) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Project Structure Util . is Js Kotlin Module ( parameters . get Original File () Ġas ĠJet File )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Adapt ed Java Completion ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġjava Ġelements Ġwith Ġperforming Ġconversion Ġto Ġkotlin Ġelements Ġif Ġnecessary . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġadd Adapt ed Java Completion ( result : ĠLookup Elements Collector ) Ġ{ ĊĠĠĠĠĠĠĠ ĠJava ClassName Completion Contributor . addAll Classes ( parameters , Ġfalse , Ġprefix Matcher , Ġobject Ġ: ĠConsumer < Lookup Element > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconsume ( lookup Element : ĠLookup Element ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lookup Element Ġis ĠJava Psi Class Reference Element ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpsi Class Ġ= Ġlookup Element . getObject () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add Java Class As Jet Lookup Element ( psi Class , Ġresult )) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . addElement ( object Ġ: ĠLookup Element Decorator < Lookup Element >( lookup Element ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Insert ( context : ĠInsert ion Context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJet Java Class Insert Handler . handle Insert ( context , Ġlookup Element ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Java Class As Jet Lookup Element ( aClass : ĠPsi Class , Ġresult : ĠLookup Elements Collector ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( aClass Ġis ĠKotlin Light Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDo Ġnothing . ĠKotlin Ġnot - compiled Ġclass Ġshould Ġhave Ġalready Ġbeen Ġadded Ġas Ġkotlin Ġelement Ġbefore . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Java Resolver Psi Utils . is Compiled Kotlin Class ( aClass )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Jet From Java Descriptor Helper . get Compiled Class Kind ( aClass ) Ġ!= ĠClass Kind . CLASS _ OBJECT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqualified Name Ġ= Ġa Class . get QualifiedName () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( qualified Name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add Descriptor Elements ( Resolve Session Utils . getClass Descriptors By Fq Name ( resolve Session . getModule Descriptor (), ĠF q Name ( qualified Name ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ