pme の 文字列中の改行文字をなんとかしてみる
pme はすごく便利だけど、少しだけ困ったことがある。
マクロ定義の中の文字列に改行が含まれていた場合は、そこで改行してしまって見づらくなることだ。
たとえば、以前書いたこのマクロは、
(pme (dbg-msgbox 'foo 'bar)) (msgbox (concat "~S " "~S ") 'foo 'bar) nil
と展開されてしまって、ちょっと悲しい。
下のようにしてみた。
;; mod (defun pprint-1 (s0) (pp-loop (substitute-string (format nil "~S" s0) "\n" "\\\\n")) (values))
ついでに、最後に nil って表示されてたのを消した。
結果、さっきの例だと↓こうなる。
(pme (dbg-msgbox 'foo 'bar)) (msgbox (concat "~S\n" "~S\n") 'foo 'bar)
いい感じになった。
本当は、改行以外のコントロール文字(タブ文字とか)も考えたほうがいいけど、まあ今はこれでよしとする。