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 . completion . Prior it ized Lookup Element Ċ import Ġcom . intellij . code Insight . lookup . Lookup Element Ċ import Ġcom . intellij . code Insight . lookup . Lookup Element Builder . create Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcommon . Icons Ċ import Ġcommon . Psi Element Utils . is Token Ċ import Ġgd script . Script Lexer . RESOURCE Ċ import Ġgd script . completion . utils . FileUtils Ċ import Ġjavax . swing . Icon Ċ Ċ class ĠResource Completion Contributor Ġ: ĠCompletion Contributor () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġfill Completion Variants ( parameters : ĠCompletion Parameters , Ġresult : ĠCompletion ResultSet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( parameters . position . is Token ( RESOURCE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent File Ġ= Ġparameters . original File . virtual File ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= ĠFileUtils . collect Paths To Project Files ( current File , Ġ:: is Use ful ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( path , Ġfile ) Ġin Ġfiles ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlookup Ġ= Ġcreate File Lookup ( path , Ġfile ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpriority Ġ= Ġpriorit ize By ( file . extension ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpriorit ized Ġ= ĠPri or it ized Lookup Element . with Explicit Prox imity ( lookup , Ġpriority ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . addElement ( prior it ized ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Use ful ( file : ĠVirtual File ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfile . name ĊĠĠĠĠĠĠĠ Ġreturn Ġ! name . startsWith (".") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġname Ġ!= Ġ" project . godot " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ! name . endsWith (". import ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate File Lookup ( file RelativePath : ĠString , Ġfile : ĠVirtual File ): ĠLookup Element Ġ= ĊĠĠĠĠĠĠĠ Ġcreate (" res :// $ file RelativePath ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Present able Text ( file . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Type Text ( file RelativePath ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Icon ( find Icon ( file . extension )) ĊĊĠĠĠ Ġprivate Ġfun Ġfind Icon ( extension : ĠString ?): ĠIcon Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( extension ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" gd " Ġ-> ĠIcons . GD SCRIPT _ FILE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" tsc n ", Ġ" tres " Ġ-> ĠIcons . T SC N _ FILE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" json " Ġ-> ĠIcons . JSON _ FILE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠIcons . ANY _ FILE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpriorit ize By ( extension : ĠString ?): ĠInt Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( extension ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" gd " Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" tsc n " Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ } ĊĊ