About
This module contains 2 languages:
C is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations.
C++ is a general-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language, or C with Classes .
Installation
Change enable
from False
to True
in the c_cpp
section (cf module installation ).
Copy vscode-anywhere:
c_cpp:
enabled: True
Requirements
After installing this module, you must configure it because it doesn't work out of the box.
Indeed to work the module ms-vscode.cpptools needs to have a valid.vscode/c_cpp_properties.json
file.
You can configure it by running the command C/C++: Edit Configurations (UI) or C/C++: Edit Configurations (JSON) from the Command Palette (Ctrl+Shift+P
).
For more details read the official configuration and how to configure it with:
You could also read:
Windows examples
You can also create a task file .vscode/tasks.json
to compile your program:
Copy {
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "clang build active file",
"command": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\clang.exe",
"args": [
"-std=c11",
"-Wall",
"-Wextra",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
}
},
{
"type": "shell",
"label": "clang++ build active file",
"command": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\clang++.exe",
"args": [
"-std=c++17",
"-Wall",
"-Wextra",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
}
}
]
}
You can also create the .vscode/launch.json
file to run the debugger :
Copy {
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) clang",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Activer l'impression en mode Pretty pour gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "clang build active file"
},
{
"name": "(gdb) clang++",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Activer l'impression en mode Pretty pour gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "clang++ build active file"
}
]
}
VSCode
VSCode extensions
ms-vscode.cpptools
This extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging .
jbenden.c-cpp-flylint
This extension is an advanced, modern, static analysis extension for C/C++ that supports a number of back-end analyzer programs.
matepek.vscode-catch2-test-adapter
This extension allows you to run your Catch2 , Google Test , and doctest (experimental) tests for Visual Studio Code.
ms-vscode.cmake-tools
CMake Tools provides the native developer a full-featured, convenient, and powerful workflow for CMake-based projects in Visual Studio Code.
VSCode settings
Global settings
Copy {
"dash.languageIdToDocsetMap.c": [
"c"
],
"C_Cpp.default.cStandard": "c11",
"C_Cpp.default.cppStandard": "c++17",
"c-cpp-flylint.flexelint.enable": true,
"c-cpp-flylint.cppcheck.enable": true,
"c-cpp-flylint.clang.enable": false
}
If llvm
is enabled:
Copy {
"c-cpp-flylint.flexelint.enable": false,
"c-cpp-flylint.cppcheck.enable": false,
"c-cpp-flylint.clang.enable": true
}
Windows settings
Global settings for Windows:
Copy {
"cmake.cmakePath": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\cmake.exe"
}
If llvm
is disabled:
Copy {
"C_Cpp.default.compilerPath": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\gcc.exe",
"c-cpp-flylint.clang.executable": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\g++.exe",
"code-runner.executorMap.c": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\gcc.exe $fileName -o $fileNameWithoutExt.exe && $fileNameWithoutExt.exe",
"code-runner.executorMap.cpp": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\g++.exe $fileName -o $fileNameWithoutExt.exe && $fileNameWithoutExt.exe",
"c-cpp-flylint.cppcheck.executable": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\cppcheck.exe"
}
If llvm
is enabled:
Copy {
"C_Cpp.default.compilerPath": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\clang.exe",
"c-cpp-flylint.clang.executable": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\clang.exe",
"code-runner.executorMap.c": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\clang.exe $fileName -o $fileNameWithoutExt.exe && $fileNameWithoutExt.exe",
"code-runner.executorMap.cpp": "C:\\VSCode-Anywhere\\apps\\scoop\\apps\\msys2\\current\\mingw64\\bin\\clang++.exe $fileName -o $fileNameWithoutExt.exe && $fileNameWithoutExt.exe"
}
Linux settings
Global settings for Linux:
Copy {
"cmake.cmakePath": "/home/linuxbrew/.linuxbrew/bin/cmake"
}
If llvm
is disabled:
Copy {
"code-runner.executorMap.c": "/home/linuxbrew/.linuxbrew/bin/gcc $fileName -o $fileNameWithoutExt && $fileNameWithoutExt",
"code-runner.executorMap.cpp": "/home/linuxbrew/.linuxbrew/bin/g++ $fileName -o $fileNameWithoutExt && $fileNameWithoutExt",
"C_Cpp.default.compilerPath": "/home/linuxbrew/.linuxbrew/bin/gcc",
"c-cpp-flylint.cppcheck.executable": "/home/linuxbrew/.linuxbrew/bin/cppcheck"
}
If llvm
is enabled:
Copy {
"code-runner.executorMap.c": "/home/linuxbrew/.linuxbrew/bin/clang $fileName -o $fileNameWithoutExt && $fileNameWithoutExt",
"code-runner.executorMap.cpp": "/home/linuxbrew/.linuxbrew/bin/clang++ $fileName -o $fileNameWithoutExt && $fileNameWithoutExt",
"C_Cpp.default.compilerPath": "/home/linuxbrew/.linuxbrew/bin/clang",
"c-cpp-flylint.clang.executable": "/home/linuxbrew/.linuxbrew/bin/clang"
}
VSCode keybindings
No keybindings .
Software
Windows software
msys2
if llvm
is disable:
if llvm
is enabled:
Linux software
brew
If llvm
is disable:
If llvm
is enabled:
MacOS software
brew
If llvm
is disable:
If llvm
is enabled:
Documentation
VSCode-Anywhere
Environment
Windows environment
No environment.
Linux environment
Specific settings
llvm
To enable llvm , set llvm
to True
.
Copy vscode-anywhere:
c_cpp:
enabled: False
llvm: True