Използвам 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