Skip to content

Commit 6dc0e29

Browse files
committed
Cleanup storagePath
1 parent 59776a3 commit 6dc0e29

File tree

2 files changed

+10
-15
lines changed

2 files changed

+10
-15
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
"scope": "resource",
138138
"type": "string",
139139
"default": "",
140-
"markdownDescription": "An optional path where downloaded binaries will be stored. Check the default value [here](https://github.com/haskell/vscode-haskell#downloaded-binaries)"
140+
"markdownDescription": "An optional path where downloaded metadata will be stored. Check the default value [here](https://github.com/haskell/vscode-haskell#downloaded-binaries)"
141141
},
142142
"haskell.serverExecutablePath": {
143143
"scope": "resource",

src/hlsBinaries.ts

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ export class MissingToolError extends Error {
9090
async function callAsync(
9191
binary: string,
9292
args: string[],
93-
dir: string,
9493
logger: Logger,
94+
dir?: string,
9595
title?: string,
9696
cancellable?: boolean,
9797
envAdd?: IEnvVars,
@@ -290,7 +290,7 @@ export async function findHaskellLanguageServer(
290290
latestStack = latestStack ? await getLatestToolFromGHCup(context, logger, 'stack') : null;
291291

292292
// now install said version in an isolated symlink directory
293-
await callGHCup(
293+
return await callGHCup(
294294
context,
295295
logger,
296296
[ 'run'
@@ -321,13 +321,12 @@ async function callGHCup(
321321
): Promise<string> {
322322
const metadataUrl = workspace.getConfiguration('haskell').metadataURL;
323323

324-
const storagePath: string = await getStoragePath(context);
325324
if (manageHLS === 'GHCup') {
326325
return await callAsync(
327326
'ghcup',
328327
['--no-verbose'].concat(metadataUrl ? ['-s', metadataUrl] : []).concat(args),
329-
storagePath,
330328
logger,
329+
undefined,
331330
title,
332331
cancellable,
333332
undefined,
@@ -344,18 +343,16 @@ async function getLatestHLS(
344343
workingDir: string,
345344
toolchainBindir: string
346345
): Promise<[string, string]> {
347-
const storagePath: string = await getStoragePath(context);
348-
349346
// get project GHC version, but fallback to system ghc if necessary.
350347
const projectGhc = toolchainBindir
351348
? 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);
353350
const noMatchingHLS = `No HLS version was found for supporting GHC ${projectGhc}.`;
354351

355352
// 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[]>();
357354
// 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[]>();
359356
// since installed HLS versions may support a different set of GHC versions than the bindists
360357
// (e.g. because the user ran 'ghcup compile hls'), we need to merge both maps, preferring
361358
// values from already installed HLSes
@@ -396,8 +393,8 @@ export async function getProjectGHCVersion(toolchainBindir: string, workingDir:
396393
return callAsync(
397394
'haskell-language-server-wrapper',
398395
args,
399-
workingDir,
400396
logger,
397+
workingDir,
401398
title,
402399
false,
403400
environmentNew,
@@ -522,8 +519,7 @@ async function getLatestToolFromGHCup(context: ExtensionContext, logger: Logger,
522519
const latestInstalledVersion = latestInstalled.split(/\s+/)[1];
523520

524521
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)
527523
if (ver) {
528524
return ver;
529525
} else {
@@ -564,7 +560,6 @@ async function getLatestAvailableToolFromGHCup(context: ExtensionContext, logger
564560
// otherwise ensures the specified GHC is supported.
565561
async function getHLSesFromGHCup(
566562
context: ExtensionContext,
567-
storagePath: string,
568563
logger: Logger
569564
): Promise<Map<string, string[]> | null> {
570565
const hlsVersions = await callGHCup(
@@ -614,9 +609,9 @@ async function getHLSesFromGHCup(
614609
*/
615610
async function getHLSesfromMetadata(
616611
context: ExtensionContext,
617-
storagePath: string,
618612
logger: Logger
619613
): Promise<Map<string, string[]> | null> {
614+
const storagePath: string = await getStoragePath(context);
620615
const metadata = await getReleaseMetadata(context, storagePath, logger).catch((e) => null);
621616
if (!metadata) {
622617
window.showErrorMessage('Could not get release metadata');

0 commit comments

Comments
 (0)