#4094

takuya
参加者

>因みに私のほうはマクロ側からより低レベルな
処理を実行したいので、DOMを拡張できたらなーと思っています。

DOM実装ってdocument.getElementsByTagNameNS();みたいなモノですよね。低レベルなDOMの拡張って?もうすこし詳しく知りたいです理解できて無くてすいません。

拡張ってEmEditor内蔵のDocumentオブジェクトをWRAPするdocumentオブジェクトをマクロ側で定義して、それを毎回Importすれば出来るんじゃないかなと。(重いけど・・・)
こういうのをWikiなりオープンな場で作って共有できれば良いのじゃないかなと思ったのですが。

//基本的なオブジェクトを拡張する BASE.js
var _document = {
keyPress : function(key){
var shell = new ActiveXObject(“WScript.Shell”);
shell.SendKeys( key );//key={F5}, key={A}…
},
Caret : {
move : function(x){//負なら左へ、正なら右へ移動
if( x <0 )
this.selection.CharLeft(x);
else
this.selection.CharRight(x*-1);
}
}
onSave :function(x){}
}
Object.extend( window.document, _document );

これを使って

Editor.ImportSrc( “BASE.js” )
//なんか処理

こんな感じで出来ないかな。

>あと、個人的にJavascriptの言語構造でrequireなどの
機能がないのはemeditor側ではどうしようもないような気がします・・・

JScript.netには.netFrameWorkをImportする機能があるんだけど。あれってマクロの再利用とは、また違うのかな。たしかに言語構造的には無理だよねぇ。でも組み込みObjectの関数で用意していただけると使える気がする。先の例でのEditor.ImportSrc()みたいな感じで。

個人的にはeval()するだけのrequire()でもいいからあると楽かなぁと思う。