- Build and debug the extension.
- File an issue and a pull request with the change and we will review it.
- If the change affects functionality, add a line describing the change to CHANGELOG.md.
- Try and add a test in test/extension.test.ts.
- Run tests via opening the Extension folder in Visual Studio Code, selecting the "Launch Tests" configuration in the Debug pane, and choosing "Start Debugging".
- Execution starts in the
activate
method in main.ts.processRuntimeDependencies
handles the downloading and installation of the OS-dependent files. Downloading code exists in packageManager.ts.downloadCpptoolsJsonPkg
handles the cpptools.json, which can be used to enable changes to occur mid-update, such as turning theintelliSenseEngine
to"Default"
for a certain percentage of users.
- The debugger code is in the Debugger folder.
- LanguageServer/client.ts handles various language server functionality.
- LanguageServer/configurations.ts handles functionality related to c_cpp_properties.json.
- telemetry.ts: Telemetry data gets sent to either
logLanguageServerEvent
orlogDebuggerEvent
. - The Tag Parser (symbol database) doesn't automatically expand macros, so the cpp.hint file contains definitions of macros that should be expanded in order for symbols to be parsed correctly.