ハック

- ジャンプテーブル
- クラス名 → ファイル・行番号 のリストを適当なファイルに書いておく
- そこをインクリメンタルサーチ、ジャンプ
- TAGSを適当に変換してリストを作れるとなおよし
本体不満点

- 新規作成時の文字コードの指定ができない
- タグジャンプ改良
- ウィンドウサイズと列幅の変更・保存
- ファイル名簡易表示の適用
- スマートインデント
- namespaceはインデントしない、がうまくできない
- ドキュメントを閉じた後も、そのドキュメントのディレクトリをロックしたままになる
- ルートディレクトリにあるファイルのみ、タイトルバーの左端のアイコンのドラッグができない
- ファイル名のbasename、親ディレクトリの名前も、補完候補の単語に入れてほしい
- キャメルケース補完
- State mState を、mS -> Ctrl+Space で補完できるように
やりたいこと列挙

- httpget.js
- このURLのスタイルシートをサクラで開きたい!ってあるよね
- cppimpl.js
- クリップボードの中の関数プロトタイプを解析して、
- ; を \n{\n}\nに変換
- クラス名(ファイル名から引く):: を付加
- virtual, override, finalを除去
- =0 を除去
- デフォルト引数を削除
- using namespaceされてたらネームスペース部分を削除
- で、カーソル位置に貼り付け
- 応用: コンストラクタの場合はメンバ初期化子も追加
- 応用: 前後の関数の名前から、定義を挿入する位置を求めて、cppのその位置まで移動して貼り付け
- svnlog.js
- svnblame.js
- 文字通り。結果をアウトプットウィンドウに出力する
- TortoiseSVNを起動するようにしてもいいかも
- svndiff.js
- TortoiseMergeを起動するようにすると汎用的か
- へぼCodeSnippet
- カーソル左の単語を事前登録した文字列に変換する
- 適当に推論すると面白そう
- ctor -> ファイル名からクラス名を求める・対応する.hから変数名を拾って初期化子も生成
- iter -> ::iterator it = begin(); for(;it!=end();++it) に展開
- iter2 -> その関数の引数やローカル変数にvector, listなどがあればそれをforで回す
- switch -> 選択範囲がenumメンバ変数なら、.hから列挙リストを拾ってcaseを生成
- bind -> bind(&class::func, _1)
- 一部cppimpl.jsとかぶるのが難点
- ローテクに、ダイアログ出して変数名聞いてもいいかも
- 入力内容に応じてプレビューが出るとかっこいいね
- そこまでするなら、VSの本物のXMLを読めるようにする?
- コマンド→推論エンジンへのマッピングは onelinememo.js が参考になる
- 「競合の解決」
- C#のアレ
- カレントディレクトリとカーソル位置のクラス名から#includeを追加する
- FQDNで書いてあればパスも補完する。クラス名単体ならカレントディレクトリを推論する
- using namespace
- 現在行の#includeのパスから、using namespaceを生成して貼り付ける
- sakura上でコンパイル
- カレントディレクトリでme/megを実行
- エラーが出た場合に、その行にジャンプするマクロも用意する
- (無題)を開く
- 開いてるファイルパスの一覧をバッファに書き込む
- インクリメンタルサーチを起動する
- というマクロ。あとはサーチして、Ctrl+Tでジャンプ
- カーソル位置の単語 or 選択範囲でハイライトする
- 検索だとカーソルが動いちゃうけど、ハイライトだけできるかな
- 複数のディレクトリをまとめてGrepする
- includeとsourceとか
- 単に2回Grepして、結果が1つのバッファに出るだけなら楽そう
- カーソル行をウィンドウの上の方へ
- 関数にタグジャンプ後に押す
- 上10行くらい残すと、コメントが読みやすそう
- インデントのスペース数が2or4の倍数じゃないときに色が変わる正規表現キーワード
マクロ開発メモ

ActivePerlのバグ対策
JISで書いてuse encoding '7bit-jis';がよさげやね
残念ながら、encoding.pmは入れないといけないみたいだけど…
http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=macro&tree=c362
JScriptで書くならこっち