hmPSとjsmode
グローバルの記述
ほとんどのマクロの文、マクロのキーワード、マクロの関数を、だいたいそのままで表記できるようになっています。(一部例外はあります)
文でもキーワードでも関数でも、全て関数の書き方(メソッドの書き方)になります。
引数なしでは()なし
JavaScriptとは異なり、引数が無い関数では、PowerShellでは() を付けないので気をつけて下さい。
これはPowerShellの文法ですので、普段利用されている方は、違和感がないハズです。
引数ありでは、必ず()を付ける
引数がある場合、秀丸用の関数では必ず()を付けます。
hmPSにはjsmodeと同じ関数のほとんどが実装されています
-
JavaScript側のソース
jsmodeとは異なるもの
Dll読み込み関連
DLL読み込み関連は、「loadDllなど、jsmode独特のDllマネージ機能」は実装されていません。
こちらについては、
秀丸マクロと同一の使用感の関数群がすべて使用できます。
COM読み込み関連
COM読み込み関連は、「createObjectなど、jsmode独特のcreateObject」は実装されていません。
こちらは、普通にhmPSでは、.NETのdllが読み込めるため、そちらの機能で対応したほうが自然な実装となりエレガントでしょう。
又、秀丸マクロと同一の使用感の関数として、
- createobject
- member_rnum (member関数と同じだが、数値を返す)
- member_rstr (member関数と同じだが、文字列を返す)
- keepobject
- releaseobject
- setcomdetachmethod
のみが用意されています。
非同期関連
jsmodeの非同期関連、例えば、postExecMacroFileやpostExecMacroMemoryは実装されていません。
こちらはPowerShellでの記述にはやや難がありますので、
常駐コンポーネントを作るのに適した、hm.NETや、Hm.NetCOMを利用することをオススメします。
currentjsfilename
execjsで動作するわけではないため、currentjsfilenameは機能しません。
(常にcurrentmacrofilenameと同じものを返します)
一般的な文/キーワード/関数
後述の書き方が変わるものやサポートしていないもの以外は、文/キーワード/関数をそのままの名前で、パラメータ全体に()を付けるだけでメソッドとして使用可能です。
同じ名前でありながら文/キーワード/関数で用途が違うものがありますが、パラメータの指定が適切であれば()を付けるだけでいいです。
キーワードで[]で表すようなものも、()にすればできます。
文の結果コードはresultでも取得できますが、関数の返り値としても取得できます。
書き方が変わるもの
openfileやsearchdown等の予約語パラメータは、数値
openfile等の予約語パラメータはencode相当の数値になります。
searchdown等の予約語パラメータはsearchoption相当の数値になります。
getconfig、getconfigcolorでできるキーワード
getconfigでできるキーワードの多くはサポートせず、getconfigで取得します。
getconfigcolorでできるキーワードはサポートせず、getconfigcolorで取得します。
fontnameとfontsizeだけはキーワード相当でも可能です。
パラメータで受け取る関数
getlinecount、enumregvalueは返り値の他にパラメータで結果を受け取る特殊な使い方ですが、オブジェクトを渡して結果を受け取ります。
JavaScriptとの関数名衝突の都合上、関数名等が変更、もしくは不要だったもの
find文はfind1、replace文はreplace1、escape文はescapeselectに名前を変更しています。
split、joinは、PowerShellにあらかじめあるものを使います。
サポートしないもの
以下のものは()を付けるだけの書き換えする方法はサポートしません。
execmacro js execjs jsmode call refcall setactivehidemaru nexthidemaru prevhidemaru nexthidemaruicon prevhidemaruicon nexttab prevtab GREP FIND ENV COM関係 (getobject callmethod callmethod_returnstr callmethod_returnnum callmethod_returnobj getpropstr getpropnum getpropobj setpropstr setpropnum setpropobj getcollection allowobjparam setcomdetachmethod) getconfigでできるキーワード (fontcharset boldstate width kinsokustate correctlineno linespace freecursor tabcount indentstate showtab showruler tabruler linenostate pagestate formwidth hilightstate hilighttitle savewitheof ignoreeof backup) getconfigcolorでできるキーワード (tcolor bcolor lcolor ccolor rcolor rulercolor rulerbackcolor) encodeuri decodeuri split join DDE関係全部 return(キーワード) true(キーワード) false(キーワード) yes no eof