* Add loc string and Add Missing Include handler
* Add AddMissingInclude Command and resolve lint
* Refactor codeActionProvider
* resolve formatting and append newline to includes
* Only apply new line to Add Missing Include
* Resolve lint issue
* Add new line specific to OS
* Resolve newline
* made sure that yarn install gets called before compile
* Add some nice messages
* better detection
* cleaned up more
* more tweaks
* remove old checks
* let unit tests run without binaries
* turn off scenario tests until binaries can be installed
* add another rule
* updated files
* queue and ready are now separate
* checkpoint
* found it! fixed missing call
* cleaned up and refactored a bit
* cleanup
* whoops. make sure linter runs!
* Make the queue itself static
* addressed formatting issues, added more rules to eslint
* more formatting, made ready Promise/void
* checkpoint
* checkpoint
* checkpoint
* checkpoint (linting)
* checkpoint
* checkpoint
* checkpoint
* checkpoint
* renamed path to filepath.
* checkpoint
* checkpoint
* so close...
* checkpoint again
* before making doc
* checkpoint
* checkpoint
* Checkpoint
* renamed awaiters
* eslint
* fix format on generated native strings
* add dummy pretest task back in for the moment
* change unit test runing
* posix calc test failure
* make signal dispose better
* add est regen script
* missed file
* checkpoint
* Improve scripts a bit
* remove hooks for now
* remove unused script
* remove unused script
* filter out files
* ensure that eslint works for scripts too
* fix build oses to specific version
* cleanups and tweaking
* adjusted for cosmetic feedback
* more
* add eslint rule to fix space before/after semicolon
* remove tba/tbd
* cleanup
* Added space-infix-ops rule
* cleanup
* resolve comments
* resolve comments
* add simple debug task
* spelling fixes
* cleanup more
* More changes. yay
* remove the extra whitespace from before comments
* add eslint rule to ensure that there are never extra spaces
* adding another eslint rule to ensure that there isn't spacing around unary operators, which we all know is dangerous. Or weird. I forget which
* added a space between vs and code because a space is the desired format
* removed all mentions of transpiler which was removed
* removed an extra comma
* removed a trailing slash
* removed useless lines
* missed as file
* reconfigure no-extra-parens rule
* added note about yarn install
* whatever
* more fun
* FIx it so that it webpacks correctly
* remove refernces to attic
* restore line to correct check
* fix whitespace
* added blank yarn install
* removed
For example, using the following tree:
rootUri
- sources
- main
- main.c
- vendor
- khash.h
- headers
- C001
- a.h
- C002
- b.h
The following directory paths works:
- `sources/**` for plain old recursive path
- `headers/C*/` dynamic path
- `missing/` reported as "not found"
- `missing/*` expanded as empty result (silent fail)
Note: bakslash paths need to be slash-converted to avoid be considered as "Dynamic"
Co-authored-by: Sean McManus <[email protected]>
Co-authored-by: browntarik <[email protected]>
* Fix configure IntelliSense UI bugs with non-C/C++ files.
* Fix "Configure IntelliSense" not going away until reload window.
* Move location to the left of the config.
* Refactor isCpp
* Stop showing the code action if the default compiler is already set.
* Multiple other fixes.
* Fix clang-tidy 'clang-analyzer-' documentation links not working.
* Fix file parsing ending not being displayed during pause
* Fix logic
* Remove redundant line
* Condense unpaused parser text
* Introduced parser indexing phase to UI
* Use lookupString() for parse status logic
* Update UI check logic
* Remove log
* Fix logic
* Seperate initializing from indexing in UI
* Change parser initalized text
* Remove extra new line
* Remove missed code
* Add uiOverride parameter to telemetry
* Resolve includePath before sending config notification
* Ensure all configuration paths are absolute
* Optimize implentation of resolution of arrays
* Move the resolving of config paths
* Reuse win32 check for all resolvePath's
* add explict type to isWin32
* Change engine logging and add natvis diagnostics
This PR adds logging categories to engineLogging and adds
in the option for natvisDiagnostics with different categories.
* change nls nativisDiagnostics to category
* Change engine logging and add natvis diagnostics
This PR adds logging categories to engineLogging and adds
in the option for natvisDiagnostics with different categories.
* change nls nativisDiagnostics to category
* Fix BufferOverflow with NativeAttach
This PR migrates the nativeAttach child_process calls to use 'spawn'
instead of 'exec'. This allows the extension to deal with large process
listing output via input/output streams instead of using a single
hardcoded buffer.
Added support for canceling and timeout if the spawned process does not
exit within 30 seconds.
* Contribute breakpoints for the "rust" language
Since rust code can be debugged with this extension, contribute breakpoints for the "rust" language such that the workaround of "allow breakpoints in all files" is no longer required.
* Contribute breakpoints for the "rust" language
Since rust code can be debugged with this extension, contribute breakpoints for the "rust" language such that the workaround of "allow breakpoints in all files" is no longer required.
* Update lldb-mi build
Hardcode llvm/lldb-mi commits to match the ones in cgmanifest.
Added parameters to support building for different arch and on
different machines.
* Refactor
* Remove the remote extensions from the pack as remote is considered "advanced"
* Mark the pack to not be compatible with "web" so that it is not offered as a recommendation.
This PR adds in a cgmanifest.json file to comply with Component
Governance Compliance.
This adds two registrations to llvm-project and lldb-mi as components as
they are packaged and published with the macOS version of the VS Code
C/C++ Extension.
it looks like in [package.json line 5](https://github.com/microsoft/vscode-cpptools/blob/a62acdb5a52438540c266b409a0ee7f8e64f7a9b/Extension/package.json#L5), we add a suffix, "main", to the version. When we assign customers to target populations for experiments, we were trying to assign customers without any suffix to Public, which resulted in no one being included. Instead, I think we should be checking if the suffix is "main" and assign those customers to Public.
Debugger now ships using .NET 5 Runtime to run OpenDebugAD7.
Supports:
- win7-x86
- win-x64
- win10-arm64
- linux-x64
- linux-musl-x64
- linux-arm
- linux-arm64
- osx-x64
Cleaned up unused setup files.
Updated packageManager to download alpine dependencies.
Removed 'removeUnnecessaryFile' step since that removed windows
configurations for OpenDebugAD7.
* removed walkthrough task for Build your C++ file and simplified instructions for Run and debug your C++ file
* Addressing PR feedback - removed unused files and added step for selecting compiler in markdown file for Run and debug your C++ file
* Add new "console" launch config for vsdbg
This PR adds new console support for the cppvsdbg debug type.
This removes the legacy 'externalConsole' flag with 'console'.
Console has four enums:
- internalConsole: Output to the VS Code Debug Console. This doesn't
support reading console input (ex:Console.ReadLine)
- integratedTerminal: VS Code's integrated terminal
- externalTerminal: External terminal that can be configured via user
settings
- newExternalWindow: Console applications will be launched in their own
external console window which will end when the application stops.
Non-console applications will run without a terminal, and
stdout/stderr will be ignored.
* change master to main
* check for duplicate names
* check duplicates before removing the later configs
* spelling check
* fix spelling error
* add configNameInvalid for UI error(won't show yet)
* show the UI error
* squiggle for all duplicates
* change let to const
* squiggle for first one as well
* let to const
* Update link for Windows Debugger
This PR updated the License.txt when vsdbg is downloaded in
debugAdapters.
See https://github.com/microsoft/vscode-cpptools/pull/6735
* Update integreity hash for the Windows Debugger
* Output the cppbuild command used. Fixes#6647 .
Also fixes "D" command line warnings with cl.exe.
Move the build result message to the end.
Handle the /nologo case and always shows the logo/header if it exists (but default to use /nologo).
* localizing for task provider
* localize single_file_mode_not_available
* remove end of line from localalized string
* modify error(s)
* remove space from localized string
* remove space from localized string
* localizing for task provider
* localize single_file_mode_not_available
* remove end of line from localalized string
* modify error(s)
* remove space from localized string
* remove space from localized string
Add resolveDebugConfigurationWithSubstitutedVariables for
configurationProviders.
Keeping resolveDebugConfiguration to return null if type is not provided
in order to prompt `provideDebugConfiguration`.
* [cppdbg] Support new sourceFileMap schema
For cppdbg, sourceFileMap can be used for binding breakpoints.
If keeping with the old format "<source-path>":"<target-path>", it will
always be used for breakpoints.
If you use the new:
"<compile-path>" : {
"editorPath": "<target-path>",
"useForBreakpoints": true
}
The sourceMap will only be used for frame enumeration.
* Fix linter issues
* Addressing PR comments
This PR uses the
DebugConfigurationProvider.resolveDebugConfigurationWithSubstitutedVariables
which allows the debug configuration to wait for the preLaunchTask to
complete before continuing on and resolving variables that may have been
set in the 'tasks.json'.
This also resolves the logging issue where the 'Build and Debug Active
File' preLaunchTask uses the current file but we switch to the output
window for logging.
* Fix 'Build and Debug Active File' race condition with EngineLogs
If users use 'Build and Debug Active File' with "engineLogging", the resolveDebugConfigurations will quickly switch to the output window and `${fileBasenameNoExtension}` will resolve to something similar to `./extension-output-#5`.
This may be a bug with VS Code determining the output window to be a file, but this will unblock users who need to enable engine logging for this scenario.
* adding standard std version to clang_format_style
* add new cppBuildTaskProvider
* add Sean's changes to tasks
* draft
* draft 2
* draft 3 - working
* windows version
* fix cwd path
* fix cwd
* change header and source file set
* minor changes
* make new instance
* create new instance
* remove compilerPath input
* review changes
* solving the error due to space in file name
* showing the error message
* fix lint
* add set timeout and setinterval from timers
* Rename cppbuildTaskProvider.ts to cppBuildTaskProvider.ts
* fire the events with zero
* delete filewatcher
* localize strings
* change changelog.md
* changelog
* changelog
* change format
* wait dobuild
* use checkFileExists
* after test
* after test2
* add properties
* change the doBuild
* this.closeEmitter.fire(result);
* change doBuild
* very minor change
* label vs name resolved
* draft
* draft for Sean
* before cleaning the code
* Stable, Clean, Before API proposal
* adding details to the tasks menue
* add TODO
* remove extra ",remove description,merge from local
* remove task rename in this versoin
* remove TODOs
* merge the "default" stuff
* remove some parts of proposals
* fix linter errors
* add import * as which from 'which';
* clean up the code after version 1.0.0
* add new line
* adapt to the new Vs Code API
* linter error
* revert changelog
Co-authored-by: Elaheh Rashedi <[email protected]>
Co-authored-by: Sean McManus <[email protected]>
* Fix issue with LSP process not getting shut down gracefully (#6141)
* Update version number and changelog
* Update changelog, fwlinks, and hashes.
Co-authored-by: Colen Garoutte-Carson <[email protected]>
Co-authored-by: Sean McManus <[email protected]>
* add increment to progress bar
* remove localized string
* calculate the increment based on num of packages
* change increment function
* cleanup extra progress
* add typedef
Co-authored-by: Sean McManus <[email protected]>
Fix c_cpp_properties.json not opening as JSON with comments. Follow up to #5885
Fix the configuration UI disappearing when selection moves to the C/C++ or Log Diagnostics window, mentioned at #5822 .
Fix an unreported bug where the configuration UI wouldn't appear for non-cpp files that are active on startup (until the selection changed).
Add more more C/C++ related files to ShowConfigurations.
Authored-by: Elaheh Rashedi <[email protected]>
bug fix: https://github.com/microsoft/vscode-cpptools/issues/4829
- Check for the core binary files in the extension folder and show this warning message if any of the binaries are missing:
- Check for the important JSON files in the extension folder and show this error message if any of the binaries are missing (the message is shown if the user has installed a VSIX that doesn't match their OS).
* ignore 'screen size is bogus' error; fixesmicrosoft/vscode#75932; imitiates similar fix for a different extension microsoft/vscode-node-debug/commit/5298920
* ignore 'screen size is bogus' error; fixesmicrosoft/vscode#75932; imitiates similar fix for a different extension microsoft/vscode-node-debug/commit/5298920
Fixes:
- It doesn't check for a downgrade to non-insiders on startup, only when the setting changes.
- There was a bug with the timer code that checks for a new insiders every hour.
- It wasn't bypassing the autoUpdate check when the user manually switches the updateChannel.
* [cppvsdbg] Add logging ThreadExit and ProcessExit
This PR adds two log flags for ThreadExit and ProcessExit events.
This will remove the "The thread 10564 has exited with code 0 (0x0)."
and "The program '[24104] ConsoleApplication1.exe' has exited with code
0 (0x0)." messages.
* Print launch.json to C/C++ Output Log
This PR adds a check in resolveDebugConfiguration so that if a user adds
logging.engineLogging = true in the launch.json, we will output the
resovled json in the C/C++ Output.
* Use GitHub bug notation and add title for log
Co-authored-by: Sean McManus <[email protected]>
* Added system to store and query properties from the active C/C++ configuration
Co-authored-by: yngwe@farnsworth <yngwe@farnsworth>
Co-authored-by: yngwe@bender <yngwe@bender>
* Added system to store and query properties from the active C/C++ configuration
Co-authored-by: yngwe@farnsworth <yngwe@farnsworth>
Co-authored-by: yngwe@bender <yngwe@bender>
With https://github.com/microsoft/MIEngine/pull/1006, the debug adapter
supports 'quoteArgs' in pipeTransports. If the user wishes to handle the
quoting for pipeTransport arguments, they should set this field to
'false'. It currently defaults to true.
For example, if quoteArgs is 'true', the pipe command will result in
"bash.exe -c '/usr/bin/gdb --interpreter=mi'" If false,
it will result to "wsl.exe -c /usr/bin/gdb --interpreter=mi"
Fix for #5618
Scenario 1: Manually change files.associations. Bug: We weren't sending files.associations along with the settings change.
Scenario 2: Open a .C file. Bug: The language associations need to be changed before sending the didOpen.
* add new error message
* add error to the end of the list
* add new error message with no squiggles
* adding more info to the error message
Co-authored-by: Elaheh Rashedi <[email protected]>
Co-authored-by: Sean McManus <[email protected]>
Co-authored-by: Bob Brown <[email protected]>
* add test, no warning yet
* check for the assets, add more test
* addd test for Default channel
* fix spelling srrors
* update Default chanel tests
Co-authored-by: Elaheh Rashedi <[email protected]>
Co-authored-by: Sean McManus <[email protected]>
* Adding the arm/arm64 packages for mono runtime
Adding the arm/arm64 packages for the mono runtime. This is to enable
remote-ssh extension debugging.
* Undo activate change
* Fix lint error
* Remove vsce dependency
Our offline installer will include two versions of lldb.
./debugAdapters/lldb is lldb-mi 3.8 and is used for High-Sierra and older
./debugAdapters/lldb-mi is lldb-mi 10.x and is used for Mojave and
higher.
Co-authored-by: Andrew Wang <[email protected]>
description:Create a bug report for IntelliSense, code editing, code navigation, code completion, code formatting, semantic colorization, etc.
body:
- type:markdown
attributes:
value:|
### Is there an existing issue for this?
Please search our [existing issues](https://github.com/microsoft/vscode-cpptools/issues) to see if an issue already exists for the bug you encountered.
Please also review our [documentation](https://code.visualstudio.com/docs/languages/cpp) and [FAQs](https://code.visualstudio.com/docs/cpp/faq-cpp).
- type:textarea
attributes:
label:Environment
description:|
Please provide the information for the following:
- OS and Version
- VS Code Version
- C/C++ Extension Version
- If using SSH remote, specify OS of remote machine
value:|
- OS and Version:
- VS Code Version:
- C/C++ Extension Version:
- If using SSH remote, specify OS of remote machine:
validations:
required:true
- type:textarea
attributes:
label:Bug Summary and Steps to Reproduce
description:|
Please describe the language service issue or language service feature that is not working as expected. Include information about the actual workspace project (for example, is the workspace a single project or multiple projects, size of the project, etc).
Include clear steps on how to reproduce the issue and a description of what you expected to happen.
value:|
Bug Summary:
Steps to reproduce:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
Expected behavior:
validations:
required:true
- type:textarea
attributes:
label:Configuration and Logs
description:|
Please provide your c_cpp_properties.json and logs:
- Configurations in `c_cpp_properties.json`
- Logs from running `C/C++: Log Diagnostics` from the VS Code command palette
- Logs from [the language server logging](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-language-server)
render:shell
validations:
required:true
- type:textarea
attributes:
label:Other Extensions
description:If applicable, please list other extensions installed and if the issue persists after disabling other extensions.
validations:
required:false
- type:textarea
attributes:
label:Additional context
description:|
Optionally provide other information that will give us more context about the issue you are encountering, such as code sample, screenshots, screen recording of the issue, call stacks, etc.
Providing call stacks:
For bugs like crashes, deadlocks, infinite loops, etc. that we are not able to repro and for which the call stack may be useful, please attach a debugger and/or create a dmp and provide the call stacks. Windows binaries have symbols available in VS Code by setting your "symbolSearchPath" to "https://msdl.microsoft.com/download/symbols".
Instructions for attaching debugger to language service process:
description:Create a bug report for debugging such as call stack, breakpoints, watch window, launching or attaching to a debuggee.
body:
- type:markdown
attributes:
value:|
### Is there an existing issue for this?
Please search our [existing issues](https://github.com/microsoft/vscode-cpptools/issues) to see if an issue already exists for the bug you encountered.
Please also review our [documentation](https://code.visualstudio.com/docs/languages/cpp) and [FAQs](https://code.visualstudio.com/docs/cpp/faq-cpp).
- type:textarea
attributes:
label:Environment
description:|
Please provide the information for the following:
- OS and version
- VS Code version
- C/C++ extension version
- OS and version of remote machine (if applicable)
- GDB / LLDB version
value:|
- OS and version:
- VS Code:
- C/C++ extension:
- OS and version of remote machine (if applicable):
- GDB / LLDB version:
validations:
required:true
- type:textarea
attributes:
label:Bug Summary and Steps to Reproduce
description:|
Please describe the debugging issue or debugger feature that is not working as expected.
Include clear steps on how to reproduce the issue.
value:|
Bug Summary:
Steps to reproduce:
1. In this environment...
2. With this config...
3. Do '...'
4. See error...
validations:
required:true
- type:textarea
attributes:
label:Debugger Configurations
description:Please provide the debugger configurations from the **tasks.json** and **launch.json** files.
render:shell
validations:
required:true
- type:textarea
attributes:
label:Debugger Logs
description:|
If applicable, please include [logging for the debugger adapter](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-debug-adapter) by adding `"logging": { "engineLogging": true, "trace": true, "traceResponse": true }` in the **launch.json** file.
Include logs or error messages from the Debug Console or Output windows.
render:shell
validations:
required:true
- type:textarea
attributes:
label:Other Extensions
description:If applicable, please list other extensions installed and if the issue persists after disabling other extensions.
validations:
required:false
- type:textarea
attributes:
label:Additional Information
description:|
Optionally provide other information that will give us more context about the issue you are encountering, such as a code sample, screenshots, or screen recording of the issue.
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
description:Suggest an idea for the C/C++ extension.
body:
- type:markdown
attributes:
value:|
### Is there an existing request for this feature?
Prior to creating a new feature request, please review our [existing feature requests](https://github.com/microsoft/vscode-cpptools/issues?q=is%3Aopen+is%3Aissue+label%3A%22Feature+Request%22) to avoid duplicates.
about:'Issues pertaining to IntelliSense, autocomplete, code editing, etc. '
title:''
labels:''
assignees:''
---
**Type: LanguageService**
<!----- Input information below ----->
<!--
**Prior to filing an issue, please review:**
- Existing issues at https://github.com/Microsoft/vscode-cpptools/issues
- Our documentation at https://code.visualstudio.com/docs/languages/cpp
- FAQs at https://code.visualstudio.com/docs/cpp/faq-cpp
-->
**Describe the bug**
- OS and Version:
- VS Code Version:
- C/C++ Extension Version:
- Other extensions you installed (and if the issue persists after disabling them):
- Does this issue involve using SSH remote to run the extension on a remote machine?:
- A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).
**Steps to reproduce**
<!-- Provide clear steps to reproduce the behavior: -->
<!-- *The most actionable issue reports include a code sample including configuration files such as c_cpp_properties.json* -->
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->
<!-- Please provide the following logs that show diagnostics and debugging information about the language server.
1. Logs from the command `C/C++: Log Diagnostics`
2. Logs from [the language server](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-language-server)
-->
<details>
<summary><strong>Logs</strong></summary>
<!-- Note: do not remove empty line after </summary> tag, otherwise the code blocks formatting won't show correctly. -->
```
Insert logs here.
```
</details>
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->
**Additional context**
<!--
* Call Stacks: For bugs like crashes, deadlocks, infinite loops, etc. that we are not able to repro and for which the call stack may be useful, please attach a debugger and/or create a dmp and provide the call stacks. Windows binaries have symbols available in VS Code by setting your "symbolSearchPath" to "https://msdl.microsoft.com/download/symbols".
(0,utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Pinging @${hydrated.assignee}`);
if(this.pingComment){
awaitissue.postComment(this.pingComment
.replace('${assignee}',hydrated.assignee)
.replace('${author}',hydrated.author.name));
}
}
else{
(0,utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Skipping.${hydrated.assignee?' cc @'+hydrated.assignee:''}`);
}
}
}
else{
if(!hydrated.open){
(0,utils_1.safeLog)(`Issue ${hydrated.number} is not open. Ignoring`);
(0,utils_1.safeLog)(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${(_b=issue.milestone)===null||_b===void0?void0:_b.milestoneId}`);
returnfalse;
}
// Make sure a milestones we wanted to ignore is not present.
- cron:012***# Run at 12:00 PM UTC (4:00 AM PST, 5:00 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v3
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:by design
ignoreLabels:debugger,Feature Request,more info needed,internal
closeDays:60
closeComment:"This issue has been closed because the described behavior was determined to be by design."
pingDays:80
pingComment:"Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if it is no longer relevant."
- cron:1012***# Run at 12:10 PM UTC (4:10 AM PST, 5:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:duplicate
ignoreLabels:debugger,Feature Request,more info needed,by design,internal
closeDays:60
closeComment:"This issue has been closed because it is a duplicate of another issue we are tracking."
pingDays:80
pingComment:"Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if it is no longer relevant."
- cron:5011***# Run at 11:50 AM UTC (3:50 AM PST, 4:50 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:enhancement
ignoreLabels:debugger,internal,Feature Request
addLabels:more votes needed
closeDays:60
maximumVotes:2
closeComment:"This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
- cron:4011***# Run at 11:40 AM UTC (3:40 AM PST, 4:40 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:enhancement
ignoreLabels:debugger,internal,Feature Request
addLabels:more votes needed
closeDays:60
maximumVotes:2
closeComment:"This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
- cron:5011***# Run at 11:50 AM UTC (3:50 AM PST, 4:50 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:Feature Request
ignoreLabels:debugger,internal
addLabels:more votes needed
closeDays:60
maximumVotes:2
closeComment:"This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
- cron:4011***# Run at 11:40 AM UTC (3:40 AM PST, 4:40 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:Feature Request
ignoreLabels:debugger,internal
addLabels:more votes needed
closeDays:60
maximumVotes:2
closeComment:"This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
- cron:1011***# Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:investigate,debugger
ignoreLabels:language service,internal
closeDays:180
closeComment:"This issue has been closed as lower priority. We're sorry if this issue still impacts you but unfortunately we're not able to address this. We will accept a pull request from the community if it's applicable for this issue."
- cron:1011***# Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:"investigate: costing,debugger"
ignoreLabels:language service,internal
closeDays:180
closeComment:"This issue has been closed as lower priority. We're sorry if this issue still impacts you but unfortunately we're not able to address this. We will accept a pull request from the community if it's applicable for this issue."
- cron:1011***# Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:more info needed,debugger
ignoreLabels:language service,internal
involves:wardengnaw,pieandcakes,calgagi
closeDays:14
closeComment:"This issue has been closed because it needs more information and has not had recent activity."
pingDays:7
pingComment:"Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information."
- cron:1011***# Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:more info needed
ignoreLabels:debugger,internal
closeDays:60
closeComment:"This issue has been closed because it needs more information and has not had recent activity."
pingDays:80
pingComment:"Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information."
- cron:2011***# Run at 11:20 AM UTC (3:20 AM PST, 4:20 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:question,debugger
ignoreLabels:language service,internal
involves:wardengnaw,pieandcakes,calgagi
closeDays:14
closeComment:"This issue has been closed because it is a question and has not had recent activity."
pingDays:7
pingComment:"Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the question has been answered."
- cron:2011***# Run at 11:20 AM UTC (3:20 AM PST, 4:20 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
jobs:
main:
runs-on:ubuntu-latest
steps:
- name:Checkout Actions
uses:actions/checkout@v2
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
uses:./.github/actions/StaleCloser
with:
readonly:${{ github.event.inputs.readonly }}
labels:question
ignoreLabels:debugger,internal
closeDays:60
closeComment:"This issue has been closed because it is a question and has not had recent activity."
pingDays:80
pingComment:"Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the question has been answered."
This folder contains the entitlements needed for the debugger to run on macOS.
We use the entitlements that the .net runtime uses. See https://github.com/dotnet/runtime/blob/57678512d214af368ff055f358c5106f1aa19ac4/eng/pipelines/common/entitlements.plist
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact opencode@microsoft.com with any additional questions or comments.
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
Resources:
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
* File an [issue](https://github.com/Microsoft/vscode-cpptools/issues) and a [pull request](https://github.com/Microsoft/vscode-cpptools/pulls) with the change and we will review it.
* If the change affects functionality, add a line describing the change to [**CHANGELOG.md**](Extension/CHANGELOG.md).
* Try and add a test in [**test/extension.test.ts**](Extension/test/unitTests/extension.test.ts).
* Run tests via opening the [**Extension**](https://github.com/Microsoft/vscode-cpptools/tree/master/Extension) folder in Visual Studio Code, selecting the "Launch Tests" configuration in the Debug pane, and choosing "Start Debugging".
* Run tests via opening the [**Extension**](https://github.com/Microsoft/vscode-cpptools/tree/main/Extension) folder in Visual Studio Code, selecting the "Launch Tests" configuration in the Debug pane, and choosing "Start Debugging".
## About the Code
* Execution starts in the `activate` method in [**main.ts**](Extension/src/main.ts).
* `processRuntimeDependencies` handles the downloading and installation of the OS-dependent files. Downloading code exists in [**packageManager.ts**](Extension/src/packageManager.ts).
* `downloadCpptoolsJsonPkg` handles the **cpptools.json**, which can be used to enable changes to occur mid-update, such as turning the `intelliSenseEngine` to `"Default"` for a certain percentage of users.
* The debugger code is in the [**Debugger**](https://github.com/Microsoft/vscode-cpptools/tree/master/Extension/src/Debugger) folder.
* The debugger code is in the [**Debugger**](https://github.com/Microsoft/vscode-cpptools/tree/main/Extension/src/Debugger) folder.
* [**LanguageServer/client.ts**](Extension/src/LanguageServer/client.ts) handles various language server functionality.
* [**LanguageServer/configurations.ts**](Extension/src/LanguageServer/configurations.ts) handles functionality related to **c_cpp_properties.json**.
* [**telemetry.ts**](Extension/src/telemetry.ts): Telemetry data gets sent to either `logLanguageServerEvent` or `logDebuggerEvent`.
* From a command line, run the following commands from the **Extension** folder in the root of the repository:
* `yarn install` will install the dependencies needed to build the extension.
***(optional)** `yarn global add vsce` will install `vsce` globally to create a VSIX package that you can install.
***(optional)** Set an environment variable `CPPTOOLS_DEV=1`.
* This enables the local developer workflow when testing the debugger, copying dependencies from the **node_modules** folder. Testing the language server does not require this step.
* Open the **Extension** folder in Visual Studio Code and press F5. This will launch a VS Code Extension Host window and activate the TypeScript debugger. You can set breakpoints on the extension source code and debug your scenario.
* If, after pressing F5, you see the following error in the `[Extension Development Host]` window,
> Unable to start the C/C++ language server. IntelliSense features will be disabled. Error: Missing binary at .../vscode-cpptools/Extension/bin/cpptools
* Then, you can follow the instructions in this [comment in a discussion about building this extension locally](https://github.com/microsoft/vscode-cpptools/discussions/8745#discussioncomment-2091563).
> get the <package.version.number> binaries from installing the extension and then copying the binaries
1. To do this, install this extension from the Visual Studio Marketplace and find its location on your device. It might be in a directory like `\\wsl$\Ubuntu\home\hamir\.vscode-server\extensions\ms-vscode.cpptools-<package.version.number>`, for example.
2. Next, go to the `bin/` directory of the aforementioned directory, and drag-and-drop, or copy-and-paste, `cpptools` and `cpptools-srv` from `...\extensions\ms-vscode.cpptools-<package.version.number>\bin\` to this repository's `Extension\bin\` directory on your local device, so that `.../vscode-cpptools/Extension/bin/cpptools` and `.../vscode-cpptools/Extension/bin/cpptools-srv` both exist in your workspace.
3. The aforementioned warning should be gone, and Intellisense, which gives those squiggly red error lines, should now be present.
4. The `insiders` branch has binaries compatible with the latest Pre-Release version of the extension, and the `release` branch has binaries compatible with the latest Release version, but the `main` branch may have TypeScript changes that are incompatible with the published binaries, in which case, you'll need to create a branch off the `insiders` or `release` branches.
* Feel free to use [the Discussions tab of this repository](https://github.com/microsoft/vscode-cpptools/discussions) if you have any further questions on building this extension locally.
The Microsoft Windows C/C++ debugger (cppvsdbg) supports configuration options for if the debugger stops when exceptions are thrown. This is done with the 'All Exceptions' check box in the BREAKPOINTS section of the 'Run and Debug' view.
Note that the BREAKPOINTS section will be missing this entry until the first time that the folder has been debugged with the 'cppvsdbg' debugger.
Checking 'All Exceptions' will configure the debugger to stop when an exception is thrown.
##### Exception Conditions
The 'All Exceptions' checkbox support conditions to break on only selected exception types (C++ exceptions) or codes (Win32 exceptions). To edit the condition, click on the pencil icon or right click on the entry and invoke 'Edit Condition'. The condition is a comma-separated list of exception types and codes to break on, or if the list starts with '!', a list of exception types and codes to ignore.
Examples conditions:
| Example condition value | Result |
|-------------------------|--------|
| 0xC0000005, 0xC0000094 | Break on Win32 Access Violation exceptions and integer division by zero exceptions |
| std::out_of_range, 0xC0000005 | This will break on out-of-range exceptions, and access violation exceptions |
| !MyExceptionClass | This will break on all exceptions except C++ `MyExceptionClass` exceptions |
| !MyExceptionClass, 0x6831C815 | This will break on all exceptions except C++ `MyExceptionClass` exceptions and Win32 exceptions with custom code 0x6831C815 |
MIEngine is one of the components used to enable the C/C++ debugging scenario with the Microsoft C/C++ extension with VS Code. This document is to help enable users who want to debug and contribute to MIEngine to fix issues or extend functionality. MIEngine is used to communicate with `gdb`/`lldb` using the MI protocol.
MIEngine is one of the components used to enable the C/C++ debugging scenario with the Microsoft C/C++ extension with VS Code. This document is to help enable users who want to debug and contribute to MIEngine to fix issues or extend functionality. MIEngine is used to communicate with `gdb`/`lldb` using the MI protocol.
@@ -19,7 +19,7 @@ You can open the solution file **MIDebugEngine.sln** located under **src** and c
The symbol files are as follows:
**On Windows**
**On Windows**
* Microsoft.MICore.pdb
* Microsoft.MIDebugEngine.pdb
* vscode\OpenDebugAD7.pdb
@@ -37,7 +37,7 @@ On Windows, the easiest way to debug is to use Visual Studio. Locate the **src\D
If you are not building the extension, Locate the **out\src\Debugger\extension.ts** file in the **.vscode\extensions\ms-vscode.cpptools** folder and open it in an editor.
Locate the following lines:
Locate the following lines:
```json
return {
command: command
@@ -48,13 +48,13 @@ and add the following line to the object:
args: ["--pauseForDebugger"]
```
This will cause the debugger to look like it has hung once you start debugging, but in reality it is waiting for a debugger to attach. Set your breakpoints and attach your debugger to the `OpenDebugAD7.exe` process. Once the debugger is attached, VS Code should start debugging and you can reproduce your scenario.
This will cause the debugger to look like it has hung once you start debugging, but in reality it is waiting for a debugger to attach. Set your breakpoints and attach your debugger to the `OpenDebugAD7.exe` process. Once the debugger is attached, VS Code should start debugging and you can reproduce your scenario.
### Debugging MIEngine running on Linux or MacOS X
### Debugging MIEngine running on Linux or macOS
#### With MonoDevelop
On Linux and MacOS X, we use `mono` as our framework. You can download Xamarin Studio v5.10.1.6 and remotely attach to your Mac or Linux box to debug there.
On Linux and macOS, we use `mono` as our framework. You can download Xamarin Studio v5.10.1.6 and remotely attach to your Mac or Linux box to debug there.
##### Configure the extension to enable remote debugging
Open the **~/.vscode/extensions/ms-vscode.cpptools-\<version\>/debugAdapters/OpenDebugAD7** file with a text editor and locate and uncomment the line at the bottom. When you start debugging, it will now hang until the remote debugger is attached from Xamarin Studio.
Open the **~/.vscode/extensions/ms-vscode.cpptools-\<version\>/debugAdapters/OpenDebugAD7** file with a text editor and locate and uncomment the line at the bottom. When you start debugging, it will now hang until the remote debugger is attached from Xamarin Studio.
##### Attach the remote debugger
In MonoDevelop: Run -> Run With -> Custom Command Mono Soft Debugger.
Fill in the IP and port of the Linux/MacOS X machine and hit "Connect" to start debugging.
Fill in the IP and port of the Linux/macOS machine and hit "Connect" to start debugging.
After you've done this once, you can hit the MonoDevelop "Play" button or <kbd>F5</kbd> to bring up the connect dialog again.
@@ -113,7 +113,7 @@ After you've done this once, you can hit the MonoDevelop "Play" button or <kbd>F
##### Configure the extension to enable remote debugging
Open the **~/.vscode/extensions/ms-vscode.cpptools-\<version\>/debugAdapters/OpenDebugAD7** file with a text editor and locate and uncomment the line at the bottom. When you start debugging, it will now hang until the remote debugger is attached from VS Code.
Open the **~/.vscode/extensions/ms-vscode.cpptools-\<version\>/debugAdapters/OpenDebugAD7** file with a text editor and locate and uncomment the line at the bottom. When you start debugging, it will now hang until the remote debugger is attached from VS Code.
<xs:documentation>Expression that points to value of the linked list node. It can be left empty or have 'this' to refer to the linked list node itself. This expression is evaluated under the context of the linked list node and not the parent linked list type.</xs:documentation>
@@ -402,7 +402,7 @@
<xs:documentation>
Indicates that the item should use the icon associated with general data.
</xs:documentation>
</xs:annotation>
</xs:annotation>
</xs:enumeration>
<xs:enumerationvalue="Method">
<xs:annotation>
@@ -864,16 +864,16 @@
<xs:complexTypename="MostDerivedObjectType">
<xs:annotation>
<xs:documentation>
Specifies an expression which evaluates to the current object, casted to its most-derived type.
In most cases, the debugger is able to automatically determine an object's most-derived type, in which case use of the <MostDerivedType>
Specifies an expression which evaluates to the current object, casted to its most-derived type.
In most cases, the debugger is able to automatically determine an object's most-derived type, in which case use of the <MostDerivedType>
element is unecessary. Automatic determination of an object's most-derived type requires the object to be an instance of a C++ class, with a
compiler-generated virtual function table. This is sufficient for most class-hierarchies; however, custom logic may occasionally be necessary
when dealing with a class hierarchy that does not contain virtual functions, or when the virtual function table is manually constructed by the
when dealing with a class hierarchy that does not contain virtual functions, or when the virtual function table is manually constructed by the
application code.
</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extensionbase="StringType">
<xs:attributeGroupref="CommonAttributes"/>
@@ -935,12 +935,12 @@
<xs:annotation>
<xs:documentation>
Indicates that the given type is a smart pointer. The text inside this element specifies the expression to evaluate the underlying pointer.
The <SmartPointer> element has the following effects:
- If no alternative <DisplayString> element is provided (or all <DisplayString> elements have failed conditions), the underlying pointer will be the display string
- If no alternative <StringView> element is provided (or all <StringView> elements have failed conditions), the underlying pointer will be the string view, if it has one.
- If no alternative <Expand> element is provided, the expansion of the smart pointer will be the expansion of the underlying pointer.
- The smart pointer class will also support overloaded operators as determined by the <Usage> attribute. You can opt out of this behavior by specifying
- The smart pointer class will also support overloaded operators as determined by the <Usage> attribute. You can opt out of this behavior by specifying
<xs:documentation>Indicates which combinations of operators this smart pointer object supports.
<xs:documentation>Indicates which combinations of operators this smart pointer object supports.
</xs:documentation>
</xs:annotation>
</xs:attribute>
@@ -1004,10 +1004,10 @@
<xs:documentation>Specifies an optional priority to assign to this entry for type matching. Higher priority entries within a particular file or directory
are checked first. <Type> entries that do not specify a priority receive default priority of "Medium"<AlternativeType> entries which do not specify a priority
will inherit the priority of the enclosing <Type> element. The priority is only used to disambiguate type matching when all other means of disambiguation are unavailable.
For example, entries with more specific template instantiations, module constraints, or view constraints will take priority regardless of any priority values specified.
Similarly, regardless of priority, natvis files that are part of a loaded project will always take precedence over files in the user natvis directory,
which will, in turn, take precedence over files in the system-wide natvis directory.
For example, entries with more specific template instantiations, module constraints, or view constraints will take priority regardless of any priority values specified.
Similarly, regardless of priority, natvis files that are part of a loaded project will always take precedence over files in the user natvis directory,
which will, in turn, take precedence over files in the system-wide natvis directory.
If two entries have the same priority and cannot otherwise be disambiguated, it is unspecified which one will get used.
awaitassertAnyFile('dist/src/main.js',`The extension entry point '${$root}/dist/src/main.js is missing. You should run ${brightGreen("yarn compile")}\n\n`);
const{cli,args}=awaitinstall();
// example of installing an extension into code
//verbose(`Installing release version of 'ms-vscode.cpptools'`);
failing=!awaitassertAnyFolder('dist/test')&&(quiet||warn(`The compiled test files are not in place.`))||failing;
failing=!awaitassertAnyFolder('dist/walkthrough')&&(quiet||warn(`The walkthrough files are not in place.`))||failing;
failing=!awaitassertAnyFolder('dist/html')&&(quiet||warn(`The html files are not in place.`))||failing;
failing=!awaitassertAnyFolder('dist/schema')&&(quiet||warn(`The schema files are not in place.`))||failing;
failing=!awaitassertAnyFile('dist/nls.metadata.json')&&(quiet||warn(`The extension translation file '${$root}/dist/nls.metadata.json is missing.`))||failing;
failing=awaitcheckDTS()||failing;
if(!failing){
verbose('Prep files appear to be in place.');
}
returnfailing;
}
exportasyncfunctioncheckCompiled() {
letfailing=false;
failing=awaitcheckDTS()||failing;
failing=!awaitassertAnyFile('dist/src/main.js')&&(quiet||warn(`The extension entry point '${$root}/dist/src/main.js is missing.`))||failing;
if(!failing){
verbose('Compiled files appear to be in place.');
}
returnfailing;
}
exportasyncfunctioncheckDTS() {
letfailing=false;
failing=!awaitassertAnyFile('vscode.d.ts')&&(quiet||warn(`The VSCode import file '${$root}/dist/src/vscode.d.ts is missing.`))||failing;
failing=!awaitassertAnyFile('vscode.proposed.terminalDataWriteEvent.d.ts')&&(quiet||warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.terminalDataWriteEvent.d.ts is missing.`))||failing;
if(!failing){
verbose('VSCode d.ts files appear to be in place.');
}
returnfailing;
}
exportasyncfunctioncheckBinaries() {
letfailing=false;
failing=!awaitassertAnyFile(['bin/cpptools.exe','bin/cpptools'])&&(quiet||warn(`The native binary files are not present. You should either build or install the native binaries\n\n.`))||failing;
if(!failing){
verbose('Native binary files appear to be in place.');
awaitassertAnyFolder('dist/test/unit',`The folder '${$root}/dist/test/unit is missing. You should run ${brightGreen("yarn compile")}\n\n`);
constmocha=awaitassertAnyFile(["node_modules/.bin/mocha.cmd","node_modules/.bin/mocha"],`Can't find the mocha testrunner. You might need to run ${brightGreen("yarn install")}\n\n`);
letfailing=awaitcheckPrep()&&(quiet||error(`Files are not up to date. Run ${green('yarn prep')} to fix it.`));
failing=(awaitcheckCompiled()&&(quiet||error(`Compiled files are not present. Run ${green('yarn compile')} to fix it.`)))||failing;
failing=(awaitcheckBinaries()&&(quiet||error(`The native binary files are not present. You should either build or install the native binaries\n\n.`)))||failing;
if(failing){
process.exit(1);
}
}
exportasyncfunctioncompiled() {
letfailing=false;
failing=(awaitcheckCompiled()&&(quiet||error(`Compiled files are not present. Run ${green('yarn compile')} to fix it.`)))||failing;
if(failing){
process.exit(1);
}
}
exportasyncfunctionbinaries() {
letfailing=false;
failing=(awaitcheckBinaries()&&(quiet||error(`The native binary files are not present. You should either build or install the native binaries\n\n.`)))||failing;
if(failing){
process.exit(1);
}
}
exportasyncfunctionprep() {
letfailing=false;
failing=(awaitcheckPrep()&&(quiet||error(`Files are not up to date. Run ${green('yarn prep')} to fix it.`)))||failing;
if(failing){
process.exit(1);
}
}
exportasyncfunctiondts() {
letfailing=false;
failing=(awaitcheckDTS()&&(quiet||error(`VSCode import files are not present. Run ${green('yarn prep')} to fix it.`)))||failing;
This preview release of the C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.
The C/C++ extension adds language support for C/C++ to Visual Studio Code, including [editing (IntelliSense)](https://code.visualstudio.com/docs/cpp/cpp-ide) and [debugging](https://code.visualstudio.com/docs/cpp/cpp-debug) features.
## Overview and getting started
## Pre-requisites
C++ is a compiled language meaning your program's source code must be translated (compiled) before it can be run on your computer. VS Code is first and foremost an editor, and relies on command-line tools to do much of the development workflow. The C/C++ extension **does not include a C++ compiler or debugger**. You will need to install these tools or use those already installed on your computer.
* C++ compiler pre-installed
* C++ debugger pre-installed
<br/>
Here is a list of compilers and architectures per platform officially supported by the extension. These are reflected by the available [IntelliSense modes](https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation#_intellisense-mode) from the extension's IntelliSense configuration. Note that support for other compilers may be limited.
Platform | Compilers | Architectures
:--- | :--- | :---
Windows | MSVC, Clang, GCC | x64, x86, arm64, arm
Linux | Clang, GCC | x64, x86, arm64, arm
macOS | Clang, GCC | x64, x86, arm64
For more information about installing the required tools or setting up the extension, please follow the tutorials below.
@@ -42,17 +65,6 @@ If someone has already filed an issue that encompasses your feedback, please lea
<br>
Let us know what you think of the extension by taking the quick survey.
## Offline installation
The extension has platform-specific binary dependencies, therefore installation via the Marketplace requires an Internet connection in order to download additional dependencies. If you are working on a computer that does not have access to the Internet or is behind a strict firewall, you may need to use our platform-specific packages and install them by running VS Code's `"Install from VSIX..."` command. These "offline' packages are available at: https://github.com/Microsoft/vscode-cpptools/releases.
Package | Platform
:--- | :---
`cpptools-linux.vsix` | Linux 64-bit
`cpptools-linux32.vsix` | Linux 32-bit
`cpptools-osx.vsix` | macOS
`cpptools-win32.vsix` | Windows 64-bit & 32-bit
## Contribution
Contributions are always welcome. Please see our [contributing guide](CONTRIBUTING.md) for more details.
@@ -63,4 +75,4 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
## Data and telemetry
This extension collects usage data and sends it to Microsoft to help improve our products and services. Collection of telemetry is controlled via the same setting provided by Visual Studio Code: `"telemetry.enableTelemetry"`. Read our [privacy statement](https://privacy.microsoft.com/en-us/privacystatement) to learn more.
This extension collects usage data and sends it to Microsoft to help improve our products and services. Collection of telemetry is controlled via the same setting provided by Visual Studio Code: `"telemetry.enableTelemetry"`. Read our [privacy statement](https://privacy.microsoft.com/en-us/privacystatement) to learn more.
<h1 data-loc-id="incompatible.extension.heading">Incompatible or Mismatched C/C++ Extension Binaries</h1>
<p data-loc-id="incompat.extension.text1">The C/C++ extension includes native binaries.</p>
<p data-loc-id="incompat.extension.text2">When installed via the marketplace UI in VS Code, the correct native binaries should be included. If incompatible binaries were detected and the C/C++ extension had been installed via the marketplace UI in VS Code, <a href="https://github.com/microsoft/vscode/issues/new?assignees=&labels=&template=bug_report.md" data-loc-id="bug.report.link.title">please report the issue</a>.</p>
<h1 data-loc-id="reinstalling.extension.heading">Reinstalling the C/C++ Extension</h1>
<p data-loc-id="reinstall.extension.text1">When reinstalling an equivalent version of an extension, VS Code may reuse the existing extension directory. To prevent this from occurring when reinstalling the C/C++ extension, it may be necessary to first delete the existing extension directory.</p>
<p data-loc-id="reinstall.extension.text2">Installed extension directories can be found under one of the following paths under your user directory (`%USERPROFILE%` on Windows, or `$HOME` on Linux and macOS)</p>
<p data-loc-id="reinstall.extension.text7">Then reinstall via the marketplace UI in VS Code.</p>
<p data-loc-id="reinstall.extension.text8">If the correct version of the extension fails to be deployed by VS Code, the correct VSIX for your system can be <a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools" data-loc-id="download.vsix.link.title">downloaded from the VS Code marketplace web site</a> and installed using the 'Install from VSIX...' option under the '...' menu in the marketplace UI in VS Code.</p>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.