Editor.NewFile()の戻り値

投稿者: takuya2 声8 投稿

組み込みマクロのオブジェクトに関する機能要望です 新規でドキュメントを開く Editor.NewFile や、 Editor.OpenFile()が新しく開いたドキュメントのオブジェクトを戻り値で戻すようにして欲しいです。 var doc = Editor.OpenFile(); doc.write(""); の様に複数TABを行き来するマクロが作成しづらいです。(検索結果のタグジャンプ一覧を開いて閉じるとか) また OpenFlle()で開いた文書をActiveドキュメントにするかどうかをOpenFileの引数で指定できるようになりませんか?
>var doc = Editor.OpenFile(); >doc.write(""); これについては私も同感です。 これ以外にも、戻り値がないメソッドがほとんどで、戻り値があれば非常に便利かつ書くのが楽なものが一杯あります。 マクロ搭載時に結構要望したのですが、中々忙しかったようやってもらえなかった^^; >OpenFlle()で開いた文書をActiveドキュメントにするかどうかをOpenFileの引数で指定できるようになりませんか? あれば便利ですよね。今のところ私は、以下で逃げてますが、スマートじゃない^^; var startDocument = document; editor.NewFile(); startDocument.Activate(); これを、関数にしてメソッドのように使う手はあると思いますけど、 javascript って Perl の use require みたいなことが出来ないから、 ユーザーでモジュールっぽいもの作ってもいけないし^^; いちおう、 javascriptのeval を使って、擬似require みたいなのは作ったことは作ったんですけど、、、。
EmEditorでrequireみたいな機能をつけてもらえると嬉しいかなぁと。 マクロ書いていると、どのマクロでも良く使う定型処理が多くて、 どのマクロにも貼り付けてることが多いです。
うん。欲しい。evalするだけのrequireでイイから欲しい。 いちおう、今のところ私も、eval()でやってますよ。 https://d.hatena.ne.jp/takuya_1st/20061001/1159731651 でもuse とか import文があればそれに越したことはない。
openNewに戻り値がないのはCのオブジェクトをJavaScriptに渡せないからなのだろうなぁ。と一応想像はしていますが。 OpenNewした後に doc = Editor.Documents.Item( Editor.Documents.Count ); すれば良いのだろうけど。 それをマクロ側でやると、それはエディタ用のマクロじゃない気がする。JavaScriptっぽくもないし。 require/use/import があるのならEditorオブジェクトをすべてJavaScriptでWRAP出来るのです。起動時に基本的JSを読み込むとか。それが出来れば萌ディタからEmEditorに戻りたいなぁ
evalでrequireもどきをやると変数の扱いやデバッグにちょっと気を使いますよね。 私は一時期よく使う関数などはまとめてwscとかにしてましたが結局コピペしたほうが便利なのでやめちゃったなー。 どうしてもマクロ書いていると冗長な書き方しないと いけない部分がでてくるのでそこら辺を解決できると良いですねー。 >江村さん ということでEmeditorのDOM関連の拡張(個人で拡張でできたらステキ)もご検討していただければなーと思います
そうですね。結局私も地道にコピペで貼り付けまくり状態で、特に変更がなければそれで 全然問題ないのですけど、マクロがたくさんになってきて数年前のとか、「あー、こここ うしたほうがもっと良いなぁとか、新しいメソッド用意されて一部いらなくなったなぁな ってちょっと修正」とかしてるいうちに、全てのマクロで同じはずの関数が微妙に違って て、「あーー」って感じで、、。(ちゃんと全てのマクロを探して修正してないのが悪い悪 いのですけど) 私の場合、マクロのほとんどが自作関数/オブジェクト(数百行)で、メイン部分が数行し かないとかばっかりで^^;。 ポップアップメニュー作成オブジェクト(IDの管理とか)とか、一回作るとかなり便利です よ。そういうの共有できたらとても便利なんですけどね。
なるほど、機能追加要望に、Import欲しいのスレッドを作っておきます。 Editor.NewFile()の戻り値に関してPerlerさんの意見も聞いてみたいなと思ったりします。

このトピックの投稿: 8