如何配置Emacs的align-rules-list以排队=, - >和|在Haskell代码?

时间:2015-02-18 22:58:40

标签: emacs alignment elisp

我经常编写如下代码:

data Tok =
  TokA String |
  TokS Char   |
  TokL String
  deriving (Show, Eq)

data Tokenizer = Tokenizer { runTokenizer :: (Tok, Tokenizer) }

tokenize xs = Tokenizer $ go xs
  where
    psh []     = go xs
    psh (r:rs) = (TokS r, Tokenizer (psh rs))
    plg rs     = (TokL rs, Tokenizer (go xs))
    go (x:xs)  =
      case span (== '-') x of
        (_, "")    -> (TokA x, Tokenizer (go xs))
        ("-", rs)  -> psh rs
        ("--", rs) -> plg rs
        _          -> (TokA x, Tokenizer (go xs))

请注意,|符号排成一行,->符号排成一行,=符号排成一行。

我已尝试使用Emacs align命令,但它不会自动运行,因此我不得不求助于使用align-regexp和大量输入。我知道我可以修改align-rules-list以某种方式自动检测和应用特定规则,但我不知道如何修改变量来执行此操作。在上述三种情况下,有人可以帮助我吗?

0 个答案:

没有答案