:: o v e r D O S E :: かいはつblog ::
2005-10-21T16:25:58+09:00
knife37
テキストエディタ 萌ディタの開発
Excite Blog
。。。
http://moeditor.exblog.jp/3656100/
2005-10-21T16:25:20+09:00
2005-10-21T16:25:58+09:00
2005-10-21T16:25:11+09:00
knife37
未分類
今月いっぱい身動きが取れそうにありません
ごめんね
]]>
コンテキストメニュー
http://moeditor.exblog.jp/3562752/
2005-10-02T23:32:06+09:00
2005-10-02T23:31:21+09:00
2005-10-02T23:30:24+09:00
knife37
仕様変更
今のところ、メインメニューはスクリプタブルになっています。App.MenuItems でアクセスする。。。あれ、リファレンスから抜けてる。こっそり修正。
で、そのスクリプタブルなメニュー定義という仕組みをコンテキストメニューにまで拡張しようということです。
現状だと、コンテキストメニューは
ビュー
ルーラ
インジケータ(キャレット位置)
インジケータ(コードポイント)
タブ
ファンクションキー
の上で出ます。
ただスクリプタブルにするかどうかはコンテキストによって異なるかもしれません。ファンクションキーのメニューなんかは役割がはっきり決まっているので、スクリプタブルにする意味はないかも、とか。
とりあえずビューとタブのコンテキストメニューはスクリプタブルにしてみます。で、App.MenuItems('view') のような感じで名前でそれぞれのメニューのルートを参照できるようにします。
]]>
ビュー下部のアレ
http://moeditor.exblog.jp/3562743/
2005-10-02T23:31:21+09:00
2005-10-02T23:29:39+09:00
2005-10-02T23:29:39+09:00
knife37
未分類
まあぶっちゃければ「モードライン」なんですが。emacs 由来の名称をそのまま使うのはちょっと気が引けるなあ。
ということで、ビュー下部のアレは「インジケータ」と呼ぶことにします。
]]>
nightly build
http://moeditor.exblog.jp/3562738/
2005-10-02T23:30:37+09:00
2005-10-02T23:28:55+09:00
2005-10-02T23:28:55+09:00
knife37
リリース通知
]]>
・゚・(ノД`)・゚・
http://moeditor.exblog.jp/3556805/
2005-10-01T22:07:20+09:00
2005-10-01T22:06:44+09:00
2005-10-01T22:05:48+09:00
knife37
未分類
ファンクションキーのラベル
http://moeditor.exblog.jp/3556773/
2005-09-28T22:46:00+09:00
2005-10-01T22:03:16+09:00
2005-10-01T22:02:52+09:00
knife37
仕様変更
で、スクリプトで F1 だけの動作を差し替えたいなーとなったとき、
/* ラベルを書き換える。
* カンマ区切りを配列にして該当の要素だけ書き換えてまたカンマ区切りにする
* めんどうでとりとめのないコード */
var a = App.Prop('textfile', 'funckey-normal').split(',');
a.length = 12;
a[0] = 'ほげほげ';
App.Prop('textfile', 'funckey-normal') = a.join(',');
delete a;
/* イベントハンドラ上書き */
class_textfile.prototype.onKeyF1 = function (arg, classname, methodname) {
:
:
}
な感じで、ラベルを書き換えるのが大変めんどうです。というか、コード自体は別にめんどうではないのですが。。。なんというかファンクションキーにまつわる定義が 1 箇所に固まってないのがなんとも居心地が悪いような。
例えば
class_textfile.prototype.onKeyF1 = function (arg, classname, methodname) {
// ラベルを求められていればそれを返す
if (arg & KEYMASK_DESCRIPTION) {
return 'ヘルプ';
}
// そうでなければ通常の動作を記述
else {
:
:
}
}
な感じで、arg の特定のビットが立ってたら本来の動作ではなく、ラベルを返す。。。なんて仕様にするとどうか。
この仕組みは、やりようによってはファンクションキーに限らず、すべてのイベントハンドラに概要を持たせることができそうですね。「ヘルプ」モードに入ってなにかキーを押すと、動作の代わりに概要を表示するとか。なんかどこかから訴えられそうな機能ですが。。。
まあ実際にそうすると、すべてのキー入力系イベントハンドラで、概要を求められているかどうかの判定をしなくちゃいけないのがめどいので、やりませんが。。。
とりあえずファンクションキーに関しては上記のような仕様にしてみました。したがって、以下のプロパティは削除。
funckey-normal
funckey-ctrl
funckey-shift
funckey-ctrl-shift
]]>
いろいろ修正
http://moeditor.exblog.jp/3556760/
2005-09-28T22:04:00+09:00
2005-10-01T22:01:45+09:00
2005-10-01T22:01:24+09:00
knife37
バグ修正
App.RegisterProperty() というものを作ってみました。簡単に言うとこれでプロパティを登録すると、それが萌ディタの知らないものでも環境設定画面に出るようになる。。。というもの。
App.RegisterProperty(PROP_BOOLEAN, 'indent-on-newline', '改行入力時のインデント', '');
なんてしておくと
というふうに「その他」タブに出てきます。
]]>
お礼
http://moeditor.exblog.jp/3556749/
2005-09-28T19:17:00+09:00
2005-10-01T21:59:58+09:00
2005-10-01T21:59:58+09:00
knife37
妄想を申そう
]]>
nightly build
http://moeditor.exblog.jp/3530083/
2005-09-26T18:10:47+09:00
2005-09-26T18:09:13+09:00
2005-09-26T18:09:13+09:00
knife37
リリース通知
それにしても仕事というのはなかなか見つからないものです。
もう、めんどうだから、首吊って、死ぬか!
]]>
もーそー
http://moeditor.exblog.jp/3530075/
2005-09-24T22:01:00+09:00
2005-09-26T18:07:47+09:00
2005-09-26T18:07:47+09:00
knife37
妄想を申そう
ファンクションキーのラベルというものがあります。今は、これを 1 つのプロパティで F1 から F12 までまとめて、カンマ区切りの文字列で指定しているのですが、これだとあるラベル 1 つだけ変更したい、というときめんどうです。
ファンクションキーのラベルのリクエストを受けるイベントがあればいいのかもしれません。あるいは、onKeyF* イベントハンドラで、特定の引数の場合はラベルを返すような仕様にするか。
かいはつ blog でコメントされたのですが、萌ディタへのファイルのドロップをイベントにしてみようかと思います。
ビューやタブ上のコンテキストメニューもメインメニューと同様にスクリプタブルにするかもしれません。
オートインデントというものがあって、萌ディタの場合その動作は完全にスクリプト側に任されています。この動作を on/off したい場合、
スクリプトを書き換える
適当なプロパティを設けて、その値により on/off を振り分ける
ということになると思います。前者は特に書くことはないのですが後者の場合、こんなふうに萌ディタの知らないプロパティを追加した場合、環境設定画面には表示されません。これはちょっと使いにくい。
すでにこういうプロパティはいくつか定義されていて、srcfile.javascript.txt の
auto-completion-delay-count
member-completion-enabled
completion-search-range
なんかがそうです。萌ディタ側に、プロパティの型・説明を教えてあげる仕組みがあればいいのかも。
]]>
あ
http://moeditor.exblog.jp/3520227/
2005-09-24T21:47:53+09:00
2005-09-24T21:46:33+09:00
2005-09-24T21:46:33+09:00
knife37
バグ修正
]]>
段落ごとインデントする機能
http://moeditor.exblog.jp/3513525/
2005-09-22T21:23:00+09:00
2005-09-23T13:26:29+09:00
2005-09-23T13:26:07+09:00
knife37
新規実装
作ってみました。
まずこの機能自体の on/off をプロパティ indent-paragraph で指定します。
それから以前考えたように、段落最初の行の空白があまりに長すぎる場合、後続する行のインデントを単純に合わせてもみ難いので、プロパティ indent-paragraph-limit というのを 0.0 ~ 0.75 くらいで指定するようにして、空白文字列が折り返し幅に対してその幅以内の割合ならインデントする、というような感じにしてみます。
空白文字列というのは、タブか Unicode のプロパティが Zs な文字ということなのですが。これに追加の文字列を指定できるようにしたら便利といえば便利かな。
◎箇条書きみたいな感じに表示する
ことができます。
のように空白列 + 任意の 1 文字までをインデント量とみなす感じ。必要でしょうか?
]]>
ハッシュ
http://moeditor.exblog.jp/3513522/
2005-09-21T20:38:00+09:00
2005-09-23T13:24:42+09:00
2005-09-23T13:24:42+09:00
knife37
ロジック修正
このキーワードの探査は、
キーワードとして有効なのは U+007f までの字を使った文字列です。これ、そういえばどこにも書いてないや。書いときます。
キーワードの先頭に置ける文字を Lex.LeadingIdentifiers、先頭以降に置ける文字を Lex.FollowingIdentifiers に設定します。
そいで、今現在だとこのキーワードの探査というものを 2 分探索でやっています。そもそもこれが十分に速いのかどうか?
ためしにこれをハッシュで持つようにしたら、割と効果があるようです。と思ったらAlpha がすでに同じような経過を辿っていたみたいです。
ところで、いくらパフォーマンスをあげても、1 段落が例えば 10KB とか 100KB あったりすると解析に相当な時間がかかるわけで、適当な閾値と、それを越えたら解析中断、とかのオプションが必要かもしれません。
]]>
スクロールとか
http://moeditor.exblog.jp/3513517/
2005-09-20T20:56:00+09:00
2005-09-23T13:23:38+09:00
2005-09-23T13:23:38+09:00
knife37
バグ修正
世代つきバックアップに失敗するのを修正。
前に書きましたが、バックアップのパス名で '%' で始まるマクロがあるのですが。環境変数の展開をさせようとするとかち合うので、'$' で始まるようにしようと思います。
同様に、バックアップファイル名やウィンドウのキャプションにも '%' で始まるマクロがあります。こっちは環境変数を展開するわけではありませんが、いちおうマクロは '$' に合わせてみます。
してみました。よさそうですが、プロパティから取得したバックアップパスを丸ごと ExpandEnvironmentStringsW に渡すと、'%~%' という文字列そのものとか、'%' 自身を含むパスを指定することができないような。結局自前でパスを走査して、'%~%' を切り出す必要がありそうです。
ということで、そうしてみました。
]]>
nightly build
http://moeditor.exblog.jp/3489468/
2005-09-18T22:28:19+09:00
2005-09-18T22:27:51+09:00
2005-09-18T22:27:51+09:00
knife37
リリース通知
https://www.excite.co.jp/
https://www.exblog.jp/
https://ssl2.excite.co.jp/