Как написать сложные / многострочные правила подсказок?

Какой способ сопоставить следующий шаблон кода...

do 
  x <- createModel a b
  case x of
    Left e -> throwM $ ValidationErrors e
    Right y -> ...

... и предложить следующую замену:

withThrow $ createModel a b

Я попробовал следующее, но это не работает:

hint: {lhs: "do {x <- createModel v w; case x of Left e -> throwM $ ValidationErrors e}", rhs: "withThrow $ createModel v w"}

1 ответ

Проблема состоит в том, что сопоставление HLint основано на выражениях, тогда как правило, которое вы пытаетесь определить, действительно основано на выражениях - вы хотите сопоставить два выражения в любом месте рядом do, Вполне возможно, что HLint можно изменить, чтобы сделать это, и вы считаете, что это было бы полезно, пожалуйста, поднимите вопрос HLint.

Другие вопросы по тегам