グラデーションのサンプルNo.01421
秀まるお さん 03/04/16 10:19
 
 カラー化関係で、グラデーション表示のをサポートしようという話があり、い
くつかサンプルを作ってみました。

 しかし、どれもしっくりこないです。なので全部没になる可能性が高いです。

 何かいいアイデアがあれば教えてください。

 サンプル1は、C言語の構文解析をして出してますが、他は単にタブ文字の個
数を数えているだけです。

■サンプル1:  行全体の濃さを決める例。
   http://www.hidemaru.interlink.or.jp/gradation_sample.jpg

■サンプル2:  行頭のタブ文字の個数分のグラデーション。
   http://www.hidemaru.interlink.or.jp/gradation_sample2.jpg

■サンプル3:  行頭のタブ文字の個数分で、文字部分も黒くする例。
   http://www.hidemaru.interlink.or.jp/gradation_sample3.jpg

■サンプル4:  タブ文字をストライプ表示。
   http://www.hidemaru.interlink.or.jp/gradation_sample4.jpg

■サンプル5:  タブ文字をストライプ表示し、さらに文字も同じ色にする。
   http://www.hidemaru.interlink.or.jp/gradation_sample5.jpg

[ ]
RE:01421 グラデーションのサンプルNo.01422
ひろ さん 03/04/16 12:54
 
 秀まるおさん今日は、ひろです。
> ■サンプル2:  行頭のタブ文字の個数分のグラデーション。
>    http://www.hidemaru.interlink.or.jp/gradation_sample2.jpg
 私の好みはこれですね。
 少なくとも、入力文字部分まで変化すると目が疲れそうで、使わないと思い
ます。

[ ]
RE:01421 グラデーションのサンプルNo.01424
EMiCC さん 03/04/16 15:36
 
>■サンプル1:  行全体の濃さを決める例。
>   http://www.hidemaru.interlink.or.jp/gradation_sample.jpg

私の好みはこのサンプル1でタブだけに色が付いているパターンです。
文字にまで色が付くとかえって見にくい気がします。

ということで、1'に1票。

[ ]
RE:01424 グラデーションのサンプルNo.01425
たけのこ さん 03/04/16 15:48
 
たけのこです。

> ということで、1'に1票。

私もこれに一票。これなら、目で追うことなく、目的行のインデントが判ります
ので。文字の背景までグラデーションされるのは、やはり見づらいと思います。

(^^)/”

[ ]
RE:01421 グラデーションのサンプルNo.01426
tnobu2 さん 03/04/16 16:12
 
>■サンプル2:  行頭のタブ文字の個数分のグラデーション。
>   http://www.hidemaru.interlink.or.jp/gradation_sample2.jpg

個人的にはこちらが好みですが、インデントがどこまで伸びるかわからない
のでサンプル4のようなストライプを行頭だけに適用するというのではどう
でしょうか。

さらに付け加えるならば、タブ文字だけじゃなく空白も同じように表示して
ほしいです。

[ ]
RE:01425 グラデーションのサンプルNo.01427
ひろ さん 03/04/16 17:46
 
 今日は、ひろです。
> 私もこれに一票。これなら、目で追うことなく、目的行のインデントが判ります
 私も最初はそう思ったのですが、場所が離れていると、微妙なグラデーショ
ンなので目的のインデントが結局解らなくなる気がしました。
 また (2) の方法なら、発展のさせ方次第で以前要望の出ていたヴァーティ
カル・ライン
http://hidemaruo.dip.jp:81/turukame/turukame_3/x00724.html#732
に近づけられる気がしました。
 一応追記しておきます。

[ ]
RE:01421 グラデーションのサンプルNo.01428
アルビレオ さん 03/04/16 22:13
 
アルビレオです。

>■サンプル1:  行全体の濃さを決める例。
>   http://www.hidemaru.interlink.or.jp/gradation_sample.jpg
見た目はともかく、{}の対応関係をチェックしやすいことからこれを支持します。
()の入れ子も濃さを変えてくれたら便利かな…という気がします。
見た目的にはマイナスかもしれませんが。
HTMLの入れ子階層も対応したら便利そうですが、ブロック要素かどうかを判断し
なければいけないので難しいでしょうね。

サンプル2が好評のようですが、私としては文字の背景に色がつくことよりもタ
ブ部分と文字列部分の境界ではっきりと明暗差が出ることのほうが気になります。
コードを見るときとインデントを見るときで目と頭のモード切り替えないといけ
ないような感じがするので、サンプル2よりはサンプル3の方がいいです。

ストライプは…インデントに対応して「行全体」が同じ色になれば、ストライプ
でももう少し見やすくなると思うのですが。
そういう意味ではサンプル1のルールでストライプ版ならありだと思います。

