Haskell Guards 和 Sublime Text 3

标签 haskell syntax syntax-highlighting sublimetext sublimetext3

我切换到 Sublime Text 3,但现在我正在 ST3 中编写一些 Haskell 代码,我注意到一些很奇怪的事情,这就是守卫的语法突出显示逻辑。

正如您所看到的,当我这样写时,它会突出显示白色的第一个防护装置和白色/洋红色混合的不同标志:

Correct guards, incorrect highlighting.

只有当我使用这个错误语法(参数后带有等号)时,它才会正确显示。

Incorrect guards, correct highlighting.

有人知道如何解决这个问题吗?

最佳答案

您可能正在使用默认的 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/

相关文章:

algorithm - Haskell 线性时间在线算法

haskell - 简单数据类型的未装箱向量

c++ - 什么是远帕斯卡?

C++宏问题(逗号,的解释)

vue.js - Prism 在 Vue 组件中不起作用

haskell - 根据依赖版本的不同导入

haskell - 如何将 Float 小数部分的前 32 位转换为 Word32?

syntax - 这是什么 Visual Basic 语法(开始/结束,无类)?

search - 在 Janus MacVim 中关闭搜索突出显示

python - 用于语法突出显示的 powerpoint/openoffice 插件