-
Notifications
You must be signed in to change notification settings - Fork 0
Home
らっしー edited this page Oct 13, 2014
·
3 revisions
めもというのなのも
- atom.workspace.eachEditor()でTextEditorViewを手に入れます。 TextEditorViewはテキストエディタ画面をHTMLレベルで管理しています。
- TextEditorViweにはTextEditorを持っているので、TextEditorView.getModel()で手に入れます。 TextEditorはテキストエディタとデータレベルで管理しています。
- TextEditorViewが持っているDisplayBufferをTextEditorView.displayBufferで手に入れます。 DisplayBufferは表示するデータの管理をしています。
- DisplayBuffeが持っているTokeninzedBufferをDdisplayBuffer.tokenizedBufferで手に入れます。 TokeninzedBufferはトークンレベル値での管理をしています。一行一行解析したTokenizedLineの配列を持っています。
- TokeninzedBufferで行のテキストをトークンに分解し、TokenizedLineを生成するメソッド二つ(buildPlaceholderTokenizedLineForRow, buildTokenizedTokenizedLineForRow)をハックします。
TokenizedLineをnewする必要があるのですが、requireで引っ張って来る方法が見つからなかったので、オリジナルのメソッドで作成されるインスタンスtokenizedLineがあるので、tokenizedLine.proto.constructorで引っ張ってきたコンストラクタに対してnewしています。もっとスマートな方法を知っている人がいたら教えてください。