augustocdias / vscode-shell-command

A task helper to use system commands as input
MIT License
51 stars 19 forks source link

Cannot get python interpreter path #116

Open Garcia6l20 opened 4 days ago

Garcia6l20 commented 4 days ago

I'm trying to create an input from a custom python utility, something like this:

{
  "version": "0.2.0",
  "inputs": [
        {
            "id": "myInput",
            "type": "command",
            "command": "shellCommand.execute",
            "args": {
                "command": "${command:python.interpreterPath}",
                "commandArgs": [
                    "./my_tool.py",
                    "tool", "args"
                ],
                "cwd": "${workspaceFolder}",
                "env": {
                    "PYTHONPATH": "${workspaceFolder}"
                }
            }
        }
  ]
}

And am facing the following exception when it is beeing used:

2024-10-14 09:08:42.162 [error] TypeError: Cannot use 'in' operator to search for 'workspaceFolder' in undefined
    at d._getSelectedInterpreterPath (/home/sylvaing/.vscode-server/extensions/ms-python.python-2024.16.1-linux-x64/out/client/extension.js:2:505073)
    at /home/sylvaing/.vscode-server/extensions/ms-python.python-2024.16.1-linux-x64/out/client/extension.js:2:504966
    at T0.h (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:114:32845)
    at T0.g (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:114:31919)
    at T0.executeCommand (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:114:31826)
    at Object.executeCommand (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:156:37049)
    at VariableResolver.<anonymous> (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/VariableResolver.js:68:50)
    at Generator.next (<anonymous>)
    at /home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/VariableResolver.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/VariableResolver.js:4:12)
    at VariableResolver.bindCommandVariable (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/VariableResolver.js:62:16)
    at /home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/VariableResolver.js:50:40
    at String.replace (<anonymous>)
    at VariableResolver.<anonymous> (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/VariableResolver.js:32:30)
    at Generator.next (<anonymous>)
    at /home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/VariableResolver.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/VariableResolver.js:4:12)
    at VariableResolver.resolve (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/VariableResolver.js:29:16)
    at CommandHandler.<anonymous> (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/CommandHandler.js:77:44)
    at Generator.next (<anonymous>)
    at /home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/CommandHandler.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/CommandHandler.js:4:12)
    at CommandHandler.resolveArgs (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/CommandHandler.js:74:16)
    at CommandHandler.<anonymous> (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/CommandHandler.js:112:24)
    at Generator.next (<anonymous>)
    at /home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/CommandHandler.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/CommandHandler.js:4:12)
    at CommandHandler.handle (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/lib/CommandHandler.js:111:16)
    at callback (/home/sylvaing/.vscode-server/extensions/augustocdias.tasks-shell-input-1.12.4/out/extension.js:17:28)
    at T0.h (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:114:32845)
    at T0.$executeContributedCommand (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:114:33695)
    at Zb.S (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:155752)
    at Zb.Q (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:155532)
    at Zb.M (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:154621)
    at Zb.L (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:153726)
    at gh.value (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:152523)
    at T.B (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:29:732)
    at T.fire (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:29:950)
    at no.fire (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:9399)
    at gh.value (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:174:13273)
    at T.B (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:29:732)
    at T.fire (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:29:950)
    at no.fire (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:9399)
    at Im.A (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:12515)
    at gh.value (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:10935)
    at T.B (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:29:732)
    at T.fire (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:29:950)
    at m5.acceptChunk (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:7880)
    at file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:7166
    at Socket.t (file:///home/sylvaing/.vscode-server/cli/servers/Stable-384ff7382de624fb94dbaf6da11977bba1ecd427/server/out/vs/workbench/api/node/extensionHostProcess.js:31:15393)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23) shellCommand.execute {"value":"augustocdias.tasks-shell-input","_lower":"augustocdias.tasks-shell-input"}

I found the following similare discussion here. It looks like the python extension command need an extra "workspaceFolder" argument...

MarcelRobitaille commented 4 days ago

I can reproduce it and I can solve it by setting the workspaceFolder.

However, I am not sure how to solve this in a way that works well with multi folder workspaces. As far as I can tell, VSCode has no standard to pass arguments to ${command:...} variables.