@@ -79,13 +79,11 @@ let codeActionsFromDiagnostics: codeActions.filesCodeActions = {};
79
79
// will be properly defined later depending on the mode (stdio/node-rpc)
80
80
let send : ( msg : p . Message ) => void = ( _ ) => { } ;
81
81
82
- let findBinaryFromProjectDirRec = (
83
- directory : p . DocumentUri , // This must be a directory and not a file!
84
- targetDir : p . DocumentUri ,
85
- binaryName : p . DocumentUri
82
+ let findBinaryPathFromProjectRoot = (
83
+ directory : p . DocumentUri // This must be a directory and not a file!
86
84
) : null | p . DocumentUri => {
87
- let binaryDirPath = path . join ( directory , targetDir ) ;
88
- let binaryPath = path . join ( binaryDirPath , binaryName ) ;
85
+ let binaryDirPath = path . join ( directory , c . nodeModulesBinDir ) ;
86
+ let binaryPath = path . join ( binaryDirPath , c . rescriptBinName ) ;
89
87
90
88
if ( fs . existsSync ( binaryPath ) ) {
91
89
return binaryPath ;
@@ -97,22 +95,26 @@ let findBinaryFromProjectDirRec = (
97
95
return null ;
98
96
}
99
97
100
- return findBinaryFromProjectDirRec ( parentDir , targetDir , binaryName ) ;
98
+ return findBinaryPathFromProjectRoot ( parentDir ) ;
101
99
} ;
102
100
103
101
let findRescriptBinary = ( projectRootPath : p . DocumentUri ) =>
104
102
extensionConfiguration . binaryPath == null
105
- ? findBinaryFromProjectDirRec (
106
- projectRootPath ,
107
- c . nodeModulesBinDir ,
108
- c . rescriptBinName
109
- )
103
+ ? findBinaryPathFromProjectRoot ( projectRootPath )
110
104
: utils . findRescriptBinary ( extensionConfiguration . binaryPath ) ;
111
105
112
- let findBscBinary = ( projectRootPath : p . DocumentUri ) =>
113
- extensionConfiguration . binaryPath == null
114
- ? findBinaryFromProjectDirRec ( projectRootPath , c . platformPath , c . bscExeName )
115
- : utils . findBscBinary ( extensionConfiguration . binaryPath ) ;
106
+ let findBscBinary = ( projectRootPath : p . DocumentUri ) => {
107
+ let rescriptBinaryPath = findRescriptBinary ( projectRootPath ) ;
108
+ if ( rescriptBinaryPath !== null ) {
109
+ return path . join (
110
+ path . dirname ( rescriptBinaryPath ) ,
111
+ ".." ,
112
+ c . platformPath ,
113
+ c . bscExeName
114
+ ) ;
115
+ }
116
+ return null ;
117
+ } ;
116
118
117
119
interface CreateInterfaceRequestParams {
118
120
uri : string ;
0 commit comments