package Ġgd script . completion Ċ Ċ import Ġcom . intellij . code Insight . completion . Completion Contributor Ċ import Ġcom . intellij . code Insight . completion . Completion Parameters Ċ import Ġcom . intellij . code Insight . completion . Completion ResultSet Ċ import Ġcom . intellij . code Insight . lookup . Lookup Element Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . util . Psi Tree Util Ċ import Ġcom . intellij . psi . util . elementType Ċ import Ġgd script . completion . utils . Lookup Factory Ċ import Ġgd script . psi . Script Element Types .* Ċ import Ġversion . Version Service Ċ Ċ class ĠType Completion Contributor Ġ: ĠCompletion Contributor () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġfill Completion Variants ( parameters : ĠCompletion Parameters , Ġresult : ĠCompletion ResultSet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġparameters . position ĊĠĠĠĠĠĠĠ Ġif Ġ( is Inside Type ( element ) Ġ|| Ġis After Type Operator ( element )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . case Ins ensitive (). addAll Elements ( collect Look ups ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Inside Type ( element : ĠPsi Element ) Ġ= ĊĠĠĠĠĠĠĠ Ġelement . parent . parent . elementType Ġ== ĠTYPE ĊĊĠĠĠ Ġprivate Ġfun Ġis After Type Operator ( element : ĠPsi Element ) Ġ= ĊĠĠĠĠĠĠĠ ĠPsi Tree Util . prev Visible Leaf ( element ). elementType Ġin ĠlistOf ( IS , ĠAS ) ĊĊĠĠĠ Ġprivate Ġfun Ġcollect Look ups (): ĠList < Lookup Element > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapi Ġ= ĠVersion Service . current () ĊĠĠĠĠĠĠĠ Ġval Ġprimitive Types Ġ= Ġapi . primitives . map Ġ{ ĠLookup Factory . create Keyword ( it . name ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġclass Types Ġ= Ġapi . classes . map Ġ{ ĠLookup Factory . createClass ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġprimitive Types Ġ+ Ġclass Types ĊĠĠĠ Ġ} Ċ Ċ } Ċ