[ 新規に投稿する ]

スクリプトエンジンについてNo.11321
mac さん 24/09/21 07:11 [ コメントを投稿する ]
  現状では非常に古いエンジン(素のWSH?ES3相当?)のままになっていますが、ChakraやV8相当のエンジンに更新する計画はありますか?

私はもっぱらJScupt側(.js)で秀丸ファイラのスクリプト機能を利用してるのですが、たまにスクリプトを手直しあるいは新たに書き起こすときに「各種のモダンな構文やメソッドが利用できないこと」にもどかしさを感じています(少なくない量の代替コードが必要になります)。
本家WSHでは /e オプションでChakraエンジンを指定できたりするので、秀丸ファイラでも似たようなことができたら(あるいは秀丸エディタのようにV8を利用できたら)うれしく思います。


また、数か月前にMSから「今後はVBScriptを非推奨とする」旨の発表があり各種メディアで記事になりましたが、WSHそのものやJScript側への言及が一切なかったので、秀丸ファイラのスクリプト機能への影響が気になっています。
こちらについても、なにか確認できた情報があったら教えていただけるとありがたいです。
[ ]
RE:11321 スクリプトエンジンについてNo.11322
秀丸担当 さん 24/09/24 14:32 [ コメントを投稿する ]
  スクリプトエンジンをChakraやV8にする計画は今のところ無いです。
もしするとしたらChakra相当にすることは比較的やりやすいです。
秀丸エディタでしているようなV8相当にするのは比較的難しいです。
WSHそのものやJScriptの方針が今後どうなるかわかりませんが、発表されているのはIEを無くしていくということなので、どちらかというとChakraのほうが心配したほうがいい気がします。
DOSは無くなっていないので、発表が無いのなら無いでいいんじゃないかと思います。
もしなにかあったら、たぶんMicrosoftが提供するかもしれない別途インストールをしてくださいと言うか、Chakra相当を個別に付属するかになるかもしれません。

あと文法を新しくしたいという場合、.tsで書いて、tscでコンパイルして.jsにするという手法があります。
例えば以下のものは.tsで書いていますが、最終的に実行されているのはWSHのJScriptです。
https://hide.maruo.co.jp/lib/macro/lspclientsample003.html
[ ]
RE:11322 スクリプトエンジンについてNo.11324
mac さん 24/09/27 22:35 [ コメントを投稿する ]
  お返事ありがとうございます。
現時点ではエンジン刷新や切替機能は計画されていないんですね。

>あと文法を新しくしたいという場合、.tsで書いて、tscでコンパイルして.jsにするという手法があります。

手法のご案内ありがとうございます。
秀丸ファイラ用スクリプトの記述に同手法を利用する環境を整えられていましたら、各種API(静的メソッドやプロトタイプメソッド等)を含めてES3向けにトランスパイルするための推奨ビルドチェーン等の参考情報を公開して頂けるとありがたいです。
また、秀丸ファイラ固有のAPI(getNextItem()等のグローバルメソッド、scriptFullName等のグローバルプロパティ)の型定義ファイル(.d.ts)についても公式で公開頂けたらうれしいです。

ちなみに、現行のtsc(5.x系)ではES3へのコンパイルがサポートから外れたようで、旧バージョン(4.x系)を利用する必要がありそうでした。
[ ]
RE:11324 スクリプトエンジンについてNo.11326
秀丸担当 さん 24/09/30 16:33 [ コメントを投稿する ]
  tscではES3は無くなっていくのですね。
全体を把握していませんがletとかアロー関数とかはコンパイルされているっぽいので、そういった最低限のものにしたほうがいいかもしれません。
あるいは不足を埋めるポリフィルのようなものとか?
とにかくJScriptというだけで、何かを推奨するということは無いです。
メソッドを羅列しただけの.d.tsはあってもいいかもしれないです。
ご意見参考にさせていただきます。
[ ]
RE:11326 スクリプトエンジンについてNo.11328
mac さん 24/10/02 17:51 [ コメントを投稿する ]
  お返事ありがとうございます。

先の要望は秀丸ファイラ担当さんの部署やサイトー企画さん社内でES3向けのビルドチェーンを構築して秀丸ファイラスクリプトを書かれている方がおられることを期待して書かせていただきました。
私のES3に対する主な不満は「Number/String/Array/Object等の各種プロトタイプメソッドやスタティックメソッドが使えないこと」なので、tscだけではコンパイルの手間が増えるだけで個人的にはほとんど意味を感じません。
また、その一方でBabel等でポリフィルライブラリをバンドルするような手法は環境構築(ベタープラクティスにたどり着くまで)がとても大変そうです。
今後のエンジン刷新orエンジン切り替え機能の実装に(勝手ながら)期待したいと思います。

ちなみに、WSHにおけるChakraエンジンは「旧Edge用のエンジン」であって、IEとは関係ないようです。
- IE用(jscipt9.dll):  /E:{16d51579-a30b-4c8b-a276-0ff4dc41e755}
- 旧Edge用(chakra.dll):  /E:{1B7CD997-E5FF-4932-A7A6-2A9E636DA385}

[ ]
RE:11328 スクリプトエンジンについてNo.11330
秀丸担当 さん 24/10/03 14:58 [ コメントを投稿する ]
  Chakraは2つあるということで、情報ありがとうございます。
Chakraにするだけでよければ比較的やりやすいです。
秀丸エディタでやっているのはどちらか調べてみたら、jscipt9.dllのほうでした。
chakra.dllのほうはWSHとしては動作できなさそうでした。(もしかしたら方法はあるのかもしれないですが)

jscipt9.dllのほうだとして、プロトタイプメソッドの違いがあるか全部ではないですが幾つか試してみたのですが、違いがあるかわかりませんでした。
秀丸エディタのようにjsmode "Chakra";とできたとしてもこの点については違いが無いかもしれません。
[ ]
RE:11330 スクリプトエンジンについてNo.11332
mac さん 24/10/06 21:32 [ コメントを投稿する ]
  >jscipt9.dllのほうだとして、プロトタイプメソッドの違いがあるか全部ではないですが幾つか試してみたのですが、違いがあるかわかりませんでした。

jscript9はES5相当だと思っていたのですが実際には違うようですね...
無理筋な雰囲気を感じてはいますが、できたらChakra(jscript9ではない、chakra.dll 相当)かV8相当のエンジンへの刷新について検討をお願いしたいです。

この先何らかのより良い解決手法が見つかることを期待しています。

[ ]
RE:11332 スクリプトエンジンについてNo.11333
秀丸担当 さん 24/10/07 09:35 [ コメントを投稿する ]
  将来はわかりませんが、期待させてしまうと悪いので、いまのところやる予定は無いということでお願いします。
そういうご意見があるということで参考にさせていただきます。
[ ]

[ 新規に投稿する ]