<   2004年 12月 ( 30 )   > この月の画像一覧
 | Top  | 
いつのまに?

なんと、大晦日ですよ。。。


[PR]
by knife37 | 2004-12-31 22:45  | Top  | 
ナローイングはxyzzy的に


けっこう(30cm くらい?)積もったので、玄関まで雪かきしたら死亡。しかも雪かきし終えたらまた降り始めるとは何事ですか。。。




とりあえず xyzzy 的なナローイングでいってみようかなーと。


具体的に実装する場合どうなるかを考えてみると、とりあえずバッファ内のテキストにナローイングされている・されていないという区別がつくことになるので、その境界を管理する必要が出てきます。


そいで、その境界はナローイングされていないテキストを編集することで変化するので、その補正をしなければいけません。そういう仕組みはマークが持っているので、境界をマークの 1 つとしてもてばよさそうです。


マークの仕組みを、作った本人自身が忘れているので一応おさらいすると、他のエディタでしおりとかブックマークとか呼ばれている機能です。一般的には行指向のものが多いのに対し、萌ディタのマークは文字指向になっています。ある文字と文字の間にマークを挟んでおくと、その前後のテキストを編集しても自動的に位置を補正してくれる。


内部的には、バッファを生成するごとにユーザーマーク 1 ~ 9、システムマーク 0 が確保されます。それから、ビューがバッファを参照するごとにビューごとのキャレットマークが確保されます。ここに、ナローイングの端点を示すマークを含めるようにすればよさそうです。


ただ、端点のうち右の 1 点は従来のマークそのままでよいのですが、左の 1 点はちょっと動作が違う。文字の間にキャレットとマークがどういう風に位置するかというと、概念的には



という風になってます。なので、キャレット位置に文字を挿入するとマークはそのぶんずれていくわけです。これに対し、ナローイングの左の端点に対応するマークは、キャレットと左の文字の間に位置する必要がある。


ということで、とりあえずマークにスナップする方向を指定できるようにしてみました。


ひとまずキャレットのメソッドに Restrict() と UnRestrict() を追加。


[PR]
by knife37 | 2004-12-30 06:54 | 妄想を申そう  | Top  | 
ゆきゆき

今度こそ本格的に雪が降ってきましたよ。


[PR]
by knife37 | 2004-12-29 20:29  | Top  | 
ナローイングの実装

実装の面から考えてみます。


範囲内の置換なので、選択範囲を抜き出して、検索・置換を行って、その結果を元の選択範囲にはめこめばよいことになります。このとき、1度の検索・置換ごとに再表示とかするとめんどかったり、効率が良くなかったりするので、「範囲内の置換時は全置換のみ有効」という仕様のエディタが多いのだと思います。


これを、範囲内の置換であっても通常の置換と同じ操作性にしたいわけです。で、それを emacs でいうナローイングで実現しようとしているのですが、emacs 的なナローイングとするか、xyzzy 的なそれとするかで実装の仕方が変わってくる。




前者の場合、ナローイング中はバッファにも置換対象の部分しか存在しないのですから、置換処理にも表示処理にも修正は必要ありません。ナローイングの仕組みだけを新しくつくればよさそうです。


ただ、スクリプト中などでユーザが知らないところでナローイングされたままユーザが気付かない場合なんかが出てきそうなので、ナローイング中であるということをかなり目立つように明示しないとまずそうです。あるいは、置換が終了したら常にナローイングを解除してしまって、ナローイングしながらの編集ということをさせないか。


後者の場合は、ナローイングの境界を常に意識しなければいけません。キャレットの移動、文字の送出・削除、表示。。。などなど修正するところも多そうです。ただ、ナローイングされていることすぐわかるし、目で見えるというのはかなりのメリットだと思います。


んー、どっちにしたものかな。


[PR]
by knife37 | 2004-12-28 21:07 | 妄想を申そう  | Top  | 
富山

なんか本格的に雪が降ってきましたよ‼‼


とおもたらやんだ。


また降ってきた。


またやんだ。




