アーカイブ

2006年 2月 16日 のアーカイブ

つづき。
難しい話が多くなってきて、読んでもわからないことも多い。
http://www.geocities.co.jp/SiliconValley-Oakland/3617/progress_2004Q3.html

>ぎょえ(仮)がちょっと楽しみだったりします
もう.NETのぎょえは継続する気がなくて真魚だがな。

>ショートカットファイルをドロップしたとき
テキストを含む、ドキュメントファイルのショートカットを作ったことがないので気がつかなかった。
真魚は全然対応してない。

>1 行入力コンボボックス
Googleツールバーとかよく使うし、テキストエディタにもあれば使うのかな。
作ってみようかな。

>検索セット
これはわかりづらい。興味なし。

>bm 法、あるいは kmp 法で検索するかどうか
あまり速くならないってーか、やらんでも遅くないって感じだった。

>1 回置換するごとに再表示すると遅くてたまりません
そりゃそうなんだけど、解決法がそれで良いとは思わないしどうした物か。

>バッファ構造をよく知る正規表現エンジン
そうなのよ。だがあたしにゃ正規表現とか作るのは無理っぽい。
だからこそ逆に、エディタに合わせて検索作るんじゃなくて、
検索しやすいバッファを持つエディタを作って、既存の正規表現を使うことにした。
当初.NETの正規表現がそのまま使い物になったのでね。
現在の非.NETな正規表現がちゃんと動いているかは、使ってないのでわからん。

>たとえば (.|¥n)* とか
真魚はCRとLFが混在できる仕様なので、正規表現も(.|¥r|¥n)*でないとダメだが、
ちゃんとキャレット以降の全てのテキストがマッチする。
んでも¥nでCRLFもマッチするように変更した方が良いのかもな。
そうしないとちゃんと動かない場合もあるし。

>正規表現での後方検索をどうするか
前方で連続して検索したときと、後方で連続して検索したときが、
ちょうど逆の順番で同じ所にヒットするように工夫してみた。

>検索後のキャレット位置
真魚はメモ帳と同じで、どっちから検索しても範囲の右端。
でも逆の方がいいってのは同意。

>^(=*)*$
エラーを返すタイプだな。*で0かもしれない物をカッコで*だから仕方がない。
>X(.+)+X
これは+だからエラー出さないで検索できるが時間がかかる。
時間はかかるがメモリー食いつぶすような動作はしてないようだが。
正規表現はわからんということで。
まぁ正規表現に詳しい人が真魚なんて安易な物は使わないだろうし別にいいか。

>Undo の情報もけっこうな量になってしまう
Undo情報がいっぱいになってしまうからといって制御すると、Undoが途中で出来なくなるわけだ。
一方、メモリーがUndoに食われてもスワップするだけで編集は続行できる。
TEditor時代に悩んだが、無制限で設定も出来ない方が良いということにした。

>再現してくれたのはぎょえ(仮)と Ziro くらい
そんな変な処理?TEditorからまんまパクッてるとばかり思ってたが。

>すべて置換した場合は、 Undo すると
そういう処理にしたいとは思うけど難しいかもなんだよね。
TNotePadとそれ以外の部分という分離がなされているのがそれを許さない。

>色分け
真魚は正規表現じゃなくてベタベタでやってるので、根性さえあればどこまでも出来る。
正規表現を使うと根性あるほど重くなるらしいので、はじめからベタベタでやってる。
まぁ、正規表現で表せる程度の色分けならDelphiでも簡単に書けるからね。
スピードを犠牲にする必要はない。
問題は根性が無くて書く気が起きないことだが。

B00020PWR4
B00020PWR4

つづき。
現在、萌ディタも起動していじりながら、コレは真魚で書いてる。
ここまでで萌ディタの「がっかり」すなわち不正終了が二回出た。
http://www.geocities.co.jp/SiliconValley-Oakland/3617/progress_2004Q2.html

