[ 新規に投稿する ]

keyhook 0x1B; ⇒ endmacro_postcommand 547; で落ちるトラブルNo.11430
western さん 23/06/03 15:36 [ コメントを投稿する ]
  再現手順 (最小の条件を絞り込む余裕がなかったので再現した状況で)

秀丸エディタマクロライブラリから
「LSP(Language Server Protocol)用マクロサンプルとJSONサーバー/TypeScriptサーバーの例 V0.02」
をダウンロードし、TypeScript のLSPが起動するように setting.ini を最低限設定する

--------------------------------
node-v18.16.0-win-x86.zip をダウンロードして C:\に展開
C:\node-v18.16.0-win-x86\npm.cmd install typescript typescript-language-server -g
--------------------------------
setting.ini

command="C:\node-v18.16.0-win-x86\node.exe C:\node-v18.16.0-win-x86\node_modules\typescript-language-server\lib\cli.js --stdio"
dir="C:\node-v18.16.0-win-x86"
--------------------------------

client.mac の最後の行に以下の keyhook を追加
#id = keyhook(0x1B, registercallback(currentmacrodirectory+@"\keyhook.mac")); // 0x1B:VK_ESCAPE

マクロのあるフォルダに keyhook.mac というファイルを作成し、以下の内容を記述
debuginfo 2; endmacro_postcommand 547; // コマンド値 "Escキー"

拡張子が .ts のファイルを開く (空っぽのファイルでもよい。LSPマクロの.tsでもよい)

client.mac を実行する

ESC を連打(or 押しっぱなしにする)
運が悪いと1回で、そうでなくても20回くらい、押しっぱなしなら割とすぐに

-------------------------------------
C:\DATA\HidemaruExtention\lspclientsample002\client.js(0) +... 
 
Line : 37 
Col : 28 
Error code : 0/ 0x80004005
-------------------------------------

というエラーが表示されて jsmode が落ちます
[ ]
RE:11430 keyhook 0x1B; ⇒ endmacro_postcommand 547; で落ちNo.11432
秀丸担当 さん 23/06/05 09:26 [ コメントを投稿する ]
  バグ情報ありがとうございます。
同じようにして再現できました。
調べてみたところ、endmacro_postcommandによる終了が、マクロ中断するときのように全ての中断にしてしまっていました。
そういう動作にはならないように、1つのマクロ実行の中断だけとなるように修正させていただきます。
[ ]

[ 新規に投稿する ]