git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 0/9] Add support to develop Git in Visual Studio Code

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Jul 30, 2018, 15:42 UTC
Message-ID
<pull.2.v2.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.2.git.gitgitgadget@gmail.com>
[Visual Studio Code](https://code.visualstudio.com/) (nickname "VS Code") is a light-weight, cross-platform, Open Source development environment, with an increasingly powerful extension to support C/C++ development. In particular the intellisense support as well as all the other niceties developers might have come to expect from Integrated Development Environments will help accelerate development.
Due to the way Git's source code and build process is structured, it can be quite challenging to use VS Code effectively for developing Git. Which is a shame, as developing with vim and the command-line causes unnecessary churn, and it is quite understandable that most Git developers simply do not want to fight with a modern development environment just to try whether they like developing Git with it.
This topic branch makes it easy to get started using VS Code to develop Git.
Simply run the script `./contrib/vscode/init.sh`. This will initialize the `.vscode/` directory and some files in that directory. After that, just open Git's top-level directory as "folder" in VS Code.
The files have to be generated because of the curious way Git determines what flags to pass to the C compiler, in particular which constants are defined, because they change the compile flow in rather dramatic ways (determining, e.g. which SHA-1 backend to use).
Changes since v1:
- Clarified commit message of the first commit.
Johannes Schindelin (9):
  contrib: add a script to initialize VS Code configuration
  vscode: hard-code a couple defines
  cache.h: extract enum declaration from inside a struct declaration
  mingw: define WIN32 explicitly
  vscode: only overwrite C/C++ settings
  vscode: wrap commit messages at column 72 by default
  vscode: use 8-space tabs, no trailing ws, etc for Git's source code
  vscode: add a dictionary for cSpell
  vscode: let cSpell work on commit messages, too
 .gitignore                    |   1 +
 cache.h                       |  24 ++-
 config.mak.uname              |   2 +-
 contrib/vscode/.gitattributes |   1 +
 contrib/vscode/README.md      |  14 ++
 contrib/vscode/init.sh        | 375 ++++++++++++++++++++++++++++++++++
 6 files changed, 405 insertions(+), 12 deletions(-)
 create mode 100644 contrib/vscode/.gitattributes
 create mode 100644 contrib/vscode/README.md
 create mode 100755 contrib/vscode/init.sh
base-commit: 53f9a3e157dbbc901a02ac2c73346d375e24978c
Published-As: https://github.com/gitgitgadget/git/releases/tags/pr-2%2Fdscho%2Fvscode-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2/dscho/vscode-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/2
Range-diff vs v1:
  1:  e2e449a00 !  1:  bbf13e40a contrib: add a script to initialize VS Code configuration
     @@ -4,11 +4,14 @@
      
          VS Code is a lightweight but powerful source code editor which runs on
          your desktop and is available for Windows, macOS and Linux. Among other
     -    languages, it has support for C/C++ via an extension.
     +    languages, it has support for C/C++ via an extension, which offers to
     +    not only build and debug the code, but also Intellisense, i.e.
     +    code-aware completion and similar niceties.
      
     -    To start developing Git with VS Code, simply run the Unix shell script
     -    contrib/vscode/init.sh, which creates the configuration files in
     -    .vscode/ that VS Code consumes.
     +    This patch adds a script that helps set up the environment to work
     +    effectively with VS Code: simply run the Unix shell script
     +    contrib/vscode/init.sh, which creates the relevant files, and open the
     +    top level folder of Git's source code in VS Code.
      
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
  2:  3770bd855 =  2:  6c8b5a4f2 vscode: hard-code a couple defines
  3:  de49c4bf2 =  3:  105b50c62 cache.h: extract enum declaration from inside a struct declaration
  4:  b3ce2ccf4 =  4:  4b95b1e2a mingw: define WIN32 explicitly
  5:  06dcf6d97 =  5:  3dd53c04c vscode: only overwrite C/C++ settings
  6:  08212c57e =  6:  384b08836 vscode: wrap commit messages at column 72 by default
  7:  2e880b6f1 =  7:  ba78af756 vscode: use 8-space tabs, no trailing ws, etc for Git's source code
  8:  ce216cf43 =  8:  358f38d3a vscode: add a dictionary for cSpell
  9:  4c2aa015a =  9:  b9c628b88 vscode: let cSpell work on commit messages, too
-- 
gitgitgadget
Previous: Johannes SchindelinNext: Johannes Schindelin via GitGitGadget
Message 20 of 29 in “Add support to develop Git in Visual Studio Code”
  1. 0/9 Add support to develop Git in Visual Studio CodeJohannes Schindelin via GitGitGadget, Jul 23, 2018
  2. 1/9 contrib: add a script to initialize VS Code configurationJohannes Schindelin via GitGitGadget, Jul 23, 2018
  3. Jonathan NiederJul 23, 2018
  4. Johannes SchindelinJul 30, 2018
  5. Junio C HamanoJul 23, 2018
  6. Junio C HamanoJul 23, 2018
  7. Johannes SchindelinJul 30, 2018
  8. 2/9 vscode: hard-code a couple definesJohannes Schindelin via GitGitGadget, Jul 23, 2018
  9. Jonathan NiederJul 23, 2018
  10. Johannes SchindelinJul 30, 2018
  11. 3/9 cache.h: extract enum declaration from inside a struct declarationJohannes Schindelin via GitGitGadget, Jul 23, 2018
  12. 4/9 mingw: define WIN32 explicitlyJohannes Schindelin via GitGitGadget, Jul 23, 2018
  13. 5/9 vscode: only overwrite C/C++ settingsJohannes Schindelin via GitGitGadget, Jul 23, 2018
  14. 6/9 vscode: wrap commit messages at column 72 by defaultJohannes Schindelin via GitGitGadget, Jul 23, 2018
  15. 8/9 vscode: add a dictionary for cSpellJohannes Schindelin via GitGitGadget, Jul 23, 2018
  16. 9/9 vscode: let cSpell work on commit messages, tooJohannes Schindelin via GitGitGadget, Jul 23, 2018
  17. 7/9 vscode: use 8-space tabs, no trailing ws, etc for Git's source codeJohannes Schindelin via GitGitGadget, Jul 23, 2018
  18. Johannes SixtJul 25, 2018
  19. Johannes SchindelinJul 30, 2018
  20. 0/9 Add support to develop Git in Visual Studio CodeJohannes Schindelin via GitGitGadget, Jul 30, 2018
  21. 2/9 vscode: hard-code a couple definesJohannes Schindelin via GitGitGadget, Jul 30, 2018
  22. 3/9 cache.h: extract enum declaration from inside a struct declarationJohannes Schindelin via GitGitGadget, Jul 30, 2018
  23. 1/9 contrib: add a script to initialize VS Code configurationJohannes Schindelin via GitGitGadget, Jul 30, 2018
  24. 5/9 vscode: only overwrite C/C++ settingsJohannes Schindelin via GitGitGadget, Jul 30, 2018
  25. 6/9 vscode: wrap commit messages at column 72 by defaultJohannes Schindelin via GitGitGadget, Jul 30, 2018
  26. 4/9 mingw: define WIN32 explicitlyJohannes Schindelin via GitGitGadget, Jul 30, 2018
  27. 7/9 vscode: use 8-space tabs, no trailing ws, etc for Git's source codeJohannes Schindelin via GitGitGadget, Jul 30, 2018
  28. 8/9 vscode: add a dictionary for cSpellJohannes Schindelin via GitGitGadget, Jul 30, 2018
  29. 9/9 vscode: let cSpell work on commit messages, tooJohannes Schindelin via GitGitGadget, Jul 30, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.