/ 最近 .rdf 追記 編集 設定 本棚

脳log[20130726]



2013年07月26日 (金) テキストエディタコンポーネント Scintillaでの行管理の工夫。「Scintillaのデータ設計 - maneman8000の日記」■メインのデータ構造はギャップバッファ。そこに張る行インデックスの更新コストの問題。更新が必要なインデックスのエリアはある点から始まり必ず末尾で終わる。ある点をひとつ記憶しておくことで更新範囲をある点とある点の差分にすることができる。■■■@2013-08-01 Scintillaのインデックスは改行の位置を示す、ギャップを含まない実データのオフセット(たぶん)を値にしていた。こちらではギャップを含むオフセット値をインデックスの値とすることで、ギャップの移動に伴って移動させられた改行と対応するインデックスだけを更新するとか>「Twitter / vivisuke: @kinaba こんにちは、某所に「k.inabaさんに、バ ...」依存関係の管理が面倒くさい(できない可能性がある/他人に任せられない)かな。■■■@2013-10-31 ギャップ込みのオフセットだとバッファの再確保が起こったときにギャップより後ろにあったすべての改行に対するインデックスの張り替えが必要になるかな?■2点を考え合わせて Scintilla方式を推す。■■■@2013-12-21 これも Scintillaと同じ方式かな>「テキストエディタ用行管理情報の局所的更新手法」(※どちらかがどちらかのオリジナルということは関知しない)。