Расширение VS Code Haskell — Не удалось выяснить, какую версию GHC использует проект

#haskell #visual-studio-code #haskell-stack

Вопрос:

Когда я открываю какой-нибудь проект haskell в VS-коде, я получаю это сообщение:

Не удалось выяснить, какую версию GHC использует проект: /home/andrej/.config/Code — OSS/User/globalStorage/haskell.haskell/haskell-язык-сервер-оболочка-1.2.0-linux —проект-ghc-версия вышел с кодом выхода 1: Не найден «hie.yaml». Попробуйте определить тип проекта! Не удалось получить версию проекта GHC, так как у нас нет колыбели

Как это решить?

Редактировать:

Вот древовидная структура проекта:

 .
├── .exercism
│   └── metadata.json
├── package.yaml
├── README.md
├── src
│   └── ResistorColors.hs
├── stack.yaml
└── test
    └── Tests.hs
 

Комментарии:

1. Похоже, вам нужно это создать hie.yaml .

2. привет, не могли бы вы поделиться выводом вызова /path/to/haskell-language-server-wrapper-1.2.0-linux --probe-tools и той же команды --project-ghc-version в оболочке с текущим рабочим каталогом в корневом каталоге проекта?

3. github.com/Avi-D-coder/implicit-hie#readme Вы можете использовать этот инструмент для создания hie.yaml файла.

4. когда я запускаю stack build , а затем перезапускаю vs code, ошибка больше не появляется

Ответ №1:

Поскольку в вашем проекте есть файлы конфигурации проекта стека, расширение Haskell должно быть в состоянии определить, что ему нужно, и hie.yaml файл для настройки расширения обычно не требуется для простых проектов, подобных этому.

haskell-language-server , проект, на котором основано расширение VS Code Haskell, все еще находится в стадии активной разработки и часто немного застревает. Следующее может помочь разобраться во многих распространенных проблемах:

  1. Бежать
     stack clean
    stack build
     
  2. Нажмите Ctrl Shift P и нажмите «Haskell: Перезапустить сервер Haskell LSP» (начните вводить, чтобы найти его).

Счастливого Хаскеллинга!

Комментарии:

1. «Haskell: Перезапустить сервер Haskell LSP» не помогает. Мне все еще нужно перезапустить код VS.

2. Затем «Окно перезагрузки» из того же выпадающего списка должно сработать.

Ответ №2:

Ни один из них не работает, пока я не удалю /Users/sweirich/.ghc/x86_64-darwin-8.10.4/environments/default

Как только вы удалите значение по умолчанию и снова откроете код vs. Расширение VS Haskell сбросит настройки, и ошибка, похоже, исчезнет.

Нашел ответ на https://issueexplorer.com/issue/haskell/haskell-language-server/2224

Комментарии:

1. Работал на меня. Тнх

2. Также сработало, когда у меня возникла аналогичная проблема: github.com/haskell/haskell-language-server/issues/2495 — похоже, удаление default может «исправить» кучу, казалось бы, не связанных между собой проблем.