- 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
activatemethod in main.ts.processRuntimeDependencieshandles the downloading and installation of the OS-dependent files. Downloading code exists in packageManager.ts.downloadCpptoolsJsonPkghandles the cpptools.json, which can be used to enable changes to occur mid-update, such as turning theintelliSenseEngineto"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
logLanguageServerEventorlogDebuggerEvent. - 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.