Reline

2024-04-06: りらいん

Fiddleが読み込める、cursesが読み込める、TERMがterminfoにない、というときにRelineが起動せずに例外を出して落ちていたのを修正するPRを出した。環境によってはtmux-256colorがterminfoになかったりして発生してたっぽい。 Fiddleが読み込めないときとcur…

2024-03-25: りらいん

コードリーディングメモ github.com autocompleteとtab completionの状態分離 tab completion は --noautocomplete で使える Reline::DEFAULT_DIALOG_PROC_AUTOCOMPLETE 最終的にDialogRenderInfoを返す。表示のために必要な枠組みの情報 DialogRenderInfo.n…

2024-03-24: りらいん

レビューした github.com github.com insert modeかcommand modeかを表示できるの知らなかった。viモードのときは設定したい機能だ。 レビューしてる github.com @config.disable_completion の条件判定がすべて!なりnotつけて見てそうなので、 enable_compl…

2023-03-20: りらいん

0.5.0.preに向いてたPRが再作成されたのをdescriptionだけざっと眺めた。 RelineのCIが落ちてるのを見ていた。これが入ったことでyamatanoorotiでwarningが出力されるようになり、それがSTDOUTを見るassertionに影響して落ちてそう。 github.com こういうメ…

2024-03-18: りらいん

0.5.0preを一通り見てコメントし終わった! 1回で全部細かく見てバグを探しだすみたいなレビューは今の自分にはできない。今後もメンテ続けていったらまた見ることになるだろうし、何かあったらその時直せるようにすればいいやと思って大体の挙動を把握する…

2024-03-16: りらいん

process_auto_indent や auto_indent_proc のIRB側の実装見たりReline実装見たり。呼び出す側がカーソル位置を気にしないといけないのは難しいなぁ、と思った。カーソル毎回渡して process_auto_indent の中で auto_indent_proc にどう渡すか判断してもらえ…

2024-03-14: りらいん

わかってないところを眺めたりメモを移したりした。wrapped_linesとかmodified_linesはざっくりと目的が分かるようになった。前者は画面幅で行を切って配列に詰め込んで返すメソッド、後者はIRBの色付けとかで変更した行情報を返す。insert_new_lineはどうい…

2024-03-12: 沖縄の準備

RubyKaigi前の旅程を考えて予約を済ませた。本島以外の島にいくつもり。たのしみ!海の写真見てたらテンション上がってきた。シュノーケリングしたいなー。天候がいいといいなー。 Relineはほんのちょっと読んでメモをローカルにうつした。自分にできること…

2024-03-11: りらいん

eof=trueになるのは以下の場合. input_keyがnilかつfirst_charの場合 em_deleteで行頭で削除した場合とか vi_list_or_eof ほぼfinishと同じ用途? でもinput_keyがnilってどういう状況で来るんだろう。 readmultiline の返り値をIRBに何を返さないといけない…

2024-03-10: りらいん

一通り見終わったー!!大きく気になる点はなさそう。次はよくわかってないところがあるのでそのあたりの整理と、レビューのdraftでコードリーディングのメモを書いてたのをローカルに移動していく。

2024-03-08: りらいん

line_editor.rbの差分を読み終わった!!あとはテスト周り見て、後で見るにしたところを見返して、コメントを別の箇所に移して、レビューコメントするだけ @line まわりの操作は current_line に、 @byte_pointer に代入してたところは set_current_line に…

2024-03-07: りらいん

L1641くらいまで見た。このあたりは大体ViやEmacsモード特有のReadline互換の機能のメソッドの置き場になっている。インスタンス変数の削除に伴う置き換えがメインなのでさらっと読んでいる。 疲れていても少しでもRubyKaigiの準備を進めるという方針でやっ…

2024-03-06: りらいん

L1155くらいまでdiffを読んだ。大体インスタンス変数の削除とそれに伴う整理。@just_cursor_moving で処理をスキップしていたところががっつり消えている。@just_cursor_moving 自体は update で使ってる(そしてreline.rbから呼ばれてる)けど使用箇所はか…

2024-03-05: りらいん

L512からL773くらいまで見た。スクロールバーでみると3/5くらい終わってそう。Dialogのために画面の残り高さを計算しているのなるほどなぁと思った。あとは似たようなちょっとちがうrender系メソッドが削除されたことを眺めていた。これが統一されたのありが…

2024-03-04: りらいん

wrapped_cursor_position(L394)から下でコメントを残していなかったメソッドを1つずつ見ていった。line_editor.finished? の使い道がよくわからなくて調べたりしていた。以下のときに@finished == true になりうる。 input_keyでkey.char.nil?がtrueのとき e…

2024-03-02: りらいん

render_differential の続きから。dialog_range でdialogのx,y位置をrangeで取る。y_rangeは1...16、x_rangeは15...33 という感じ。 y_range.each do |row| で dialog_rowsもといnew_linesに詰め込む。 row < 0 か row >= screen_height ならスキップ。 そう…

2024-03-03: りらいん

render_differential と render_line_differential を読み終わったぞ...!!!レンダリングがこれらのメソッドにおおむね集約されたことが0.5.0.preでの一番の変更点だと思うので、山場を越えた感がある。 render_line_differential のいいところはもらったもの…

2024-02-29

wrapped_lines から読んだ。 wrapped_lines では最終的に折り返し込の行(色あり)を返しているが、高速化のために色々とキャッシュを入れている。まず modified_lines で折り返しを含まない行データに対してキャッシュし、キャッシュがないか状態が異なる場合…

2024-02-28

modified_lines を見た。これはIRBから使われるときには色つけProcに行を渡して色付けてもらったやつを返してもらってそう。色つけは重い処理(具体的にはどこが重いんだろう?)とのことでキャッシュしていて、キャッシュのチェックなどを行っているのが mo…

2024-02-27: りらいん

0.5.0.preについてまたいろいろ質問して理解が進んだ。@menu_info は補完ダイアログを使わないときの補完一覧。 @vi_arg はVi commandモードのときのプロンプトに出す数字 次はL340あたりからの本丸へ向かう。いざいざー。ここと render_differential を超え…

2024-02-26: readlineのマニュアルを眺める

今日はあまり時間がとれず0.5.0.preは少しだけ見て、隙間でreadlineのマニュアルを読んでいた。Relineで何が使えて何が使えないかは明確な状態にしたいな。どういうインターフェースにするのがいいだろう。 何から実装するかについては、よく使われるものをi…