皆さんは
> サンプル1は、C言語の構文解析をして出してますが、他は単にタブ文字の個
>数を数えているだけです。
という違いはあまり重視していないのでしょうか?

○色の濃さについて
階層が深くなることで色が濃くなりすぎる点は、
 1→2→3→4→1→2→3
または
 1→2→3→4→3→2→1
のように濃度が巡回するようにしたほうがよさそうです。

○行末以降の色つけ
どのサンプルも行末以降の部分には色がついていないのが気になります。
少なくともフリーカーソルモードでは行末以降にも色をつけたほうが自然ではな
いでしょうか。(私はフリーカーソルモードを使っていませんが)

○tnobu2さん
>タブ文字だけじゃなく空白も同じように表示してほしいです。
空白文字でグラデーションをかけるとあっという間に濃くなりすぎると思います。
「タブ位置まで行くと次の濃さになる」というのが妥当なところでしょうか。
ついでに言うと「行頭の空白」に限定しての話ですよね?
式や文字列の途中の空白で色が変わっても迷惑なだけですし。

[ ]
RE:01421 グラデーションのサンプルNo.01429
KaToH-J さん 03/04/17 02:03
 
 Masayuki KaToHです。

 あんまり人気無さそうですが、自分としてはこの3.が一番いいかなーと思いま
す。
 ・・・と思ってたら1.も捨てがたいです。改行の後ろは色なしじゃなくて、そ
の行の色にしてみるというのはどんなもんでしょうか。

#インデント・・・といえば、マクロで insert "}";とやっても自動逆インデント
されないわけですが、どなたかいいアイデアお持ちでないでしょうか。

[ ]
RE:01429 グラデーションのサンプルNo.01430
アルビレオ さん 03/04/17 02:33
 
アルビレオです。

>#インデント・・・といえば、マクロで insert "}";とやっても自動逆インデント
>されないわけですが、どなたかいいアイデアお持ちでないでしょうか。

マクロで自動インデントが働いてしまうと、モードによってカーソル位置が変
わってしまうので普通は今の仕様の方がいいでしょうね。

手抜きな方法としては

if (x>0) backspace;
insert "}";

とか…
キー入力と同等の自動インデントを実現するのはややこしそうです。
具体的にどのようなことをマクロでやろうとしているのか教えていただければ、
本当に自動インデントが必要なのか、他のやり方で対処できるのかアドバイスで
きるかもしれません。

#話題が違うので返信は「マクロ会議室」の方にでもお願いします。

[ ]
RE:01428 グラデーションのサンプルNo.01431
tnobu2 さん 03/04/17 07:12
 
>○tnobu2さん
>>タブ文字だけじゃなく空白も同じように表示してほしいです。
>空白文字でグラデーションをかけるとあっという間に濃くなりすぎると思います。
>「タブ位置まで行くと次の濃さになる」というのが妥当なところでしょうか。
>ついでに言うと「行頭の空白」に限定しての話ですよね?
>式や文字列の途中の空白で色が変わっても迷惑なだけですし。

言葉足らずでした。

もちろん、空白1文字ごとに色を変えるわけではなく、タブ桁数ごとという
意味です。インデントにタブ文字じゃなくて空白文字が使われている場合
を想定しています。

[ ]
RE:01421 グラデーションのサンプルNo.01432
秀まるお さん 03/04/17 09:06
 
 いろいろご意見いただいてますが、どれがベストかというよりも、そもそもこ
ういうグラデーションをサポートしたとして、それを本当に使う人がいるのかど
うかが問題です。

 で、使う人いますか?

 少なくとも僕本人は、どれも使わないです。

 それよりも、縦線カーソルを出せばそれで済むというか、むしろそれについて
のニーズが大きいんじゃないかという気がします。どうでしょ?

[ ]
RE:01430 グラデーションのサンプルNo.01433
秀まるお さん 03/04/17 09:08
 
 "}"の入力をシミュレートするには、

   #n = sendmessage( hidemaruhandle(0), 0x0102, '}', 1 );

 でいけるようです。(かなり強引ですが)

[ ]
RE:01432 グラデーションのサンプルNo.01434
江袋 さん 03/04/17 10:22
 
> それよりも、縦線カーソルを出せばそれで済むというか、むしろそれについて

私も目安の縦線があれば十分で、グラデーションは使わないです。

[ ]
RE:01434 グラデーションのサンプルNo.01435
EMiCC さん 03/04/17 11:15
 
>私も目安の縦線があれば十分で、グラデーションは使わないです。

