我切换到 Sublime Text 3,但现在我正在 ST3 中编写一些 Haskell 代码,我注意到一些很奇怪的事情,这就是守卫的语法突出显示逻辑。
正如您所看到的,当我这样写时,它会突出显示白色的第一个防护装置和白色/洋红色混合的不同标志:
只有当我使用这个错误语法(参数后带有等号)时,它才会正确显示。
有人知道如何解决这个问题吗?
最佳答案
您可能正在使用默认的 Haskell 语法突出显示。我建议禁用 Haskell
打包并安装SublimeHaskell
。它的语法突出显示要好得多,并且它可以识别诸如 otherwise
之类的东西。作为“内置”(主要是 Prelude
被视为内置的函数)。
如果您使用内置的 Haskell 突出显示,您可以使用 CtrlAltShiftP 快捷方式。单独突出显示每个保护管,然后点击此快捷方式。在状态栏中,它将简要显示与该区域关联的语法范围名称。对于第一个管道,您将得到 source.haskell meta.function.type-declaration.haskell
,第二次你会得到 source.haskell keyword.operator.haskell
。使用 SublimeHaskell 的语法你会得到 source.haskell keyword.operator.haskell
对于两个管道。我不会说 SublimeHaskell 是完美的(尝试在 module Name where
之后缩进整个文件),但它肯定更好。由于语法具有相同的名称,并且 SublimeHaskell 附带了片段和涵盖内置功能的所有内容,因此我建议禁用 Haskell
插件,只留下 SublimeHaskell
的语法可选。
关于Haskell Guards 和 Sublime Text 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27322591/