Val*_*lev 23 emacs haskell indentation
请帮我在Emacs haskell-mode中设置适当的缩进
当我试图键入下来像ADT或记录,我按下后才能上错列<ENTER>,并按<TAB> 不会,直到我进入或者切换到合适的一个|或";"!
data MyADT = Oh
| Hi
| Hello
| <- the cursor is here again!
Run Code Online (Sandbox Code Playgroud)
试图解决我设置的问题
(define-key global-map (kbd "RET") 'reindent-then-newline-and-indent)
Run Code Online (Sandbox Code Playgroud)
在我的.emacs文件中,但它也不会在按下时缩进当前行<enter>!
另一个奇怪的行为:缩进案例
oneChar c = case lookup c simpleEscapes of
| <- what? here?!
Run Code Online (Sandbox Code Playgroud)
这听起来像你打字<Enter>然后" |"然后<Tab>.如果我这样做,我会得到相同的结果.但是,如果我键入<Enter>然后<Tab>然后<Tab>再次自动插入" |"并将其正确排列,如下所示:
data MyADT = Oh
| Hi
|<Cursor>
Run Code Online (Sandbox Code Playgroud)
当我使用M-x eval-expression haskell-version <Enter>"v2_4" 检查我的haskell模式版本时.
Emacs haskell-mode没有完全分析源代码,因此我认为"自动"功能是近似的.<Tab>在新行上键入几次会循环显示几个可能的缩进,有时还会|为代数数据类型插入类似" "的文本.
我评论了该行
;;(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
Run Code Online (Sandbox Code Playgroud)
现在我得到了一个很好的“选项卡”行为:至少,它允许我选择一列,并且不会将我束缚在它喜欢的列上。但没有自动缩进让我有点烦恼,所以我希望这是一个临时解决方案