Я использую Emacs в качестве основного редактора Haskell, и поэтому я, конечно, использую haskell-mode
в качестве основного режима редактирования кода Haskell.
Теперь по какой-то причине haskell-indentation
не предлагает точку отступа для аргументов функции.
Я имею в виду, что Emacs будет последовательно делать это: (□
— это другая точка отступа))
myFunction = maybe arg1
□ arg2
□ arg3
Вместо этого:
myFunction = maybe arg1
□ □ arg2
□ □ arg3
Иногда мне нужно разбить функции на несколько строк из-за того, что строки становятся слишком длинными, но отсутствие haskell-mode
с правильным уровнем отступа меня немного беспокоит.
Что-нибудь, что я могу сделать, чтобы облегчить это?
Редактировать
Поскольку я не единственный с этой проблемой, я открыл тикет на странице haskell-mode
github [здесь]
arg2
иarg3
на отдельные строки, вы можете сделать то же самое сarg1
. - person duplode   schedule 14.08.2015maybe
, а не будут иметь дополнительный отступ ... И, поскольку haskell - это язык, основанный на отступах, теоретически это может вызвать некоторую неправильную интерпретацию. - person Electric Coffee   schedule 14.08.2015myFunction = maybe<newline><4 spaces>longArg1<newline><4 spaces>longArg2<newline><4 spaces>longArg3
, поэтому кажется, что если бы я использовал haskell-mode, то столкнулся бы с проблемой, аналогичной вашей. - person duplode   schedule 14.08.2015let/do/where/of
; и даже в контексте макета, если вы не уменьшаете свой отступ так, чтобыarg1
имел отступ меньше, чемmaybe
, вы не рискуете запутать отступ. - person amalloy   schedule 14.08.2015turn-on-haskell-simple-indent
, а затем делаю отступ нужного уровня. - person Sibi   schedule 14.08.2015foo = do maybe arg1\n.........arg2
будет интерпретироваться совсем иначе, чемfoo = do maybe arg1\n...............arg2
, хотя ни в том, ни в другом случае отступ не уменьшается. (Первый будетfoo = do { maybe arg1; arg2 }
, а второй будет правильноfoo = do { maybe arg1 arg2 }
. - person Daniel Wagner   schedule 15.08.2015haskell-mode
github, так как похоже, что я не единственный с этой проблемой. - person Electric Coffee   schedule 15.08.2015haskell-indent
(в отличие отhaskell-indentation
) понимает это правильно. - person Stefan   schedule 07.08.2016