たとえば emacs だと、あらかじめナローイングしておくことで選択範囲内の置換に相当することができるようになっていると思います。そういう仕組みがあると、「範囲内の置換時は全置換のみ有効」などの制限をかけなくてよいのでよさそうです。


ちなみに emacs(Meadow さん)ではナローイングすると、本当にそのリージョンしか表示されなくなるのに対し、xyzzy だと表示はされるけどアクセスできないという扱いになるようです。なるほど。


[PR]
by knife37 | 2004-12-27 23:58 | 妄想を申そう  | Top  | 
範囲内の置換

選択範囲内の置換を考えてみます。


これがあると、置換したい部分だけ選択して全置換、ということができるので楽です。逆にこれがないと置換したくないところまで更新してしまう恐れがあったりするので大変危険。


で、面倒なのは、今のところ検索にマッチした部分についても範囲選択を使用しているということです。検索して、マッチした部分を選択して、それを置換する。選択範囲の中の一部をさらに選択ということはありえないので、全体としての選択範囲と部分としての選択範囲のどちらかを、「選択範囲ではないけれど範囲を示す何か」というものにする必要がある。そうすると表示の部分をいろいろと拡張しなければなりません。


全置換の場合だけ選択範囲内のみというのを許可する、というのなら、その何かは置換処理時だけ考えればいいので(少なくとも表示についての修正は不要)多少簡単にはなると思います。他のエディタの場合も、範囲内の置換を選択した場合は全置換のみ可能、というのが多いです。


でもそれだと、「選択した範囲外は絶対に更新したくないけど、選択範囲内について置換したい個所としたくない個所があるので、対話的に置換したい」という要件には応えられない。


[PR]
by knife37 | 2004-12-25 22:08 | 妄想を申そう  | Top  | 
逝きさん(あはははははは)

なんか雪降ってきましたー。


と思ったらやんだ。




いよいよマウスがおかしくなってきました。くるくる 1 刻みで最後まで一気にスクロールするとか。


しょうがないので、前使ってたのを引っ張り出して使うことに。これはこれで、いまいちくるくるの反応が悪かったり、カーソルが勝手に飛んだりするのですが。。。




バルーンはコモンコントロールそのままなのですが、どうせ漫画的なものにするなら



みたいなのも用意してくれればいいのになー。


[PR]
by knife37 | 2004-12-23 05:17  | Top  | 
nightly build

つ[nightly build]


萌ディタスレより、スクリプトからカレントバッファの拡張子クラスを変更に対応。チェックボックスつきバッファリストの不具合を修正。


[PR]
by knife37 | 2004-12-23 00:16 | リリース通知  | Top  | 
うほっ?

ふと、ナビゲータにバルーンなツールチップを出せるようにしたらおもしろいかも、と作ってみました。



なんかヤなナビゲータですが。。。



More
[PR]
by knife37 | 2004-12-20 17:13 | 新規実装  | Top  | 
次の日リンク

かいはつにっきを時系列順に読み直すのがやりづらいので各々リンクを張ってみました。。。


かいはつ blog には関係ない話ですが。


[PR]
by knife37 | 2004-12-19 22:38  | Top  | 

 | 
検索
最新のコメント
Hi! Good stu..
by lacedkl at 10:19
i think abou..
by MaybridabanTy at 06:31
Thank you!
by Roy at 20:27
Thank you!
by Patrick at 20:26
Great work!
by Andy at 20:25
Thank you!
by Rex at 20:23
Great work!
by Maggie at 20:23
I love it: ..
by siljb at 15:51
Keep up t..
by reizomo at 15:40
http://0buyp..
by affomfobe at 02:56
最新のトラックバック
football nfl..
from football nfl t..
big penis
from big penis
lossless aud..
from lossless audio..
julianna ros..
from julianna rose ..
mind games
from mind games
game online ..
from game online po..
outer bank p..
from outer bank pet..
lingerie tee..
from lingerie teen ..
pisces chara..
from pisces charact..
wakefield co..
from wakefield coll..
フォロー中のブログ
ファン
記事ランキング
ブログジャンル
画像一覧