マルチフレーム版へ移行したどー

タイトルの通りマルチフレーム版こと0.2.3系に移行した。その時の産物をぶちまける。

multiple-frames-fix.l


私は他人の作ったスクリプトは可能な限り弄りたくなかったので関数の上書きやラップで対応した。
私の使ってるsite-lispで干渉する物が大体これくらいだった。
厳密にはまだあるけど、使用頻度少ないし起動できるので後回し。

簡単なラップ化

やってる事は滅茶苦茶だけどね
hashで保存されてる*app-menu*を別の所に残して、(get-app-menu)したのを*app-menu*入れて(funcall)して戻ってきたらhashに戻す。
意外とこんなんで行けた( ;谷)
browserex, buf2html, csv-mode, ggrep, multiple-replace, outline-tree2, py-mode, tterm, reference.chm, xtal-mode が該当。

条件付きラップ

si::*fset, guidgen-setup-menuとguidgen-remove-menu を弄った。
si::*fsetとか弄りたくなかったが…まぁ、ifが混じっただけなんで大丈夫でしょう。多分。
katex, guidgen が該当。

関数上書き

save-session-info を弄った。
session-ext が該当。

流用時の注意点
(when (consp (member :multiple-frames *features*))
  (require "multiple-frames-fix"))

という感じで出来るだけ早く読み込む。
(ni-autoload)使ってる人はmultiple-frames-fix.lのreference.chmの部分は切り取って(ni-autoload)の後でやる事。
(provide)されてないから再度上書きされちゃいますねん…

browserexとoutline-tree2のメニューが(make-frame)したフレームには出ないのを修正
outline-tree2をメインのフレームしかツリー表示はないが何となく動くように修正




以降は昔作ったものも含めてごっちゃり

siteinit.l


でか過ぎて困るw

app-menu2.l


メニューバーを英語にしたかった。それだけ。
実害がないのでまだ直してないがマルチフレーム版ではうまく動作してない('A
修正した

ctags2.l


メニュー対応

(setq *ctags-read-tags-alist*
      ; ("Project directory" . "Tags directory")
      '(("~/work/" . "~/work")
        ("~/work2/" . "~/work2")
        ))

.xyzzyとかで上記のような感じに定義すると配下のフォルダでは使用場所を読むようにした。

meadow-func.l


適当にmeadowキーバインドされてる関数を拾ってみた。
○○-mode-hookで

(make-local-variable 'ed::local-help-variable)
(setf ed::local-help-variable *ahk-html-help-file*)

とか

(make-local-variable 'ed::local-help-variable)
(setf ed::local-help-variable 'gauche-find-ref-asap))

って感じでchmのパス文字列か関数にするとF1 .でとかやってる。
siteinit.lも並べて見た方が良いかな。

mercurial-cygwin.l


mercurial.lでcygwinmercurialを使いたかった。
…正直今となっては微妙かもと思ってる

tterm2.l, cygterm.l

http://git.io/MH8rHg

utf-8対応とかメニュー登録とかその辺

tterm.lに修正を加えNAXELに登録した(マルチフレーム版以外でも動作可)

hideif2.l


ctags2同様プロジェクトごとに規定設定を作りたかった

(setq *hide-ifdef-parameter-alist*
      ; ("Project directory" ("Include directory list") ("Define list") ("Undefine list"))
      '(("~/work"
         ("~/work/include"
          "~/work/include/xxlib")
         ("WIN32" "_WINDOWS")
        ("~/work"
         ("~/work/headers")
        ))

こんな感じ。

outline-tree-ctags.l


outline-treeに表示されるctags属性をcやfじゃなくclassやfunctionと表記されるようにしたかった。それだけ。
2012.04.03バージョンのlist-kindsが5.7J1から取ってきたからか私のと随分違ったので無理やり修正した

module-definition-mode.l


dll作る時の.def用。色付けしたかっただけ。

colordiff-mode.l


.diffとか.patch用。
便利だがcontext形式だけはregexp-keyword-listで対応できないので辛い。
まぁ、unified形式の方がそもそも好きなんで。

あとがき

多分私が自作したのはこれくらいだと思う。
質問やらなんやらがあるならコメでも呟きでも。



siteinit.lにはかなり色んな物が転がってるかと。うちの会社が

void main()
{
	#define AAA

	if( true )
	{
		func1();
	}
	#ifdef AAA
	func2();
	#else
	func3();
	#endif

	#undef AAA
}

みたいなプリプロセッサのインデントを指定されてるんで頑張っのとか、
VB.netに可能な限り対応してみたりとか
hg-modeをmqやらhgflowやら対応させてたりとか