写FP语言我喜欢把代码根据=对齐,
但代码里unicode太多,我不得不使用一个等宽字体,来得到很好的对齐效果。然而有的字体,比如我是用的Iosevka, 里面的→占用了两个字符,
↑ty : Fin (suc m) → Type m → Type (suc m)
↑ty k Int = Int
↑ty k (‶ X) = ‶ punchIn k X
↑ty k (A `→ B) = ↑ty k A `→ ↑ty k B
↑ty k (`∀ A) = `∀ (↑ty (#S k) A)
上面的代码在我的代码里对齐:
但是由于大部分字体对待→是一个字符,所以我
align-regexp =
得到的结果是
↑ty : Fin (suc m) → Type m → Type (suc m)
↑ty k Int = Int
↑ty k (‶ X) = ‶ punchIn k X
↑ty k (A `→ B) = ↑ty k A `→ ↑ty k B
↑ty k (`∀ A) = `∀ (↑ty (#S k) A)
当然在大部分字体下,这个结果是符合预期的(比如本论坛的代码字体),但是受我使用的字体影响却不能很好对齐,
我能理解让它考虑到字体有点强人所难,不知道大家有没有什么workaround?