Making Editor written in Ruby version 20160611

Post on 15-Apr-2017

165 views 0 download

Transcript of Making Editor written in Ruby version 20160611

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の皆様

相談に乗っていただき

ありがとうございます

今後ともよろしくお願い致します

ご来場の皆様

ご清聴ありがとうございました