ソースコードを整形する
1年前にCの仕事を始めたときは、エディタが自動整形してくれないことに絶望していた。
なんて面倒くさいんだ…。
面倒なことは大嫌いなので速攻でツールを検索。
とりあえず「Artistic Style - Index」に落ち着いた。
xyzzyからこんな感じで使用。
(Astyle.exeはxyzzyディレクトリに'bin'ディレクトリを作成し、その中に置いてある。)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Artistic StyleでCソース整形 (Artistic Style 1.22専用) ;; ;; 現在のバッファをAstyle.exeで整形する。 ;; 実行終了を待ってからバッファの再読込を行う。 ;; ;; ここで使用しているArtistic Style のオプション ;; -t4 : インデントをタブで行う。タブ幅は4を指定。 ;; -S : 'switch' に対して 'case XXX:' をインデントする。 ;; -l : ブラケットをclassや関数宣言では行分割し、ブロック前文と同じ行に置く。('--brackets= linux') ;; -p : 演算子だけの場合、前後に空白を挿入する。 ;; -y : '--brackets=attach' か '--brackets= linux' を使用したときに、 先行する閉ブラケットと閉ヘッダ(例えば'else', 'catch', ...)を行分割する。 ;; -X : 標準エラー出力でなく標準出力へエラーおよびヘルプ情報を表示する。 ;; -v : 冗長なモード。オプション情報等を表示する。 (defun astyle () (interactive) (setq curbuf (buffer-name (selected-buffer))) (pipe-command (concat (merge-pathnames "bin/AStyle.exe" (si:system-root)) " -t4SlpyXv " (get-buffer-file-name))) (setq resultbuf (buffer-name (selected-buffer))) (switch-to-buffer curbuf) (revert-buffer) (switch-to-buffer resultbuf)) (define-key spec-map #\C-a 'astyle)