【问题标题】:Haskell indentation doesn't line up function argumentsHaskell 缩进不对齐函数参数
【发布时间】:2015-08-14 18:45:10
【问题描述】:

我使用 Emacs 作为我的主要 Haskell 编辑器,因此,我当然使用 haskell-mode 作为编辑 Haskell 代码的主要模式。

现在,无论出于何种原因,haskell-indentation 不提供函数参数的缩进点。

我的意思是 Emacs 将始终如一地这样做:( 是另一个缩进点)

myFunction = maybe arg1
□            arg2
□            arg3

不要这样做:

myFunction = maybe arg1
□            □     arg2
□            □     arg3

有时,由于行太长,我需要将函数分成多行,但没有 haskell-mode 提供正确的缩进级别让我有些烦恼。

我能做些什么来缓解这种情况?

编辑

鉴于我不是唯一一个遇到此问题的人,我在haskell-mode github 页面 [here] 上开了一张票

【问题讨论】:

  • 只有当let/do/where/of之一出现时,布局规则(所有关心缩进)才生效;即使在布局上下文中,只要您不减少缩进以使arg1 的缩进小于maybe,就不会冒混淆缩进的风险。
  • 我也有同样的问题。通常我会使用turn-on-haskell-simple-indent 暂时切换到简单缩进模式,然后进行正确的级别缩进。
  • @amalloy 不正确; foo = do maybe arg1\n.........arg2 的解释与 foo = do maybe arg1\n...............arg2 的解释非常不同,尽管在这两种情况下都不会减少缩进。 (前者为foo = do { maybe arg1; arg2 },而后者正确为foo = do { maybe arg1 arg2 }
  • AFAICT,haskell-indent(相对于haskell-indentation)得到了这一项权利。
  • 我投票结束这个问题,因为它属于emacs.stackexchange.com 网站。

标签: haskell emacs indentation


【解决方案1】:

haskell-indentation haskell-mode 问题已于去年关闭,不会修复。

对于所需的行为,使用 haskell-indent。

【讨论】:

    猜你喜欢
    • 2013-01-15
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 2021-08-04
    • 2020-02-02
    • 1970-01-01
    相关资源
    最近更新 更多