@@ -90,8 +90,8 @@ export class MissingToolError extends Error {
90
90
async function callAsync (
91
91
binary : string ,
92
92
args : string [ ] ,
93
- dir : string ,
94
93
logger : Logger ,
94
+ dir ?: string ,
95
95
title ?: string ,
96
96
cancellable ?: boolean ,
97
97
envAdd ?: IEnvVars ,
@@ -290,7 +290,7 @@ export async function findHaskellLanguageServer(
290
290
latestStack = latestStack ? await getLatestToolFromGHCup ( context , logger , 'stack' ) : null ;
291
291
292
292
// now install said version in an isolated symlink directory
293
- await callGHCup (
293
+ return await callGHCup (
294
294
context ,
295
295
logger ,
296
296
[ 'run'
@@ -321,13 +321,12 @@ async function callGHCup(
321
321
) : Promise < string > {
322
322
const metadataUrl = workspace . getConfiguration ( 'haskell' ) . metadataURL ;
323
323
324
- const storagePath : string = await getStoragePath ( context ) ;
325
324
if ( manageHLS === 'GHCup' ) {
326
325
return await callAsync (
327
326
'ghcup' ,
328
327
[ '--no-verbose' ] . concat ( metadataUrl ? [ '-s' , metadataUrl ] : [ ] ) . concat ( args ) ,
329
- storagePath ,
330
328
logger ,
329
+ undefined ,
331
330
title ,
332
331
cancellable ,
333
332
undefined ,
@@ -344,18 +343,16 @@ async function getLatestHLS(
344
343
workingDir : string ,
345
344
toolchainBindir : string
346
345
) : Promise < [ string , string ] > {
347
- const storagePath : string = await getStoragePath ( context ) ;
348
-
349
346
// get project GHC version, but fallback to system ghc if necessary.
350
347
const projectGhc = toolchainBindir
351
348
? await getProjectGHCVersion ( toolchainBindir , workingDir , logger )
352
- : await callAsync ( `ghc${ exeExt } ` , [ '--numeric-version' ] , storagePath , logger , undefined , false ) ;
349
+ : await callAsync ( `ghc${ exeExt } ` , [ '--numeric-version' ] , logger , undefined , undefined , false ) ;
353
350
const noMatchingHLS = `No HLS version was found for supporting GHC ${ projectGhc } .` ;
354
351
355
352
// first we get supported GHC versions from available HLS bindists (whether installed or not)
356
- const metadataMap = ( await getHLSesfromMetadata ( context , storagePath , logger ) ) || new Map < string , string [ ] > ( ) ;
353
+ const metadataMap = ( await getHLSesfromMetadata ( context , logger ) ) || new Map < string , string [ ] > ( ) ;
357
354
// then we get supported GHC versions from currently installed HLS versions
358
- const ghcupMap = ( await getHLSesFromGHCup ( context , storagePath , logger ) ) || new Map < string , string [ ] > ( ) ;
355
+ const ghcupMap = ( await getHLSesFromGHCup ( context , logger ) ) || new Map < string , string [ ] > ( ) ;
359
356
// since installed HLS versions may support a different set of GHC versions than the bindists
360
357
// (e.g. because the user ran 'ghcup compile hls'), we need to merge both maps, preferring
361
358
// values from already installed HLSes
@@ -396,8 +393,8 @@ export async function getProjectGHCVersion(toolchainBindir: string, workingDir:
396
393
return callAsync (
397
394
'haskell-language-server-wrapper' ,
398
395
args ,
399
- workingDir ,
400
396
logger ,
397
+ workingDir ,
401
398
title ,
402
399
false ,
403
400
environmentNew ,
@@ -522,8 +519,7 @@ async function getLatestToolFromGHCup(context: ExtensionContext, logger: Logger,
522
519
const latestInstalledVersion = latestInstalled . split ( / \s + / ) [ 1 ] ;
523
520
524
521
let bin = await callGHCup ( context , logger , [ 'whereis' , tool , `${ latestInstalledVersion } ` ] , undefined , false ) ;
525
- const storagePath : string = await getStoragePath ( context ) ;
526
- const ver = await callAsync ( `${ bin } ` , [ '--numeric-version' ] , storagePath , logger , undefined , false )
522
+ const ver = await callAsync ( `${ bin } ` , [ '--numeric-version' ] , logger , undefined , undefined , false )
527
523
if ( ver ) {
528
524
return ver ;
529
525
} else {
@@ -564,7 +560,6 @@ async function getLatestAvailableToolFromGHCup(context: ExtensionContext, logger
564
560
// otherwise ensures the specified GHC is supported.
565
561
async function getHLSesFromGHCup (
566
562
context : ExtensionContext ,
567
- storagePath : string ,
568
563
logger : Logger
569
564
) : Promise < Map < string , string [ ] > | null > {
570
565
const hlsVersions = await callGHCup (
@@ -614,9 +609,9 @@ async function getHLSesFromGHCup(
614
609
*/
615
610
async function getHLSesfromMetadata (
616
611
context : ExtensionContext ,
617
- storagePath : string ,
618
612
logger : Logger
619
613
) : Promise < Map < string , string [ ] > | null > {
614
+ const storagePath : string = await getStoragePath ( context ) ;
620
615
const metadata = await getReleaseMetadata ( context , storagePath , logger ) . catch ( ( e ) => null ) ;
621
616
if ( ! metadata ) {
622
617
window . showErrorMessage ( 'Could not get release metadata' ) ;
0 commit comments