Source of Nothingness - outline

* Menu

About | Profile | まとめ | オリジナル | xyzzy | あんてな | | buzz

* xyzzy lisp : clone-buffer

とりあえずこんなところか。
主だったところはsession.lから。
outline-tree2をバッファバーの代わりにしつつ、rename-bufferを良く使う人向け。
もしくは*compilation*バッファとかでうっかりそのまま編集して、undoができず残念な思いをする人向け。
(defun clone-buffer (buffer-name &optional (buffer (selected-buffer)))
  (interactive "sClone Buffer: ")
  (let ((major buffer-mode)
        (minor (mapcan #'(lambda (mode)
                           (let ((var (and (consp mode) (car mode))))
                             (and (symbolp var)
                                  (boundp var)
                                  (symbol-value var)
                                  (list var))))
                       *minor-mode-alist*))
        (locals (mapcar #'(lambda (var)
                            (and (symbolp var)
                                 (local-variable-p var)
                                 (cons var (symbol-value var))))
                        *buffer-info-variable-list*))
        (point (point)))
    (set-buffer (create-new-buffer buffer-name))
    (insert-buffer buffer)
    (funcall major)
    (mapc #'(lambda (f) (and (fboundp f) (funcall f))) minor)
    (mapc #'(lambda (x)
              (when (and (car x) (symbolp (car x)))
                (make-local-variable (car x))
                (set (car x) (cdr x))))
          locals)
    (goto-char point)))

メモ:
undo情報をそっくり写せるとうれしいかも。
(ReadMore...)

* 2006-04-25

* xyzzy topic : outline-tree2, treeview, diff-detail 更新

http://ohkubo.s53.xrea.com/xyzzy/index.html

あの件とかこの件とか。後者については採用感謝です。
(2006-03-30)
(ReadMore...)

* 2006-03-22

いつの間にやら英語の論文を読むことに。門外漢の分野なのに……
たぶん直感に従ったやつが答え。それも結局はややこしいことに。
閑話休題。
outline-tree2のフォルダの表示は同じフォルダでもロングネームとショートネームで区別されちゃってます。
ロングネームで統一しておいたほうが無難かと。
状況としてはこんな感じ
27日のCommon Lispセミナー(http://jp.franz.com/base/seminar-2006-03-27.html)は結局行くことにしました。
OSC2006は行くつもりだったのに、寝てすごしてしまったので今度はちゃんと行きます。

(ReadMore...)

* 2006-03-15

outline-tree2 で ed::build-summary-function の結果をノードにするってのはできそうな感じ。
最近C++を扱っているのだけど、Lispコーディングの影響か「三項演算子好き」「if文の条件部分にandとかorで処理を並べる」とコーディングスタイルがいつの間にやら変わっていた。
「++, --」は前置の方が速いと知って矯正中。

* xyzzy topic : outline-tree2の使い方

outline-tree2の使い方の紹介です。
第一部はアウトライン作成関数の生成について
第二部はアウトラインの出力について
(2006-03-12)

* xyzzy lisp : outline-treeの表示順にnext-bufferとか

(in-package "outline-tree2")
(global-set-key #\C-PageUp #'(lambda ()
                               (interactive)
                               (outline-tree-previous-buffer)
                               (outline-tree-select-node-by-buffer (selected-buffer))))
(global-set-key #\C-PageDown #'(lambda ()
                                 (interactive)
                                 (outline-tree-next-buffer)
                                 (outline-tree-select-node-by-buffer (selected-buffer))))

outline-treeをバッファバーの代わりにしているから、その見た目どおりに移動したい、
ということで、マウスに触る機会を減らすために。
outline-treeは規模が大きいからなかなか読めない(^^;