Menu

#763 プラグインをマクロ記録できるようにする等マクロ変更

None
open
nobody
None
5
2017-10-01
2014-01-26
Moca
No

・プラグイン・登録マクロを、マクロ記録可能にします。
・登録マクロのマクロ記録を、「マクロの内容を記録」から「マクロそのものの実行の記録」に変更
・「マクロの内容を記録」のための互換オプション新設(iniのみ。全体で共有設定)
・メニュー系マクロ実行が、PostMessageで実行タイミングがおかしいバグの修正
・メニュー系ダイアログ系マクロで実行されるコマンドが、記録不可のときにも記録されるバグの修正
ExecExternalMacro( filename, exttype, macroParam(可変長)...) に変更
以下追加
ExecUserMacro( index, macroFileName, macroParam(可変長)... )
ExecPluginCmd( cmdStr, macroParam(可変長)... )
cmdStrは、「プラグインID名/コマンドNo」です。
macroParamは、PPAでは利用できません。
AddExecFuncArgInt( intParam ) macroParamのかわりに引数を指定
AddExecFuncArgStr( strParam ) macroParamのかわりに引数を指定
AddRecMacroParamInt( intParam ) マクロ記録で記録される引数を追加(int)
AddRecMacroParamStr( strParam ) マクロ記録で記録される引数を追加(Str)
GetMacroParam( argIndex ) : String マクロパラメータ取得
ExecExternalMacro, ExecUserMacro, ExecPluginCmdのmacroParamを取得します
GetMacroParamCount() : Integer マクロパラメータ数取得

1 Attachments

Related

PatchUnicode: #1064
PatchUnicode: #940
PatchUnicode: #941

Discussion

  • Moca

    Moca - 2014-01-26

    マクロの例:
    // test.js
    var s = "";
    if( 0 < Editor.GetMacroParamCount() ){
    // RecKey.macからはこちら
    s = Editor.GetMacroParam( 1 );
    }else{
    // 通常実行はこちら
    s = Editor.InputBox( "入力する文字列の指定", "", 255 );
    }
    Editor.AddRecMacroParamStr( s );
    Editor.InsText( s );

    // test.js を登録済みNo.0に設定して
    // マクロ記録で「input」とダイアログで入力するすると
    // RecKey.mac
    // 旧仕様:ExecUserMacro( 0, 'input' );
    ExecUserMacro( 0, 'test.js', 'input' ); // v0_4以降

    と記録されます。
    マクロ再生時には、ダイアログを表示しないで、"input"と画面に追加されます。

     

    Last edit: Moca 2014-12-24
  • Moca

    Moca - 2014-01-28

    ・AddRecMacroParamStrで、改行・NUL・タブなどを入れたときエスケープするように

     
  • Moca

    Moca - 2014-12-17

    ・CMacro::Saveの変更は最新版に未更新。コミット後に削除予定
    [patchunicode:#865] マクロ保存処理の変更
    ・5個以上の引数の処理がおかしいバグの修正/m_nArgMaxSize,m_nArgMinSize対応はコミット済み

    ・旧マクロ記録互換のオプションを新設(iniのみ)
    ・Command_GREP_REPLACE_DLG修正
    ・ダイアログ系の引数をEFunctionCodeをやめてEFunctionFlagsを導入
    ・Command_CUSTMENUのコマンド実行部分をコマンド側に移動
    ・Command_EXECEXTMACROのto_tchar系の修正
    ・Command_EXECEXTMACROで旧互換のときに拡張子が記録されないtrunk2のバグを修正
    ・Command_EXECEXTMACROでm_nAddMacroParamCountを-1に戻していないバグを修正
    ・マクロの最大引数の個数を99にした
    ・CMacro::Execを8個以上の引数に対応させる
    ・AddExecFuncArgInt/Str追加。macroParamのかわりに先に引数を設定することでPPA/99個以上の引数に対応
    ・ExecUserMacroの引数にstrFileNameを追加(index, strFileName, macroParam(可変長))に変更
    ファイル名が指定された場合はファイル名が一致するものを実行するように
    ・ExecUserMacroの保存で、「マクロ名」をコメントに記録するように修正
    ・AddRecMacroParamStrのNUL文字対応

     

    Related

    PatchUnicode: #865


    Last edit: Moca 2014-12-17
  • Moca

    Moca - 2014-12-17
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,15 +1,17 @@
     ・プラグイン・登録マクロを、マクロ記録可能にします。
     ・登録マクロのマクロ記録を、「マクロの内容を記録」から「マクロそのものの実行の記録」に変更
    +・「マクロの内容を記録」のための互換オプション新設(iniのみ。全体で共有設定)
     ・メニュー系マクロ実行が、PostMessageで実行タイミングがおかしいバグの修正
     ・メニュー系ダイアログ系マクロで実行されるコマンドが、記録不可のときにも記録されるバグの修正
    -・5個以上の引数の処理がおかしいバグの修正
     ・キーマクロの記録の「S_xxx」をやめる
     ExecExternalMacro( filename, exttype, macroParam(可変長)...) に変更
     以下追加
    -ExecUserMacro( index, macroParam(可変長)... )
    +ExecUserMacro( index, macroFileName, macroParam(可変長)... )
     ExecPluginCmd( cmdStr, macroParam(可変長)... )
    +cmdStrは、「プラグインID名/コマンドNo」です。
     macroParamは、PPAでは利用できません。
    -cmdStrは、「プラグインID名/コマンドNo」です。
    +AddExecFuncArgInt( intParam ) macroParamのかわりに引数を指定
    +AddExecFuncArgStr( strParam ) macroParamのかわりに引数を指定
     AddRecMacroParamInt( intParam ) マクロ記録で記録される引数を追加(int)
     AddRecMacroParamStr( strParam ) マクロ記録で記録される引数を追加(Str)
     GetMacroParam( argIndex ) : String マクロパラメータ取得
    
    • Group: -->
     
  • Moca

    Moca - 2014-12-24

    ・m_cRecMacroParamを再入対応に変更/Count削除
    ・m_cExecMacroParamがメニュー表示等の結果マクロの再入がある場合に対応
    ・キーマクロ実行中はキーマクロの記録・実行・読み込みの実行を不可に修正
    ・F_ADDEXEFUNCARG(INT|STR)→F_ADDEXECFUNCARG(INT|STR)に修正
    ・nArgLimitが5になってたのを99に修正
    ・#865コミットによる修正

     
  • Moca

    Moca - 2015-02-22

    ・typo(pcEditDic)修正
    ・conflict修正/CShareData.cpp修正
    ・「S_」を削除するパッチを分離

     
  • Moca

    Moca - 2015-02-22
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -3,7 +3,6 @@
     ・「マクロの内容を記録」のための互換オプション新設(iniのみ。全体で共有設定)
     ・メニュー系マクロ実行が、PostMessageで実行タイミングがおかしいバグの修正
     ・メニュー系ダイアログ系マクロで実行されるコマンドが、記録不可のときにも記録されるバグの修正
    -・キーマクロの記録の「S_xxx」をやめる
     ExecExternalMacro( filename, exttype, macroParam(可変長)...) に変更
     以下追加
     ExecUserMacro( index, macroFileName, macroParam(可変長)... )
    
     
  • novice123

    novice123 - 2017-09-24

    conflict修正

     

    Last edit: novice123 2017-09-24
  • novice123

    novice123 - 2017-10-01

    ReadPluginDefCommand()の処理を修正しました。
    swprintf( bufKey, L"C[%d].RecMacro", bRecMacro );
    ->
    swprintf( bufKey, L"C[%d].RecMacro", nCount );

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.