Skip to content

Latest commit

 

History

History
124 lines (117 loc) · 5.35 KB

TODO.org

File metadata and controls

124 lines (117 loc) · 5.35 KB

設計

Feature 関数の実行例を調べる

各関数の実行例を調べることができる

利点

関数の実行例が揃っているから関数をどう使えばいいかが把握しやすい 初心者から上級者まで、lispを学ぶときに関数の実行例をすぐ確認して学習効率を上げることができる

Story 1 exampleの出力

コマンドを実行したとき、入力プロンプトが出てきて関数とかを入力すると実行結果を出力してくれる。

Scenario 1 コマンドでの登録

コマンドでM-x ex-example function とかすると別バッファに関数の使い方を出力する

Scenario 2 キーバインドでの登録

例えば、キーバインド C-9 , M-9, s-9 などに設定をしておいて、キーバインド一つで呼び出して、関数の実行例を確認する

Story 2 exampleの登録

作ったライブラリの関数も簡単な操作で関数の実行例を登録できる

Scenario 1 ファイルによるexampleの永続化

別ファイルに関数のexample群を登録しておいてM-x ex-example function で*example*バッファに実行結果を出力する。 ファイルに関数の実行例を格納しておいてそれをロードする?

Scenario 2 elispプラグイン開発時の実行例の登録

elispで実行できるものを開発したらその実行例を登録して、テストなどに備えることができる?

Scenario 3 リージョンを選択してからのexampleの登録

リージョンの選択をして、それを一気にexampleとして登録する

Task

exampleを追加する機能1

ex-add-exampleで実行例を登録して、ex-insert-current-bufferで登録用のデータ出力する

exampleを削除する機能 -> 上書きで対応?

ex-delete-last-elemを作成

exampleを表示する機能

pop-to-bufferで出てきた*example*バッファに表示させる

*example*バッファをqで抜ける機能

popwinを使用?

*example*バッファをemacs-lisp-modeかlisp-interaction-modeにする

変更するようにした。

ex-exampleを作る

バッファに出力する

バッファの作り方を調べる?

popup できるようにする

popup の内容のクリア

popwin のデバッグ設定を作る

hashのデータを実行できる形にする

mapで実行できるように変更 ‘(“(__ex-foo)”)

’(“(__ex-bar t)” “(__ex-bar nil)”)

関数名の出力と実行結果の出力を作る

’((ex-push . ‘(“(ex-push ‘__ex-foo)”)) (ex-get . ‘(ex-get ‘__ex-foo))) (ex-push . ‘(“(ex-push ‘__ex-foo)” “(ex-push ‘__ex-bar)”)) ‘(“(defun __ex-foo () (message "t")) (__ex-foo)” “(defun __ex-bar (bool) (if (message "message t") (message "message nil")))”)

exampleを作る

funcallとapply

car,cdr

リスト操作

map

pp系

ハッシュ

CL系関数

配列

構造体

述語関数

データ型

バッファ操作

ファイル処理

出力系

print, prin1, princ

[#A] Emacs Lisp Referrence から式を取ってくる

手動は大変だからなにかスクリプトが作れないか

ex-put-exampleの引数の改善

(ex-put-example function sexp1 sexp2 …) という風に登録の手間を省きたい =>やらなくていいや

exampleの保存を考える

ファイルに保存するしたのを読み込む コードにそのまま書く

エラーで止まらない処理を書く

fmakunbound, makunboundでエラーの場合に止まらないように動かせるようにしたい。 => condition-caseを使ってエラーがあっても動くようにした。

print, princ, prin1の場合の出力をちゃんと作る

式⇔文字列の関数をつくる?

文字列→式

ex-eval-stringを使う

式→文字列

(format “%s” expression)で文字列にできる (format “%S” expression)で”や\をクオートできる

ex-examples 関数を作る

ex-exampleはひとつの関数にしたほうがいいかも

使った名前の掃除する処理

:before,:afterのある属性リストを使う?

他の言語の方まで拡張する?

ruby, python, c, c++, etc…

テスト

travisのテストを作る

.travis.ymlを作る

全ハッシュの出力を作る

(test) 全ハッシュの中身が実行できるかどうか

ex-add-example内の関数のテスト

get, putの処理のテスト