Swanman's Horizon

性欲をもてあましつつなんらかの話をするよ。

未確認で16進数。

うまく言えないのでインストールして確認してください╭( ・ㅂ・)و

これは何?

設計時に定数の識別子上にマウスカーソルを置くとツールチップが出ますよね*1。これ、昔はその定数が宣言されたユニット等を表示する程度の役に立たない内容だったのが、いつからか定数値そのものが表示されるようになってちょっとだけ便利になりました。
でも数値の場合10進数でしか表示されないんです、10進数。ここはやっぱり16進数で見たい!むしろ16進数がいい!おい聞いてんのかえんb
という少々アレな方(=僕)のために10進数と16進数を併記するプラグインです。

今回はソース付き!

最初はソース内に直接パッチを当てるアドレスが書かれてるようなバージョン依存しまくりの実装だったり、その後そのアドレスをロード時に力技で検索する実装だったりもしたんですが、何か色々やってたらバージョン依存がかなり無くなったので、ソースを同梱してどのバージョンでも導入できるようにしてみました。なのでソース付きというかソースのみです。
とはいえ僕はXE4しか持ってない上、めんどくさいのでXE4以外でテストしていないですが、たぶんバージョン依存してないはずです。はい。

そういえば

書き忘れてましたが、今回は勉強も兼ねて整数用ビジュアライザも用意したので、デバッグ実行時にも変数の内容表示の際に同じく16進数値が併記されるようになってます。
ユニットが分かれてるので、パッケージソースから削除すれば一方のみを使用することも可能です。

全然関係ない話

作れたら一緒に入れようと思って結局全くできなかったんですが、コード補完に独自の候補を表示させる方法ってどうやるんですかね…。いや、入り口は分かってるんです。IOTACodeInsightManagerやIOTACodeInsightSymbolListを実装して登録すればいけるというのは分かってるんです。
問題は実装すべきメソッドがそこそこ多いこと、その上それらの説明があっさりしていて、引数が具体的に何なのか、戻り値として何を返せばいいのかさっぱりで…。さらに空の実装を作って登録・登録解除すると、そこまでは何ともないものの、その状態でコード補完を起動するとエラーが発生します*2

何がしたいかというと、無名メソッドを引数に取る関数やらメソッドやらで、いちいちfunction(xxx): yyyy begin endとか書くのがめんどくさいし、物によっては定義を覚えてなくて毎回定義元ユニットを確認してコピペしてる状態なので、補完で「ひな形を作成」みたいなのを出して一発で作って欲しいんですよね…。
ひょっとしたら標準機能ですでにあったり、XE5以降やサードツールで提供されてるかもしれないですが、これがあるのと無いのでは開発効率がかなり違うのでほんと何とかしたいしして欲しいところ…。

別にライブテンプレートでもいいと言えばいいんですけど、全部の無名メソッドには対応できないですし、型名は自分で毎回入れないといけない(IDEは型を知ってるのに)んですよね。
いずれ再挑戦したいなぁ。

*1:え?ヘルプインサイト?なにそれしらない(´◔◡◔`)

*2:IDEのバグっぽい…けど実装が悪いのかも…と謎だらけ