Compare commits

...
73 Commits
Author SHA1 Message Date
Sean McManus e22017f6df Merge pull request #14315 from microsoft/seanmcm/1_31_3_release2
Merge for 1.31.3 (again)
2026-03-23 12:06:23 -07:00
Sean McManus a2f6a72aed Merge branch 'main' into seanmcm/1_31_3_release2 2026-03-23 12:04:48 -07:00
Sean McManus e08377a353 Update changelog with recent fixes. (#14313) 2026-03-23 12:01:04 -07:00
dependabot[bot] 61421ea4fe Bump flatted from 3.4.1 to 3.4.2 in /Extension (#14304)
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.4.1 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.4.1...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 11:34:04 -07:00
Sean McManus 0608ecd86f Update flatted and fast-xml-parser. (#14303) 2026-03-20 11:12:36 -07:00
Sean McManus 593ed07c56 Merge pull request #14300 from microsoft/seanmcm/1_31_1_release2
Merge for 1.31.3 (2nd time)
2026-03-19 11:16:39 -07:00
Sean McManus 40f7455acd Merge branch 'main' into seanmcm/1_31_1_release2 2026-03-19 11:03:43 -07:00
Sean McManus ecdfabdd17 Update changelog and TPN. (#14298) 2026-03-19 11:01:20 -07:00
Sean McManus 6e96c3ea13 Remove console.debug calls. (#14296) 2026-03-18 17:26:24 +00:00
Sean McManus 4bb5b8a11f Update to 1ESPT-Windows2025. (#14295) 2026-03-18 10:25:58 -07:00
Sean McManus be8236fd80 Switch .github builds to use node 24 and the latest OS images (#14293)
* Switch to node 24.
* Also update the runner-env images.
2026-03-18 03:32:51 -07:00
Sean McManus c813ab5a99 Bootstrap yarn to fix/enable CFSClean3. (#14284) 2026-03-17 16:05:06 -07:00
Sean McManus 20cfc2bbef Update fast-xml-parser. (#14292) 2026-03-17 16:00:07 -07:00
Sean McManus adf4681ef8 Merge pull request #14291 from microsoft/seanmcm/1_31_3_release
Merge for 1.31.3
2026-03-17 14:13:30 -07:00
Sean McManus a53dac8bef Merge branch 'main' into seanmcm/1_31_3_release 2026-03-17 13:40:46 -07:00
Sean McManus 577a7b8361 Fix a changelog typo missed in the last PR. (#14290) 2026-03-17 13:36:02 -07:00
Sean McManus 7a4b4ddb37 Update changelog and version for 1.31.3. (#14288) 2026-03-17 13:26:35 -07:00
Sean McManus 04c60c288a Merge branch 'main' into seanmcm/1_31_3_release 2026-03-17 13:06:35 -07:00
Sean McManus 7fe4f030bd Upate @azure/msal-browser for the ExtensionPack. (#14286) 2026-03-17 18:16:44 +00:00
Sean McManus 3a4df8c003 Update flatted. It was already updated in the Extension folder. (#14285) 2026-03-17 11:09:39 -07:00
Sean McManus c9e571a889 Fix a yarn.lock mismatch. (#14282) 2026-03-16 15:57:42 -07:00
Sean McManus b0efdb5628 Update changelog for 1.31.2. (#14271)
* Update changelog for 1.31.2.
2026-03-16 11:25:12 -07:00
Sean McManus 886008ce84 Stop using yarn with extension pack (#14278)
* Use npm instead of yarn for the extension package vsix.
2026-03-16 11:20:36 -07:00
Sean McManus 9d161fb345 Update. (#14277) 2026-03-16 11:12:04 -07:00
dependabot[bot] 1a661ebd5b Bump undici from 6.23.0 to 6.24.0 in /.github/actions (#14275)
Bumps [undici](https://github.com/nodejs/undici) from 6.23.0 to 6.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.23.0...v6.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-13 19:06:19 -07:00
dependabot[bot]andSean McManus d84696e9a7 Bump undici from 7.22.0 to 7.24.0 in /Themes (#14274)
Bumps [undici](https://github.com/nodejs/undici) from 7.22.0 to 7.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.22.0...v7.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sean McManus <[email protected]>
2026-03-13 17:50:54 -07:00
dependabot[bot]andSean McManus de84f488f2 Bump undici from 7.22.0 to 7.24.0 in /ExtensionPack (#14273)
Bumps [undici](https://github.com/nodejs/undici) from 7.22.0 to 7.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.22.0...v7.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sean McManus <[email protected]>
2026-03-13 17:44:51 -07:00
dependabot[bot] a9609ef47b Bump undici from 7.22.0 to 7.24.0 in /Extension (#14272)
Bumps [undici](https://github.com/nodejs/undici) from 7.22.0 to 7.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.22.0...v7.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-13 17:20:35 -07:00
Rohan Santhosh Kumarandrohan436 e83f362050 docs: remove duplicate word in developer readme (#14266)
Co-authored-by: rohan436 <[email protected]>
2026-03-12 03:35:31 -07:00
Sean McManus 38e074451a Fix warning "Cannot find" instead of "Path is not a file" for compilerPath. (#14265) 2026-03-11 11:08:50 -07:00
Sean McManus a651e53430 Update serialize-javascript. (#14262)
* Update serialize-javascript.
2026-03-10 18:24:01 -07:00
Sean McManus fa71378712 Merge pull request #14252 from microsoft/seanmcm/updateRelease_1_31_1
Update release with 1.31.1 (to enable a release build for compliance checks)
2026-03-10 16:02:43 -07:00
Sean McManus 36a78e89e1 Merge branch 'main' into seanmcm/updateRelease_1_31_1 2026-03-10 14:13:04 -07:00
Sean McManus 304b92419f Add CFSClean2. (#14253)
* Add CFSClean2.
2026-03-10 17:20:31 +00:00
Sean McManus 5aaa9197c2 Update changelog a 2nd time for 1.31.1. (#14256)
* Update changelog a 2nd time for 1.31.1.
2026-03-10 17:19:31 +00:00
Sean McManus c239d6b162 Change fs.existsSync to check[File|Directory]ExistsSync for cases where it matters. (#14258) 2026-03-10 10:18:42 -07:00
Sean McManus a66064beef Update TPN for 1.31.1. (#14254) 2026-03-09 16:44:33 -07:00
Sean McManus 364ba2789c Change the version to 1.30.5 to block publishing via skip-duplicate 2026-03-09 12:30:41 -07:00
Sean McManus 8d5fc737b1 Merge branch 'main' into seanmcm/updateRelease_1_31_1 2026-03-09 12:09:12 -07:00
Sean McManus b3c1b117c2 Add more CFSClean to pipelines. (#14245)
* Add more CFSClean to pipelines.
* Add --skip-duplicate.
2026-03-05 18:11:34 -08:00
Sean McManus a38624d1ef Add @vscode/vsce. (#14243) 2026-03-05 09:12:10 -08:00
Sean McManus 2c26037f43 Update changelog and version for 1.31.1 (#14239)
* Update changelog and version for 1.31.1
2026-03-04 18:04:42 -08:00
Sean McManus 1172405856 Merge pull request #14238 from microsoft/seanmcm/cherryPicka5d00e31230bdad1d171d1fd1421ac97fa77b275
Switch vsix packing to use Nuget.config (#14209)
2026-03-04 16:55:47 -08:00
Sean McManus b013b10b64 Switch vsix packing to use Nuget.config (#14209)
* Add a NuGet.config file
2026-03-04 15:38:01 -08:00
Sean McManus 318f7058b0 Update .github/actions dependencies. (#14237) 2026-03-04 23:31:52 +00:00
Sean McManus 8cadd2dac8 Update TPN for 1.31.1. (#14236) 2026-03-04 15:29:12 -08:00
Sean McManus c5fe03c8e6 Update loc. (#14232) 2026-03-04 03:01:19 +00:00
Sean McManus df350e6552 Update msvc versions. (#14231) 2026-03-04 03:00:54 +00:00
Sean McManus a8cb5375e9 Update to clang-tidy 22. (#14230) 2026-03-03 18:34:08 -08:00
Sean McManus 40e39acb0e Revert the shell-quote update. (#14229) 2026-03-02 16:56:15 -08:00
Sean McManus 8ff42d0d00 Update more dependencies. (#14224)
* Update more dependencies.
2026-03-02 21:25:38 +00:00
Sean McManus 597f29c39a Update licenses. (#14225) 2026-03-02 13:24:45 -08:00
dependabot[bot] fc048916c0 Bump minimatch in /.github/actions (#14222)
Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5)

Updates `minimatch` from 5.1.6 to 5.1.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 5.1.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 11:46:34 -08:00
Sean McManus 6de78e2d05 Update ajv. (#14221) 2026-02-27 19:31:47 +00:00
Sean McManus 6bddc0fb58 Update minimatch again. (#14219) 2026-02-27 11:31:06 -08:00
Sean McManus e0cf47d749 Update minimatch. (#14217) 2026-02-25 16:20:04 -08:00
dependabot[bot] adb6bcf8d5 Bump fast-xml-parser and @aws-sdk/xml-builder in /.github/actions (#14214)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) and [@aws-sdk/xml-builder](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages-internal/xml-builder). These dependencies needed to be updated together.

Updates `fast-xml-parser` from 5.3.4 to 5.3.6
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.4...v5.3.6)

Updates `@aws-sdk/xml-builder` from 3.972.4 to 3.972.5
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages-internal/xml-builder/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/HEAD/packages-internal/xml-builder)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.3.6
  dependency-type: indirect
- dependency-name: "@aws-sdk/xml-builder"
  dependency-version: 3.972.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 11:04:32 -08:00
dependabot[bot] e80bd3b0d1 Bump minimatch from 4.2.3 to 4.2.4 in /Extension (#14213)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 4.2.3 to 4.2.4.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v4.2.3...v4.2.4)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 4.2.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-24 18:50:52 -08:00
Sean McManus a5d00e3123 Switch vsix packing to use Nuget.config (#14209)
* Add a NuGet.config file
2026-02-23 13:35:42 -08:00
Sean McManus b977587cb1 Update the C/C++ extension pack to 1.5.1. (#14203) 2026-02-19 14:06:28 -08:00
Sean McManus ca81d009fd Fix signing for extension pack and themes extensions. (#14202)
* Fix signing for extension pack and themes extensions.
* Fix README.md
2026-02-19 12:45:49 -08:00
Bob Brown 5bbac4e637 update the url for the privacy statement (#14198) 2026-02-18 14:37:56 -08:00
Sean McManus ea1fbea183 Update changelog for 1.31.0. (#14195)
* Update changelog for 1.31.0.
2026-02-18 14:36:46 -08:00
Subham f681142c40 feat: Support program parameter in attach configurations (#14046) (#14108)
* feat: support program parameter in attach configs
2026-02-18 14:34:48 -08:00
Bob Brown 1cd186b3f3 co-install the new C++ Dev Tools extension (#14197) 2026-02-18 12:09:35 -08:00
dependabot[bot] e23c41835d Bump fast-xml-parser and @aws-sdk/xml-builder in /.github/actions (#14182)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) and [@aws-sdk/xml-builder](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages-internal/xml-builder). These dependencies needed to be updated together.

Updates `fast-xml-parser` from 5.3.3 to 5.3.4
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.3...v5.3.4)

Updates `@aws-sdk/xml-builder` from 3.972.2 to 3.972.4
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages-internal/xml-builder/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/HEAD/packages-internal/xml-builder)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.3.4
  dependency-type: indirect
- dependency-name: "@aws-sdk/xml-builder"
  dependency-version: 3.972.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-11 17:27:22 -08:00
Sean McManus d9fe0c8874 Update webpack. (#14180)
* Update webpack.
2026-02-11 17:18:50 -08:00
dependabot[bot] 5ad75b4445 Bump axios from 1.13.4 to 1.13.5 in /.github/actions (#14179)
Bumps [axios](https://github.com/axios/axios) from 1.13.4 to 1.13.5.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.4...v1.13.5)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-11 13:18:17 -08:00
Ben McMorranandSean McManus 11b63666c5 Check unified Copilot API before legacy API (#14167)
Co-authored-by: Sean McManus <[email protected]>
2026-02-09 11:00:21 -08:00
Sean McManus c6ff700da2 Update changelog for 1.30.5 (#14171) (#14172)
* Update changelog for 1.30.5.
2026-02-06 15:13:39 -08:00
Sean McManus 936e7e3b15 Update changelog for 1.30.5 (#14171)
* Update changelog for 1.30.5.
2026-02-06 15:11:58 -08:00
Sean McManus 920997d1d8 Update changelog for 1.30.5 (#14171)
* Update changelog for 1.30.5.
2026-02-06 15:10:25 -08:00
Sean McManus 05d57e1c3c Update eslint from 8 to 9. (#14157)
* Update eslint from 8 to 9.
2026-02-05 14:20:32 -08:00
116 changed files with 13212 additions and 2664 deletions
+1 -1
View File
@@ -38,5 +38,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node20'
using: 'node24'
main: 'index.js'
+1 -1
View File
@@ -29,5 +29,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node20'
using: 'node24'
main: 'index.js'
+1 -1
View File
@@ -33,5 +33,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node20'
using: 'node24'
main: 'index.js'
+1 -1
View File
@@ -43,5 +43,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node20'
using: 'node24'
main: 'index.js'
+652 -702
View File
File diff suppressed because it is too large Load Diff
+5 -3
View File
@@ -15,7 +15,7 @@
"@octokit/rest": "^21.1.1",
"@slack/web-api": "^6.9.1",
"applicationinsights": "^2.5.1",
"axios": "^1.12.1",
"axios": "^1.13.5",
"uuid": "^8.3.2"
},
"devDependencies": {
@@ -39,7 +39,9 @@
"typescript": "^4.7.4",
"yargs": "^17.5.1"
},
"resolutions": {
"minimatch": "^3.0.5"
"overrides": {
"serialize-javascript": "^7.0.4",
"flatted": "^3.4.2",
"fast-xml-parser": "^5.5.7"
}
}
+5 -1
View File
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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: Add Comment
@@ -27,3 +30,4 @@ jobs:
createdAfter: "2024-07-22"
addComment: "Thank you for reporting this issue. Well 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."
addLabels: help wanted
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v3
uses: actions/checkout@v5
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -26,3 +29,4 @@ jobs:
ignoreLabels: Language Service,internal
closeDays: 0
closeComment: "This issue has been closed because the described behavior was determined to be by design."
+5 -1
View File
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v3
uses: actions/checkout@v5
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -28,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."
+5 -2
View File
@@ -6,9 +6,12 @@ on:
pull_request:
branches: [ main ]
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
job:
uses: ./.github/workflows/job-compile-and-test.yml
with:
runner-env: ubuntu-22.04
platform: linux
runner-env: ubuntu-24.04
platform: linux
+5 -2
View File
@@ -6,10 +6,13 @@ on:
pull_request:
branches: [ main ]
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
job:
uses: ./.github/workflows/job-compile-and-test.yml
with:
runner-env: macos-14
runner-env: macos-15
platform: mac
yarn-args: --network-timeout 100000
yarn-args: --network-timeout 100000
+4 -1
View File
@@ -6,9 +6,12 @@ on:
pull_request:
branches: [ main ]
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
job:
uses: ./.github/workflows/job-compile-and-test.yml
with:
runner-env: windows-2022
runner-env: windows-2025
platform: windows
+5 -1
View File
@@ -19,6 +19,9 @@ on:
schedule:
- cron: '29 4 * * 3'
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
analyze:
name: Analyze (${{ matrix.language }})
@@ -56,7 +59,7 @@ jobs:
# 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@v4
uses: actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
@@ -91,3 +94,4 @@ jobs:
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
+5 -1
View File
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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 +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."
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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
@@ -30,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."
setMilestoneId: 30
ignoreMilestoneNames: "*"
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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
@@ -30,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."
milestoneName: Triage
milestoneId: 30
+5 -1
View File
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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: Run Reopener
@@ -31,3 +34,4 @@ jobs:
milestoneName: Triage
setMilestoneId: 28
removeLabels: more votes needed
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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 +29,4 @@ jobs:
ignoreLabels: Language Service,internal
closeDays: 0
closeComment: "This issue has been closed because it is external or not applicable to the extension."
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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
@@ -30,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."
setMilestoneId: 30
ignoreMilestoneNames: "*"
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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
@@ -30,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."
milestoneName: Triage
milestoneId: 30
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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: Add Comment
@@ -27,3 +30,4 @@ jobs:
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."
addLabels: help wanted
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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: Run Reopener
@@ -31,3 +34,4 @@ jobs:
milestoneName: Triage
setMilestoneId: 28
removeLabels: more votes needed
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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 +29,4 @@ jobs:
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."
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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 +29,4 @@ jobs:
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."
+8 -4
View File
@@ -14,17 +14,20 @@ on:
yarn-args:
type: string
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
build:
runs-on: ${{ inputs.runner-env }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Use Node.js 22
- name: Use Node.js 24
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 24
- name: Install Dependencies
run: yarn install ${{ inputs.yarn-args }}
@@ -78,4 +81,5 @@ jobs:
# uses: coactions/setup-xvfb@v1
# with:
# run: yarn test --scenario=MultirootDeadlockTest
# working-directory: Extension
# working-directory: Extension
+5 -1
View File
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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: Run Locker
@@ -25,3 +28,4 @@ jobs:
daysSinceClose: 45
daysSinceUpdate: 3
ignoreLabels: more votes needed,debugger,internal
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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
@@ -29,3 +32,4 @@ jobs:
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."
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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 +31,4 @@ jobs:
closeComment: "This issue has been closed because it needs more information and has not had recent activity."
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."
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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
@@ -29,3 +32,4 @@ jobs:
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."
+5 -1
View File
@@ -8,6 +8,9 @@ on:
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
@@ -15,7 +18,7 @@ jobs:
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 +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."
+7 -19
View File
@@ -31,12 +31,12 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
binskim:
preReleaseVersion: '4.3.1'
@@ -60,6 +60,8 @@ extends:
enabled: true
featureFlags:
autoBaseline: false
settings:
networkIsolationPolicy: Permissive,CFSClean,CFSClean2,CFSClean3
stages:
- stage: build
@@ -79,9 +81,6 @@ extends:
steps:
- checkout: self
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
displayName: Use Yarn 1.x
- task: UseNode@1
displayName: Use Node 22.x
inputs:
@@ -90,11 +89,6 @@ extends:
- script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc
displayName: Delete .npmrc if it exists
- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- script: mkdir $(Build.ArtifactStagingDirectory)\Extension
displayName: Create Extension Staging Directory
@@ -105,9 +99,9 @@ extends:
script: |
export SRC_DIR=$(echo $BUILD_SOURCESDIRECTORY | sed 's|\\|/|g')
cd "$SRC_DIR/Extension"
yarn run vsix-prepublish
npm run vsix-prepublish
if [ $? -ne 0 ]; then
echo "yarn run vsix-prepublish failed, sleeping for 30s before retrying..."
echo "npm run vsix-prepublish failed, sleeping for 30s before retrying..."
sleep 30
exit 1
fi
@@ -115,12 +109,6 @@ extends:
- script: |
cd $(Build.SourcesDirectory)\Extension
vsce package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix
npx @vscode/[email protected] package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix
name: ProcessRunner_12
displayName: Run VSCE to package vsix
- task: Npm@0
displayName: Uninstall vsce
inputs:
command: uninstall
arguments: --global @vscode/vsce
+2 -2
View File
@@ -30,12 +30,12 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
stages:
- stage: stage
+5 -3
View File
@@ -24,13 +24,15 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
settings:
networkIsolationPolicy: Permissive,CFSClean,CFSClean2,CFSClean3
stages:
- stage: package
@@ -44,5 +46,5 @@ extends:
- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack.vsix
vsixName: cpptools-extension-pack
srcDir: ExtensionPack
+5 -3
View File
@@ -24,13 +24,15 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
settings:
networkIsolationPolicy: Permissive,CFSClean,CFSClean2,CFSClean3
stages:
- stage: package
@@ -44,5 +46,5 @@ extends:
- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-themes.vsix
vsixName: cpptools-themes
srcDir: Themes
+36 -13
View File
@@ -11,7 +11,7 @@ parameters:
jobs:
- job: package
displayName: Build ${{ parameters.vsixName }}
displayName: Build ${{ parameters.vsixName }}.vsix
timeoutInMinutes: 30
cancelTimeoutInMinutes: 1
templateContext:
@@ -26,7 +26,7 @@ jobs:
autoBaseline: false
outputs:
- output: pipelineArtifact
displayName: '${{ parameters.vsixName }}'
displayName: '${{ parameters.vsixName }}.vsix'
targetPath: $(Build.ArtifactStagingDirectory)\vsix
artifactName: vsix
@@ -38,24 +38,47 @@ jobs:
inputs:
version: 22.x
- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc
displayName: Delete .npmrc if it exists
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
displayName: Use Yarn 1.x
- task: Bash@3
displayName: Build files
inputs:
targetType: 'inline'
script: |
export SRC_DIR=$(echo $BUILD_SOURCESDIRECTORY | sed 's|\\|/|g')
cd "$SRC_DIR/${{ parameters.srcDir }}"
npm install
if [ $? -ne 0 ]; then
echo "npm install failed, sleeping for 30s before retrying..."
sleep 30
exit 1
fi
retryCountOnTaskFailure: 3
- script: mkdir $(Build.ArtifactStagingDirectory)\vsix
displayName: Create Staging Directory
- script: |
cd $(Build.SourcesDirectory)\${{ parameters.srcDir }}
vsce package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}
npx @vscode/[email protected] package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix
displayName: Run VSCE to package vsix
- task: Npm@0
displayName: Uninstall vsce
# sign the vsix
- script: npx @vscode/[email protected] generate-manifest -i $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.manifest
displayName: generate manifest
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- script: copy $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.manifest $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.signature.p7s
displayName: prepare manifest for signing
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- task: NuGetToolInstaller@1
displayName: Install NuGet
- task: NuGetAuthenticate@1
displayName: Authenticate NuGet
- script: nuget restore $(Build.SourcesDirectory)\Build\signing\SignVsix.proj -PackagesDirectory $(Build.SourcesDirectory)\Build\signing\packages -ConfigFile $(Build.SourcesDirectory)\Build\signing\NuGet.config
displayName: Restore MicroBuild Core
- task: MSBuild@1
displayName: Sign the vsix
inputs:
command: uninstall
arguments: --global @vscode/vsce
solution: $(Build.SourcesDirectory)\Build\signing\SignVsix.proj
msbuildArguments: /p:SignType=${{ parameters.signType }}
+3 -3
View File
@@ -18,12 +18,12 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
stages:
@@ -39,5 +39,5 @@ extends:
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack.vsix
vsixName: cpptools-extension-pack
+3 -3
View File
@@ -18,12 +18,12 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
image: 1ESPT-Windows2025
os: windows
stages:
@@ -39,5 +39,5 @@ extends:
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-themes.vsix
vsixName: cpptools-themes
+1 -7
View File
@@ -21,11 +21,6 @@ jobs:
inputs:
versionSpec: 22.x
- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- task: AzureCLI@2
displayName: Generate AAD_TOKEN
inputs:
@@ -37,8 +32,7 @@ jobs:
Write-Host "##vso[task.setvariable variable=AAD_TOKEN;issecret=true]$aadToken"
- script: |
vsce publish --packagePath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}
npx @vscode/[email protected] publish --skip-duplicate -i $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}.vsix --manifestPath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}.manifest --signaturePath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}.signature.p7s
displayName: Publish to Marketplace
env:
VSCE_PAT: $(AAD_TOKEN)
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="Engineering" value="https://pkgs.dev.azure.com/devdiv/_packaging/MicroBuildToolset/nuget/v3/index.json" />
</packageSources>
</configuration>
-4
View File
@@ -1,4 +0,0 @@
*.js
dist/
vscode*.d.ts
-155
View File
@@ -1,155 +0,0 @@
module.exports = {
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/strict",
],
"env": {
"browser": true,
"es6": true,
"node": true
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": ["tsconfig.json", ".scripts/tsconfig.json"],
"ecmaVersion": 2022,
"sourceType": "module",
"warnOnUnsupportedTypeScriptVersion": false,
},
"plugins": [
"@typescript-eslint",
"eslint-plugin-jsdoc",
"@typescript-eslint/eslint-plugin",
"eslint-plugin-import",
"eslint-plugin-header"
],
"rules": {
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
"camelcase": "off",
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "typeLike",
"format": ["PascalCase"]
}
],
"@typescript-eslint/member-delimiter-style": [
"error",
{
"multiline": {
"delimiter": "semi",
"requireLast": true
},
"singleline": {
"delimiter": "semi",
"requireLast": false
}
}
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extraneous-class": "off",
"no-case-declarations": "off",
"no-useless-escape": "off",
"no-floating-decimal": "error",
"keyword-spacing": ["error", { "before": true, "overrides": { "this": { "before": false } } }],
"arrow-spacing": ["error", { "before": true, "after": true }],
"semi-spacing": ["error", { "before": false, "after": true }],
"no-extra-parens": ["error", "all", { "nestedBinaryExpressions": false, "ternaryOperandBinaryExpressions": false }],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-extra-non-null-assertion": "error",
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/no-unnecessary-qualifier": "error",
"@typescript-eslint/no-unnecessary-type-arguments": "error",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/semi": "error",
"@typescript-eslint/triple-slash-reference": "error",
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/unified-signatures": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/method-signature-style": ["error", "method"],
"@typescript-eslint/space-infix-ops": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
"arrow-body-style": "error",
"comma-dangle": "error",
"comma-spacing": "off",
"@typescript-eslint/comma-spacing": "error",
"constructor-super": "error",
"curly": "error",
"eol-last": "error",
"eqeqeq": [
"error",
"always"
],
"import/no-default-export": "error",
"import/no-unassigned-import": "error",
"jsdoc/no-types": "error",
"new-parens": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-cond-assign": "error",
"no-debugger": "error",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-eval": "error",
"no-fallthrough": "error",
"no-invalid-this": "error",
"no-irregular-whitespace": "error",
"rest-spread-spacing": ["error", "never"],
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1, "maxBOF": 0 }],
"no-new-wrappers": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-trailing-spaces": "error",
"no-multi-spaces": "error",
"no-undef-init": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"space-before-blocks": "error",
"no-var": "error",
"one-var": [
"error",
"never"
],
"prefer-const": "error",
"prefer-object-spread": "error",
"space-in-parens": [
"error",
"never"
],
"spaced-comment": [
"off",
"always",
{ "line": { "exceptions": ["/"] } } // triple slash directives
],
"use-isnan": "error",
"valid-typeof": "error",
"yoda": "error",
"space-infix-ops": "error",
"header/header": [
"warn",
"block",
[
" --------------------------------------------------------------------------------------------",
" * Copyright (c) Microsoft Corporation. All Rights Reserved.",
" * See 'LICENSE' in the project root for license information.",
" * ------------------------------------------------------------------------------------------ "
],
],
}
};
+9 -6
View File
@@ -18,18 +18,20 @@ export async function main() {
}
export async function all() {
await rimraf(...(await getModifiedIgnoredFiles()).filter(each => !each.includes('node_modules')));
await rimraf(...(await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined && !each.includes('node_modules')));
}
export async function reset() {
verbose(`Resetting all .gitignored files in extension`);
await rimraf(...await getModifiedIgnoredFiles());
await rimraf(...(await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined));
}
async function details(files: string[]) {
let all = await Promise.all(files.filter(each => each).map(async (each) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [filename, stats ] = await filepath.stats(each);
const results = await Promise.all(files.filter(each => each).map(async (each) => {
const [, stats] = await filepath.stats(each);
if (!stats) {
return null;
}
return {
filename: stats.isDirectory() ? cyan(`${each}${sep}**`) : brightGreen(`${each}`),
date: stats.mtime.toLocaleDateString().replace(/\b(\d)\//g, '0$1\/'),
@@ -37,6 +39,7 @@ async function details(files: string[]) {
modified: stats.mtime
};
}));
let all = results.filter((each): each is NonNullable<typeof each> => each !== null);
all = all.sort((a, b) => a.modified.getTime() - b.modified.getTime());
// print a formatted table so the date and time are aligned
const max = all.reduce((max, each) => Math.max(max, each.filename.length), 0);
@@ -56,7 +59,7 @@ export async function show(opt?: string) {
case 'ignored':
case 'untracked':
console.log(cyan('\n\nUntracked+Ignored files:'));
return details(await getModifiedIgnoredFiles());
return details((await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined));
default:
return error(`Unknown option '${opt}'`);
+7 -4
View File
@@ -54,11 +54,12 @@ export async function getModifiedIgnoredFiles() {
}
// return the full path of files that would be removed.
// eslint-disable-next-line @typescript-eslint/no-misused-promises
return Promise.all(stdio.filter("Would remove").map((s) => filepath.exists(s.replace(/^Would remove /, ''), $root)).filter(p => p));
}
export async function rimraf(...paths: string[]) {
const all = [];
const all: Promise<void>[] = [];
for (const each of paths) {
if (!each) {
continue;
@@ -82,6 +83,9 @@ export async function mkdir(filePath: string) {
}
throw new Error(`Cannot create directory '${filePath}' because there is a file there.`);
}
if (!fullPath) {
throw new Error(`Cannot create directory '${filePath}' because the path is invalid.`);
}
await md(fullPath, { recursive: true });
return fullPath;
@@ -258,7 +262,7 @@ export function position(text: string) {
return gray(`${text}`);
}
export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string> {
export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string | undefined> {
oneOrMoreFolders = is.array(oneOrMoreFolders) ? oneOrMoreFolders : [oneOrMoreFolders];
for (const each of oneOrMoreFolders) {
const result = await filepath.isFolder(each, $root);
@@ -275,7 +279,7 @@ export async function assertAnyFolder(oneOrMoreFolders: string | string[], error
}
}
export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string> {
export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string | undefined> {
oneOrMoreFiles = is.array(oneOrMoreFiles) ? oneOrMoreFiles : [oneOrMoreFiles];
for (const each of oneOrMoreFiles) {
const result = await filepath.isFile(each, $root);
@@ -325,7 +329,6 @@ export async function checkDTS() {
let failing = false;
failing = !await assertAnyFile('vscode.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.d.ts is missing.`)) || failing;
failing = !await assertAnyFile('vscode.proposed.terminalDataWriteEvent.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.terminalDataWriteEvent.d.ts is missing.`)) || failing;
failing = !await assertAnyFile('vscode.proposed.lmTools.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.lmTools.d.ts is missing.`)) || failing;
if (!failing) {
verbose('VSCode d.ts files appear to be in place.');
+1 -1
View File
@@ -19,7 +19,7 @@ export async function watch() {
verbose(`Watching ${source} folder for changes.`);
console.log('Press Ctrl+C to exit.');
// eslint-disable-next-line @typescript-eslint/no-unused-vars
for await (const event of watchFiles(source, {recursive: true })) {
for await (const event of watchFiles(source, { recursive: true })) {
await main();
}
}
@@ -3,8 +3,6 @@
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
/* eslint-disable no-prototype-builtins */
import { resolve } from 'path';
import { $root, read, write } from './common';
+6 -5
View File
@@ -75,7 +75,7 @@ filterStdio();
async function unitTests() {
await assertAnyFolder('dist/test/unit', `The folder '${$root}/dist/test/unit is missing. You should run ${brightGreen("yarn compile")}\n\n`);
const mocha = await assertAnyFile(["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`);
const result = spawnSync(mocha, [`${$root}/dist/test/unit/**/*.test.js`, '--timeout', '30000'], { stdio:'inherit', shell: true });
const result = spawnSync(mocha, [`${$root}/dist/test/unit/**/*.test.js`, '--timeout', '30000'], { stdio: 'inherit', shell: true });
verbose(`\n${green("NOTE:")} If you want to run a scenario test (end-to-end) use ${cmdSwitch('scenario=<NAME>')} \n\n`);
return result.status;
}
@@ -161,23 +161,24 @@ interface Input {
id: string;
type: string;
description: string;
options: CommentArray<{label: string; value: string}>;
options: CommentArray<{ label: string; value: string }>;
}
export async function getScenarioNames() {
return (await readdir(`${$root}/test/scenarios`).catch(returns.none)).filter(each => each !== 'Debugger');
}
export async function getScenarioFolder(scenarioName: string) {
export async function getScenarioFolder(scenarioName: string | undefined) {
return scenarioName ? resolve(`${$root}/test/scenarios/${(await getScenarioNames()).find(each => each.toLowerCase() === scenarioName.toLowerCase())}`) : undefined;
}
export async function list() {
console.log(`\n${cyan("Scenarios: ")}\n`);
const names = await getScenarioNames();
const max = names.reduce((max, each) => Math.max(max, each), 0);
const max = names.reduce((max, each) => Math.max(max, each.length), 0);
for (const each of names) {
console.log(` ${green(each.padEnd(max))}: ${gray(await getScenarioFolder(each))}`);
const folder = await getScenarioFolder(each);
console.log(` ${green(each.padEnd(max))}: ${gray(folder || '')}`);
}
}
+2 -1
View File
@@ -7,6 +7,7 @@
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"esModuleInterop": true
"esModuleInterop": true,
"strictNullChecks": true
}
}
+1 -2
View File
@@ -29,8 +29,7 @@ jobs/**
cgmanifest.json
# ignore development files
.eslintignore
.eslintrc.js
eslint.config.js
.gitattributes
.gitignore
gulpfile.js
+31
View File
@@ -0,0 +1,31 @@
{
"name": "cpptools-yarn-bootstrap",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cpptools-yarn-bootstrap",
"version": "1.0.0",
"license": "SEE LICENSE IN LICENSE.txt",
"devDependencies": {
"yarn": "1.22.22"
}
},
"node_modules/yarn": {
"version": "1.22.22",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/yarn/-/yarn-1.22.22.tgz",
"integrity": "sha1-rDRUnmqo5+rUY6dAfhxzkPYaZhA=",
"dev": true,
"hasInstallScript": true,
"license": "BSD-2-Clause",
"bin": {
"yarn": "bin/yarn.js",
"yarnpkg": "bin/yarn.js"
},
"engines": {
"node": ">=4.0.0"
}
}
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"name": "cpptools-yarn-bootstrap",
"private": true,
"version": "1.0.0",
"description": "Install Yarn from internal npm feed for repository bootstrap.",
"license": "SEE LICENSE IN LICENSE.txt",
"devDependencies": {
"yarn": "1.22.22"
}
}
+25
View File
@@ -1,5 +1,30 @@
# C/C++ for Visual Studio Code Changelog
## Version 1.31.3: March 24, 2026
### Enhancements
* Add support for `program` in attach debug configurations. [#14046](https://github.com/microsoft/vscode-cpptools/issues/14046)
* Thanks for the contribution. [@Subham-KRLX (Subham)](https://github.com/Subham-KRLX) [PR #14108](https://github.com/microsoft/vscode-cpptools/pull/14108)
* Remove unnecessary `console.debug` logging. [#14294](https://github.com/microsoft/vscode-cpptools/issues/14294)
* Update clang-tidy and clang-format from 21.1.4 to 22.1.1.
* Update support for the latest compiler versions.
* Update SQLite to the latest version.
### Bug Fixes
* Fix an IntelliSense error with deducing `this` (explicit object member functions) with conversion operators. [#14140](https://github.com/microsoft/vscode-cpptools/issues/14140)
* Fix `embed-dir` compiler arguments not being handled for IntelliSense. [#14154](https://github.com/microsoft/vscode-cpptools/issues/14154)
* Fix workspace symbol search with `scope::variable` not working after symbols are deleted and then added back. [#14200](https://github.com/microsoft/vscode-cpptools/issues/14200)
* Fix bugs where a path was checked for existence but not whether it was a file or a folder. [#14257](https://github.com/microsoft/vscode-cpptools/issues/14257)
* Fix the Call Hierarchy Callers Of progress UI not showing. [#14287](https://github.com/microsoft/vscode-cpptools/issues/14287)
* Fix an IntelliSense crash when using GCC 16 `span` and `string`. [#14309](https://github.com/microsoft/vscode-cpptools/issues/14309)
* Fix `_CONTROL_FLOW_GUARD` not being defined when `/guard:cf` is used in MSVC mode. [#14310](https://github.com/microsoft/vscode-cpptools/issues/14310)
* Add IntelliSense support for `__builtin_is_implicit_lifetime`.
* Fix three IntelliSense process crashes.
* Fix some missing translations.
## Version 1.30.5: February 9, 2026
### Bug Fix
* Fix a potential language server deadlock after editing code.
## Version 1.30.4: February 3, 2026
### Bug Fix
* Fix signing of MIEngine. [PR MIEngine#1544](https://github.com/microsoft/MIEngine/pull/1544)
+1 -1
View File
@@ -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.
File diff suppressed because it is too large Load Diff
+14 -14
View File
@@ -1,14 +1,14 @@
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1950",
"-D_MSC_VER=1950",
"-D_MSC_FULL_VER=195035717",
"-D_MSC_BUILD=0",
"-D_M_ARM=7"
],
"defaults_op": "merge"
}
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1951",
"-D_MSC_VER=1951",
"-D_MSC_FULL_VER=195136122",
"-D_MSC_BUILD=0",
"-D_M_ARM=7"
],
"defaults_op": "merge"
}
+15 -15
View File
@@ -1,15 +1,15 @@
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1950",
"-D_CPPUNWIND=1",
"-D_MSC_VER=1950",
"-D_MSC_FULL_VER=195035717",
"-D_MSC_BUILD=0",
"-D_M_ARM64=1"
],
"defaults_op": "merge"
}
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1951",
"-D_CPPUNWIND=1",
"-D_MSC_VER=1951",
"-D_MSC_FULL_VER=195136122",
"-D_MSC_BUILD=0",
"-D_M_ARM64=1"
],
"defaults_op": "merge"
}
+16 -16
View File
@@ -1,16 +1,16 @@
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1950",
"-D_CPPUNWIND=1",
"-D_MSC_VER=1950",
"-D_MSC_FULL_VER=195035717",
"-D_MSC_BUILD=0",
"-D_M_X64=100",
"-D_M_AMD64=100"
],
"defaults_op": "merge"
}
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1951",
"-D_CPPUNWIND=1",
"-D_MSC_VER=1951",
"-D_MSC_FULL_VER=195136122",
"-D_MSC_BUILD=0",
"-D_M_X64=100",
"-D_M_AMD64=100"
],
"defaults_op": "merge"
}
+15 -15
View File
@@ -1,15 +1,15 @@
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1950",
"-D_MSC_VER=1950",
"-D_MSC_FULL_VER=195035717",
"-D_MSC_BUILD=0",
"-D_M_IX86=600",
"-D_M_IX86_FP=2"
],
"defaults_op": "merge"
}
{
"defaults": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version",
"1951",
"-D_MSC_VER=1951",
"-D_MSC_FULL_VER=195136122",
"-D_MSC_BUILD=0",
"-D_M_IX86=600",
"-D_M_IX86_FP=2"
],
"defaults_op": "merge"
}
+136
View File
@@ -0,0 +1,136 @@
const js = require("@eslint/js");
const tseslint = require("@typescript-eslint/eslint-plugin");
const tsparser = require("@typescript-eslint/parser");
const jsdoc = require("eslint-plugin-jsdoc");
const eslintImport = require("eslint-plugin-import");
module.exports = [
{
ignores: ["dist/", "vscode*.d.ts", "**/*.js"],
},
{
files: ["**/*.ts", "**/*.tsx"],
languageOptions: {
parser: tsparser,
parserOptions: {
projectService: true,
tsconfigRootDir: __dirname,
},
globals: {
window: "readonly",
document: "readonly",
console: "readonly",
process: "readonly",
module: "readonly",
require: "readonly",
global: "readonly",
__dirname: "readonly",
exports: "readonly",
},
},
plugins: {
"@typescript-eslint": tseslint,
jsdoc,
import: eslintImport,
},
rules: {
// TypeScript-specific rules
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
"@typescript-eslint/method-signature-style": ["error", "method"],
"@typescript-eslint/naming-convention": [
"error",
{
selector: "typeLike",
format: ["PascalCase"]
}
],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extraneous-class": "off",
"@typescript-eslint/no-extra-non-null-assertion": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
"@typescript-eslint/no-unnecessary-qualifier": "error",
"@typescript-eslint/no-unnecessary-type-arguments": "error",
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/triple-slash-reference": "error",
"@typescript-eslint/unified-signatures": "error",
// Core ESLint rules
"camelcase": "off",
"no-case-declarations": "off",
"no-useless-escape": "off",
"no-floating-decimal": "error",
"keyword-spacing": ["error", { before: true, overrides: { this: { before: false } } }],
"arrow-spacing": ["error", { before: true, after: true }],
"semi-spacing": ["error", { before: false, after: true }],
"no-extra-parens": ["error", "all", { nestedBinaryExpressions: false, ternaryOperandBinaryExpressions: false }],
"arrow-body-style": "error",
"comma-dangle": "error",
"comma-spacing": "error",
"constructor-super": "error",
"curly": "error",
"eol-last": "error",
"eqeqeq": ["error", "always"],
"new-parens": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-cond-assign": "error",
"no-debugger": "error",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-eval": "error",
"no-fallthrough": "error",
"no-invalid-this": "error",
"no-irregular-whitespace": "error",
"rest-spread-spacing": ["error", "never"],
"no-multiple-empty-lines": ["error", { max: 1, maxEOF: 1, maxBOF: 0 }],
"no-new-wrappers": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-trailing-spaces": "error",
"no-multi-spaces": "error",
"no-undef-init": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"no-unused-vars": "off",
"space-before-blocks": "error",
"no-var": "error",
"one-var": ["error", "never"],
"prefer-const": "error",
"prefer-object-spread": "error",
"space-in-parens": ["error", "never"],
"spaced-comment": ["off", "always", { line: { exceptions: ["/"] } }],
"use-isnan": "error",
"valid-typeof": "error",
"yoda": "error",
"space-infix-ops": "error",
// Import rules
"import/no-default-export": "error",
"import/no-unassigned-import": "error",
// JSDoc rules
"jsdoc/no-types": "error",
},
},
{
// Apply JS recommended rules only to JS files
...js.configs.recommended,
files: ["**/*.{js,mjs,cjs}"]
},
];
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "通过单独的 IntelliSense 流程提供上下文感知结果。",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "提供非上下文感知的“模糊”结果。",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "关闭 C/C++ 语言服务功能。",
"c_cpp.configuration.autocomplete.markdownDescription": "控制自动完成提供程序。如果 `disabled`,且你想要基于字词的补全功能,则还需要设置 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (`c` 和 `cuda-cpp` 语言也类似)。",
"c_cpp.configuration.autocomplete.markdownDescription": "控制自动完成提供程序。如果值为 `disabled`且你想要基于字词的补全功能,则还需要设置 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (`c` 和 `cuda-cpp` 语言也类似)。",
"c_cpp.configuration.autocomplete.default.description": "使用活动的 IntelliSense 引擎。",
"c_cpp.configuration.autocomplete.disabled.description": "使用 Visual Studio Code 提供的基于字词的补全。",
"c_cpp.configuration.errorSquiggles.description": "控制是否将 IntelliSense 引擎检测到的可疑编译错误报告回编辑器。还控制是否报告代码分析警告(如果找不到包含)。标记分析器引擎将忽略此设置。",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "如果为 true,则禁用集成终端支持所需的调试对象控制台重定向。",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "传递到调试引擎的可选源文件映射。示例: `{ \"<原始源路径>\": \"<当前源路径>\" }`。",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "要将调试程序附加到的可选进程 ID。使用 `${command:pickProcess}` 获取要附加到的本地运行进程的列表。请注意,一些平台需要管理员权限才能附加到进程。",
"c_cpp.debuggers.symbolSearchPath.description": "用于搜索符号(即 pdb)文件的目录列表(以分号分隔)。示例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.program.attach.markdownDescription": "程序可执行文件的完整路径。调试器将搜索与此可执行文件路径匹配的正在运行的进程并附加到该进程。如果多个进程匹配,将显示选择提示。加载附加进程的调试符号需要此字段。",
"c_cpp.debuggers.symbolSearchPath.description": "用于搜索符号(即 pdb 或 .so)文件的目录的分号分隔列表。示例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.dumpPath.description": "指定程序的转储文件的可选完整路径。例如: \"c:\\temp\\app.dmp\"。默认为 null。",
"c_cpp.debuggers.enableDebugHeap.description": "如果为 false,将在禁用调试堆的情况下启动该进程。这会将环境变量 \"_NO_DEBUG_HEAP\" 设置为 \"1\"。",
"c_cpp.debuggers.symbolLoadInfo.description": "对符号加载的显式控制。",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "透過單獨的 IntelliSense 處理序提供內容感知結果。",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "提供不屬於內容意識的 `模糊` 結果。",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "關閉 C/C++ 語言服務功能。",
"c_cpp.configuration.autocomplete.markdownDescription": "控制自動完成提供者。若設為 `disabled` 且您想要以文字方式完成,您也必須設定 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (且 `c` 及 `cuda-cpp` 語言也相同)。",
"c_cpp.configuration.autocomplete.markdownDescription": "控制自動完成提供者。若設為 `disabled` 且您想要以文字方式完成,您也必須設定 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <>}` (且 `c` 及 `cuda-cpp` 語言也相同)。",
"c_cpp.configuration.autocomplete.default.description": "使用作用中 IntelliSense 引擎。",
"c_cpp.configuration.autocomplete.disabled.description": "使用 Visual Studio Code 所提供的文字型完成。",
"c_cpp.configuration.errorSquiggles.description": "該設定會控制是否將 IntelliSense 引擎偵測到的可疑編譯錯誤回報給編輯器。其也會在找不到內容時,控制是否回報程式碼分析警告。標籤剖析器引擎已忽略此設定。",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "若為 true,則停用整合式終端機支援需要的偵錯項目主控台重新導向。",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "傳遞至偵錯引擎的選擇性來源檔案對應。範例: `{ \"<原始來源路徑>\": \"<目前來源路徑>\" }`。",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "要附加偵錯工具的選擇性處理序識別碼。使用 `${command:pickProcess}` 可取得要附加的本機執行中處理序清單。請注意,某些平台需要系統管理員權限才能附加至處理序。",
"c_cpp.debuggers.symbolSearchPath.description": "要用於搜尋符號 (即 pdb) 檔案的目錄清單 (以分號分隔)。範例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.program.attach.markdownDescription": "程式可執行檔的完整路徑。偵錯工具會搜尋符合此可執行路徑的執行中處理序,並連結至該處理序。如果有多個處理序相符,將會顯示選取提示。這是載入已連結處理序之偵錯符號的必要欄位。",
"c_cpp.debuggers.symbolSearchPath.description": "要用於搜尋符號 (即 pdb 或 .so) 檔案的目錄清單 (以分號分隔)。範例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.dumpPath.description": "指定程式之傾印檔案的選擇性完整路徑。範例: \"c:\\temp\\app.dmp\"。預設為 null。",
"c_cpp.debuggers.enableDebugHeap.description": "若為 false,將會啟動已停用偵錯堆積的處理序。這會將環境變數 '_NO_DEBUG_HEAP' 設為 '1'。",
"c_cpp.debuggers.symbolLoadInfo.description": "符號載入的明確控制。",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Pokud se nastaví na true, zakáže přesměrování konzoly laděného procesu, které se vyžaduje pro podporu integrovaného terminálu.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Ladicímu modulu se předala volitelná mapování zdrojových souborů. Příklad: `{ \"<původní cesta ke zdroji>\": \"<aktuální cesta ke zdroji>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Nepovinné ID procesu, ke kterému se má ladicí program připojit. Pokud chcete získat seznam místních spuštěných procesů, ke kterým se dá připojit, použijte `${command:pickProcess}`. Poznámka: Některé platformy vyžadují pro připojení k procesu oprávnění správce.",
"c_cpp.debuggers.symbolSearchPath.description": "Seznam středníkem oddělených adresářů, ve kterých se budou hledat soubory symbolů (tj. soubory pdb). Příklad: c:\\dir1;c:\\dir2",
"c_cpp.debuggers.program.attach.markdownDescription": "Úplná cesta ke spustitelnému souboru programu. Ladicí program vyhledá spuštěný proces odpovídající této cestě spustitelného souboru a připojí se k němu. Pokud se více procesů shoduje, zobrazí se výzva k výběru. Toto pole se vyžaduje k načtení symbolů ladění pro připojený proces.",
"c_cpp.debuggers.symbolSearchPath.description": "Seznam středníkem oddělených adresářů, ve kterých se budou hledat soubory symbolů (tj. soubory pdb nebo .so). Příklad: c:\\dir1;c:\\dir2.",
"c_cpp.debuggers.dumpPath.description": "Volitelná úplná cesta k souboru výpisu pro zadaný program. Příklad: c:\\temp\\app.dmp. Výchozí hodnota je null.",
"c_cpp.debuggers.enableDebugHeap.description": "Když se nastaví na false, proces se spustí se zakázanou haldou ladění. Tato možnost nastaví proměnnou prostředí _NO_DEBUG_HEAP na 1.",
"c_cpp.debuggers.symbolLoadInfo.description": "Explicitní řízení načítání symbolů",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "Stellt kontextbezogene Ergebnisse über einen separaten IntelliSense-Prozess bereit.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "Stellt „Fuzzy“-Ergebnisse bereit, die nicht kontextbezogen sind.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "Deaktiviert die Features des C/C++-Sprachdiensts.",
"c_cpp.configuration.autocomplete.markdownDescription": "Steuert den Anbieter für AutoVervollständigen. Wenn `disabled` festgelegt ist und Sie die wortbasierte Vervollständigung wünschen, müssen Sie auch `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` festlegen (und analog auch für die Sprachen `c` und `cuda-cpp`).",
"c_cpp.configuration.autocomplete.markdownDescription": "Steuert den Anbieter für AutoVervollständigen. Wenn `disabled` festgelegt ist und Sie die wortbasierte Vervollständigung wünschen, müssen Sie auch `\"[cpp]\": {\"editor.wordBasedSuggestions\": <Wert>}` festlegen (und analog auch für die Sprachen `c` und `cuda-cpp`).",
"c_cpp.configuration.autocomplete.default.description": "Verwendet das aktive IntelliSense-Modul.",
"c_cpp.configuration.autocomplete.disabled.description": "Verwendet die von Visual Studio Code bereitgestellte wortbasierte Vervollständigung.",
"c_cpp.configuration.errorSquiggles.description": "Steuert, ob vermutete Kompilierungsfehler, die von der IntelliSense-Engine erkannt wurden, an den Editor zurückgegeben werden. Außerdem wird gesteuert, ob Codeanalysewarnungen gemeldet werden, wenn keine Enthaltenen gefunden werden können. Diese Einstellung wird von der Tagparser-Engine ignoriert.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Wenn dieser Wert auf TRUE festgelegt ist, wird für die zu debuggende Komponente die Konsolenumleitung deaktiviert, die für die Unterstützung des integrierten Terminals erforderlich ist.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Optionale Quelldateizuordnungen, die an die Debug-Engine übergeben werden. Beispiel: `{ \"<ursprünglicher Quellpfad>\": \"<aktueller Quellpfad>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Optionale Prozess-ID, an die der Debugger angefügt werden soll. Verwenden Sie `${command:pickProcess}`, um eine Liste der lokalen ausgeführten Prozesse abzurufen, an die das Anfügen möglich ist. Beachten Sie, dass für einige Plattformen Administratorrechte erforderlich sind, damit an einen Prozess angefügt werden kann.",
"c_cpp.debuggers.symbolSearchPath.description": "Durch Semikolons getrennte Liste von Verzeichnissen, die für die Suche nach Symboldateien (PDB-Dateien) verwendet werden sollen. Beispiel: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Vollständiger Pfad zur ausführbaren Programmdatei. Der Debugger sucht nach einem laufenden Prozess, der diesem ausführbaren Pfad entspricht, und bindet ihn an. Wenn mehrere Prozesse übereinstimmen, wird eine Auswahlaufforderung angezeigt. Dieses Feld ist erforderlich, um Debugsymbole für den angehängten Prozess zu laden.",
"c_cpp.debuggers.symbolSearchPath.description": "Durch Semikolons getrennte Liste von Verzeichnissen, die für die Suche nach Symboldateien (d. h. PDB- oder .so-Dateien) verwendet werden sollen. Beispiel: „c:\\dir1;c:\\dir2“.",
"c_cpp.debuggers.dumpPath.description": "Optionaler vollständiger Pfad zu einer Dumpdatei für das angegebene Programm. Beispiel: \"c:\\temp\\app.dmp\". Standardwert ist NULL.",
"c_cpp.debuggers.enableDebugHeap.description": "Wenn dieser Wert auf FALSE festgelegt ist, wird der Prozess mit deaktiviertem Debug-Heap gestartet. Hiermit wird die Umgebungsvariable \"_NO_DEBUG_HEAP\" auf \"1\" festgelegt.",
"c_cpp.debuggers.symbolLoadInfo.description": "Explizite Steuerung des Symbolladevorgangs.",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Si se establece en true, se deshabilita la redirección de la consola del depurado necesaria para la compatibilidad con el terminal integrado.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Asignaciones de archivo de origen opcionales pasadas al motor de depuración. Ejemplo: `{ \"<ruta de origen original>\": \"<ruta de origen actual>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Id. de proceso opcional al que debe asociarse el depurador. Use `${command:pickProcess}` para obtener una lista de los procesos locales en ejecución a los que se puede asociar. Tenga en cuenta que algunas plataformas requieren privilegios de administrador para poder asociar el depurador a un proceso.",
"c_cpp.debuggers.symbolSearchPath.description": "Lista de directorios separados por punto y coma que debe usarse para buscar archivos de símbolos (es decir, pdb). Ejemplo: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Ruta de acceso completa al ejecutable del programa. El depurador buscará un proceso en ejecución que coincida con esta ruta de acceso ejecutable y se asociará a él. Si coinciden varios procesos, se mostrará un mensaje de selección. Este campo es necesario para cargar símbolos de depuración para el proceso adjunto.",
"c_cpp.debuggers.symbolSearchPath.description": "Lista separada por punto y coma de directorios que se van a usar para buscar archivos de símbolos (es decir, pdb o .so). Ejemplo: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "Ruta de acceso completa opcional a un archivo de volcado de memoria para el programa especificado. Ejemplo: \"c:\\temp\\app.dmp\". El valor predeterminado es null.",
"c_cpp.debuggers.enableDebugHeap.description": "Si se establece en false, el proceso se iniciará con el montón de depuración deshabilitado. Esta opción establece la variable de entorno \"_NO_DEBUG_HEAP\" en \"1\".",
"c_cpp.debuggers.symbolLoadInfo.description": "Control explícito de la carga de símbolos.",
@@ -15,7 +15,7 @@
"reinstall.extension.text4": "Exemples de chemins daccès aux répertoires dextension C/C++ installés :",
"reinstall.extension.text5": "Sur Windows :",
"reinstall.extension.text6": "Sur Linux :",
"reinstall.extension.text7": "Réinstallez ensuite via linterface utilisateur de la Place de marché dans VS Code.",
"reinstall.extension.text8": "Si la version correcte de lextension ne peut pas être déployée par VS Code, le VSIX approprié pour votre système peut être {0} et installé à laide de loption 'Installer à partir de VSIX...' sous le menu '...' de linterface utilisateur de la Place de marché dans VS Code.",
"download.vsix.link.title": "téléchargé à partir du site web de la place de marché VS Code"
"reinstall.extension.text7": "Réinstallez ensuite via linterface utilisateur du Marketplace dans VS Code.",
"reinstall.extension.text8": "Si la version correcte de lextension ne peut pas être déployée par VS Code, le VSIX approprié pour votre système peut être {0} et installé à laide de loption 'Installer à partir de VSIX...' sous le menu '...' de linterface utilisateur du Marketplace dans VS Code.",
"download.vsix.link.title": "téléchargé à partir du site web du Marketplace VS Code"
}
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Si la valeur est true, désactive la redirection de la console de l'élément débogué nécessaire pour prendre en charge le terminal intégré.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Mappages de fichiers sources facultatifs passés au moteur de débogage. Exemple : `{ \"<chemin source dorigine>\": \"<chemin source actuel>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "ID de processus facultatif auquel attacher le débogueur. Utilisez `${command:pickProcess}` pour obtenir la liste des processus locaux en cours d'exécution à attacher. Notez que certaines plateformes nécessitent des privilèges d'administrateur(-trice) pour attacher un processus.",
"c_cpp.debuggers.symbolSearchPath.description": "Liste de répertoires séparés par des points-virgules à utiliser pour rechercher les fichiers de symboles (c'est-à-dire, pdb). Exemple : \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Chemin complet du programme exécutable. Le débogueur recherche un processus en cours dexécution correspondant à ce chemin et sy attache. Si plusieurs processus correspondent, une invite de sélection saffiche. Ce champ est obligatoire pour charger les symboles de débogage du processus attaché.",
"c_cpp.debuggers.symbolSearchPath.description": "Liste de répertoires séparés par des points-virgules à utiliser pour rechercher les fichiers de symboles (c'est-à-dire, pdb ou .so). Exemple : « c:\\dir1;c:\\dir2 ».",
"c_cpp.debuggers.dumpPath.description": "Chemin complet facultatif d'un fichier d'image mémoire pour le programme spécifié. Exemple : \"c:\\temp\\app.dmp\". La valeur par défaut est null.",
"c_cpp.debuggers.enableDebugHeap.description": "Si la valeur est false, le processus est lancé avec le tas de débogage désactivé. Cette valeur définit la variable d'environnement '_NO_DEBUG_HEAP' sur '1'.",
"c_cpp.debuggers.symbolLoadInfo.description": "Contrôle explicite du chargement des symboles.",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "Fornisce risultati compatibili con il contesto tramite un processo IntelliSense separato.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "Fornisce risultati 'fuzzy' che non sono compatibili con il contesto.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "Disattiva le funzionalità del servizio di linguaggio C/C++.",
"c_cpp.configuration.autocomplete.markdownDescription": "Controlla il provider di completamento automatico. Se è `disabled` e si vuole il completamento basato sulle parole, sarà necessario impostare anche `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (e analogamente per i linguaggi `c` e `cuda-cpp`).",
"c_cpp.configuration.autocomplete.markdownDescription": "Controlla il provider di completamento automatico. Se è `disabled` e desideri il completamento basato sulle parole, dovrai impostare anche `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (e analogamente per i linguaggi `c` e `cuda-cpp`).",
"c_cpp.configuration.autocomplete.default.description": "Usa il motore IntelliSense attivo.",
"c_cpp.configuration.autocomplete.disabled.description": "Usa il completamento basato su parole fornito da Visual Studio Code.",
"c_cpp.configuration.errorSquiggles.description": "Controlla se i possibili errori di compilazione rilevati dal motore IntelliSense verranno segnalati all'editor. Controlla inoltre se vengono segnalati avvisi di analisi del codice se non è possibile trovare le inclusioni. Questa impostazione viene ignorata dal motore del parser di tag.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Se è true, disabilita il reindirizzamento della console dell'oggetto del debug richiesto per il supporto del terminale integrato.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Mapping di file di origine facoltativi passati al motore di debug. Esempio: `{ \"<percorso di origine iniziale>\": \"<percorso di origine corrente>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "ID processo facoltativo a cui collegare il debugger. Usare `${command:pickProcess}` per ottenere un elenco dei processi locali in esecuzione a cui collegarsi. Tenere presente che alcune piattaforme richiedono privilegi di amministratore per collegarsi a un processo.",
"c_cpp.debuggers.symbolSearchPath.description": "Elenco di directory delimitate da punto e virgola da usare per la ricerca di file di simboli, ovvero PDB. Esempio: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Percorso completo dell'eseguibile del programma. Il debugger cercherà un processo in esecuzione che corrisponde a questo percorso dell'eseguibile e vi si collegherà. Se più processi corrispondono, verrà mostrato un prompt per la selezione. Questo campo è necessario per caricare i simboli di debug del processo collegato.",
"c_cpp.debuggers.symbolSearchPath.description": "Elenco di directory delimitate da punto e virgola da usare per la ricerca di file di simboli, ovvero PDB o .SO. Esempio: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "Percorso completo facoltativo di un file dump per il programma specificato. Esempio: \"c:\\temp\\app.dmp\". L'impostazione predefinita è Null.",
"c_cpp.debuggers.enableDebugHeap.description": "Se è false, il processo verrà avviato con l'heap di debug disabilitato. Imposta la variabile di ambiente '_NO_DEBUG_HEAP' su '1'.",
"c_cpp.debuggers.symbolLoadInfo.description": "Controllo esplicito del caricamento dei simboli.",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "true の場合、統合ターミナルのサポートに必要なデバッグ対象のコンソール リダイレクトが無効になります。",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "デバッグ エンジンに渡されるオプションのソース ファイル マッピング。例: `{ \"<元のソース パス>\": \"<現在のソース パス>\" }`。",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "デバッガーをアタッチするためのオプションのプロセス ID。ローカルで実行される、アタッチ先プロセスのリストを取得するには、`${command:pickProcess}` を使用します。一部のプラットフォームでは、プロセスにアタッチするために管理者特権が必要となることに注意してください。",
"c_cpp.debuggers.symbolSearchPath.description": "シンボル (つまり、pdb) ファイルの検索に使用する、セミコロンで区切られたディレクトリの一覧です。例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.program.attach.markdownDescription": "プログラム実行可能ファイルへの完全なパス。デバッガーは、この実行可能ファイルのパスに一致する実行中のプロセスを検索し、アタッチします。複数のプロセスが一致する場合は、選択プロンプトが表示されます。アタッチされたプロセスのデバッグ シンボルを読み込むには、このフィールドが必要です。",
"c_cpp.debuggers.symbolSearchPath.description": "シンボル (つまり pdb または .so) ファイルの検索に使用する、セミコロンで区切られたディレクトリの一覧です。例: \"c:\\dir1;c:\\dir2\"。",
"c_cpp.debuggers.dumpPath.description": "指定したプログラムのダンプ ファイルへの完全なパスです (オプション)。例: \"c:\\temp\\app.dmp\"。既定値は null です。",
"c_cpp.debuggers.enableDebugHeap.description": "false の場合、プロセスはデバッグ ヒープを無効にして起動します。これにより、環境変数 '_NO_DEBUG_HEAP' は '1' に設定されます。",
"c_cpp.debuggers.symbolLoadInfo.description": "シンボルの読み込みを明示的に制御します。",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "별도의 IntelliSense 프로세스를 통해 컨텍스트 인식 결과를 제공합니다.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "\"유사\" 결과를 제공합니다. 컨텍스트를 인식하지 않는 결과입니다.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "C/C++ 언어 서비스 기능을 해제합니다.",
"c_cpp.configuration.autocomplete.markdownDescription": "자동 완성 공급자를 제어합니다. `disabled`에서 단어 기반 완성을 원할 경우 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}`를 설정해야 합니다(`c`와 `cuda-cpp` 언어도 동일).",
"c_cpp.configuration.autocomplete.markdownDescription": "자동 완성 공급자를 제어합니다. `disabled`에서 단어 기반 완성을 원할 경우 `\"[cpp]\": {\"editor.wordBasedSuggestions\": <>}`를 설정해야 합니다(`c`와 `cuda-cpp` 언어도 동일).",
"c_cpp.configuration.autocomplete.default.description": "활성 IntelliSense 엔진을 사용합니다.",
"c_cpp.configuration.autocomplete.disabled.description": "Visual Studio Code에서 제공하는 단어 기반 완성을 사용합니다.",
"c_cpp.configuration.errorSquiggles.description": "IntelliSense 엔진에서 감지한 의심스러운 컴파일 오류를 편집기에 다시 보고할지 여부를 제어합니다. 또한 포함 사항을 찾을 수 없는 경우 코드 분석 경고가 보고되는지 여부를 제어합니다. 이 설정은 태그 파서 엔진에서 무시됩니다.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "True이면 통합 터미널 지원에 필요한 디버기 콘솔 리디렉션을 사용하지 않도록 설정합니다.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "디버그 엔진에 전달되는 선택적 소스 파일 매핑입니다. 예: `{ \"<원래 소스 경로>\": \"<현재 소스 경로>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "디버거를 연결할 선택적 프로세스 ID입니다. `${command:pickProcess}`를 사용하여 연결할 로컬 실행 프로세스 목록을 가져옵니다. 일부 플랫폼에서는 프로세스에 연결하기 위해 관리자 권한이 필요합니다.",
"c_cpp.debuggers.symbolSearchPath.description": "기호(pdb) 파일 검색에 사용할 디렉터리의 세미콜론으로 구분된 목록입니다(예: \"c:\\dir1;c:\\dir2\").",
"c_cpp.debuggers.program.attach.markdownDescription": "프로그램 실행 파일의 전체 경로입니다. 디버거는 이 실행 파일 경로와 일치하는 실행 중인 프로세스를 찾아 연결합니다. 여러 프로세스가 일치하는 경우 선택 프롬프트가 나타납니다. 이 필드는 연결된 프로세스의 디버그 기호를 로드하는 데 필요합니다.",
"c_cpp.debuggers.symbolSearchPath.description": "기호(pdb 또는 .so) 파일 검색에 사용할 디렉터리의 세미콜론으로 구분된 목록입니다. 예: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "지정된 프로그램에 대한 코어 덤프 파일의 선택적 전체 경로입니다(예: \"c:\\temp\\app.dmp\"). 기본값은 null입니다.",
"c_cpp.debuggers.enableDebugHeap.description": "False이면 디버그 힙이 사용하지 않도록 설정된 상태로 프로세스가 시작됩니다. 이렇게 하면 환경 변수 '_NO_DEBUG_HEAP'이 '1'로 설정됩니다.",
"c_cpp.debuggers.symbolLoadInfo.description": "기호 로드를 명시적으로 제어합니다.",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Jeśli wartość to true, wyłącza przekierowywanie konsoli debugowanego obiektu, które jest wymagane do obsługi zintegrowanego terminalu.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Opcjonalne mapowania plików źródłowych przekazane do silnika debugowania. Przykład: `{ \"<początkowa ścieżka źródłowa>\": \"<bieżąca ścieżka źródłowa>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Opcjonalny identyfikator procesu, do którego ma zostać dołączony debuger. Użyj polecenia `${command:pickProcess}`, aby uzyskać listę uruchomionych lokalnie procesów, do których można dołączyć. Pamiętaj, że niektóre platformy wymagają uprawnień administratora, aby dołączyć je do procesu.",
"c_cpp.debuggers.symbolSearchPath.description": "Rozdzielana średnikami lista katalogów, w których mają być wyszukiwanie pliki symboli (PDB). Przykład: „c:\\dir1;c:\\dir2”.",
"c_cpp.debuggers.program.attach.markdownDescription": "Pełna ścieżka do pliku wykonywalnego programu. Debuger wyszuka uruchomiony proces zgodny z tą ścieżką wykonywalną i dołączy do niego. Jeśli wiele procesów jest zgodnych, zostanie wyświetlony monit o zaznaczenie. To pole jest wymagane do załadowania symboli debugowania dla dołączonego procesu.",
"c_cpp.debuggers.symbolSearchPath.description": "Rozdzielana średnikami lista katalogów do wyszukiwania plików symboli (tj. pdb lub .so). Przykład: „c:\\dir1;c:\\dir2”.",
"c_cpp.debuggers.dumpPath.description": "Opcjonalna pełna ścieżka do pliku zrzutu dla określonego programu. Przykład: „c:\\temp\\app.dmp”. Wartość domyślna to null.",
"c_cpp.debuggers.enableDebugHeap.description": "W przypadku wartości false proces zostanie uruchomiony z wyłączoną stertą debugowania. Spowoduje to ustawienie zmiennej środowiskowej „_NO_DEBUG_HEAP” na wartość „1”.",
"c_cpp.debuggers.symbolLoadInfo.description": "Jawna kontrola ładowania symboli.",
+2 -1
View File
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Se for true, desabilitará o redirecionamento do console do depurador requerido para o suporte do Terminal Integrado.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Mapeamentos opcionais de arquivo de origem passados para o mecanismo de depuração. Exemplo: `{ \"<caminho original do arquivo de origem>\": \"<caminho atual do arquivo de origem>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "ID do processo opcional ao qual anexar o depurador. Use `${command:pickProcess}` para obter uma lista de processos locais em execução aos quais anexar. Observe que algumas plataformas exigem privilégios de administrador para anexação a um processo.",
"c_cpp.debuggers.symbolSearchPath.description": "Lista separada por ponto e vírgula de diretórios a serem usados para pesquisar arquivos de símbolo (ou seja, pdb). Exemplo: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Caminho completo para o executável do programa. O depurador pesquisará um processo em execução que corresponda a esse caminho executável e anexará a ele. Se vários processos corresponderem, um prompt de seleção será mostrado. Esse campo é necessário para carregar símbolos de depuração para o processo anexado.",
"c_cpp.debuggers.symbolSearchPath.description": "Lista separada por ponto e vírgula de diretórios a serem usadas para pesquisar arquivos de símbolos (ou seja, pdb ou .so). Exemplo: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "Caminho completo opcional para um arquivo de despejo para o programa especificado. Exemplo: \"c:\\temp\\app.dmp\". Usa nulo como padrão.",
"c_cpp.debuggers.enableDebugHeap.description": "Se for false, o processo será iniciado com o heap de depuração desabilitado. Isso define a variável de ambiente '_NO_DEBUG_HEAP' como '1'.",
"c_cpp.debuggers.symbolLoadInfo.description": "Controle explícito do carregamento de símbolo.",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "Предоставляет результаты, зависящие от контекста, с помощью отдельного процесса IntelliSense.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "Предоставляет \"нечеткие\" результаты, не зависящие от контекста.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "Отключает компоненты службы языка C/C++.",
"c_cpp.configuration.autocomplete.markdownDescription": "Управляет поставщиком автозавершения. Если присвоено значение `disabled`, и вам требуется завершение по словам, также настройте `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (и аналогично для языков `c` и `cuda-cpp`).",
"c_cpp.configuration.autocomplete.markdownDescription": "Управляет поставщиком автозавершения. Если присвоено значение `disabled`, и вам требуется завершение по словам, также настройте `\"[cpp]\": {\"editor.wordBasedSuggestions\": <значение>}` (и аналогично для языков `c` и `cuda-cpp`).",
"c_cpp.configuration.autocomplete.default.description": "Использует активную подсистему IntelliSense.",
"c_cpp.configuration.autocomplete.disabled.description": "Использует завершение на основе слов, предоставляемое Visual Studio Code.",
"c_cpp.configuration.errorSquiggles.description": "Определяет, будут ли обнаруженные подсистемой IntelliSense предполагаемые ошибки компиляции возвращены в редактор. Также определяет, будут ли отображаться предупреждения на этапе анализа кода, если не удается найти включаемые данные. Этот параметр игнорируется подсистемой синтаксического анализа тегов.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Если задано значение true, отключается перенаправление консоли отлаживаемого объекта, необходимое для поддержки встроенного терминала.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Необязательные сопоставления исходных файлов, передаваемые подсистеме отладки. Пример: `{ \"<первоначальный путь к источнику>\": \"<текущий путь к источнику>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Необязательный идентификатор процесса, к которому требуется подключить отладчик. Используйте `${command:pickProcess}`, чтобы получить список локальных запущенных процессов для подключения. Обратите внимание, что для подключения к процессам на некоторых платформах требуются права администратора.",
"c_cpp.debuggers.symbolSearchPath.description": "Список каталогов, разделенных точкой с запятой, который следует использовать для поиска файлов символов (таких как PDB). Пример: \"c:\\каталог_1;c:\\каталог_2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Полный путь к исполняемому файлу program. Отладчик будет искать запущенный процесс, совпадающий с путем этого исполняемого файла, и подключаться к нему. Если процессов несколько, появится запрос выбора. Это поле обязательно с целью загрузки символов отладки для подключенного процесса.",
"c_cpp.debuggers.symbolSearchPath.description": "Список каталогов, разделенных точкой с запятой, который следует использовать для поиска файлов символов (таких как PDB или SO). Пример: \"c:\\каталог_1;c:\\каталог_2\".",
"c_cpp.debuggers.dumpPath.description": "Необязательный полный путь к основному файлу дампа для указанной программы. Пример: \"c:\\temp\\app.dmp\". Значение по умолчанию: null.",
"c_cpp.debuggers.enableDebugHeap.description": "Если задано значение false, процесс будет запущен с отключенной кучей отладки. При этом для переменной среды \"_NO_DEBUG_HEAP\" устанавливается значение \"1\".",
"c_cpp.debuggers.symbolLoadInfo.description": "Явный контроль загрузки символов.",
+3 -2
View File
@@ -185,7 +185,7 @@
"c_cpp.configuration.intelliSenseEngine.default.description": "Ayrı bir IntelliSense işlemi aracılığıyla bağlama duyarlı sonuçlar sağlar.",
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "Bağlama duyarlı olmayan \"belirsiz\" sonuçlar sağlar.",
"c_cpp.configuration.intelliSenseEngine.disabled.description": "C/C++ dil hizmeti özelliklerini kapatır.",
"c_cpp.configuration.autocomplete.markdownDescription": "Otomatik tamamlama sağlayıcısını kontrol eder. `disabled` ise ve sözcük tabanlı tamamlama istiyorsanız, aynı zamanda `\"[cpp]\": {\"editor.wordBasedSuggestions\": <value>}` (ve aynı şekilde `c` ve `cuda-cpp` dilleri için) ayarını da belirlemeniz gerekir.",
"c_cpp.configuration.autocomplete.markdownDescription": "Otomatik tamamlama sağlayıcısını kontrol eder. `disabled` ise ve sözcük tabanlı tamamlama istiyorsanız, aynı zamanda `\"[cpp]\": {\"editor.wordBasedSuggestions\": <değer>}` (ve aynı şekilde `c` ve `cuda-cpp` dilleri için) ayarını da belirlemeniz gerekir.",
"c_cpp.configuration.autocomplete.default.description": "Etkin IntelliSense altyapısını kullanır.",
"c_cpp.configuration.autocomplete.disabled.description": "Visual Studio Code tarafından sağlanan sözcük tabanlı tamamlamayı kullanır.",
"c_cpp.configuration.errorSquiggles.description": "IntelliSense altyapısı tarafından algılanan şüpheli derleme hatalarının düzenleyiciye geri rapor edilip edilmeyeceğini kontrol eder. Ayrıca, içermeler bulunamazsa kod analizi uyarılarının raporlanıp raporlanmayacağını da kontrol eder. Bu ayar, Etiket Ayrıştırıcı motoru tarafından yok sayılır.",
@@ -331,7 +331,8 @@
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "Değer true ise, Tümleşik Terminal desteği için gerekli olan hata ayıklanan işlem konsol yeniden yönlendirmesini devre dışı bırakır.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "Hata ayıklama altyapısına geçirilen isteğe bağlı kaynak dosya eşlemeleri. Örnek: `{ \"<orijinal kaynak yolu>\": \"<geçerli kaynak yolu>\" }`.",
"c_cpp.debuggers.processId.anyOf.markdownDescription": "Hata ayıklayıcının ekleneceği isteğe bağlı işlem kimliği. Eklenilecek yerel çalışan işlemlerin bir listesini almak için `${command:pickProcess}` kullanın. Bazı platformların bir işleme ekleme yapmak için yönetici ayrıcalıkları gerektirdiğini unutmayın.",
"c_cpp.debuggers.symbolSearchPath.description": "Sembol (yani pdb) dosyalarını aramak için kullanılacak, noktalı virgülle ayrılmış dizinlerin listesi. Örnek: \"c:\\dizin1;c:\\dizin2\".",
"c_cpp.debuggers.program.attach.markdownDescription": "Programın yürütülebilir dosyasının tam yolu. Hata ayıklayıcı, bu yürütülebilir dosya yoluyla eşleşen çalışan bir işlemi arayacak ve ona eklenecek. Birden çok çalışan işlem eşleşiyorsa bir seçim istemi gösterilecek. Ekli işlem için hata ayıklama sembollerini yüklerken bu alan gereklidir.",
"c_cpp.debuggers.symbolSearchPath.description": "Sembol (yani pdb veya .so) dosyalarını aramak için kullanılacak, noktalı virgülle ayrılmış dizinlerin listesi. Örnek: \"c:\\dizin1;c:\\dizin2\".",
"c_cpp.debuggers.dumpPath.description": "Belirtilen program için döküm dosyasının isteğe bağlı tam yolu. Örnek: \"c:\\temp\\app.dmp\". Varsayılan olarak null değerini alır.",
"c_cpp.debuggers.enableDebugHeap.description": "Değer false ise, işlem hata ayıklama yığını devre dışı bırakılarak başlatılır. Bu işlem '_NO_DEBUG_HEAP' ortam değişkenini '1' olarak ayarlar.",
"c_cpp.debuggers.symbolLoadInfo.description": "Sembol yüklemesinin açık denetimi.",
+98 -21
View File
@@ -2,7 +2,7 @@
"name": "cpptools",
"displayName": "C/C++",
"description": "C/C++ IntelliSense, debugging, and code browsing.",
"version": "1.30.4-main",
"version": "1.31.3-main",
"publisher": "ms-vscode",
"icon": "LanguageCCPP_color_128x.png",
"readme": "README.md",
@@ -63,6 +63,7 @@
"onFileSystem:cpptools-schema"
],
"main": "./dist/src/main",
"type": "commonjs",
"contributes": {
"languages": [
{
@@ -1992,6 +1993,7 @@
"abseil-time-*",
"abseil-time-comparison",
"abseil-time-subtraction",
"abseil-unchecked-statusor-access",
"abseil-upgrade-duration-conversions",
"altera-*",
"altera-id-dependent-backward-branch",
@@ -2032,14 +2034,22 @@
"bugprone-capturing-this-in-member-variable",
"bugprone-casting-through-void",
"bugprone-chained-comparison",
"bugprone-command-processor",
"bugprone-compare-pointer-to-member-virtual-function",
"bugprone-copy-constructor-*",
"bugprone-copy-constructor-init",
"bugprone-copy-constructor-mutates-argument",
"bugprone-crtp-constructor-accessibility",
"bugprone-dangling-handle",
"bugprone-default-operator-new-on-overaligned-type",
"bugprone-derived-method-shadowing-base-method",
"bugprone-dynamic-static-initializers",
"bugprone-easily-swappable-parameters",
"bugprone-empty-catch",
"bugprone-exception-*",
"bugprone-exception-escape",
"bugprone-exception-copy-constructor-throws",
"bugprone-float-loop-counter",
"bugprone-fold-init-type",
"bugprone-forward-declaration-namespace",
"bugprone-forwarding-reference-overload",
@@ -2052,6 +2062,7 @@
"bugprone-incorrect-roundings",
"bugprone-infinite-loop",
"bugprone-integer-division",
"bugprone-invalid-enum-default-initialization",
"bugprone-lambda-function-name",
"bugprone-macro-parentheses",
"bugprone-macro-repeated-side-effects",
@@ -2074,6 +2085,8 @@
"bugprone-parent-virtual-call",
"bugprone-pointer-arithmetic-on-polymorphic-object",
"bugprone-posix-return",
"bugprone-random-generator-seed",
"bugprone-raw-memory-call-on-non-trivial-type",
"bugprone-redundant-branch-condition",
"bugprone-reserved-identifier",
"bugprone-return-const-ref-from-parameter",
@@ -2085,6 +2098,7 @@
"bugprone-sizeof-expression",
"bugprone-spuriously-wake-up-functions",
"bugprone-standalone-empty",
"bugprone-std-namespace-modification",
"bugprone-string-*",
"bugprone-string-constructor",
"bugprone-string-integer-assignment",
@@ -2105,8 +2119,11 @@
"bugprone-tagged-union-member-count",
"bugprone-terminating-continue",
"bugprone-throw-keyword-missing",
"bugprone-throwing-static-initialization",
"bugprone-too-small-loop-variable",
"bugprone-unchecked-*",
"bugprone-unchecked-optional-access",
"bugprone-unchecked-string-to-number-conversion",
"bugprone-undefined-memory-manipulation",
"bugprone-undelegated-constructor",
"bugprone-unhandled-*",
@@ -2326,6 +2343,7 @@
"cppcoreguidelines-prefer-member-initializer",
"cppcoreguidelines-pro-bounds-*",
"cppcoreguidelines-pro-bounds-array-to-pointer-decay",
"cppcoreguidelines-pro-bounds-avoid-unchecked-container-access",
"cppcoreguidelines-pro-bounds-constant-array-index",
"cppcoreguidelines-pro-bounds-pointer-arithmetic",
"cppcoreguidelines-pro-type-*",
@@ -2354,6 +2372,7 @@
"fuchsia-multiple-inheritance",
"fuchsia-overloaded-operator",
"fuchsia-statically-constructed-objects",
"fuchsia-temporary-objects",
"fuchsia-trailing-return",
"fuchsia-virtual-inheritance",
"google-*",
@@ -2378,6 +2397,7 @@
"google-readability-namespace-comments",
"google-readability-todo",
"google-runtime-*",
"google-runtime-float",
"google-runtime-int",
"google-runtime-operator",
"google-upgrade-googletest-case",
@@ -2429,12 +2449,16 @@
"llvm-prefer-static-over-anonymous-namespace",
"llvm-qualified-auto",
"llvm-twine-local",
"llvm-use-*",
"llvm-use-new-mlir-op-builder",
"llvm-use-ranges",
"llvmlibc-*",
"llvmlibc-callee-namespace",
"llvmlibc-implementation-in-namespace",
"llvmlibc-inline-function-decl",
"llvmlibc-restrict-system-libc-headers",
"misc-*",
"misc-anonymous-namespace-in-header",
"misc-confusable-identifiers",
"misc-const-correctness",
"misc-coroutine-hostile-raii",
@@ -2445,11 +2469,14 @@
"misc-misleading-bidirectional",
"misc-misleading-identifier",
"misc-misplaced-const",
"misc-multiple-inheritance",
"misc-new-delete-overloads",
"misc-no-recursion",
"misc-non-*",
"misc-non-copyable-objects",
"misc-non-private-member-variables-in-classes",
"misc-override-with-different-visibility",
"misc-predictable-rand",
"misc-redundant-expression",
"misc-static-assert",
"misc-throw-by-value-catch-by-reference",
@@ -2465,7 +2492,11 @@
"modernize-*",
"modernize-avoid-*",
"modernize-avoid-bind",
"modernize-avoid-c-*",
"modernize-avoid-c-arrays",
"modernize-avoid-c-style-cast",
"modernize-avoid-setjmp-longjmp",
"modernize-avoid-variadic-functions",
"modernize-concat-nested-namespaces",
"modernize-deprecated-*",
"modernize-deprecated-headers",
@@ -2586,7 +2617,9 @@
"readability-identifier-length",
"readability-identifier-naming",
"readability-implicit-bool-conversion",
"readability-inconsistent-*",
"readability-inconsistent-declaration-parameter-name",
"readability-inconsistent-ifelse-braces",
"readability-isolate-declaration",
"readability-magic-numbers",
"readability-make-member-function-const",
@@ -2605,11 +2638,13 @@
"readability-redundant-function-ptr-dereference",
"readability-redundant-inline-specifier",
"readability-redundant-member-init",
"readability-redundant-parentheses",
"readability-redundant-preprocessor",
"readability-redundant-smartptr-get",
"readability-redundant-string-*",
"readability-redundant-string-cstr",
"readability-redundant-string-init",
"readability-redundant-typename",
"readability-reference-to-constructed-temporary",
"readability-simplify-*",
"readability-simplify-boolean-expr",
@@ -2662,6 +2697,7 @@
"abseil-time-*",
"abseil-time-comparison",
"abseil-time-subtraction",
"abseil-unchecked-statusor-access",
"abseil-upgrade-duration-conversions",
"altera-*",
"altera-id-dependent-backward-branch",
@@ -2702,14 +2738,22 @@
"bugprone-capturing-this-in-member-variable",
"bugprone-casting-through-void",
"bugprone-chained-comparison",
"bugprone-command-processor",
"bugprone-compare-pointer-to-member-virtual-function",
"bugprone-copy-constructor-*",
"bugprone-copy-constructor-init",
"bugprone-copy-constructor-mutates-argument",
"bugprone-crtp-constructor-accessibility",
"bugprone-dangling-handle",
"bugprone-default-operator-new-on-overaligned-type",
"bugprone-derived-method-shadowing-base-method",
"bugprone-dynamic-static-initializers",
"bugprone-easily-swappable-parameters",
"bugprone-empty-catch",
"bugprone-exception-*",
"bugprone-exception-escape",
"bugprone-exception-copy-constructor-throws",
"bugprone-float-loop-counter",
"bugprone-fold-init-type",
"bugprone-forward-declaration-namespace",
"bugprone-forwarding-reference-overload",
@@ -2722,6 +2766,7 @@
"bugprone-incorrect-roundings",
"bugprone-infinite-loop",
"bugprone-integer-division",
"bugprone-invalid-enum-default-initialization",
"bugprone-lambda-function-name",
"bugprone-macro-parentheses",
"bugprone-macro-repeated-side-effects",
@@ -2744,6 +2789,8 @@
"bugprone-parent-virtual-call",
"bugprone-pointer-arithmetic-on-polymorphic-object",
"bugprone-posix-return",
"bugprone-random-generator-seed",
"bugprone-raw-memory-call-on-non-trivial-type",
"bugprone-redundant-branch-condition",
"bugprone-reserved-identifier",
"bugprone-return-const-ref-from-parameter",
@@ -2755,6 +2802,7 @@
"bugprone-sizeof-expression",
"bugprone-spuriously-wake-up-functions",
"bugprone-standalone-empty",
"bugprone-std-namespace-modification",
"bugprone-string-*",
"bugprone-string-constructor",
"bugprone-string-integer-assignment",
@@ -2775,8 +2823,11 @@
"bugprone-tagged-union-member-count",
"bugprone-terminating-continue",
"bugprone-throw-keyword-missing",
"bugprone-throwing-static-initialization",
"bugprone-too-small-loop-variable",
"bugprone-unchecked-*",
"bugprone-unchecked-optional-access",
"bugprone-unchecked-string-to-number-conversion",
"bugprone-undefined-memory-manipulation",
"bugprone-undelegated-constructor",
"bugprone-unhandled-*",
@@ -2996,6 +3047,7 @@
"cppcoreguidelines-prefer-member-initializer",
"cppcoreguidelines-pro-bounds-*",
"cppcoreguidelines-pro-bounds-array-to-pointer-decay",
"cppcoreguidelines-pro-bounds-avoid-unchecked-container-access",
"cppcoreguidelines-pro-bounds-constant-array-index",
"cppcoreguidelines-pro-bounds-pointer-arithmetic",
"cppcoreguidelines-pro-type-*",
@@ -3024,6 +3076,7 @@
"fuchsia-multiple-inheritance",
"fuchsia-overloaded-operator",
"fuchsia-statically-constructed-objects",
"fuchsia-temporary-objects",
"fuchsia-trailing-return",
"fuchsia-virtual-inheritance",
"google-*",
@@ -3048,6 +3101,7 @@
"google-readability-namespace-comments",
"google-readability-todo",
"google-runtime-*",
"google-runtime-float",
"google-runtime-int",
"google-runtime-operator",
"google-upgrade-googletest-case",
@@ -3099,12 +3153,16 @@
"llvm-prefer-static-over-anonymous-namespace",
"llvm-qualified-auto",
"llvm-twine-local",
"llvm-use-*",
"llvm-use-new-mlir-op-builder",
"llvm-use-ranges",
"llvmlibc-*",
"llvmlibc-callee-namespace",
"llvmlibc-implementation-in-namespace",
"llvmlibc-inline-function-decl",
"llvmlibc-restrict-system-libc-headers",
"misc-*",
"misc-anonymous-namespace-in-header",
"misc-confusable-identifiers",
"misc-const-correctness",
"misc-coroutine-hostile-raii",
@@ -3115,11 +3173,14 @@
"misc-misleading-bidirectional",
"misc-misleading-identifier",
"misc-misplaced-const",
"misc-multiple-inheritance",
"misc-new-delete-overloads",
"misc-no-recursion",
"misc-non-*",
"misc-non-copyable-objects",
"misc-non-private-member-variables-in-classes",
"misc-override-with-different-visibility",
"misc-predictable-rand",
"misc-redundant-expression",
"misc-static-assert",
"misc-throw-by-value-catch-by-reference",
@@ -3135,7 +3196,11 @@
"modernize-*",
"modernize-avoid-*",
"modernize-avoid-bind",
"modernize-avoid-c-*",
"modernize-avoid-c-arrays",
"modernize-avoid-c-style-cast",
"modernize-avoid-setjmp-longjmp",
"modernize-avoid-variadic-functions",
"modernize-concat-nested-namespaces",
"modernize-deprecated-*",
"modernize-deprecated-headers",
@@ -3256,7 +3321,9 @@
"readability-identifier-length",
"readability-identifier-naming",
"readability-implicit-bool-conversion",
"readability-inconsistent-*",
"readability-inconsistent-declaration-parameter-name",
"readability-inconsistent-ifelse-braces",
"readability-isolate-declaration",
"readability-magic-numbers",
"readability-make-member-function-const",
@@ -3275,11 +3342,13 @@
"readability-redundant-function-ptr-dereference",
"readability-redundant-inline-specifier",
"readability-redundant-member-init",
"readability-redundant-parentheses",
"readability-redundant-preprocessor",
"readability-redundant-smartptr-get",
"readability-redundant-string-*",
"readability-redundant-string-cstr",
"readability-redundant-string-init",
"readability-redundant-typename",
"readability-reference-to-constructed-temporary",
"readability-simplify-*",
"readability-simplify-boolean-expr",
@@ -4774,11 +4843,6 @@
"program"
],
"properties": {
"program": {
"type": "string",
"description": "%c_cpp.debuggers.program.description%",
"default": "${workspaceRoot}/a.out"
},
"targetArchitecture": {
"type": "string",
"description": "%c_cpp.debuggers.targetArchitecture.description%",
@@ -4824,6 +4888,10 @@
"description": "%c_cpp.debuggers.useExtendedRemote.description%",
"default": false
},
"program": {
"type": "string",
"markdownDescription": "%c_cpp.debuggers.program.attach.markdownDescription%"
},
"processId": {
"markdownDescription": "%c_cpp.debuggers.processId.anyOf.markdownDescription%",
"anyOf": [
@@ -5789,15 +5857,17 @@
"attach": {
"type": "object",
"default": {},
"required": [
"processId"
],
"required": [],
"properties": {
"symbolSearchPath": {
"type": "string",
"description": "%c_cpp.debuggers.symbolSearchPath.description%",
"default": ""
},
"program": {
"type": "string",
"markdownDescription": "%c_cpp.debuggers.program.attach.markdownDescription%"
},
"processId": {
"markdownDescription": "%c_cpp.debuggers.processId.anyOf.markdownDescription%",
"anyOf": [
@@ -6711,6 +6781,8 @@
]
},
"scripts": {
"bootstrap": "npm run bootstrap:yarn && yarn install --frozen-lockfile",
"bootstrap:yarn": "npm install -g [email protected] --registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/",
"scripts": "ts-node -T .scripts/scripts.ts",
"show": "ts-node -T .scripts/clean.ts show",
"clean": "ts-node -T .scripts/clean.ts",
@@ -6718,11 +6790,11 @@
"code": "yarn install && (yarn verify compiled --quiet || yarn build) && yarn verify binaries && ts-node -T .scripts/code.ts",
"verify": "ts-node -T .scripts/verify.ts",
"prep": "yarn prep:dts && yarn copy-walkthrough-media && yarn generate-native-strings && yarn translations-generate",
"lint": "yarn install && eslint -c .eslintrc.js --report-unused-disable-directives src test ui .scripts",
"lint": "yarn install && eslint --report-unused-disable-directives src test ui .scripts",
"compile": "yarn install && (yarn verify prep --quiet || yarn prep) && yarn build",
"watch": "yarn install && (yarn verify prep --quiet || yarn prep) && tsc --build tsconfig.json --watch",
"rebuild": "yarn install && yarn clean && yarn prep && yarn build",
"vsix-prepublish": "yarn install && yarn clean && yarn webpack",
"vsix-prepublish": "npm run bootstrap && yarn clean && yarn webpack",
"webpack": "yarn install && (yarn verify prep --quiet || yarn prep) && tsc --build ui.tsconfig.json && webpack --mode production --env vscode_nls",
"generate-native-strings": "ts-node -T ./.scripts/generateNativeStrings.ts",
"generate-options-schema": "ts-node -T ./.scripts/generateOptionsSchema.ts",
@@ -6748,15 +6820,16 @@
"@types/tmp": "^0.2.6",
"@types/which": "^2.0.2",
"@types/yauzl": "^2.10.3",
"@typescript-eslint/eslint-plugin": "^6.1.0",
"@typescript-eslint/parser": "^6.1.0",
"@typescript-eslint/eslint-plugin": "^8.54.0",
"@typescript-eslint/parser": "^8.54.0",
"@vscode/debugadapter": "^1.65.0",
"@vscode/debugprotocol": "^1.65.0",
"@vscode/dts": "^0.4.0",
"@vscode/test-electron": "^2.3.10",
"@vscode/vsce": "^3.7.1",
"async-child-process": "^1.1.1",
"await-notify": "^1.0.1",
"eslint": "^8.45.0",
"eslint": "^9.39.2",
"eslint-plugin-header": "^3.1.1",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsdoc": "^48.2.8",
@@ -6777,18 +6850,19 @@
"ts-node": "^10.9.2",
"typescript": "^5.4.5",
"vscode-nls-dev": "^4.0.4",
"webpack": "^5.94.0",
"webpack": "^5.105.1",
"webpack-cli": "^5.1.4",
"xml2js": "^0.6.2"
},
"dependencies": {
"@github/copilot-language-server": "^1.316.0",
"@vscode/extension-telemetry": "^0.9.6",
"@github/copilot-language-server": "1.434.0",
"@vscode/extension-telemetry": "^0.9.9",
"chokidar": "^3.6.0",
"comment-json": "^4.2.3",
"comment-json": "^4.5.1",
"escape-string-regexp": "^2.0.0",
"fast-glob": "^3.3.3",
"glob": "^7.2.3",
"minimatch": "^4.2.0",
"minimatch": "^4.2.6",
"mkdirp": "^3.0.1",
"node-fetch": "^2.7.0",
"node-loader": "^2.0.0",
@@ -6797,7 +6871,7 @@
"node-vswhere": "^1.0.2",
"plist": "^3.1.0",
"posix-getopt": "^1.2.1",
"shell-quote": "^1.8.1",
"shell-quote": "1.8.2",
"ssh-config": "^4.4.4",
"tmp": "^0.2.5",
"vscode-cpptools": "^7.1.1",
@@ -6808,6 +6882,9 @@
},
"resolutions": {
"postcss": "^8.4.31",
"gulp-typescript/**/glob-parent": "^5.1.2"
"gulp-typescript/**/glob-parent": "^5.1.2",
"serialize-javascript": "^7.0.4",
"@azure/msal-browser": "^4.29.1",
"flatted": "^3.4.1"
}
}
+7 -1
View File
@@ -931,7 +931,13 @@
"{Locked=\"`${command:pickProcess}`\"}"
]
},
"c_cpp.debuggers.symbolSearchPath.description": "Semicolon separated list of directories to use to search for symbol (that is, pdb) files. Example: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.program.attach.markdownDescription": {
"message": "Full path to the program executable. The debugger will search for a running process matching this executable path and attach to it. If multiple processes match, a selection prompt will be shown. This field is required to load debug symbols for the attached process.",
"comment": [
"{Locked=\"`program`\"}"
]
},
"c_cpp.debuggers.symbolSearchPath.description": "Semicolon separated list of directories to use to search for symbol (that is, pdb or .so) files. Example: \"c:\\dir1;c:\\dir2\".",
"c_cpp.debuggers.dumpPath.description": "Optional full path to a dump file for the specified program. Example: \"c:\\temp\\app.dmp\". Defaults to null.",
"c_cpp.debuggers.enableDebugHeap.description": "If false, the process will be launched with debug heap disabled. This sets the environment variable '_NO_DEBUG_HEAP' to '1'.",
"c_cpp.debuggers.symbolLoadInfo.description": "Explicit control of symbol loading.",
+10 -5
View File
@@ -35,15 +35,20 @@
### Required Tools
* [Node.js](https://nodejs.org/en/download/) v16.*
* Yarn - use `npm install -g yarn` to install
* npm (comes with Node.js)
### Setting up the repository
`git clone https://github.com/microsoft/vscode-cpptools.git`
`yarn install`
`cd vscode-cpptools/Extension`
It's also good practice to run `yarn install` after merging from upstream or switching branches.
`npm run bootstrap`
`npm run bootstrap` installs Yarn `1.22.22` globally from the internal npm feed and then runs `yarn install --frozen-lockfile`.
On some systems, global npm install may require elevated permissions.
It's also good practice to run `npm run bootstrap` after merging from upstream or switching branches.
## Building the Extension
@@ -52,7 +57,7 @@ The `launch.json` entries now specify a `preLaunchTask` that will build the exte
the `yarn watch` command, and will wait until the build is ready. The watch command will continue to watch from
that point.
If the extension is already built, the the watch will be very quick.
If the extension is already built, the watch will be very quick.
### From Inside VS Code
There are two tasks that can be run from inside VS Code to build the extension.
@@ -336,4 +341,4 @@ This will use webpack to build the extension. This is only necessary when packag
Installs the VS Code `*.d.ts` files and then runs `yarn prep`
You should run `yarn install` after merging from upstream or switching branches.
You should run `npm run bootstrap` after merging from upstream or switching branches.
+59 -15
View File
@@ -4,7 +4,6 @@
* ------------------------------------------------------------------------------------------ */
import * as jsonc from 'comment-json';
import * as fs from 'fs';
import * as glob from 'glob';
import * as os from 'os';
import * as path from 'path';
@@ -22,6 +21,7 @@ import * as logger from '../logger';
import { PlatformInformation } from '../platform';
import { rsync, scp, ssh } from '../SSH/commands';
import * as Telemetry from '../telemetry';
import { AttachItem, showQuickPick } from './attachQuickPick';
import { AttachItemsProvider, AttachPicker, RemoteAttachPicker } from './attachToProcess';
import { ConfigMenu, ConfigMode, ConfigSource, CppDebugConfiguration, DebuggerEvent, DebuggerType, DebugType, IConfiguration, IConfigurationSnippet, isDebugLaunchStr, MIConfigurations, PipeTransportConfigurations, TaskStatus, WindowsConfigurations, WSLConfigurations } from './configurations';
import { NativeAttachItemsProviderFactory } from './nativeAttach';
@@ -179,7 +179,7 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
await cppBuildTaskProvider.runBuildTask(config.preLaunchTask);
config.preLaunchTask = undefined;
Telemetry.logDebuggerEvent(DebuggerEvent.debugPanel, { "debugType": DebugType.debug, "configSource": config.configSource || ConfigSource.unknown, "configMode": ConfigMode.launchConfig, "cancelled": "false", "succeeded": "true" });
} catch (err) {
} catch {
Telemetry.logDebuggerEvent(DebuggerEvent.debugPanel, { "debugType": DebugType.debug, "configSource": config.configSource || ConfigSource.unknown, "configMode": ConfigMode.launchConfig, "cancelled": "false", "succeeded": "false" });
}
return config;
@@ -245,7 +245,6 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
}
// Handle legacy 'externalConsole' bool and convert to console: "externalTerminal"
// eslint-disable-next-line no-prototype-builtins
if (config.hasOwnProperty("externalConsole")) {
void logger.getOutputChannelLogger().showWarningMessage(localize("debugger.deprecated.config", "The key '{0}' is deprecated. Please use '{1}' instead.", "externalConsole", "console"));
if (config.externalConsole && !config.console) {
@@ -303,7 +302,7 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
// Validate LLDB-MI
if (os.platform() === 'darwin' && // Check for macOS
fs.existsSync(lldb_mi_10_x_path) && // lldb-mi 10.x exists
util.checkFileExistsSync(lldb_mi_10_x_path) && // lldb-mi 10.x exists
(!macOSMIMode || macOSMIMode === 'lldb') &&
!macOSMIDebuggerPath // User did not provide custom lldb-mi
) {
@@ -354,13 +353,22 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
// Pick process if process id is empty
if (config.request === "attach" && !config.processId) {
let processId: string | undefined;
if (config.pipeTransport || config.useExtendedRemote) {
const remoteAttachPicker: RemoteAttachPicker = new RemoteAttachPicker();
processId = await remoteAttachPicker.ShowAttachEntries(config);
} else {
const attachItemsProvider: AttachItemsProvider = NativeAttachItemsProviderFactory.Get();
const attacher: AttachPicker = new AttachPicker(attachItemsProvider);
processId = await attacher.ShowAttachEntries(token);
// If program is specified and not remote attach, try to find the matching process by name
if (config.program && !config.pipeTransport && !config.useExtendedRemote) {
processId = await this.findProcessByProgramName(config.program, token);
}
// Fall back to process picker if program wasn't specified or didn't match
if (!processId) {
if (config.pipeTransport || config.useExtendedRemote) {
const remoteAttachPicker: RemoteAttachPicker = new RemoteAttachPicker();
processId = await remoteAttachPicker.ShowAttachEntries(config);
} else {
const attachItemsProvider: AttachItemsProvider = NativeAttachItemsProviderFactory.Get();
const attacher: AttachPicker = new AttachPicker(attachItemsProvider);
processId = await attacher.ShowAttachEntries(token);
}
}
if (processId) {
@@ -621,7 +629,7 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
if (response === applyButton || response === updateButton) {
try {
await vscode.commands.executeCommand('C_Cpp.SetVsDeveloperEnvironment', 'buildAndDebug');
} catch (e: any) {
} catch {
// Ignore the error, the user will be prompted to apply the environment manually.
}
}
@@ -648,7 +656,7 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
];
for (const searchPath of searchPaths) {
if (fs.existsSync(path.join(searchPath, LLDBFramework))) {
if (util.checkDirectoryExistsSync(path.join(searchPath, LLDBFramework))) {
// Found a framework that 'lldb-mi' can use.
return searchPath;
}
@@ -710,7 +718,6 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
const newSourceFileMapSource: string = util.resolveVariables(sourceFileMapSource, undefined);
if (sourceFileMapSource !== newSourceFileMapSource) {
message = "\t" + localize("replacing.sourcepath", "Replacing {0} '{1}' with '{2}'.", "sourcePath", sourceFileMapSource, newSourceFileMapSource);
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete config.sourceFileMap[sourceFileMapSource];
source = newSourceFileMapSource;
}
@@ -790,7 +797,6 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
}
private findDefaultConfig(configs: CppDebugConfiguration[]): CppDebugConfiguration[] {
// eslint-disable-next-line no-prototype-builtins
return configs.filter((config: CppDebugConfiguration) => config.hasOwnProperty("isDefault") && config.isDefault);
}
@@ -1157,6 +1163,44 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv
}
return true;
}
private async findProcessByProgramName(
programPath: string,
token?: vscode.CancellationToken
): Promise<string | undefined> {
// Validate that the program path is valid
if (!await util.checkExecutableWithoutExtensionExists(programPath)) {
return undefined;
}
const programBaseName: string = path.basename(programPath);
// Get the process list using the same logic as interactive attach
const attachItemsProvider: AttachItemsProvider = NativeAttachItemsProviderFactory.Get();
const processes: AttachItem[] = await attachItemsProvider.getAttachItems(token);
// Prepare target name for matching (case-insensitive on Windows only)
let targetName: string = programBaseName;
if (isWindows) {
targetName = targetName.toLowerCase();
targetName = targetName.endsWith(".exe") ? targetName : (targetName + ".exe");
}
// Find processes matching the program name
const matchingProcesses: AttachItem[] = processes.filter(p => {
const processName: string = isWindows ? p.label.toLowerCase() : p.label;
return processName === targetName;
});
if (matchingProcesses.length === 0) {
return undefined;
} else if (matchingProcesses.length === 1) {
return matchingProcesses[0].id;
} else {
// Multiple matches - let the user choose
return showQuickPick(() => Promise.resolve(matchingProcesses));
}
}
}
export interface IConfigurationAssetProvider {
+2 -2
View File
@@ -184,7 +184,7 @@ function spawnChildProcess(command: string, token?: vscode.CancellationToken): P
try {
process.kill();
} catch (e) {
} catch {
// Failed to kill process.
}
reject(new Error(localize("timeout.processList.spawn", '"{0}" timed out after {1} seconds.', command, seconds)));
@@ -198,7 +198,7 @@ function spawnChildProcess(command: string, token?: vscode.CancellationToken): P
try {
process.kill();
} catch (e) {
} catch {
// Failed to kill process.
}
reject(new Error(localize("cancel.processList.spawn", '"{0}" canceled.', command)));
+32 -34
View File
@@ -816,25 +816,25 @@ export interface Client {
didChangeActiveEditor(editor?: vscode.TextEditor, selection?: Range): Promise<void>;
restartIntelliSenseForFile(document: vscode.TextDocument): Promise<void>;
activate(): void;
selectionChanged(selection: Range): void;
resetDatabase(): void;
selectionChanged(selection: Range): Promise<void>;
resetDatabase(): Promise<void>;
deactivate(): void;
promptSelectIntelliSenseConfiguration(sender?: any): Promise<void>;
rescanCompilers(sender?: any): Promise<void>;
pauseParsing(): void;
resumeParsing(): void;
PauseCodeAnalysis(): void;
ResumeCodeAnalysis(): void;
CancelCodeAnalysis(): void;
pauseParsing(): Promise<void>;
resumeParsing(): Promise<void>;
PauseCodeAnalysis(): Promise<void>;
ResumeCodeAnalysis(): Promise<void>;
CancelCodeAnalysis(): Promise<void>;
handleConfigurationSelectCommand(config?: string): Promise<void>;
handleConfigurationProviderSelectCommand(): Promise<void>;
handleShowActiveCodeAnalysisCommands(): Promise<void>;
handleShowIdleCodeAnalysisCommands(): Promise<void>;
handleReferencesIcon(): void;
handleConfigurationEditCommand(viewColumn?: vscode.ViewColumn): void;
handleConfigurationEditJSONCommand(viewColumn?: vscode.ViewColumn): void;
handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): void;
handleAddToIncludePathCommand(path: string): void;
handleReferencesIcon(): Promise<void>;
handleConfigurationEditCommand(viewColumn?: vscode.ViewColumn): Promise<void>;
handleConfigurationEditJSONCommand(viewColumn?: vscode.ViewColumn): Promise<void>;
handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): Promise<void>;
handleAddToIncludePathCommand(path: string): Promise<void>;
handleGoToDirectiveInGroup(next: boolean): Promise<void>;
handleGenerateDoxygenComment(args: DoxygenCodeActionCommandArguments | vscode.Uri | undefined): Promise<void>;
handleRunCodeAnalysisOnActiveFile(): Promise<void>;
@@ -849,7 +849,7 @@ export interface Client {
onInterval(): void;
dispose(): void;
addFileAssociations(fileAssociations: string, languageId: string): void;
sendDidChangeSettings(): void;
sendDidChangeSettings(): Promise<void>;
isInitialized(): boolean;
getShowConfigureIntelliSenseButton(): boolean;
setShowConfigureIntelliSenseButton(show: boolean): void;
@@ -1285,7 +1285,7 @@ export class DefaultClient implements Client {
}
this.rootFolder = workspaceFolder;
this.rootRealPath = this.RootPath ? fs.existsSync(this.RootPath) ? fs.realpathSync(this.RootPath) : this.RootPath : "";
this.rootRealPath = this.RootPath ? util.checkDirectoryExistsSync(this.RootPath) ? fs.realpathSync(this.RootPath) : this.RootPath : "";
this.workspaceStoragePath = util.extensionContext?.storageUri?.fsPath ?? "";
if (this.workspaceStoragePath.length > 0) {
@@ -1612,7 +1612,7 @@ export class DefaultClient implements Client {
this.currentCaseSensitiveFileSupport = new PersistentWorkspaceState<boolean>("CPP.currentCaseSensitiveFileSupport", false);
let resetDatabase: boolean = false;
const serverModule: string = getLanguageServerFileName();
const exeExists: boolean = fs.existsSync(serverModule);
const exeExists: boolean = util.checkFileExistsSync(serverModule);
if (!exeExists) {
telemetry.logLanguageServerEvent("missingLanguageServerBinary");
throw String('Missing binary at ' + serverModule);
@@ -1780,7 +1780,7 @@ export class DefaultClient implements Client {
}
public async sendDidChangeSettings(): Promise<void> {
// Send settings json to native side
// Send settings json to native side.
await this.ready;
await this.languageClient.sendNotification(DidChangeSettingsNotification, this.getAllSettings());
}
@@ -1789,7 +1789,7 @@ export class DefaultClient implements Client {
const defaultClient: Client = clients.getDefaultClient();
if (this === defaultClient) {
// Only send the updated settings information once, as it includes values for all folders.
void this.sendDidChangeSettings();
void this.sendDidChangeSettings().catch(logAndReturn.undefined);
}
const changedSettings: Record<string, string> = this.settingsTracker.getChangedSettings();
@@ -2226,13 +2226,13 @@ export class DefaultClient implements Client {
if (!await provider.canProvideConfiguration(docUri, tokenSource.token)) {
return [];
}
} catch (err) {
} catch {
console.warn("Caught exception from canProvideConfiguration");
}
let configs: util.Mutable<SourceFileConfigurationItem>[] = [];
try {
configs = await provider.provideConfigurations([docUri], tokenSource.token);
} catch (err) {
} catch {
console.warn("Caught exception from provideConfigurations");
}
@@ -3418,7 +3418,6 @@ export class DefaultClient implements Client {
this.browseConfigurationLogging = "";
// This while (true) is here just so we can break out early if the config is set on error
// eslint-disable-next-line no-constant-condition
while (true) {
// config is marked as 'any' because it is untrusted data coming from a 3rd-party. We need to sanitize it before sending it to the language server.
if (timeoutOccured || !config || config instanceof Array) {
@@ -4249,7 +4248,6 @@ export class DefaultClient implements Client {
if (this.ReferencesCommandMode === refs.ReferencesCommandMode.Find) {
void this.languageClient.sendNotification(PreviewReferencesNotification);
}
}
private serverCanceledReferences(): void {
@@ -4372,25 +4370,25 @@ class NullClient implements Client {
didChangeActiveEditor(editor?: vscode.TextEditor): Promise<void> { return Promise.resolve(); }
restartIntelliSenseForFile(document: vscode.TextDocument): Promise<void> { return Promise.resolve(); }
activate(): void { }
selectionChanged(selection: Range): void { }
resetDatabase(): void { }
selectionChanged(selection: Range): Promise<void> { return Promise.resolve(); }
resetDatabase(): Promise<void> { return Promise.resolve(); }
promptSelectIntelliSenseConfiguration(sender?: any): Promise<void> { return Promise.resolve(); }
rescanCompilers(sender?: any): Promise<void> { return Promise.resolve(); }
deactivate(): void { }
pauseParsing(): void { }
resumeParsing(): void { }
PauseCodeAnalysis(): void { }
ResumeCodeAnalysis(): void { }
CancelCodeAnalysis(): void { }
pauseParsing(): Promise<void> { return Promise.resolve(); }
resumeParsing(): Promise<void> { return Promise.resolve(); }
PauseCodeAnalysis(): Promise<void> { return Promise.resolve(); }
ResumeCodeAnalysis(): Promise<void> { return Promise.resolve(); }
CancelCodeAnalysis(): Promise<void> { return Promise.resolve(); }
handleConfigurationSelectCommand(): Promise<void> { return Promise.resolve(); }
handleConfigurationProviderSelectCommand(): Promise<void> { return Promise.resolve(); }
handleShowActiveCodeAnalysisCommands(): Promise<void> { return Promise.resolve(); }
handleShowIdleCodeAnalysisCommands(): Promise<void> { return Promise.resolve(); }
handleReferencesIcon(): void { }
handleConfigurationEditCommand(viewColumn?: vscode.ViewColumn): void { }
handleConfigurationEditJSONCommand(viewColumn?: vscode.ViewColumn): void { }
handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): void { }
handleAddToIncludePathCommand(path: string): void { }
handleReferencesIcon(): Promise<void> { return Promise.resolve(); }
handleConfigurationEditCommand(viewColumn?: vscode.ViewColumn): Promise<void> { return Promise.resolve(); }
handleConfigurationEditJSONCommand(viewColumn?: vscode.ViewColumn): Promise<void> { return Promise.resolve(); }
handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): Promise<void> { return Promise.resolve(); }
handleAddToIncludePathCommand(path: string): Promise<void> { return Promise.resolve(); }
handleGoToDirectiveInGroup(next: boolean): Promise<void> { return Promise.resolve(); }
handleGenerateDoxygenComment(args: DoxygenCodeActionCommandArguments | vscode.Uri | undefined): Promise<void> { return Promise.resolve(); }
handleRunCodeAnalysisOnActiveFile(): Promise<void> { return Promise.resolve(); }
@@ -4408,7 +4406,7 @@ class NullClient implements Client {
this.stringEvent.dispose();
}
addFileAssociations(fileAssociations: string, languageId: string): void { }
sendDidChangeSettings(): void { }
sendDidChangeSettings(): Promise<void> { return Promise.resolve(); }
isInitialized(): boolean { return true; }
getShowConfigureIntelliSenseButton(): boolean { return false; }
setShowConfigureIntelliSenseButton(show: boolean): void { }
@@ -177,7 +177,7 @@ export class ClientCollection {
// read for new workspace folders. Send them up before creating new
// clients, so the native process is already aware of all workspace
// folders before receiving new CppProperties for new folders.
this.defaultClient.sendDidChangeSettings();
void this.defaultClient.sendDidChangeSettings();
e.added.forEach(folder => {
const path: string = util.asFolder(folder.uri);
const client: cpptools.Client | undefined = this.languageClients.get(path);
+1 -1
View File
@@ -379,7 +379,7 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno
docPage = `checks${checksGroup}/${checksPage}.html`;
}
// TODO: This should be checking the clang-tidy version used to better support usage of older versions.
const primaryDocUri: vscode.Uri = vscode.Uri.parse(`https://releases.llvm.org/21.1.0/tools/clang/tools/extra/docs/clang-tidy/${docPage}`);
const primaryDocUri: vscode.Uri = vscode.Uri.parse(`https://releases.llvm.org/22.1.0/tools/clang/tools/extra/docs/clang-tidy/${docPage}`);
diagnostic.code = { value: identifier.code, target: primaryDocUri };
if (new CppSettings().clangTidyCodeActionShowDocumentation) {
@@ -254,7 +254,7 @@ export class CppProperties {
// to the language server until the default include paths and frameworks have been sent.
const configFilePath: string = path.join(this.configFolder, "c_cpp_properties.json");
if (this.rootUri !== null && fs.existsSync(configFilePath)) {
if (this.rootUri !== null && util.checkFileExistsSync(configFilePath)) {
this.propertiesFile = vscode.Uri.file(configFilePath);
} else {
this.propertiesFile = null;
@@ -481,9 +481,9 @@ export class CppProperties {
list.forEach((entry) => {
if (entry !== "vcpkg") {
const pathToCheck: string = path.join(vcpkgRoot, entry);
if (fs.existsSync(pathToCheck)) {
if (util.checkDirectoryExistsSync(pathToCheck)) {
let p: string = path.join(pathToCheck, "include");
if (fs.existsSync(p)) {
if (util.checkDirectoryExistsSync(p)) {
p = p.replace(/\\/g, "/");
p = p.replace(vcpkgRoot, "${vcpkgRoot}");
this.vcpkgIncludes.push(p);
@@ -493,7 +493,7 @@ export class CppProperties {
});
}
}
} catch (error) {
} catch {
/*ignore*/
} finally {
this.vcpkgPathReady = true;
@@ -1171,7 +1171,7 @@ export class CppProperties {
this.configurationJson.configurations.forEach(c => {
c.compileCommands?.forEach((path: string) => {
const compileCommandsFile: string = this.resolvePath(path);
if (fs.existsSync(compileCommandsFile)) {
if (util.checkFileExistsSync(compileCommandsFile)) {
filePaths.add(compileCommandsFile);
}
});
@@ -1196,7 +1196,7 @@ export class CppProperties {
}, 1000);
}));
});
} catch (e) {
} catch {
// The file watcher limit is hit.
// TODO: Check if the compile commands file has a higher timestamp during the interval timer.
}
@@ -1571,7 +1571,7 @@ export class CppProperties {
if (dirty) {
try {
this.writeToJson();
} catch (err) {
} catch {
// Ignore write errors, the file may be under source control. Updated settings will only be modified in memory.
void vscode.window.showWarningMessage(localize('update.properties.failed', 'Attempt to update "{0}" failed (do you have write access?)', this.propertiesFile.fsPath));
success = false;
@@ -453,26 +453,6 @@ ${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}
resolver: this
};
type RegistrationResult = { message: string } | boolean;
const clientPromise: Promise<RegistrationResult> = getCopilotClientApi().then(async (api) => {
if (!api) {
throw new CopilotContextProviderException("getCopilotApi() returned null, Copilot client is missing or inactive.");
}
const disposable = await this.installContextProvider(api, contextProvider);
if (disposable) {
this.contextProviderDisposables = this.contextProviderDisposables ?? [];
this.contextProviderDisposables.push(disposable);
return true;
} else {
throw new CopilotContextProviderException("getContextProviderAPI() is not available in Copilot client.");
}
}).catch((e) => {
console.debug("Failed to register the Copilot Context Provider with Copilot client.");
let message = "Failed to register the Copilot Context Provider with Copilot client";
if (e instanceof CopilotContextProviderException) {
message += `: ${e.message} `;
}
return { message };
});
const chatPromise: Promise<RegistrationResult> = getCopilotChatApi().then(async (api) => {
if (!api) {
throw new CopilotContextProviderException("getCopilotChatApi() returned null, Copilot Chat is missing or inactive.");
@@ -486,31 +466,55 @@ ${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}
throw new CopilotContextProviderException("getContextProviderAPI() is not available in Copilot Chat.");
}
}).catch((e) => {
console.debug("Failed to register the Copilot Context Provider with Copilot Chat.");
let message = "Failed to register the Copilot Context Provider with Copilot Chat";
if (e instanceof CopilotContextProviderException) {
message += `: ${e.message} `;
}
return { message };
});
// The client usually doesn't block. So test it first.
clientPromise.then((clientResult) => {
chatPromise.then((chatResult) => {
const properties: Record<string, string> = {};
if (isBoolean(clientResult) && clientResult) {
if (isBoolean(chatResult) && chatResult) {
properties["cppCodeSnippetsProviderRegistered"] = "true";
telemetry.logCopilotEvent(registerCopilotContextProvider, { ...properties });
return;
}
return chatPromise.then((chatResult) => {
const properties: Record<string, string> = {};
if (isBoolean(chatResult) && chatResult) {
// Don't even start checking the github.copilot extension until the chat API is confirmed to be unavailable,
// as users can only follow this code path if they temporarily opted out of Copilot extension unification.
const clientPromise: Promise<RegistrationResult> = getCopilotClientApi().then(async (api) => {
if (!api) {
if (vscode.extensions.getExtension('github.copilot') === undefined) {
return { message: "getCopilotApi() returned null, Copilot extension is not installed." };
}
throw new CopilotContextProviderException("getCopilotApi() returned null, Copilot client is missing or inactive.");
}
const disposable = await this.installContextProvider(api, contextProvider);
if (disposable) {
this.contextProviderDisposables = this.contextProviderDisposables ?? [];
this.contextProviderDisposables.push(disposable);
return true;
} else {
throw new CopilotContextProviderException("getContextProviderAPI() is not available in Copilot client.");
}
}).catch((e) => {
let message = "Failed to register the Copilot Context Provider with Copilot client";
if (e instanceof CopilotContextProviderException) {
message += `: ${e.message} `;
}
return { message };
});
return clientPromise.then((clientResult) => {
if (isBoolean(clientResult) && clientResult) {
properties["cppCodeSnippetsProviderRegistered"] = "true";
telemetry.logCopilotEvent(registerCopilotContextProvider, { ...properties });
return;
} else if (!isBoolean(clientResult) && isString(clientResult.message)) {
properties["error"] = clientResult.message;
} else if (!isBoolean(chatResult) && isString(chatResult.message)) {
properties["error"] = chatResult.message;
} else if (!isBoolean(clientResult) && isString(clientResult.message)) {
properties["error"] = clientResult.message;
} else {
properties["error"] = "Failed to register the Copilot Context Provider for unknown reason.";
}
@@ -10,6 +10,7 @@ import { CustomExecution, Disposable, Event, EventEmitter, ProcessExecution, Pse
import * as nls from 'vscode-nls';
import * as util from '../common';
import * as telemetry from '../telemetry';
import { logAndReturn } from "../Utility/Async/returns";
import { Client } from './client';
import * as configs from './configurations';
import { getEffectiveEnvironment, isEnvironmentOverrideApplied } from "./devcmd";
@@ -93,7 +94,7 @@ export class CppBuildTaskProvider implements TaskProvider {
let activeClient: Client;
try {
activeClient = ext.getActiveClient();
} catch (errJS) {
} catch {
return emptyTasks; // Language service features may be disabled.
}
@@ -370,7 +371,7 @@ class CustomBuildTaskTerminal implements Pseudoterminal {
constructor(private command: string | util.IQuotedString, private args: (string | util.IQuotedString)[], private options: cp.ExecOptions | undefined, private buildOptions: BuildOptions) {
}
async open(_initialDimensions: TerminalDimensions | undefined): Promise<void> {
async openAsync(_initialDimensions: TerminalDimensions | undefined): Promise<void> {
if (this.buildOptions.taskUsesActiveFile && !util.isCppOrCFile(window.activeTextEditor?.document.uri)) {
this.writeEmitter.fire(localize("cannot.build.non.cpp", 'Cannot build and debug because the active file is not a C or C++ source file.') + this.endOfLine);
this.closeEmitter.fire(-1);
@@ -387,6 +388,10 @@ class CustomBuildTaskTerminal implements Pseudoterminal {
await this.doBuild();
}
open(_initialDimensions: TerminalDimensions | undefined): void {
void this.openAsync(_initialDimensions).catch(logAndReturn.undefined);
}
close(): void {
// The terminal has been closed. Shutdown the build.
}
+2 -1
View File
@@ -7,6 +7,7 @@
import * as fs from 'fs';
import { Minimatch } from 'minimatch';
import * as path from 'path';
import * as util from '../common';
import { isWindows } from '../constants';
export const cachedEditorConfigSettings: Map<string, any> = new Map<string, any>();
@@ -144,7 +145,7 @@ function getEditorConfig(filePath: string): any {
// Traverse from the file's directory to the root directory.
for (; ;) {
const editorConfigPath: string = path.join(currentDir, '.editorconfig');
if (fs.existsSync(editorConfigPath)) {
if (util.checkFileExistsSync(editorConfigPath)) {
const configFileContent: string = fs.readFileSync(editorConfigPath, 'utf-8');
const configData = parseEditorConfigContent(configFileContent);
+14 -14
View File
@@ -195,10 +195,10 @@ export async function activate(): Promise<void> {
await registerCommands(true);
vscode.tasks.onDidStartTask(() => getActiveClient().PauseCodeAnalysis());
vscode.tasks.onDidStartTask(() => void getActiveClient().PauseCodeAnalysis().catch(logAndReturn.undefined));
vscode.tasks.onDidEndTask(event => {
getActiveClient().ResumeCodeAnalysis();
vscode.tasks.onDidEndTask(async event => {
await getActiveClient().ResumeCodeAnalysis();
if (event.execution.task.definition.type === CppBuildTaskProvider.CppBuildScriptType
|| event.execution.task.name.startsWith(configPrefix)) {
if (event.execution.task.scope !== vscode.TaskScope.Global && event.execution.task.scope !== vscode.TaskScope.Workspace) {
@@ -353,7 +353,7 @@ function onDidChangeTextEditorSelection(event: vscode.TextEditorSelectionChangeE
if (!util.isCpp(event.textEditor.document)) {
return;
}
clients.ActiveClient.selectionChanged(makeLspRange(event.selections[0]));
void clients.ActiveClient.selectionChanged(makeLspRange(event.selections[0])).catch(logAndReturn.undefined);
}
async function onDidChangeVisibleTextEditors(editors: readonly vscode.TextEditor[]): Promise<void> {
@@ -507,7 +507,7 @@ async function selectClient(): Promise<Client> {
async function onResetDatabase(): Promise<void> {
await clients.ActiveClient.ready;
clients.ActiveClient.resetDatabase();
return clients.ActiveClient.resetDatabase();
}
async function onRescanCompilers(sender?: any): Promise<void> {
@@ -750,7 +750,7 @@ function onExpandSelection(r: Range) {
}
}
function onAddToIncludePath(path: string): void {
async function onAddToIncludePath(path: string): Promise<void> {
if (isFolderOpen()) {
// This only applies to the active client. It would not make sense to add the include path
// suggestion to a different workspace.
@@ -777,23 +777,23 @@ function onToggleDimInactiveRegions(): void {
}
function onPauseParsing(): void {
clients.ActiveClient.pauseParsing();
void clients.ActiveClient.pauseParsing().catch(logAndReturn.undefined);
}
function onResumeParsing(): void {
clients.ActiveClient.resumeParsing();
void clients.ActiveClient.resumeParsing().catch(logAndReturn.undefined);
}
function onPauseCodeAnalysis(): void {
clients.ActiveClient.PauseCodeAnalysis();
void clients.ActiveClient.PauseCodeAnalysis().catch(logAndReturn.undefined);
}
function onResumeCodeAnalysis(): void {
clients.ActiveClient.ResumeCodeAnalysis();
void clients.ActiveClient.ResumeCodeAnalysis().catch(logAndReturn.undefined);
}
function onCancelCodeAnalysis(): void {
clients.ActiveClient.CancelCodeAnalysis();
void clients.ActiveClient.CancelCodeAnalysis().catch(logAndReturn.undefined);
}
function onShowActiveCodeAnalysisCommands(): Promise<void> {
@@ -805,7 +805,7 @@ function onShowIdleCodeAnalysisCommands(): Promise<void> {
}
function onShowReferencesProgress(): void {
clients.ActiveClient.handleReferencesIcon();
void clients.ActiveClient.handleReferencesIcon().catch(logAndReturn.undefined);
}
function onToggleRefGroupView(): void {
@@ -964,7 +964,7 @@ function reportMacCrashes(): void {
});
}, 5000);
});
} catch (e) {
} catch {
// The file watcher limit is hit (may not be possible on Mac, but just in case).
}
});
@@ -1023,7 +1023,7 @@ export function watchForCrashes(crashDirectory: string): void {
});
}, 5000);
});
} catch (e) {
} catch {
// The file watcher limit is hit (may not be possible on Mac, but just in case).
}
});
@@ -36,7 +36,7 @@ export function createProtocolFilter(): Middleware {
const baseFileName: string = path.basename(document.fileName);
const mappingString: string = baseFileName + "@" + document.fileName;
client.addFileAssociations(mappingString, "cpp");
client.sendDidChangeSettings();
void client.sendDidChangeSettings();
// The following will cause the file to be closed and reopened.
void vscode.languages.setTextDocumentLanguage(document, "cpp");
return;
+7 -7
View File
@@ -5,7 +5,6 @@
'use strict';
import { execSync } from 'child_process';
import * as fs from 'fs';
import * as os from 'os';
import * as path from 'path';
import * as semver from 'semver';
@@ -13,6 +12,7 @@ import { quote } from 'shell-quote';
import * as vscode from 'vscode';
import * as nls from 'vscode-nls';
import * as which from 'which';
import * as util from '../common';
import { getCachedClangFormatPath, getCachedClangTidyPath, getExtensionFilePath, getRawSetting, isArray, isArrayOfString, isBoolean, isNumber, isObject, isString, isValidMapping, setCachedClangFormatPath, setCachedClangTidyPath } from '../common';
import { isWindows } from '../constants';
import * as telemetry from '../telemetry';
@@ -301,7 +301,7 @@ export class CppSettings extends Settings {
if (!semver.valid(bundledVersion)) {
return path;
}
} catch (e) {
} catch {
// Unable to invoke our own clang-*. Use the system installed clang-*.
return path;
}
@@ -314,7 +314,7 @@ export class CppSettings extends Settings {
path = "";
setCachedClangPath(path);
}
} catch (e) {
} catch {
path = "";
setCachedClangPath(path);
}
@@ -898,7 +898,7 @@ export class CppSettings extends Settings {
try {
await vscode.workspace.applyEdit(edits);
document = await vscode.workspace.openTextDocument(uri);
} catch (e) {
} catch {
document = await vscode.workspace.openTextDocument();
}
} else {
@@ -925,7 +925,7 @@ export class CppSettings extends Settings {
let foundEditorConfigWithVcFormatSettings: boolean = false;
const findConfigFile: (parentPath: string) => boolean = (parentPath: string) => {
const editorConfigPath: string = path.join(parentPath, ".editorconfig");
if (fs.existsSync(editorConfigPath)) {
if (util.checkFileExistsSync(editorConfigPath)) {
const editorConfigSettings: any = getEditorConfigSettings(document.uri.fsPath);
const keys: string[] = Object.keys(editorConfigSettings);
for (let i: number = 0; i < keys.length; ++i) {
@@ -954,11 +954,11 @@ export class CppSettings extends Settings {
}
}
const clangFormatPath1: string = path.join(parentPath, ".clang-format");
if (fs.existsSync(clangFormatPath1)) {
if (util.checkFileExistsSync(clangFormatPath1)) {
return true;
}
const clangFormatPath2: string = path.join(parentPath, "_clang-format");
return fs.existsSync(clangFormatPath2);
return util.checkFileExistsSync(clangFormatPath2);
};
// Scan parent paths to see which we find first, ".clang-format" or ".editorconfig"
const fsPath: string = document.uri.fsPath;
+1 -1
View File
@@ -182,7 +182,7 @@ export function getExitCode(output: string, marker: string): number | undefined
try {
const num: number = parseInt(match[1]);
return Number.isNaN(num) ? undefined : num;
} catch (err) {
} catch {
return undefined;
}
}
-1
View File
@@ -175,7 +175,6 @@ function parseFlags(input: string[], entries: { [key: string]: string }): number
// prefix with `:` to tell the library not to log anything itself
const parser: BasicParser = new BasicParser(`:${getOptDirective}`, input, 0);
// eslint-disable-next-line no-constant-condition
while (true) {
const next: IParsedOption | undefined = parser.getopt();
if (!next) {
+3 -3
View File
@@ -61,7 +61,7 @@ function extractHostNames(parsedConfig: Configuration): { [host: string]: string
let resolvedConfig: ResolvedConfiguration | undefined;
try {
resolvedConfig = parsedConfig.compute(host);
} catch (e) {
} catch {
getSshChannel().appendLine(localize("failed.to.find.user.info.for.SSH",
"Failed to find user info for SSH. This could be caused by VS Code being installed using 'snap'. Please reinstall VS Code using the 'deb' package if you are planning to use SSH features."));
}
@@ -160,7 +160,7 @@ async function getIncludedConfigFile(
let includedContents: string;
try {
includedContents = (await fs.readFile(includePath)).toString();
} catch (e) {
} catch {
getSshChannel().appendLine(localize("failed.to.read.file", "Failed to read file {0}.", includePath));
return;
}
@@ -181,7 +181,7 @@ export async function writeSshConfiguration(configurationPath: string, configura
try {
await vscode.workspace.fs.createDirectory(vscode.Uri.file(path.dirname(configurationPath)));
await fs.writeFile(configurationPath, configuration.toString());
} catch (e) {
} catch {
getSshChannel().appendLine(localize("failed.to.write.file", "Failed to write to file {0}.", configurationPath));
}
}
@@ -116,7 +116,6 @@ export function parse(triggerExpression: string, sourceToBindTo: ArbitraryObject
if (token.kind !== Kind.Slash) {
throw new Error(`unexpected token ${JSON.stringify(token)}`);
}
// eslint-disable-next-line no-constant-condition
} while (true);
// for each discriminator[filter]
-1
View File
@@ -5,7 +5,6 @@
/* eslint-disable @typescript-eslint/naming-convention */
/* eslint-disable @typescript-eslint/unified-signatures */
/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */
import { ChildProcess, spawn } from 'child_process';
import { basename, resolve } from 'path';
-2
View File
@@ -13,8 +13,6 @@ import { finalize } from '../System/finalize';
import { is } from '../System/guards';
import { verbose } from '../Text/streams';
/* eslint-disable no-constant-condition */
/** An iterator/iterable wrapper to process a stream of lines. */
export class LineIterator implements AsyncIterable<string>, AsyncIterator<string> {
#current = 0;
+1 -2
View File
@@ -23,13 +23,12 @@ export function createSandbox(): <T>(code: string, context?: any) => T {
sandbox
);
for (const key of Object.keys(context)) {
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete sandbox[key];
}
} else {
try {
runInContext(`${response} = ${code}`, sandbox);
} catch (e) {
} catch {
sandbox[response] = undefined;
}
}
-1
View File
@@ -61,7 +61,6 @@ export class is {
return instance instanceof Socket;
}
// eslint-disable-next-line @typescript-eslint/ban-types
static function(instance: any): instance is Function {
return typeof instance === 'function';
}
+1 -2
View File
@@ -75,7 +75,6 @@ interface FunctionInfo {
/** a bound callable function for the member (saves us from having to do it later anyway) */
// eslint-disable-next-line @typescript-eslint/ban-types
fn: Function;
}
@@ -140,7 +139,7 @@ export function members(obj: any): Members {
result.fields.set(memberName, type);
}
}
// eslint-disable-next-line no-cond-assign
// eslint-disable-next-line no-cond-assign
} while (instance = Object.getPrototypeOf(instance));
}
return result;
-2
View File
@@ -117,11 +117,9 @@ export enum Kind {
Comma,
QuestionDot,
LessThan,
// eslint-disable-next-line @typescript-eslint/prefer-literal-enum-member
OpenAngle = LessThan,
LessThanSlash,
GreaterThan,
// eslint-disable-next-line @typescript-eslint/prefer-literal-enum-member
CloseAngle = GreaterThan,
LessThanEquals,
GreaterThanEquals,
+7 -9
View File
@@ -95,7 +95,7 @@ export async function getRawJson(path: string | undefined): Promise<any> {
let rawElement: any = {};
try {
rawElement = jsonc.parse(fileContents, undefined, true);
} catch (error) {
} catch {
throw new Error(failedToParseJson);
}
return rawElement;
@@ -146,10 +146,10 @@ export function getVcpkgRoot(): string {
if (!vcpkgRoot && vcpkgRoot !== "") {
vcpkgRoot = "";
// Check for vcpkg instance.
if (fs.existsSync(getVcpkgPathDescriptorFile())) {
if (checkFileExistsSync(getVcpkgPathDescriptorFile())) {
let vcpkgRootTemp: string = fs.readFileSync(getVcpkgPathDescriptorFile()).toString();
vcpkgRootTemp = vcpkgRootTemp.trim();
if (fs.existsSync(vcpkgRootTemp)) {
if (checkDirectoryExistsSync(vcpkgRootTemp)) {
vcpkgRoot = path.join(vcpkgRootTemp, "/installed").replace(/\\/g, "/");
}
}
@@ -501,7 +501,7 @@ export async function fsStat(filePath: fs.PathLike): Promise<fs.Stats | undefine
let stats: fs.Stats | undefined;
try {
stats = await fs.promises.stat(filePath);
} catch (e) {
} catch {
// File doesn't exist
return undefined;
}
@@ -562,7 +562,7 @@ export function createDirIfNotExistsSync(filePath: string | undefined): void {
export function checkFileExistsSync(filePath: string): boolean {
try {
return fs.statSync(filePath).isFile();
} catch (e) {
} catch {
return false;
}
}
@@ -595,7 +595,7 @@ export function checkExecutableWithoutExtensionExistsSync(filePath: string): boo
export function checkDirectoryExistsSync(dirPath: string): boolean {
try {
return fs.statSync(dirPath).isDirectory();
} catch (e) {
} catch {
return false;
}
}
@@ -1446,7 +1446,7 @@ export function findPowerShell(): string | undefined {
if (fs.statSync(candidate).isFile()) {
return name;
}
} catch (e) {
} catch {
// ignore, try next candidate
}
}
@@ -1474,9 +1474,7 @@ export function isVsCodeInsiders(): boolean {
export function stripEscapeSequences(str: string): string {
return str
// eslint-disable-next-line no-control-regex
.replace(/\x1b\[\??[0-9]{0,3}(;[0-9]{1,3})?[a-zA-Z]/g, '')
// eslint-disable-next-line no-control-regex
.replace(/\u0008/g, '')
.replace(/\r/g, '');
}
+4 -4
View File
@@ -20,7 +20,7 @@ export async function logMachineIdMappings(): Promise<void> {
// The first MAC address is the one Visual Studio uses
const primary = await getMachineId(macAddresses.shift());
if (primary) {
logLanguageServerEvent('machineIdMap', {primary});
logLanguageServerEvent('machineIdMap', { primary });
}
// VS Code uses os.networkInterfaces() which has different sorting and availability,
@@ -30,7 +30,7 @@ export async function logMachineIdMappings(): Promise<void> {
for (const macAddress of macAddresses) {
const additional = await getMachineId(macAddress);
if (additional) {
logLanguageServerEvent('machineIdMap', {additional});
logLanguageServerEvent('machineIdMap', { additional });
}
}
}
@@ -43,7 +43,7 @@ async function getMacAddresses(): Promise<string[]> {
const output = await execChildProcess('getmac');
const regex = /(?:[a-z0-9]{2}[:\-]){5}[a-z0-9]{2}/gmi;
return output.match(regex) ?? [];
} catch (err) {
} catch {
return [];
}
}
@@ -62,7 +62,7 @@ async function getMachineId(macAddress?: string): Promise<string | undefined> {
const crypto = await import('crypto');
const normalized = macAddress.toUpperCase().replace(/:/g, '-');
return crypto.createHash('sha256').update(normalized, 'utf8').digest('hex');
} catch (err) {
} catch {
return undefined;
}
}
+1 -1
View File
@@ -131,7 +131,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<CppToo
const doc: vscode.TextDocument = await vscode.workspace.openTextDocument(config);
void vscode.languages.setTextDocumentLanguage(doc, "jsonc");
util.setWorkspaceIsCpp();
} catch (err) {
} catch {
// The c_cpp_properties.json might not be openable (e.g. an executable).
// Catching the exception prevents our extension activation from failing.
// VS Code itself will report an error message.

Some files were not shown because too many files have changed in this diff Show More