Правильный способ передать аргументы подсказки в ghc-mod?

Я пытаюсь скопировать файл с помощью ghc-mod. Я знаю, что ghc-mod использует hlint для этого, и я знаю, что hlint принимает аргументы для изменения предложений, о которых он сообщает. Например, это работает просто отлично:

eric@linux-epth:total-beginner-haskell$ hlint src/Borrower.hs --hint=Generalise
src/Borrower.hs:44:3: Suggestion: Use mappend
Found:
getName br ++
" (" `mappend` show (getMaxBooks br) `mappend` " books)"
Why not:
getName br `Data.Monoid.mappend`
(" (" `mappend` show (getMaxBooks br) `mappend` " books)")

1 hint

Вот формат ghc-mod, необходимый для передачи аргументов в hlint:

Usage: ghc-mod lint [-h|--hlintOpt ARG] FILE

Но ни один из вариантов ниже не дает подсказку, показанную выше:

eric@linux-epth:total-beginner-haskell$ ghc-mod lint -h hint=Generalise src/Borrower.hs
eric@linux-epth:total-beginner-haskell$ ghc-mod lint --hlintOpt hint=Generalise src/Borrower.hs
eric@linux-epth:total-beginner-haskell$ ghc-mod lint --hlintOpt "--hint=Generalise" src/Borrower.hs
eric@linux-epth:total-beginner-haskell$ ghc-mod lint --hlintOpt '--hint=Generalise' src/Borrower.hs

Какой правильный формат использовать с ghc-mod для передачи аргументов через hlint?

Спасибо.

1 ответ

Решение

Похоже, это ошибка в ghc-mod:

Проблема: https://github.com/DanielG/ghc-mod/issues/826

Это уже исправлено и объединено с мастером, но еще не выпущено.

Поскольку вехой проблемы является v5.8.0.0, это может быть исправлено в этом выпуске.

Я построил ghc-mod из последних master филиал от Github, и подтвердил, что работает следующая команда:

$ ghc-mod lint src/Borrower.hs  --hlintOpt='--hint=Generalise.hs'
src/Borrower.hs:1:8: Suggestion: Use mappendFound:  getName br ++    " (" `mappend` show (getMaxBooks br) `mappend` " books)"Why not:  getName br `Data.Monoid.mappend`    (" (" `mappend` show (getMaxBooks br) `mappend` " books)"

Вот шаг, который я выполнил, чтобы построить последний ghc-mod из Github.

$ git clone https://github.com/DanielG/ghc-mod
$ cd ghc-mod
$ stack init --ignore-subdirs --solver
$ stack build
Другие вопросы по тегам