xyzzyでmode作成に挑戦。printfデバッグについて
既存lispの解析方法について、あれこれと検討しました。
しかしxyzzy*1のモード等作ってる人どんな手順でコード動作の確認とか解析してるんだろうか?
;;; トレース機能を有効にする (toggle-trace-on-error)
次にこれまた基本のprintfデバッグ的な方法について検討。
一先ずhello world。
(with-output-to-buffer ((find-buffer "*scratch*")) (format t "hello world~%"))
で一先ず出力をかましてみたが失敗。
(defun debag-target (value) ... (with-output-to-buffer ((switch-to-buffer "*Output*")) (format t (string value)));;;printf-likeコードのつもりだけどdebag-targetの挙動が変わってしまってるので失敗 ... )
調べてみると、msgbox使うとの事。
(defun debag-target (value) ... (msgbox "~S" value) ... )
あらら、簡単^^;でもメッセージボックス閉じるのがめんどくさいw;
バッファ作ってそこに吐き出すように検討。
(defun debag-target (value) (with-output-to-buffer ((if (find-buffer "*Output*") (find-buffer "*Output*") (switch-to-buffer "*Output*")));;;with-で全体を包んでやる ... (format t "~D~%" value) ... );with-output-to-buffer )
こんな感じかな^^