-
Notifications
You must be signed in to change notification settings - Fork 5
playground(2019年1月18日)
引数の文字列の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
editerのcontentsを編集してから400 ms後までに再び編集されなかった場合に、editerのcontentsをserverに送信し、server内でcompileします。
送信先のurlは/compileです。
compileはcompileCommand()で行っています。
変更した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です。
現在停止中。
comment outしています。
必要に応じてcomment outを解除し、編集して下さい。
syntax highlightをどのように設定するかが記述されているfileはpegpy/playground/js/ace以下のmode-***.jsです。
codeの予測変換機能(正式名称は忘れました)のデータはpegpy/playground/js/ace/snipets/以下に記述されています。