@@ -29,7 +29,8 @@ define(function (require, exports, module) {
29
29
Session = brackets . getModule ( "JSUtils/Session" ) ,
30
30
MessageIds = brackets . getModule ( "JSUtils/MessageIds" ) ,
31
31
TokenUtils = brackets . getModule ( "utils/TokenUtils" ) ,
32
- Strings = brackets . getModule ( "strings" ) ;
32
+ Strings = brackets . getModule ( "strings" ) ,
33
+ ProjectManager = brackets . getModule ( "project/ProjectManager" ) ;
33
34
34
35
var session = null , // object that encapsulates the current session state
35
36
keywords = [ "define" , "alert" , "exports" , "require" , "module" , "arguments" ] ;
@@ -97,8 +98,22 @@ define(function (require, exports, module) {
97
98
var result = new $ . Deferred ( ) ;
98
99
99
100
function isInSameFile ( obj , refsResp ) {
101
+ var projectRoot = ProjectManager . getProjectRoot ( ) ,
102
+ projectDir ,
103
+ fileName = "" ;
104
+ if ( projectRoot ) {
105
+ projectDir = projectRoot . fullPath ;
106
+ }
107
+
108
+ // get the relative path of File as Tern can also return
109
+ // references with file name as a relative path wrt projectRoot
110
+ // so refernce file name will be compared with both relative and absolute path to check if it is same file
111
+ if ( projectDir && refsResp && refsResp . file && refsResp . file . indexOf ( projectDir ) === 0 ) {
112
+ fileName = refsResp . file . slice ( projectDir . length ) ;
113
+ }
100
114
// In case of unsaved files, After renameing once Tern is returning filename without forward slash
101
- return ( obj && ( obj . file === refsResp . file || obj . file === refsResp . file . slice ( 1 , refsResp . file . length ) ) ) ;
115
+ return ( obj && ( obj . file === refsResp . file || obj . file === fileName
116
+ || obj . file === refsResp . file . slice ( 1 , refsResp . file . length ) ) ) ;
102
117
}
103
118
104
119
/**
0 commit comments