/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠRe ece ĠH . ĠD un n Ċ Ġ* Ċ Ġ* Ġ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 Ġuk . co . re ec ed un n . intellij . plugin . processor . debug . position Ċ Ċ import Ġcom . intellij . openapi . file Editor . Open FileDescriptor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . pom . Navig atable Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . x debugger . X Source Position Ċ import Ġuk . co . re ec ed un n . intellij . plugin . x pm . module . loader . resolve Ċ import Ġuk . co . re ec ed un n . intellij . plugin . x pm . module . path . X pm Module Uri Ċ import Ġuk . co . re ec ed un n . intellij . plugin . x pm . module . resolve Uri Ċ Ċ class ĠQuery Source Position Impl ( private Ġval Ġposition : ĠX Source Position , Ġoverride Ġval Ġcolumn : ĠInt ) Ġ: ĠQuery Source Position Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetFile (): ĠVirtual File Ġ= Ġposition . file ĊĊĠĠĠ Ġoverride Ġfun Ġget Line (): ĠInt Ġ= Ġposition . line ĊĊĠĠĠ Ġoverride Ġfun Ġget Offset (): ĠInt Ġ= Ġposition . offset ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Navig atable ( project : ĠProject ): ĠNavig atable Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresolved Ġ= Ġ( file Ġas ? ĠX pm Module Uri )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . resolve ( project , Ġit . context File ) Ġ?: Ġit . resolve Uri ( project ) Ġas ? ĠPsi Element ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġresolved ?. containing File ?. virtual File Ġ?: Ġfile ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( offset Ġ!= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOpen FileDescriptor ( project , Ġfile , Ġoffset ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOpen FileDescriptor ( project , Ġfile , Ġline , Ġcolumn ) ĊĠĠĠ Ġ} Ċ } Ċ