Cosenseページ内のLuaをリアルタイムで実行する
https://gyazo.com/ea77af029b7534bb0e13b45cc9874fdc
bsahd.icon
機能のまとめ
機能のまとめ 終わり
以下infoboxは読まないでください
容量が大きいので分割して貼り付ける必要があります
出力結果をhttps://gyazo.com/88cf08a8cafa41454c22cf0cfb43776eダウンロードし、個人プロジェクトにimportしてください
その後、UserScript欄にimport "/api/code/{インポートしたプロジェクト名}/ScrapLua/script.js"
コードは現在(2025/1/4 00:39)リアルタイムで更新されます
使い方
Luaコードを[%* と]で囲む or ファイル名がscrap.luaで終わるcodeblockに置いてください
%*部分の順序は問いません
これ以降、[%* ... ]で囲まれたコードとファイル名がscrap.luaで終わるcodeblockをセルと呼びます
複数の行をセルに書きたいときは;で1行にできますが、codeblockにするのをお勧めします
リアルタイムに計算結果が出ます
計算に1秒以上かかるコードは推奨しません
2秒未満がベストです
デバウンスするようにしました
いれちゃえ
注意事項
Luaのローカル変数にすると変数が共有されません(セル内に閉じた変数として使えます)
変数名に日本語は使えません
他機能
ファイル名がscrap.luaで終わる場合に反応する
同じ名前のcodeblockでもインタプリタ的には別で実行されます
アウトプットは各codeblockの下にまとめてでます
通常版ScrapCalcの記法の置いてあるページでは使わないほうがいいです
通常版ScrapCalc側がLuaコードをJSとしてevalする
下部のStatus barに計算時間を表示しています
クリックすると強制再計算されます
計算時間はインタプリタの準備込みです
コミットログ
2025/1/4 02:20:出力結果がコードの一部として解釈されるバグを修正
2025/1/4 02:28: 計算中にカーソルを砂時計にするようにした
スマホ勢のためにステータスバーにも表示する
高セキュリティ
コードブロック対応:複数行のコードを書ける
結果は通常のScrapCalcに近い形式で出る
https://gyazo.com/7c518bb1d78b891bb45ee07695c12284
現在時刻を出す
print(os.date("%Y-%m-%d %H:%M:%S"))
print(os.time())
フィボナッチベンチマーク
code:bsahd.scrap.lua
-- フィボナッチ数列
function fib(n)
if n < 2 then
return n
else
return fib(n-1)+fib(n-2)
end
end
function fib_array(num)
local result = {}
for i = 0, num do
end
return result
end
fa = ""
fat = fib_array(25)
for i,v in pairs(fat) do
fa = fa..v
else
fa = fa..v..", "
end
end
print(fa)
ScrapLua:2245msbsahd.icon
普通のLua:30ms
python:65ms
LuaJIT:7ms
code:比較用.py
def fib(n):
if n < 2:
return n
else:
return fib(n-1)+fib(n-2)
def fib_array(num):
result = {}
for i in range(1,num+1):
return result
fat = fib_array(25)
print(fat)