package Ġcom . ky _ proj . sp j plugin . code insight . hint Ċ Ċ import Ġcom . intellij . code Insight . hint . Implementation Text Selection er Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . util . Psi Tree Util Ċ import Ġcom . ky _ proj . sp j plugin . psi . Sp j Procedure Block Ċ import Ġcom . ky _ proj . sp j plugin . psi . Sp j Procedure Def Ċ import Ġcom . ky _ proj . sp j plugin . psi . Sp j Types Ċ Ċ /** Ċ Ġ* ĠQuick Definition ãģ§ å®ļç¾© åħĥ ãĤĴ éĸĭ ãģĦ ãģŁ ãģ¨ ãģį ãģ« ãĥĿ ãĥĥãĥĹ ãĤ¢ãĥĥãĥĹ ãģ§ è¡¨ç¤º ãģķãĤĮãĤĭ ç¯Ħ åĽ ² ãĤĴ å®ļç¾© ãģĻãĤĭ ãĤ¯ãĥ©ãĤ¹ Ċ Ġ*/ Ċ class ĠSp j Implementation Text Selection er : ĠImplementation Text Selection er Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetText Start Offset ( parent : ĠPsi Element ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Range Ġ= Ġparent . text Range ĊĠĠĠĠĠĠĠ Ġreturn Ġtext Range !!. start Offset ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetText End Offset ( element : ĠPsi Element ): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġtype ãģ«ãĤĪ ãģ£ãģ¦ è¿Ķ ãģĻ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( element . node . elementType ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp j Types . PROC EDURE _ DEF Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprocedure å®ļç¾© ãģª ãĤī è¦ ª ãģ® ãĥĸ ãĥŃ ãĥĥãĤ¯ ãģ® end Offset ãĤĴ è¿Ķ ãģĻ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget En nd Offset Of Procedure Def ( def Ġ= Ġelement Ġas ĠSp j Procedure Def ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĢļå¸¸ ãģ¯ èĩª åĪĨ èĩª èº« ãģłãģĳ ãĤĴ è¿Ķ ãģĻ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelement . text Range !!. end Offset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ãĥĹãĥŃ ãĤ· ãĥ¼ãĤ¸ ãĥ£ å®ļç¾© ãģĭãĤī è¦ ª ãģ® ãĥĸ ãĥŃ ãĥĥãĤ¯ ãĤĴ æİ¢ ãģĹãģ¦ ãģĿãģ® end offset ãĤĴ è¿Ķ åį´ ãģĻãĤĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget En nd Offset Of Procedure Def ( def : ĠSp j Procedure Def ) Ġ: ĠInt { ĊĠĠĠĠĠĠĠ Ġval Ġblock Ġ= ĠPsi Tree Util . getParent OfType ( def , ĠSp j Procedure Block :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif ( block Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock . text Range !!. end Offset ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdef . text Range !!. end Offset ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