>ルーラの存在は微妙
あたしもEmEditor式は相当違和感がある。真魚はTEditorのパクリ式。
何文字目で折り返してるか見たり、実際に折り返したりするのが主目的なので。
数字の表示は萌ディタ式が正しいのだろうけど、これもTEditorのパクリ式で。

>ini ファイルのエンコーディング
真魚はUTF-8ではなくUTF-7、すなわちBase64で書いている。
旧来のINIファイルでも、文字コード依存する日本語を書くのはおかしいと思っているので、
7bitで表現できる方法と言うことでこのような仕様にした。
スピードを求めるなら、本当はレジストリにユニコードで書くべきかも。

>Intellisense のような補完機能
真魚には無理でしょうな。あたしに力量がない。やろうという情熱もない。
さらに言えば、編集モードは色分け以外関与しない作りだから、モードごとの補完とか無理。

>Shift_JIS では表せない 8F XX XX のシーケンス
これは知らなかった。EUCに半角カナ文字を足したのがSJISだとばかり思ってた。
もしかしたら真魚は対応してないかも知れないので確認が必要だな。
>補助漢字は、無視の方向で
いやー、あたし自身は使わないけど、真魚では対応はしていきたいなぁ。
>JIS エンコーディング
これも、EUCのオマケみたいなものだと思ってた。
JISもEUCも今となっては古いものへの互換性としかとらえてなくて申し訳ない。

>IME が on かどうかの状態ってわかりにくい
ATOKだが、そう感じたことはなかった。間違うことはあるけれどね。
「半角/全角」ってキーを押す度にカーソル位置下にATOKのツールバーみたいなのが出るし。
萌ディタはカレット行ラインの色を変えて対応しているようだが、真魚は下手な対応はナシで。

>EBCDIC は CR+LF が 0x0d 0x25
意味わからんな。何のことだかサッパリ。

>禁則とか折り返しとかワードラップとかそのへん
真魚は、WEBのどこかでユニコードの資料を見て、どこで折り返すかをキッチリ決めた。
どの文字はどんなときにどこにあってはいけない的な事が書いてあるのでTNotePadソース参照。
>折り返し位置は最初に出した (1) を採用する
これはいいね。真魚もパクろうと思う。

>そいで、折り返ししなおすタイミングなんですけども。
真魚は描画のたびにチェックしてるよ。
つまり1文字書くたびとかカーソル動くたびとかも、常に幅が変わってないかチェックしてる。
実際の折り返しは、サイズが変更された時じゃなく、その後最初の描画時だから大丈夫。
>折り返し1行の最大文字数
真魚はメモ帳かRichEditで自然に折り返された位置を参考に決めたはず。

>|以下の|縦線のところが|単語境界と|
真魚はVSの影響で、ダブルクリックの単語選択にそのような区切り方を使っているが、
TEditorともメモ帳ともIEとも互換じゃない実装なので、それが必要かどうかは疑問。
萌ディタも似たような感じなんだな。
>ctrl+shift+→で選択しようとすると
あ、ctrl+横で単語単位の移動が出来るのか。知らんかった。パクるかも。

>フランス語、オランダ語では
真魚は日本語と中国語とハングル語のIMEで文字が打てることを確認したが、
極東以外の国の文字が打てるかは動作確認の仕方すらわからん。

>トリプルクリックとかについて
複雑すぎて手に負えないな。真魚には無理。
>キャレットはあくまでクリックした位置を保持する仕様
コレも仕様上出来ないな。キャレットは選択範囲の終点と同一視しちゃったもんな。

>ブックマークの位置
真魚での実装はきわめていいかげんで、テキスト編集するとズレたりして使い物にならない。
けど、使ったこともないのでがんばる気力もなかったりする。

>矩形選択について
つい先日、いろいろパクらせていただいたよ。
この辺もあたし自身が利用しない機能なのでいいかげんに作っているが。
>クリップボード上のデータに、
その辺があたしゃよくわかってないんだよね。
>形式を指定して貼り付け
その親切すぎる対応が、シンプルと言いながら複雑で取っつきにくくしてるのかもな。

