making editor written in ruby version 20160611
TRANSCRIPT
Making Editor
Hamamatsu.rb
Langur(@osarusystem)
Wed Jun 11 2016
About Me
CC-BY-SA 3.0 from Wikipedia
Name : LangurTwitter : @osarusystemJobs : Embedded Software Engineer
Network Software EngineerInterestedness : OS/Cipher/FreeBSD/Ruby/
Primates/Making Sweets/...etc
どんなエディタを使っていますか?
Emacs
• 利点- 豊富なプラグイン
- Lispで拡張可能
- というかLisp環境
- CUIでもGUIでも動作
- ほぼ、なんでもできる
• 欠点- 特殊なキーバインド
- プリインストールされない
- Lispが辛くなってきた...
Lispが辛くなってきた...
......
Hamamatsu.rbに参加しているし
Rubyでできないかな...
やってみるか
処理を考えてみた
なんかできそうじゃない?
やってみた
editor.rb
require ”./ipl”
init
loop {ch = $main_buffer.getcheditorHandler_exec(ch)
}
1. 別ファイルの読込み
2. 初期化
3. 無限ループ
4. 1文字入力する
5. 対応する処理をする
6. 3.に戻る
フローチャート通りになった!
ハンドラ
$handler = {KEY1=>$handler1,KEY2=>EditorCommand2
}
$handler1 = {KEY11=>$handler11,KEY12=>EditorCommand12
}::
ハンドラ
[↑]キーの場合
キー入力<ESC> [ A
処理$handler = $handler[<ESC>]$handler = $handler[”[”]$handler[”A”].exec$handler = $handlerRoot
デモ
利点その1
構造が単純
利点その2
機能拡張が容易
問題点その1
キーコードが環境依存
問題点その2
クラスによって取得できるキーが異なる
問題点その3
クラスによってはキーを取りこぼす
問題点その4
コマンドをたくさん用意する必要がある
今後の課題
• エディタになるように機能追加する
• コマンドの追加を自動化する
• GitHubかどこかで公開できるようにする
Hamamatsu.rbの皆様
相談に乗っていただき
ありがとうございます
今後ともよろしくお願い致します
ご来場の皆様
ご清聴ありがとうございました