The check for include paths ending in '**' ran in sendCustomConfigurations,
after mergeConfigurations had already appended the includePath entries from
the user's c_cpp_properties.json to each configuration from the provider. A
trailing '**' is a supported way to recurse there, so the warning fired for
paths the provider never supplied.
Move the check ahead of that append so it only sees the provider's own
include paths.
Co-authored-by: Sean McManus <[email protected]>
* Bump @vscode/test-electron to 3.1.0 so tests launch VS Code >=1.110 on macOS
VS Code 1.110 renamed the macOS main binary from Contents/MacOS/Electron to the product name and later removed the compatibility symlink (microsoft/vscode#326502, 2026-07-20), so @vscode/test-electron <=3.0.0 — which hardcodes the Electron name — fails to launch downloaded stable builds on macOS with 'spawn .../Contents/MacOS/Electron ENOENT'. 3.1.0 resolves the executable from the bundle's Info.plist CFBundleExecutable (microsoft/vscode-test#348, #349), letting the tests track latest stable VS Code again without pinning.
* Move test VS Code pin to 1.131.0
With @vscode/test-electron 3.1.0 the macOS 1.131.0 bundle launches correctly, so advance the pinned test VS Code from 1.130.0 to the current stable 1.131.0.
runVSCodeCommand only resolves on success (it throws on a non-zero exit), so its stderr is non-fatal output such as the Node [DEP0169] url.parse() deprecation warning emitted by the VS Code CLI. Log it as a warning instead of an error in installAndCopyBinaries.ts, and add DEP0169 to the test.ts stdio filter list.
The installed @vscode/test-electron cannot launch the VS Code 1.131.0 macOS arm64 bundle (spawn Electron ENOENT), which fails the integration-test steps on every run. Pin the downloaded test VS Code to 1.130.0 (the last release that launches) until @vscode/test-electron is bumped to handle newer stable releases.
"Run C/C++ File" builds the command with buildShellCommandLine and sends
it via sendText when the terminal has no shell integration. That path
quotes a program path containing spaces but never prepends the call
operator, so PowerShell evaluates the quoted path as a string literal and
echoes it instead of running the program.
The shell-integration path already handles this, so extract its PowerShell
detection into isPowerShellTerminal() and reuse it in the sendText path.
Closes#14583
Co-authored-by: Sean McManus <[email protected]>
Co-authored-by: Bob Brown <[email protected]>
* Add localizable strings for --check headless validation
Adds 13 native strings backing the mscppls --check mode (the clangd-style
headless validation of a compile_commands.json file): the two --help entries
and the setup/usage error messages.
* No lock on placeholders
* Fix LOC locks
* Add EvaluatableExpressionProvider to fix C/C++ debug hover on dereferenced members
VS Code's default debug data-tip keeps a leading `*`/`&` and clips on the right, so hovering
an intermediate member of e.g. `*a.b.c` evaluates `*a.b` (a dereference of the struct `a.b`)
and shows no value.
Register an EvaluatableExpressionProvider that, only for that case, returns the expression
without the leading operator. Every other expression returns undefined so the default
behavior is unchanged.
* Move the debug hover provider to the debugger
Register the EvaluatableExpressionProvider during debugger activation
instead of through the language client, so it also works when IntelliSense
is disabled, and move it next to the other debugger code.
The expression computation lives in a vscode-free module
(evaluatableExpression.ts) so it can be unit tested directly. Registering
a provider replaces VS Code's built-in data-tip expression detection, so
it reproduces that for ordinary tokens and additionally handles access
chains the built-in detection gets wrong for C/C++:
- A leading */& binds to the whole access chain (the postfix ., ->, []
operators bind tighter), so it is dropped for an interior member of a
dot chain, where *a.b would dereference the struct a.b, and kept on the
final member and before ->.
- Array subscripts and :: are kept in the token, so members after a
subscript (a.b[i].c) and scoped names (ns::var) resolve instead of
producing a broken fragment.
* Document why the leading-operator drop is .-only
The leading */& is kept before -> / [] and at the end of a chain because
those left operands are provably pointers/arrays, so *ptr->m, *a.b[i] and
&a[i] evaluate without error; it is dropped only before . where the left
operand may be a struct. Documents these keep-leading outcomes as deliberate
per review feedback.
* Decline non-token cursor positions inside a subscript
Inside [...] the token spans whitespace and operators (e.g. a[i + j]), so
returning the nearest identifier evaluated the wrong expression when the
cursor was on an operator or space. Return undefined unless the cursor is on
the index identifier itself, and add tests.
* Rewrite hover token detection with a balanced-bracket scanner
Replace the token regex with a manual scanner so nested subscripts (a[b[i]])
stay in one token, fix hovering past the last identifier truncating a trailing
subscript, and decline non-token positions inside [...] (operators/whitespace).
Keep the leading * only on the final dereferenced segment (including a final
subscript element like *a.b[i]); drop it on interior segments and drop a leading
& always. Removes the previous regex (and its ReDoS surface).
---------
Co-authored-by: Sean McManus <[email protected]>
* Expand undefined environment variables to empty
* Use unique env var name
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
* Marked optional capturing groups as potentially undefined
---------
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Add the `debuginfod` configuration option to both launch and attach
configurations for the cppdbg debugger type. This exposes the MIEngine
debuginfod settings (enabled/timeout) so users can control GDB's
debuginfod behavior and prevent hangs when debuginfod servers are
unreachable.
Adding additional parse checking logic to determine if idle state has no pending calls and finished workspace parsing, file parsing, and intellisense updates.
The primary purpose of this is for this flag to be consumed by the C++ devtools extensions. This way the C++ specific Copilot tools will only appear in tools list and register when the C++ language server is actually activated.
* Add internal silent find-all-references command
Introduce an internal C_Cpp.FindAllReferences command that issues the existing cpptools/findAllReferences request without joining the workspaceReferences single-flight cancellation path.
Extract the shared request and confirmed-location mapping logic from FindAllReferencesProvider so the existing vscode.executeReferenceProvider flow and the new silent command use the same request translation and cancellation handling for server-side cancel responses.
Keep the interactive provider behavior unchanged: user-invoked references still cancel prior work, reset reference progress state, and update the ReferencesManager UI. The new command resolves the owning client from the target URI and returns locations without progress UI, preview notifications, or references panel updates, enabling concurrent silent callers such as Copilot.
* Add internal quiet definition and call hierarchy commands
Align cpptools with the companion changes that now prefer internal
C_Cpp.* navigation commands over the generic vscode.* provider commands
when running extension-driven symbol queries.
Add C_Cpp.GoToDefinition, C_Cpp.PrepareCallHierarchy,
C_Cpp.CallHierarchyCallsTo, and C_Cpp.CallHierarchyCallsFrom as
internal commands that resolve the owning DefaultClient from the target
URI and send requests directly to cpptools without joining the
workspaceReferences UI and single-flight cancellation path.
Extract shared call hierarchy request and conversion logic from
CallHierarchyProvider so the existing interactive provider flow and the
new silent commands share the same request translation and
server-cancellation handling.
Add a dedicated go-to-definition helper that sends the standard
definition request through the language client and normalizes both
Location and DefinitionLink responses to Location[] so companion callers
can consume a stable result shape.
Keep interactive behavior unchanged: user-invoked providers continue to
use the existing VS Code registrations, progress handling, and
workspaceReferences-driven cancellation semantics, while extension
callers such as the devtools companion can use the new internal command
surface without canceling overlapping work.
* Fix custom comment continuation for multiple follow-up lines (#14074)
* Add a unit test for the scenario
* formatting hasn't been done on this file yet. Match the existing style.
---------
Co-authored-by: dinhtam2c <[email protected]>
* add test frameworks traits to VSCode Copilot Chat
* add test framework traits for #cpp
* update prompt
* drop unnecessary `?.`, and use sensible names for test framework in tests.
-telemetry: fix cancellation events.
-telemetry: more diag event for registration failure.
-add fallback to SimilarFiles providers such as openTabs and/or
related-files
* add instrumentation support to the typescript code
* fix linter
* missed file
* update to a newer image?
* merged
* work around webpack
* webpack! Arg!
* cleanup
* cleanups
* remove spaces
* must use eval to work around webpack
* need vscode in here
* fix line endings?
* fix line endings?
* Add comment
* Added instrumentation to copilothoverprovider
* inject instrumentation code via perfecto instead
* Ensure that everything is instrumented where we can.
* extra comma
Off by default, can be explicitly disabled in the setting.
Co-authored-by: Ben McMorran <[email protected]>
---------
Co-authored-by: Ben McMorran <[email protected]>
- Depends on cpptools' update to provide ProjectContextResult.
- Send "standardVersion" trait in completion prompt by default.
- Added the following new traits
- intelliSenseDisclaimer: compiler information disclaimer.
- intelliSenseDisclaimerBeginning: to note the beginning of IntelliSense information.
- compilerArguments: a list of compiler command arguments that could affect Copilot generating completions.
- directAsks: direct asking Copilot to do something instead of providing an argument.
- intelliSenseDisclaimerEnd: to note the end of IntelliSense information.
- A/B Experimental flags
- copilotcppTraits: deprecated, no longer used.
- copilotcppExcludeTraits:: deprecated, no longer used.
- copilotcppIncludeTraits: string array to include individual trait, i.e., compilerArguments.
- copilotcppMsvcCompilerArgumentFilter: map of regex string to absence prompt for MSVC.
- copilotcppClangCompilerArgumentFilter: map of regex string to absence prompt for Clang.
- copilotcppGccCompilerArgumentFilter: map of regex string to absence prompt for GCC.
- copilotcppCompilerArgumentDirectAskMap: map of argument to prompt.
- Move related files code to its own module
- Refactor related files provider code to enable unit testing
- Add Cpp context traits to completions prompt
* Strip '\r' and '\n' from the end of each line if they exist when parsing the vcpkg database.
* remove debugging log
* Fix lint issue
* Revert regex
* Refactor line trimming
* Fix lint issues
* Remove old comment
* Fix glob coverage
* resolve and split paths before validation
* expand glob patterns and do not expand incorrect paths
* Do not squiggle paths that need to be expanded
* revert change
* squiggle paths that end with *
* Do not squiggle paths that end with *
* properly squiggle glob paths with recursive includes
* correctly report squiggles with glob paths
* move check for asterisk to outer check
* fix lint issues
Removes the console.log messages that show up during normal execution.
Leaves console.logs in exception handlers the way they are.
Signed-off-by: Trond Einar Snekvik <[email protected]>
* 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
description:Create a bug report for IntelliSense, autocomplete, code editing, code navigation, etc.
description:Create a bug report for IntelliSense, code editing, code navigation, code completion, code formatting, semantic colorization, etc.
body:
- type:markdown
attributes:
@@ -16,25 +16,21 @@ body:
- OS and Version
- VS Code Version
- C/C++ Extension Version
- Other extensions you installed (and if the issue persists after disabling them)
- If using SSH remote, specify OS of 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).
value:|
- OS and Version:
- VS Code Version:
- C/C++ Extension Version:
- Other extensions you installed (and if the issue persists after disabling them):
- If using SSH remote, specify OS of 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).
- 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.
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.
Include clear steps on how to reproduce the issue and a description of what you expected to happen.
value:|
Bug Summary:
@@ -44,20 +40,15 @@ body:
2. Click on '....'
3. Scroll down to '....'
4. See error
Expected behavior:
validations:
required:true
- type:textarea
attributes:
label:Expected behavior
description:A clear and concise description of what you expected to happen.
validations:
required:false
- type:textarea
attributes:
label:Code sample and Logs
label:Configuration and Logs
description:|
Please provide code sample, your c_cpp_properties.json and logs:
- Code sample
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)
@@ -66,14 +57,16 @@ body:
required:true
- type:textarea
attributes:
label:Screenshots
description:If applicable, add screenshots to help explain your problem.
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".
description:Create a bug report for downloading, installing, or building the extension.
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)
value:|
- OS and version:
- VS Code:
- C/C++ extension:
- OS and version of remote machine (if applicable):
validations:
required:true
- type:textarea
attributes:
label:Bug Summary and Steps to Reproduce
description:|
Please give a description of the issue you are encountering and what you expected to happen.
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: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.
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
(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)(`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.
(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:5012***# Run at 12:50 PM UTC (4:50 AM PST, 5:50 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Add Comment
uses:./.github/actions/AddComment
with:
readonly:${{ github.event.inputs.readonly }}
labels:bug,debugger
ignoreLabels:"investigate: costing,investigate,external,by design,question,more info needed,Language Service,internal"
createdAfter:"2024-07-22"
addComment:"Thank you for reporting this issue. We’ll let you know if we need more information to investigate it. Additionally, if you're working with GDB/LLDB, please note that the code is open source at https://github.com/microsoft/MIEngine/wiki/Contributing-Code . Your contributions are always welcome and appreciated."
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -26,3 +31,4 @@ jobs:
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."
# required to fetch internal or private CodeQL packs
packages:read
# only required for workflows in private repositories
actions:read
contents:read
strategy:
fail-fast:false
matrix:
include:
- language:javascript-typescript
build-mode:none
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name:Checkout repository
uses:actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name:Initialize CodeQL
uses:github/codeql-action/init@v3
with:
languages:${{ matrix.language }}
build-mode:${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if:matrix.build-mode == 'manual'
shell:bash
run:|
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -26,3 +31,4 @@ jobs:
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)
- cron:4012***# Run at 12:40 PM UTC (4:40 AM PST, 5:40 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -28,3 +33,4 @@ jobs:
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)
- cron:3012***# Run at 12:30 PM UTC (4:30 AM PST, 5:30 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -28,3 +33,4 @@ jobs:
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."
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -28,3 +33,4 @@ jobs:
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."
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -28,3 +33,4 @@ jobs:
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:2013***# Run at 1:20 PM UTC (5:20 AM PST, 6:20 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Add Comment
uses:./.github/actions/AddComment
with:
readonly:${{ github.event.inputs.readonly }}
labels:Feature Request,debugger
ignoreLabels:"investigate: costing,investigate,external,by design,question,more info needed,Language Service,internal"
createdAfter:"2024-07-22"
addComment:"Thank you for your feature request. While we may not be able to implement it immediately, we will monitor community reactions to see how it fits into our backlog. Additionally, if you're working with GDB/LLDB, please note that the code is open source at https://github.com/microsoft/MIEngine/wiki/Contributing-Code . Your contributions are always welcome and appreciated."
- cron:1011***# Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
- cron:3013***# Run at 1:30 PM UTC (5:30 AM PST, 6:30 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -21,6 +26,7 @@ jobs:
with:
readonly:${{ github.event.inputs.readonly }}
labels:investigate,debugger
ignoreLabels:language service,internal
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)
- cron:4013***# Run at 1:40 PM UTC (5:40 AM PST, 6:40 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -21,6 +26,7 @@ jobs:
with:
readonly:${{ github.event.inputs.readonly }}
labels:"investigate: costing,debugger"
ignoreLabels:language service,internal
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)
- cron:5013***# Run at 1:50 PM UTC (5:50 AM PST, 6:50 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -21,9 +26,10 @@ jobs:
with:
readonly:${{ github.event.inputs.readonly }}
labels:more info needed,debugger
ignoreLabels:language service,internal
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."
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -22,7 +27,8 @@ jobs:
readonly:${{ github.event.inputs.readonly }}
labels:more info needed
ignoreLabels:debugger,internal
closeDays:60
closeDays:30
closeComment:"This issue has been closed because it needs more information and has not had recent activity."
pingDays:80
pingDays:14
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)
- cron:014***# Run at 2:00 PM UTC (6:00 AM PST, 7:00 AM PDT)
workflow_dispatch:
inputs:
readonly:
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -21,9 +26,10 @@ jobs:
with:
readonly:${{ github.event.inputs.readonly }}
labels:question,debugger
ignoreLabels:language service,internal
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."
description:"readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default:false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24:true
jobs:
main:
runs-on:ubuntu-latest
permissions:
issues:write
steps:
- name:Checkout Actions
uses:actions/checkout@v2
uses:actions/checkout@v5
- name:Install Actions
run:cd ./.github/actions && npm install --production && cd ../..
- name:Stale Closer
@@ -26,3 +31,4 @@ jobs:
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."
* [Build and debug the extension](Documentation/Building%20the%20Extension.md).
* 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).
* Try and add a test in [**test/extension.test.ts**](Extension/test/scenarios/SingleRootProject/tests/extension.test.ts).
* 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".
constreadmeMessage: string=localize("refer.read.me","Please refer to {0} for troubleshooting information. Issues can be created at {1}",readmePath,"https://github.com/Microsoft/vscode-cpptools/issues");
```
* The first parameter to localize should be a unique key for that string, not used by any other call to localize() in the file unless representing the same string. The second parameter is the string to localize. Both of these parameters must be string literals. Tokens such as {0} and {1} are supported in the localizable string, with replacement values passed as additional parameters to localize().
## Contributor License Agreement
This project welcomes contributions and suggestions. Most contributions require you to
agree to a Contributor License Agreement (CLA) declaring that you have the right to,
and actually do, grant us the rights to use your contribution. For details, visit
https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need
to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the
instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
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/)
We maintain a public Azure Artifacts feed that we point the package manager to in .npmrc files. If you want to add a dependency or update a version in package.json, you may need to contact us so we can add it to our feed. Please ping our team in a PR or new issue if you experience this issue.
For local development, you can delete the .npmrc file and the matching `yarn.lock` file while you wait for us to update the feed. However, these changes will need to be reverted in your branch before we will accept a PR.
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() {
if($switches.includes('--skipCheckBinaries')){
returnfalse;
}
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.');
failing=awaitassertAnyFile('vscode.proposed.chatParticipantAdditions.d.ts')&&(quiet||warn(`The VSCode import file '${$root}/vscode.proposed.chatParticipantAdditions.d.ts' should not be present.`))||failing;
if(!failing){
verbose('VSCode proposals 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;
if(failing){
process.exit(1);
}
}
exportasyncfunctionproposals() {
letfailing=false;
failing=(awaitcheckProposals()&&(quiet||error(`Issue with VSCode proposals. Run ${green('yarn prep')} to fix it.`)))||failing;
@@ -61,7 +61,7 @@ File questions, issues, or feature requests for the extension.
If someone has already filed an issue that encompasses your feedback, please leave a 👍 or 👎 reaction on the issue to upvote or downvote it to help us prioritize the issue.
Let us know what you think of the extension by taking the quick survey.
@@ -75,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://go.microsoft.com/fwlink/?LinkId=521839) to learn more.
<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>
<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.