The externalConsole=true setting is broken for many users (launching the debugger with such setting results in VS Code waiting forever without actually starting the debugger). Also, this setting is a matter of user preference, and is arguably better set in a "launch" section in the user-wide settings.json than hardcoded in our script. Remove the line to use VS Code's default, or the user's setting. Add useful links in contrib/vscode/README.md to help the user to configure VS Code and how to use the debugging feature. Add a mention to the README and the init.sh in Documentation/ MyFirstContribution.txt and a part to convince a newcomer that VS Code can be helpful. Helped-by: Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxx> Helped-by: Derrick Stolee <derrickstolee@xxxxxxxxxx> Co-authored-by: BRESSAT Jonathan <git.jonathan.bressat@xxxxxxxxx> Signed-off-by: COGONI Guillaume <cogoni.guillaume@xxxxxxxxx> --- Documentation/MyFirstContribution.txt | 20 ++++++++++++++++++++ contrib/vscode/README.md | 6 +++++- contrib/vscode/init.sh | 1 - 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Documentation/MyFirstContribution.txt b/Documentation/MyFirstContribution.txt index 63a2ef5449..fc53456527 100644 --- a/Documentation/MyFirstContribution.txt +++ b/Documentation/MyFirstContribution.txt @@ -1265,3 +1265,23 @@ against the appropriate GitGitGadget/Git branch. If you're using `git send-email`, you can use it the same way as before, but you should generate your diffs from `<topic>..<mybranch>` and base your work on `<topic>` instead of `master`. + +[[Bonus-useful-tools]] +== Bonus - useful tools + +=== Visual Studio Code (VS Code) + +The contrib/vscode/init.sh script creates configuration files that enable +several valuable VS Code features. See contrib/vscode/README.md for more +information on using the script. + +In particular, this script enables using the VS Code visual debugger, including +setting breakpoints, logpoints, conditional breakpoints in the editor. +In addition, it includes the ability to see the call stack, the line of code that +is executing and more. It is possible to visualize the variables and their values +and change them during execution. + +In sum, using the built-in debugger can be particularly helpful to understand +how Git works internally. +It can be used to isolate certain parts of code, with this you may be able to ask +more precises question when you are stuck. (See getting-help sections). diff --git a/contrib/vscode/README.md b/contrib/vscode/README.md index 8202d62035..f383c95e1f 100644 --- a/contrib/vscode/README.md +++ b/contrib/vscode/README.md @@ -6,7 +6,11 @@ code editor which runs on your desktop and is available for [Windows](https://code.visualstudio.com/docs/setup/windows), [macOS](https://code.visualstudio.com/docs/setup/mac) and [Linux](https://code.visualstudio.com/docs/setup/linux). Among other languages, -it has [support for C/C++ via an extension](https://github.com/Microsoft/vscode-cpptools). +it has [support for C/C++ via an extension](https://github.com/Microsoft/vscode-cpptools) with +[debugging support](https://code.visualstudio.com/docs/editor/debugging) + +To get help about "how to personalize your settings" read: +[How to set up your settings](https://code.visualstudio.com/docs/getstarted/settings) To start developing Git with VS Code, simply run the Unix shell script called `init.sh` in this directory, which creates the configuration files in diff --git a/contrib/vscode/init.sh b/contrib/vscode/init.sh index 27de94994b..f139fd8644 100755 --- a/contrib/vscode/init.sh +++ b/contrib/vscode/init.sh @@ -271,7 +271,6 @@ cat >.vscode/launch.json.new <<EOF || "stopAtEntry": false, "cwd": "\${workspaceFolder}", "environment": [], - "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "$GDBPATH", "setupCommands": [ -- 2.25.1