C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

VSCodeでPowerMillマクロ開発環境を作りたい10

こちらの続きです。
VSCodeでPowerMillマクロ開発環境を作りたい9 - C#ATIA

悩みに悩んだ末、F5キーでPowerMillデバッガを起動出来るようになりました。

実際にデバッガを起動するVBSprict "call_debugger.vbs"

    'powermill
    Dim pm
    Set pm = GetObject(, "PMILL.Document")
    
    'デバッガ終了
    Call pm.docommand("MACRO CLOSE FORM CANCEL MACRODEBUG")

    'マクロパス
    Dim path
    path = WScript.Arguments(0)
    
    'コマンド
    Dim cmd
    cmd = "MACRO DEBUG " & path
    
    'デバッガ起動
    Call pm.docommand(cmd)

デバッガが既に起動している場合もあるため、最初にデバッガを終了する
処理を入れました。

続いてVBSprictを呼び出すための tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "call_debugger",
            "type": "shell",
            "command": "wscript",
            "args": ["${workspaceFolder}/src/call_debugger.vbs", "${file}"],
            "presentation": { "reveal": "silent"},
            "problemMatcher": []
        }
    ]
}

引数はエディタ上でアクティブになっているファイルです。

最後にデバッガ起動のアクションを起こしている launch.json

    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Call Debugger",
            "preLaunchTask": "call_debugger",
            "program": "${workspaceFolder}/src/dmy.js"
        }
    ]

"program"を指定しないとデバッガが起動するのですが、VSCode側でエラーを
起こすため、何も処理しないJavaSprictを用意し実行することにしました。
動画を撮っている暇が無いため割愛。

こんな処理方法が正しいVSCodeAPIの利用方法とは思えないのですが、
とりあえずかなり目標状態に近づきました。


最近は、"色々検索するより本家のドキュメントを見るべき" と言う神のお告げを
思い出し見てはいるのですが
Extension API | Visual Studio Code Extension API
自分の行っている方法は、ちょっと間違っていることに気が付きました。
参考にしたものが悪いんだな…。