>タブに対して OLE ドラッグ&ドロップ
タブをドラッグしたその持ち物が、バッファの全テキストだと直感的にはわからん。
中身じゃなくてファイルそのものかも知れないし、どこに持って行けば何が起こるか予測不能。
テキストをドラッグしたものがタブ上に来たときはタスクバー同様に切り替える仕様ではあるが、
コレは直感的にそう動いて欲しいのになかなか実装されてない機能だな。

>複数起動防止
真魚はmutex使ってない。デバッグの都合上、邪魔なときがあるので。
高速に二重起動しようとすると出来ちゃうかも知れないけど秘密にしてる。

B00005F7UV
B00005F7UV

よそのエディタの開発日記を読んで、参考になることはパクろうと言うついでに、
問われてもいないのにいちいち反応してみようかと。
http://www.geocities.co.jp/SiliconValley-Oakland/3617/progress_2004Q1.html

>ファンクションキー
よく使う機能は、Ctrl+ナントカでなくてFnに割り当てして、さらにShiftとかの組み合わせも利用し、
ファンクションキーに何が割り当てられているかが一目瞭然にするツールバーね。
秀丸とかにもあった気がする。
昔のPCはファンクションキー内容が常に表示されてた記憶もあるな。
良いと思うよ、あれば便利でしょうな。カスタマイズする人には重宝かも。
真魚にもあっても構わないけど、作るの面倒くさ。

>マウスカーソルをクリックしたときに、どこにキャレットを位置させるかの話
文字の大きさではなく、キャレットやカーソルの形状によると思うがね。
メモ帳同様、I型キャレット&I型カーソルなら、文字と文字の間を選択するし、
「□」や「_」ならクリックした文字を選択する。
真魚はメモ帳互換のI型のみなので、萌ディタとは逆に文字と文字の間選択型。
萌ディタはキャレット形状によって動作を変えるべき。

>折り返して見た目が複数行になった段落の桁表示
どうでもいいなら表示する必要すらないと思うが。
どうでもいいからこそユーザーに任せて設定項目を設けるってのも手だが、
どうでもいいからこそ「その機能はない」って切り捨てればシンプルになる。

>マウスで範囲選択しているときに、選択領域をウィンドウ外のテキストにまで広げたい場合
速すぎか?フォトショップでは速すぎて困ることが多いが、
テキストエディタで速すぎるって経験はない。
フォトショップの場合、行きすぎたからって戻そうとするとまた行きすぎる。
でもTEditor系も真魚もメモ帳も、慣れれば1行ずつスクロール出来るので、
その範囲内で速い方が良いと思う。

>スクロールマージン
真魚はペン猫の影響で、スクロール時はキャレット位置プラス2~3行余計に表示してる。

>行番号にカーソルを置いたときに標準のカーソルの反転版が表示されると非常に違和感
確かに。カーソルの形を変更してる人もいるだろうから、独自カーソルは良くないかも。

>ビュー上のカーソルはテキストの上にあるときのみ I ビームになるようにします
それいいね。パクりたい。

>細かい動作仕様を決めるときには手持ちのエディタをすべて見比べて
ウチはとにかくメモ帳にあわせる用にしてる。
エディタの種類で多数派を決めるんではなく、ユーザー数で多数派を決めればやはりメモ帳。

>foo.txt ならばとりあえず #foo.txt# で書き出して
それってかなり良いと思うんだけど、作るの難しすぎるかなぁ。

>無駄にメモリを使うのは、ダブルリンクトリストの宿命なのかな
何それ?検索したけどわからなかった。
真魚の場合、メモリー消費でスピードアップ出来る場面では贅沢にメモリー消費する仕様。
.NETからの移植なので、いくら使っても使いすぎだと思えなくなっているからね。

>バックアップファイル
自動で作らせたいと思ったことはないが、自動で作ると邪魔だからやめさせることはよくある。
Windowsの復元ポイントもそうだけど、必要なら自分でやるってば。

>Delphi が置かれた現在の状況
あたしも窓からDelphi捨てたいのに、適当な移行先がなくて困ってる。

B0002JNIUI
B0002JNIUI