えー、実は私もたぶんグラデーションは使わなそうです。 (^_^;

[目安の縦線]は、薄い灰色あたりにして頂ければ活用すると思います。
(黒色だと入力文字とまぎらわしいので)
印刷にも反映できれば、よりうれしいですね。

[ ]
RE:01432 グラデーションのサンプルNo.01436
たーびん さん 03/04/17 11:41
 
グラデーション表示は、Cのインデントよりは
 #if 〜 #endif の入れ子やメールの引用部分
(行頭の引用記号の数によりグラデーション)
(鶴亀ですでに実現されていたらごめんなさい。当方鶴亀未使用)
でサポートされると良いと思います。
(この場合はサンプル1がベストかな)

もし上記のような形で導入されるなら、私は使います。
(Cのインデントだけなら、残念ながら使わないです)

[ ]
RE:01434 グラデーションのサンプルNo.01437
ひろ さん 03/04/17 12:13
 
 今日は、ひろです。
> > それよりも、縦線カーソルを出せばそれで済むというか、むしろそれについて
>
> 私も目安の縦線があれば十分で、グラデーションは使わないです。
 右、いや上に? 同じ。

[ ]
RE:01432 グラデーションのサンプルNo.01438
アルビレオ さん 03/04/17 12:32
 
アルビレオです。

インデントのグラデーションは欲しいとは思いませんが、{}や()の入れ子による
グラデーションなら欲しいです。
> サンプル1は、C言語の構文解析をして出してますが、
というのは、「対応する括弧に移動」「{に移動」「}に移動」とは違い、
文字定数やコメント内の(){}を無視してくれるという意味ですよね?
Lispのようにかっこを使いまくる場合にはかなり重宝すると思うのですが。

それとは別に、たーびんさんの
> #if 〜 #endif の入れ子
もあるとうれしいな。

縦線は「なくてもいいけど、あるなら使うかも」といった程度です。

[ ]
RE:01438 グラデーションのサンプルNo.01439
秀まるお さん 03/04/17 13:30
 
 実は手元のバージョンでは、#ifdef〜#endif のカラー化なども出来てます。

 #ifdef、#if 0、#ifndef のみの対応で、

  #if defined(AAA) && defined(BBB)

 とか、

  #if IE_VERSION >= 0x200

 とかには対応していませんけど。

 それらを一通り対応して、秀丸担当に相談したら、以前インデントの深さをカ
ラー化させようと苦労してる人がいたらしいということで、今回のグラデーショ
ンのサンプルを作るに至った訳です。

 ところが、こういうサンプルを作ってみたら、結局みんな欲しいのは縦線カー
ソルじゃないかという話になりまして…。(というか、メールでそういう依頼が
来ました)

 なので、縦線カーソルを表示できるように、現在内部の処理を見直してる所で
す。縦線カーソルを出すためには、縦一列分のカラー構文を計算する必要がある
んですが、そんな器用なことは出来ないので、画面全体についてカラー構文を計
算することになります。そうすると現状のままでは遅くなるので、もっと速くな
るように改良してる所です。

 で、今それが終わった所でして、そろそろ縦線を表示/消去する処理を作って
みようと思います。

[ ]
RE:01439 バーチカルラインNo.01440
ながさわ さん 03/04/17 13:52
 
こんにちは、ながさわです。

以前、縦線(バーチカルライン)を要望していたので、今回の顛末は非常に嬉しいで
す(^^ 98x1版MIFESや、Human68kのクロスラインカーソルなどで便利に使っていたの
で(秀丸のキーアサインもMIFESライクにしているし)。MIFESは確かキャラクタアト
リビュートで表現していましたね。

ところで、縦線も現在のカーソル行同様
・傍線
・背景
が選択できて、且つ色も選べるのでしょうか?
それとも、カーソル行に準じるのでしょうか?

背景の場合はともかく、傍線だと左に出て欲しい派と、右に出て欲しい派がいそうな
気も(果ては真ん中派!?)……。
あ、あと。私は使ってないんですけど、プロポーショナルフォントの時ってどうなる
んでしょう?

[ ]
RE:01440 バーチカルラインNo.01441
秀まるお さん 03/04/17 14:43
 
 たぶん、文字の背景に1ドット分の縦線を引くだけになると思います。文字の
左側でいいと思いますけど。

> あ、あと。私は使ってないんですけど、プロポーショナルフォントの時ってどうなる
> んでしょう?

 たしかにプロポーショナルフォントの場合は計算がもっと面倒そうです。まだ
何も考えてません。

[ ]
RE:01441 バーチカルラインNo.01442
秀まるお さん 03/04/18 17:58
 
 結局ですが、グラデーション関係は全部没にしました。

 代わりに縦線カーソルとグリッド縦線表示と、さらに折り返し桁部分での縦線
表示を作りました。

 近い将来にベータ版として出てくると思うので、そのときまた評価などお願い
します。


[ ]