microsoft / microsoft/vscode-java-debug
Escape does not cancel a launch that uses command:SpecifyProgramArgs
@testforstephen がすでに取り組んでいます。
2024年2月28日 から。
- 主要言語
- TypeScript
- スター
- 591
- フォーク
- 429
- 平均マージ
- 1日 9時間
- マージ済み PR(30日)
- 19
説明
When launching a Java program with ${command:SpecifyProgramArgs}, the popup says that I can press 'Escape' to cancel, but it runs anyway.
Environment
- Operating System: Windows 11
- JDK version: 17.0.4.1
- Visual Studio Code version: 1.86.2
- Java extension version: 1.28.1
- Java Debugger extension version: 17.0.4.1
Steps To Reproduce
- Open the repo https://github.com/sbj42/vscode-specifyprogramargs
- Open
Test.javaand pressF5. - Pop-up appears with "Press 'Enter' to confirm your input or 'Escape' to cancel".
- Press Escape.
- Terminal appears and runs the test program with no arguments.
See repo above, but you only need these two files:
Test.java:
public class Test {
public static void main(String[] args) {
System.out.println("args: " + String.join(" ", args));
}
}
.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Launch with Arguments Prompt",
"request": "launch",
"mainClass": "",
"args": "${command:SpecifyProgramArgs}"
}
]
}
Verbose output log from "Language Support for Java": log.txt
Current Result
The debug session starts with no arguments.
Expected Result
The debug session should not start, because it was cancelled.
Additional Informations
The implementation of SpecifyProgramArgs is at extension.ts:185. When the user cancels, the function returns a string with a single space. That's indistinguishable from the user entering a space in the input.
I presume that throwing some sort of cancellation exception would be good here, for instance throw new Error('Launch cancelled'). It would be even better if the exception didn't display an error box, but I don't know enough about vscode extension command handlers to know if that's possible.
Alternatively you could just remove the "or 'Escape' to cancel" hint in the input popup.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
評価
この issue はまだ評価されていません。