LoginSignup
0
0

More than 5 years have passed since last update.

wysiwygエディタについての学習3

Last updated at Posted at 2017-09-21

draft-jsを使ってみる続き

キーバインド

keyBindingFnで定義される
getDefaultKeyBindingをフォールスルー時に使うと良い

フォールスルー(fall through)

switchのcaseをbreakしないような処理

カスタマイズ

デフォルトをフォールスルーニした関数を定義して、それをEditorクラスに指定するのね
これもモンキーパッチ(reduxのmiddlewareにみた)と呼んで良いのかな

やはり批判的な意味を含むニュアンスなのね。

モンキーパッチ

モンキーパッチ - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%82%AD%E3%83%BC%E3%83%91%E3%83%83%E3%83%81

ゲリラー>ゴリラー>モンキーー>ダックパンチング

若手エンジニア/初心者のためのRuby 2.1入門(12):難しいが強力! Rubyのメタプログラミング、self、特異クラス/メソッド、オープンクラスとモンキーパッチ (4/4) - @IT
http://www.atmarkit.co.jp/ait/articles/1501/06/news028_4.html#03

メタプログラミング的、黒魔術的、用法用量を守ること

キーバインド変更の構造

  • keyBindingFn: バインドの分岐を通ってコメンド名を判別
  • handleKeyCommand: コマンド名を受け取ってコマンド実行

フォーカスマッピング

フォーカスの制御を外だし

宣言的ではなくなるが、フォーカスの部分は開発者がシンプルに使えるように外だしした
エディタコンポーネントのpublicメソッドfocus()を外から呼び出せる

宣言型プログラミング

宣言型プログラミング - Wikipedia
https://ja.wikipedia.org/wiki/%E5%AE%A3%E8%A8%80%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

命令型プログラムでは目的を達成するための方法を「手続き」として示すのに対し、宣言型プログラムでは達成すべき目的(出力)を示して、それを実現する手続きはシステムに任せるわけである。

DSLやSQL的なイメージ。

エディタをラップしたときにはfocusを自分で呼ぶ

paddingのためにdivで囲んだ時にエディタのそとのdivのフォーカスなどを伝えるときの記述の例。

テキストエディタのコード例
reduxでよくあるやり方に似てる、自分で定義したメソッドじゃなくて元からのEditorのメソッドに紐づける感じかな
コンストラクタで初期化の際に、参照できるようbindにする、このことをなんと呼ぶのかな

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0