haskell / haskell/vscode-haskell

haskell.manageHLS = "PATH" ignored on initial startup

未关闭
#1,332 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
type: bug
主要语言
TypeScript
星标
597
派生
98
PR 合并指标
30 天内没有已合并 PR

描述

### Your environment

MacOS

### Steps to reproduce

run vscode with
```
code --user-data-dir {empty_dir} --extensions-dir {empty_dir} .
```
with devcontainer.json having
```
"settings": {
"haskell.manageHLS": "PATH",
```

### Expected behaviour

The "How do you want the extension to manage/discover HLS and the relevant toolchain?" popup window should not appear.

### Actual behaviour

The popup window will appear.

### Include debug information

According to:
https://github.com/haskell/vscode-haskell/blob/3a8d51f0b15b0a49e98ce47a7786e4bf71c6fbbc/src/hlsBinaries.ts#L350

```
async function promptUserForManagingHls(context: ExtensionContext, manageHlsSetting: ManageHLS): Promise {
if (manageHlsSetting !== 'GHCup' && (!context.globalState.get('pluginInitialized') as boolean | null)) {
const promptMessage = `How do you want the extension to manage/discover HLS and the relevant toolchain?

Choose "Automatically" if you're in doubt.
`;
```
I have set manageHlsSetting to "PATH" in the devcontainer.json.
It does not equal to "GHCup", so the first part of the condition is true.
The plugin has not been initialized, so the second part of the condition is also true.
Hence the popup window will appear.

Workaround:
Set manageHlsSetting to "GHCup" in the devcontainer.json,
and set all the keys in "haskell.toolchain" to null to mimic the "PATH" behavior.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。