言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

デバッガにツールチップ追加

FakeClassPool クラス変数を本物のクラスの代わりに保持する。doIt時使用。

TextMorphEditor(ParagraphEditor)>>evaluateSelection での
        rcvr class evaluatorClass new 
            evaluate: (ReadStream on: varName)
            in: ctxt
            to: rcvr
            notifying: self
            ifFail: [FakeClassPool adopt: nil. ^ #failedDoit]

notifying: の値が Workspace の時、Workspace 変数を参照、かつ、未宣言変数の
エラーが出ない(勝手に宣言してしまう)

Hand の位置と Event の位置は違う!

材料がそろったところでプロト作成し。使い勝手を試す。

  • バルーンヘルプ表示を参考にする。
  • マウスムーブでアラーム開始
  • 何秒か止まっていることが分かれば tooltip 表示

model はどこで取得するか?
PluggableTextMorph>>handleEdit: で TextMorphEditor に model を設定する必要がある!

テキスト処理の仕組み

  • PluggableTextMorph
    • Model 表示文字列
    • TextMorphForEditView
      • NewParagraph 実際に画面にある文字列
      • TextMorphEditor テキスト編集を行う。フォーカスを失うと消える。