揃えたい
(let ((blah foo)
(asdfasdf asdasdfafd))
(message "foo"))
することが
(let ((blah foo)
(asdfasdf asdasdfafd))
(message "foo"))
つまり、let 境界値は適切に配置する必要があります。
最初の 2 行を選択すると、次の関数が機能します。
(defun align-try-1 (beg end)
(interactive "r")
(align-regexp beg end "^\\s-*+\\(?:(let\\S-*\\|\\)\\s-*(+\\S-+\\(\\s-+\\)" 1 1 nil))
ただし、align 機構にフックして align-current を機能させたいと考えています。つまり、最初の 2 行のどこかにポイントがあれば、3 行目に影響を与えずに正しい位置合わせが行われるはずです。