Skip to content

playground(2019年1月18日)

KASE edited this page Jan 18, 2019 · 3 revisions

起動方法

引数の文字列のList中にeditから始まる文字列があればplaygroundを起動します。
edit:で指定されたファイルを開き、それをediter内に表示します。
例:

python3 pegpy/main.py parse -g math.tpeg edit

python3 pegpy/main.py origami -g konoha6.tpeg edit:fib.k

python3 pegpy/main.py origami -g edit:konoha6.tpeg fib.k

編集すべきファイル

pegpy/playground/index.html
pegpy/playground/index.js
pegpy/playground/server.py

live coding

editerのcontentsを編集してから400 ms後までに再び編集されなかった場合に、editerのcontentsをserverに送信し、server内でcompileします。
送信先のurlは/compileです。
compileはcompileCommand()で行っています。

commandが変更された場合

変更したcommandがediterのcontentsと共に/commandに送られます。
commandをp_arg()を用いてparseし、restore_arg()でstrのlistに変換します。
p_arg()はpegpy/main.pyのparse_options()です。
また、この際にedit:で指定されているファイル名(new_edit_name)の取得も行います。
new_edit_nameとedit_nameが異なる場合には編集対象のファイルが変更されたとし、editerに表示するcontentsも変更します。
editerに表示するcontentsの変数名はinputです。
edit:で指定されているファイル名が無いときは、editerのcontentsは入力文字列として扱います。

起動時

画面が起動した後、javascrit側からserverにリクエストが送られ、server側はplayground起動時のcommandとedit:で指定されているファイル名を読み込み、それを返します。
urlは/initです。

syntax highlight

現在停止中。
comment outしています。
必要に応じてcomment outを解除し、編集して下さい。
syntax highlightをどのように設定するかが記述されているfileはpegpy/playground/js/ace以下のmode-***.jsです。
codeの予測変換機能(正式名称は忘れました)のデータはpegpy/playground/js/ace/snipets/以下に記述されています。