サクラエディタに、対応するHTML閉じタグへジャンプする機能を追加するパッチを作りました。
サクラエディタには、 Ctrl + ] とかで、 対応する括弧に飛ぶ機能がありますが、
これを拡張して、 HTMLタグだったら、その閉じタグ(または開始タグ)に飛ぶ機能を作りました。
世の中、divとかspanが複雑にネストしたHTMLがあるので、そういうコードを解読するときに便利だと思います。
詳細とパッチは以下にあります。
http://d.hatena.ne.jp/rti7743/20161224
パッチありがとうございます。
添付のパッチの中身が 0 byte になっているみたいです。
http://sakura.qp.land.to/?Develop%2FLicenses
ライセンス明確化で、zlib/libpngにご賛同いただけるとありがたいです。
if系の後ろの部分のスペースが空いてる所と空いてないところがあるみたいです。
SearchBracket内部で、SearchHTMLTagを呼び出しているため、色分け処理のときにも、HTMLタグ検索が呼ばれていると思います。そのため対括弧強調表示がおかしいようです。
属性がないpタグでジャンプがうまくできないのは、既存機能を優先するというのであれば仕様がないのかなと思います。
htmlタグジャンプという独立した機能を提供すれば、それも解決できるとは思います。
このパッチはこれはこれでいいのではないでしょうか。
html用になっていますが、xmlでも制限付きではありますが動作しますね。
独立した機能になるならそのときにxml対応も考えればいいかなと。
githubのほうをやっているのも私なので、ライセンスに賛同いただけて問題が見つからなければ、先にgithub側でマージしたいと思います。
(本家側でのコミットの判断・対応は現在、一身上の都合により担当から外れています)
とりあえず、括弧ジャンプからタグジャンプを分離してみました。
対HTMLタグジャンプは、 Ctrl + Shift + [ または、 Ctrl + Shift + ] に割り当てました。
また、そのとき、
などの短いタグジャンプで問題が一つあったので修正しました。
ついでに、linkタグとかは、rss xmlでは普通に出てくるので、除外するのをやめました。
また、せっかくなので、HTMLタグジャンプをした場合、カーソルの移動位置を変更ました。
開始タグへ飛んだ場合、開始タグの先頭へ、閉じタグへ飛んだ場合、閉じタグの後方へ飛びます。
(以前は、既存の <> 動作で誤爆しないように、タグの中腹に飛ばしていました。)
ただ、ひとつわからないことがあります。
ディフォルトで、メインメニューに出す方法がよくわかりません。
設定で、メインメニュー登録をやれば、
対HTMLタグジャンプを出すことができるのですが、
ディフォルトで出すことができませんでした。
メインメニューに追加するには、どこを修正すればいいんでしょうか?
とりあえず、メインメニューへのディフォルト追加以外はできたので、
ここまでのパッチをお送りします。
githubの方も直しておきました。
https://github.com/rti7743/sakura/commit/948d301c564e23973254446bdfe9f2011b5b3c62
ひとつ前に書いたコメントが何か画面に表示されないので、
ライセンスについて追記します。
zlib/libpngに賛同します。
あえてランセンスを言うならば、コードは NYSL / CC0 / public domainみたいな感じで結構です。
ご自由にお使いください。
ライセンスの件了解しました。
メインメニューに表示するには、resource/MainMenu.ini
に、コマンドコードとアクセスキーが直接書かれているので、ここに1行追加すれば可能です。
しかしこれだけだと、過去のバージョンから引き継いだ場合に、メニューに表示されなくなってしまうので、
env/CShareData_IO.cpp CShareData_IO::ShareData_IO_MainMenu
nCurrentVerの番号と、addInfosに追加が必要です。
あと、ツールバーに登録するためには、mytool.bmpとCMenuDrawer::CMenuDrawer()のtbdに修正が必要です。
すみませんがgithubと本家でこの部分は差分があり衝突します。
C言語系では、
<p>
のように前後に比較演算子が挟まることはないので、pタグなどのときにタグを優先して、HTMLタグ検索を、そうでないときは対括弧を優先してジャンプするマクロを書いてみました。
iniファイルでしたか。気が付きませんでした。
追加したら無事動作しました。
iniのアップデートについてですが、
verはいくつにすればいいんでしょうか?
既存でカラーマーカーとかの拡張で3まで使われていますが、
4にしてもいいんでしょうか。
ただ、こちらのsourceforge SVNとgithubの方で違いがありますね。
sourceforge SVNだと ver1
githubだと ver3です。
ここらへんどうすればいいですか?
私としては、このあたりの調整はソフトウェアのリリースサイクルにもかかわるところなので、
コミッタの方にお任せしたいと思います。
(githubのバージョンとsourceforgeが同期されるといいなあ・・・)
アイコンについては、絵心がないので、とりああえずはなしでもいいかなと思っています。
将来親切な人が絵をかいてくれればいいなと。
(もし、アイコンを入れるとしたら、何番のアイコンに増設すればいいんでしょうか?)
とりあえず、この対HTMLタグジャンプについては、
動作にバグがなければ、前回あげたパッチで一度完成としたいところです。
2000年ぐらいにPHPキーワードファイルを提供してから、
16年ぶりぐらいにサクラエディタへコミットできてよかったです。
いろいろほしい機能(たとえばソース管理連携)とかもあるので、
もしかしたら、またパッチを出すこともあるかもしれませんが(予定はまったくの未定です)、
どうかよろしくお願いします。