Compare commits
152
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f8efe7197 | ||
|
|
a1eef20485 | ||
|
|
0b64d607f5 | ||
|
|
18e9335d76 | ||
|
|
0a72712f04 | ||
|
|
70b35ddbc7 | ||
|
|
53917c0de2 | ||
|
|
5993256e77 | ||
|
|
239deaf331 | ||
|
|
9b8153617c | ||
|
|
205cdf663d | ||
|
|
fcac9ac6d1 | ||
|
|
541f2b158c | ||
|
|
b271ed1c68 | ||
|
|
7a56cf9064 | ||
|
|
0015bd88c9 | ||
|
|
0666a0f0e3 | ||
|
|
030c22c6d8 | ||
|
|
b9150cbd22 | ||
|
|
3b8c545e09 | ||
|
|
a54ba1e1ce | ||
|
|
d83faa224a | ||
|
|
bb5b252ee1 | ||
|
|
8a6124fd45 | ||
|
|
fd96957a10 | ||
|
|
71278ef27b | ||
|
|
59a3309ac0 | ||
|
|
e669bc4802 | ||
|
|
25fd26acdf | ||
|
|
6797ee4f99 | ||
|
|
1f6e545118 | ||
|
|
52bec4837c | ||
|
|
a3d9417e43 | ||
|
|
96d470acb0 | ||
|
|
fd3926ffe4 | ||
|
|
2727652801 | ||
|
|
90f2ed1584 | ||
|
|
4e8203a95e | ||
|
|
b3110d8964 | ||
|
|
cf49a16515 | ||
|
|
5a07193e50 | ||
|
|
4ae7cd47e1 | ||
|
|
8f0f27e5a0 | ||
|
|
63aa33ff1d | ||
|
|
de2aadcb8b | ||
|
|
76ff264e6b | ||
|
|
61f7ecf39e | ||
|
|
a54f5698d2 | ||
|
|
8af9ded977 | ||
|
|
f754fdbe25 | ||
|
|
0f0d5a34d9 | ||
|
|
47b3ffd535 | ||
|
|
1f31ea4794 | ||
|
|
0dd2603271 | ||
|
|
c4980409a9 | ||
|
|
11df85302c | ||
|
|
d9a3f8e493 | ||
|
|
b435e56ff6 | ||
|
|
25cc9b758a | ||
|
|
11f261e796 | ||
|
|
f4fb3318f3 | ||
|
|
bfa165a92c | ||
|
|
2b8f7a2060 | ||
|
|
ecf12313ad | ||
|
|
1b29dbf772 | ||
|
|
7665e11045 | ||
|
|
25b76baa94 | ||
|
|
a6b12a8c10 | ||
|
|
775fd692ea | ||
|
|
ddb54454e3 | ||
|
|
2db5c05c37 | ||
|
|
bc9a72cf2f | ||
|
|
291e5a3228 | ||
|
|
7774dafb1f | ||
|
|
55ef430b96 | ||
|
|
bb5943c755 | ||
|
|
69d4585eb2 | ||
|
|
8e82004017 | ||
|
|
900aa75527 | ||
|
|
61b53bcda8 | ||
|
|
34d375a616 | ||
|
|
61815d8869 | ||
|
|
f309f90a4f | ||
|
|
fa097e4966 | ||
|
|
6770b0a25a | ||
|
|
5f56194feb | ||
|
|
21a8e34c91 | ||
|
|
5451e32bd8 | ||
|
|
97943a9d67 | ||
|
|
4884af8c94 | ||
|
|
65beaebaf9 | ||
|
|
6e3a7b2b7e | ||
|
|
5c16227c40 | ||
|
|
37a558260d | ||
|
|
e08377a353 | ||
|
|
61421ea4fe | ||
|
|
0608ecd86f | ||
|
|
ecdfabdd17 | ||
|
|
6e96c3ea13 | ||
|
|
4bb5b8a11f | ||
|
|
be8236fd80 | ||
|
|
c813ab5a99 | ||
|
|
20cfc2bbef | ||
|
|
577a7b8361 | ||
|
|
7a4b4ddb37 | ||
|
|
7fe4f030bd | ||
|
|
3a4df8c003 | ||
|
|
c9e571a889 | ||
|
|
b0efdb5628 | ||
|
|
886008ce84 | ||
|
|
9d161fb345 | ||
|
|
1a661ebd5b | ||
|
|
d84696e9a7 | ||
|
|
de84f488f2 | ||
|
|
a9609ef47b | ||
|
|
e83f362050 | ||
|
|
38e074451a | ||
|
|
a651e53430 | ||
|
|
304b92419f | ||
|
|
5aaa9197c2 | ||
|
|
c239d6b162 | ||
|
|
a66064beef | ||
|
|
b3c1b117c2 | ||
|
|
a38624d1ef | ||
|
|
2c26037f43 | ||
|
|
318f7058b0 | ||
|
|
8cadd2dac8 | ||
|
|
c5fe03c8e6 | ||
|
|
df350e6552 | ||
|
|
a8cb5375e9 | ||
|
|
40e39acb0e | ||
|
|
8ff42d0d00 | ||
|
|
597f29c39a | ||
|
|
fc048916c0 | ||
|
|
6de78e2d05 | ||
|
|
6bddc0fb58 | ||
|
|
e0cf47d749 | ||
|
|
adb6bcf8d5 | ||
|
|
e80bd3b0d1 | ||
|
|
a5d00e3123 | ||
|
|
b977587cb1 | ||
|
|
ca81d009fd | ||
|
|
5bbac4e637 | ||
|
|
ea1fbea183 | ||
|
|
f681142c40 | ||
|
|
1cd186b3f3 | ||
|
|
e23c41835d | ||
|
|
d9fe0c8874 | ||
|
|
5ad75b4445 | ||
|
|
11b63666c5 | ||
|
|
920997d1d8 | ||
|
|
05d57e1c3c |
@@ -1,2 +1,3 @@
|
||||
registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/
|
||||
always-auth=true
|
||||
# Disable postinstall scripts for supply chain security. Allowlist exceptions with npm trust: https://docs.npmjs.com/cli/v11/commands/npm-trust
|
||||
ignore-scripts=true
|
||||
|
||||
@@ -38,5 +38,5 @@ inputs:
|
||||
readonly:
|
||||
description: If true, changes are not applied.
|
||||
runs:
|
||||
using: 'node20'
|
||||
using: 'node24'
|
||||
main: 'index.js'
|
||||
|
||||
@@ -29,5 +29,5 @@ inputs:
|
||||
readonly:
|
||||
description: If true, changes are not applied.
|
||||
runs:
|
||||
using: 'node20'
|
||||
using: 'node24'
|
||||
main: 'index.js'
|
||||
|
||||
@@ -33,5 +33,5 @@ inputs:
|
||||
readonly:
|
||||
description: If true, changes are not applied.
|
||||
runs:
|
||||
using: 'node20'
|
||||
using: 'node24'
|
||||
main: 'index.js'
|
||||
|
||||
@@ -43,5 +43,5 @@ inputs:
|
||||
readonly:
|
||||
description: If true, changes are not applied.
|
||||
runs:
|
||||
using: 'node20'
|
||||
using: 'node24'
|
||||
main: 'index.js'
|
||||
|
||||
@@ -25,7 +25,6 @@ export const normalizeIssue = (issue: {
|
||||
const cleanse = (str: string) => {
|
||||
let out = str
|
||||
.toLowerCase()
|
||||
.replace(/<!--.*-->/gu, '')
|
||||
.replace(/.* version: .*/gu, '')
|
||||
.replace(/issue type: .*/gu, '')
|
||||
.replace(/vs ?code/gu, '')
|
||||
@@ -36,6 +35,12 @@ export const normalizeIssue = (issue: {
|
||||
.replace(/\s+/gu, ' ')
|
||||
.replace(/```[^`]*?```/gu, '');
|
||||
|
||||
while (
|
||||
out.includes('<!--') &&
|
||||
out.includes('-->') &&
|
||||
out.indexOf('-->') > out.indexOf('<!--')) {
|
||||
out = out.slice(0, out.indexOf('<!--')) + out.slice(out.indexOf('-->') + 3);
|
||||
}
|
||||
while (
|
||||
out.includes(`<details>`) &&
|
||||
out.includes('</details>') &&
|
||||
@@ -116,9 +121,9 @@ Repo: ${context.repo.owner}/${context.repo.repo}
|
||||
|
||||
<!-- Context:
|
||||
${JSON.stringify(context, null, 2)
|
||||
.replace(/<!--/gu, '<@--')
|
||||
.replace(/-->/gu, '--@>')
|
||||
.replace(/\/|\\/gu, 'slash-')}
|
||||
.replace(/<!--/gu, '<@--')
|
||||
.replace(/--!?\s*>/gu, '--@>')
|
||||
.replace(/\/|\\/gu, 'slash-')}
|
||||
-->
|
||||
`);
|
||||
};
|
||||
|
||||
Generated
+717
-1226
File diff suppressed because it is too large
Load Diff
@@ -14,9 +14,8 @@
|
||||
"@actions/github": "^8.0.1",
|
||||
"@octokit/rest": "^21.1.1",
|
||||
"@slack/web-api": "^6.9.1",
|
||||
"applicationinsights": "^2.5.1",
|
||||
"axios": "^1.12.1",
|
||||
"uuid": "^8.3.2"
|
||||
"axios": "^1.16.0",
|
||||
"uuid": "^14.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@azure/storage-blob": "^12.13.0",
|
||||
@@ -39,7 +38,9 @@
|
||||
"typescript": "^4.7.4",
|
||||
"yargs": "^17.5.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"minimatch": "^3.0.5"
|
||||
"overrides": {
|
||||
"serialize-javascript": "^7.0.5",
|
||||
"flatted": "^3.4.2",
|
||||
"fast-xml-parser": "^5.5.7"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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. We’ll let you know if we need more information to investigate it. Additionally, if you're working with GDB/LLDB, please note that the code is open source at https://github.com/microsoft/MIEngine/wiki/Contributing-Code . Your contributions are always welcome and appreciated."
|
||||
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."
|
||||
|
||||
|
||||
@@ -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,10 +5,20 @@ on:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target-ref:
|
||||
description: Branch, tag, or SHA to test
|
||||
required: true
|
||||
default: 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
|
||||
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
|
||||
|
||||
@@ -5,11 +5,21 @@ on:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target-ref:
|
||||
description: Branch, tag, or SHA to test
|
||||
required: true
|
||||
default: 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
|
||||
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
|
||||
yarn-args: --network-timeout 100000
|
||||
|
||||
@@ -5,10 +5,20 @@ on:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target-ref:
|
||||
description: Branch, tag, or SHA to test
|
||||
required: true
|
||||
default: 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
|
||||
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
|
||||
|
||||
@@ -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}}"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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."
|
||||
|
||||
|
||||
@@ -11,20 +11,28 @@ on:
|
||||
# Expects 'mac', 'linux', or 'windows'
|
||||
required: true
|
||||
type: string
|
||||
checkout-ref:
|
||||
required: false
|
||||
type: string
|
||||
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
|
||||
with:
|
||||
ref: ${{ inputs.checkout-ref }}
|
||||
|
||||
- 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 }}
|
||||
@@ -63,6 +71,11 @@ jobs:
|
||||
# run: yarn test --scenario=MultirootDeadlockTest
|
||||
# working-directory: Extension
|
||||
|
||||
# - name: Run E2E IntelliSense features tests
|
||||
# if: ${{ inputs.platform == 'windows' }}
|
||||
# run: yarn test --scenario=RunWithoutDebugging
|
||||
# working-directory: Extension
|
||||
|
||||
# NOTE: For mac/linux run the tests with xvfb-action for UI support.
|
||||
# Another way to start xvfb https://github.com/microsoft/vscode-test/blob/master/sample/azure-pipelines.yml
|
||||
|
||||
@@ -78,4 +91,12 @@ jobs:
|
||||
# uses: coactions/setup-xvfb@v1
|
||||
# with:
|
||||
# run: yarn test --scenario=MultirootDeadlockTest
|
||||
# working-directory: Extension
|
||||
# working-directory: Extension
|
||||
|
||||
# - name: Run E2E IntelliSense features tests (xvfb)
|
||||
# if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
|
||||
# uses: coactions/setup-xvfb@v1
|
||||
# with:
|
||||
# run: yarn test --scenario=RunWithoutDebugging
|
||||
# working-directory: 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: 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."
|
||||
|
||||
|
||||
@@ -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."
|
||||
|
||||
|
||||
+16
-22
@@ -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,22 +99,22 @@ 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
|
||||
retryCountOnTaskFailure: 3
|
||||
|
||||
- script: |
|
||||
cd $(Build.SourcesDirectory)\Extension
|
||||
vsce package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix
|
||||
name: ProcessRunner_12
|
||||
displayName: Run VSCE to package vsix
|
||||
- script: yarn install --frozen-lockfile
|
||||
displayName: Install dependencies with yarn
|
||||
workingDirectory: $(Build.SourcesDirectory)\Extension
|
||||
|
||||
- task: Npm@0
|
||||
displayName: Uninstall vsce
|
||||
inputs:
|
||||
command: uninstall
|
||||
arguments: --global @vscode/vsce
|
||||
- script: if not exist node_modules\@vscode\vsce-sign\bin\vsce-sign.exe (echo Missing vsce-sign.exe && exit 1)
|
||||
displayName: Verify vsce-sign binary exists
|
||||
workingDirectory: $(Build.SourcesDirectory)\Extension
|
||||
|
||||
- script: npx vsce package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix
|
||||
displayName: Run VSCE to package vsix
|
||||
workingDirectory: $(Build.SourcesDirectory)\Extension
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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,58 @@ 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 }}
|
||||
displayName: Run VSCE to package vsix
|
||||
- script: npm install --no-save --ignore-scripts=false --include=optional --force @vscode/[email protected]
|
||||
displayName: Install vsce
|
||||
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
|
||||
|
||||
- task: Npm@0
|
||||
displayName: Uninstall vsce
|
||||
- script: npm rebuild @vscode/vsce-sign --ignore-scripts=false
|
||||
displayName: Rebuild vsce-sign binary
|
||||
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
|
||||
|
||||
- script: if not exist node_modules\@vscode\vsce-sign\bin\vsce-sign.exe (echo Missing vsce-sign.exe && exit 1)
|
||||
displayName: Verify vsce-sign binary exists
|
||||
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
|
||||
|
||||
- script: npx vsce package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix
|
||||
displayName: Run VSCE to package vsix
|
||||
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
|
||||
|
||||
# sign the vsix
|
||||
- script: npx vsce 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 }}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
@@ -36,9 +31,16 @@ jobs:
|
||||
$aadToken = az account get-access-token --query accessToken --resource $(AzureGuid) -o tsv
|
||||
Write-Host "##vso[task.setvariable variable=AAD_TOKEN;issecret=true]$aadToken"
|
||||
|
||||
- script: |
|
||||
vsce publish --packagePath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}
|
||||
- script: npm install --no-save --ignore-scripts=false --include=optional --force @vscode/[email protected]
|
||||
displayName: Install vsce
|
||||
|
||||
- script: npm rebuild @vscode/vsce-sign --ignore-scripts=false
|
||||
displayName: Rebuild vsce-sign binary
|
||||
|
||||
- script: if not exist node_modules\@vscode\vsce-sign\bin\vsce-sign.exe (echo Missing vsce-sign.exe && exit 1)
|
||||
displayName: Verify vsce-sign binary exists
|
||||
|
||||
- script: npx vsce 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)
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -1,4 +0,0 @@
|
||||
*.js
|
||||
|
||||
dist/
|
||||
vscode*.d.ts
|
||||
@@ -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.",
|
||||
" * ------------------------------------------------------------------------------------------ "
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
}
|
||||
};
|
||||
+2
-1
@@ -1,2 +1,3 @@
|
||||
registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/
|
||||
always-auth=true
|
||||
# Disable postinstall scripts for supply chain security. Allowlist exceptions with npm trust: https://docs.npmjs.com/cli/v11/commands/npm-trust
|
||||
ignore-scripts=true
|
||||
|
||||
@@ -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}'`);
|
||||
|
||||
@@ -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.');
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All Rights Reserved.
|
||||
* See 'LICENSE' in the project root for license information.
|
||||
* ------------------------------------------------------------------------------------------ */
|
||||
|
||||
import { cp, readdir, rm, stat } from 'node:fs/promises';
|
||||
import { homedir } from 'node:os';
|
||||
import { join } from 'node:path';
|
||||
import { $args, $root, green, heading, note } from './common';
|
||||
|
||||
const extensionPrefix = 'ms-vscode.cpptools-';
|
||||
const foldersToCopy = ['bin', 'debugAdapters', 'LLVM'] as const;
|
||||
|
||||
type InstalledExtension = {
|
||||
path: string;
|
||||
version: number[];
|
||||
modified: number;
|
||||
};
|
||||
|
||||
function compareVersions(left: number[], right: number[]): number {
|
||||
const maxLength: number = Math.max(left.length, right.length);
|
||||
for (let i = 0; i < maxLength; i++) {
|
||||
const diff: number = (left[i] ?? 0) - (right[i] ?? 0);
|
||||
if (diff !== 0) {
|
||||
return diff;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
function tryParseVersion(folderName: string): number[] | undefined {
|
||||
if (!folderName.startsWith(extensionPrefix)) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const versionText: string | undefined = folderName.substring(extensionPrefix.length).match(/^\d+\.\d+\.\d+/)?.[0];
|
||||
return versionText?.split('.').map(each => Number(each));
|
||||
}
|
||||
|
||||
async function getInstalledExtensions(root: string): Promise<InstalledExtension[]> {
|
||||
try {
|
||||
const entries = await readdir(root, { withFileTypes: true });
|
||||
const candidates: Promise<InstalledExtension | undefined>[] = entries.map(async (entry) => {
|
||||
if (!entry.isDirectory()) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const version: number[] | undefined = tryParseVersion(entry.name);
|
||||
if (!version) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const extensionPath: string = join(root, entry.name);
|
||||
for (const folder of foldersToCopy) {
|
||||
const info = await stat(join(extensionPath, folder)).catch(() => undefined);
|
||||
if (!info?.isDirectory()) {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
const info = await stat(extensionPath);
|
||||
return {
|
||||
path: extensionPath,
|
||||
version,
|
||||
modified: info.mtimeMs
|
||||
};
|
||||
});
|
||||
|
||||
const found = await Promise.all(candidates);
|
||||
return found.filter((entry): entry is InstalledExtension => entry !== undefined);
|
||||
} catch {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
async function findLatestInstalledExtension(providedPath?: string): Promise<string> {
|
||||
if (providedPath) {
|
||||
return providedPath;
|
||||
}
|
||||
|
||||
const searchRoots: string[] = [
|
||||
join(homedir(), '.vscode', 'extensions'),
|
||||
join(homedir(), '.vscode-insiders', 'extensions'),
|
||||
join(homedir(), '.vscode-server', 'extensions'),
|
||||
join(homedir(), '.vscode-server-insiders', 'extensions')
|
||||
];
|
||||
|
||||
const installed: InstalledExtension[] = (await Promise.all(searchRoots.map(each => getInstalledExtensions(each)))).flat();
|
||||
if (!installed.length) {
|
||||
throw new Error(`Unable to find an installed C/C++ extension under ${searchRoots.join(' or ')}.`);
|
||||
}
|
||||
|
||||
installed.sort((left, right) => compareVersions(right.version, left.version) || right.modified - left.modified);
|
||||
return installed[0].path;
|
||||
}
|
||||
|
||||
export async function main(sourcePath = $args[0]) {
|
||||
console.log(heading('Copy installed extension binaries'));
|
||||
|
||||
const installedExtensionPath: string = await findLatestInstalledExtension(sourcePath);
|
||||
note(`Using installed extension at ${installedExtensionPath}`);
|
||||
|
||||
for (const folder of foldersToCopy) {
|
||||
const source: string = join(installedExtensionPath, folder);
|
||||
const destination: string = join($root, folder);
|
||||
|
||||
console.log(`Copying ${green(folder)} from ${source}`);
|
||||
await rm(destination, { recursive: true, force: true });
|
||||
await cp(source, destination, { recursive: true, force: true });
|
||||
}
|
||||
|
||||
note(`Copied installed binaries into ${$root}`);
|
||||
}
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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 || '')}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"experimentalDecorators": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"sourceMap": true,
|
||||
"esModuleInterop": true
|
||||
"esModuleInterop": true,
|
||||
"strictNullChecks": true
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+4
@@ -97,6 +97,10 @@
|
||||
"label": "MultirootDeadlockTest ",
|
||||
"value": "${workspaceFolder}/test/scenarios/MultirootDeadlockTest/assets/test.code-workspace"
|
||||
},
|
||||
{
|
||||
"label": "RunWithoutDebugging ",
|
||||
"value": "${workspaceFolder}/test/scenarios/RunWithoutDebugging/assets/"
|
||||
},
|
||||
{
|
||||
"label": "SimpleCppProject ",
|
||||
"value": "${workspaceFolder}/test/scenarios/SimpleCppProject/assets/simpleCppProject.code-workspace"
|
||||
|
||||
@@ -29,14 +29,12 @@ jobs/**
|
||||
cgmanifest.json
|
||||
|
||||
# ignore development files
|
||||
.eslintignore
|
||||
.eslintrc.js
|
||||
eslint.config.js
|
||||
.gitattributes
|
||||
.gitignore
|
||||
gulpfile.js
|
||||
localized_string_ids.h
|
||||
readme.developer.md
|
||||
Reinstalling the Extension.md
|
||||
test.tsconfig.json
|
||||
translations_auto_pr.js
|
||||
tsconfig.json
|
||||
|
||||
+31
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,79 @@
|
||||
# C/C++ for Visual Studio Code Changelog
|
||||
|
||||
## Version 1.33.0: June 22, 2026
|
||||
### New Feature
|
||||
* Unification of tag parsing with the VS implementation. In particular, it's now done using multiple parallel `cpptools-srv2` processes. [PR #14426](https://github.com/microsoft/vscode-cpptools/pull/14426)
|
||||
|
||||
### Enhancements
|
||||
* Add the `debuginfod` launch option to the `cppdbg` debugger schema. [#14458](https://github.com/microsoft/vscode-cpptools/issues/14458), [#14460](https://github.com/microsoft/vscode-cpptools/issues/14460), [PR #14471](https://github.com/microsoft/vscode-cpptools/pull/14471), [PR #14506](https://github.com/microsoft/vscode-cpptools/pull/14506), [MIEngine#1562](https://github.com/microsoft/MIEngine/issues/1562)
|
||||
* Add the `ignoreRunWithoutDebuggingWarnings` property to allow 'Run without debugging' warnings to be suppressed. [#14515](https://github.com/microsoft/vscode-cpptools/issues/14515)
|
||||
* Various localization updates.
|
||||
|
||||
### Bug Fixes
|
||||
* Fix an incorrect `invalid type conversion` IntelliSense error. [#11294](https://github.com/microsoft/vscode-cpptools/issues/11294)
|
||||
* Fix include completion (with recursive includes) still suggesting headers from a deleted folder. [#12636](https://github.com/microsoft/vscode-cpptools/issues/12636)
|
||||
* Add `important` to `C_Cpp.doxygen.sectionTags`. [PR #14473](https://github.com/microsoft/vscode-cpptools/pull/14473)
|
||||
* Update the minimum supported VS Code version to 1.77. [PR #14502](https://github.com/microsoft/vscode-cpptools/pull/14502)
|
||||
* Fix issues with the debugger `launch.json` schema. [PR #14523](https://github.com/microsoft/vscode-cpptools/pull/14523)
|
||||
* Fix `${env:VAR}` and `${env.VAR}` not expanding to an empty string when the environment variable is unset, to match VS Code's behavior. [PR #14535](https://github.com/microsoft/vscode-cpptools/pull/14535)
|
||||
* Thanks for the contribution. [@notable-equivalent](https://github.com/notable-equivalent)
|
||||
* Fix the `C_Cpp.refactoring.includeHeader` setting not honoring `always`.
|
||||
* Various other fixes found internally.
|
||||
|
||||
## Version 1.32.2: April 28, 2026
|
||||
### New Feature
|
||||
* Add support for "Run without debugging". [#1201](https://github.com/microsoft/vscode-cpptools/issues/1201)
|
||||
|
||||
### Enhancements
|
||||
* Add a `C_Cpp.doxygen.generateOnCodeAction` setting to allow disabling of Doxygen generation code actions. [#14341](https://github.com/microsoft/vscode-cpptools/issues/14341)
|
||||
* Add a `cpptools.waitForTagParsing` command (for use by the `C/C++ DevTools` extension). [PR #14407](https://github.com/microsoft/vscode-cpptools/pull/14407/changes)
|
||||
* Improve wildcard matching with the debugger natvis. [MIEngine#1162](https://github.com/microsoft/MIEngine/issues/1162)
|
||||
* Add support for `HideRawView` with the debugger natvis. [MIEngine#1458](https://github.com/microsoft/MIEngine/issues/1458)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix high CPU usage caused by repeated calls to `selectChatModels`. [#14168](https://github.com/microsoft/vscode-cpptools/issues/14168), [#14211](https://github.com/microsoft/vscode-cpptools/issues/14211), [#14241](https://github.com/microsoft/vscode-cpptools/issues/14241)
|
||||
* Fix the MSVC developer environment not working if `UCRTVersion` isn't found, and update the walkthrough instructions for installing MSVC. [#14352](https://github.com/microsoft/vscode-cpptools/issues/14352)
|
||||
* Fix an IntelliSense crash when three special-case comments are used in a template. [#14360](https://github.com/microsoft/vscode-cpptools/issues/14360)
|
||||
* Fix Copilot hover taking too many premium requests. [#14372](https://github.com/microsoft/vscode-cpptools/issues/14372)
|
||||
* Fix null pointers being expandable for variables in the debugger. [MIEngine#698](https://github.com/microsoft/MIEngine/issues/698)
|
||||
* Fix recursive `{this}` evaluation with the debugger natvis. [MIEngine#1391](https://github.com/microsoft/MIEngine/issues/1391)
|
||||
* Update clang-tidy and clang-format from 22.1.1 to 22.1.3 (bug fixes).
|
||||
* Fix a bug with semantic colorization of operators.
|
||||
|
||||
## Version 1.31.5: April 20, 2026
|
||||
### Bug Fixes
|
||||
* Fix `Reinstalling the Extension.md` not being found. [#14389](https://github.com/microsoft/vscode-cpptools/issues/14389)
|
||||
* Fix the `C/C++ DevTools` extension language service tools not working after the `C/C++` extension updates via `Restart Extensions`. [#14392](https://github.com/microsoft/vscode-cpptools/issues/14392)
|
||||
|
||||
## Version 1.31.4: March 31, 2026
|
||||
### Bug Fix
|
||||
* Debugging cpptools and cpptools-srv processes on macOS (to get call stacks) is now blocked when SIP is enabled (due to a potential security issue).
|
||||
|
||||
## 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
@@ -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.
|
||||
|
||||
+1163
-364
File diff suppressed because it is too large
Load Diff
@@ -1,33 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"cpfe",
|
||||
"--wchar_t_keyword",
|
||||
"--no_warnings",
|
||||
"--rtti",
|
||||
"--edge",
|
||||
"--exceptions",
|
||||
"--error_limit",
|
||||
"25000",
|
||||
"-D_EDG_COMPILER",
|
||||
"-D_USE_DECLSPECS_FOR_SAL=1"
|
||||
],
|
||||
"source_file_format": "-f %s",
|
||||
"expressions": [
|
||||
{
|
||||
"match": "^/I(.*)",
|
||||
"replace": "-I\n$1"
|
||||
},
|
||||
{
|
||||
"match": "^/D(.*)",
|
||||
"replace": "-D$1"
|
||||
},
|
||||
{
|
||||
"match": "^/AI(.*)",
|
||||
"replace": "--using_directory\n$1"
|
||||
},
|
||||
{
|
||||
"match": "^/dE--(.*)",
|
||||
"replace": "--$1"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__arm__=1",
|
||||
"-D__ARM_32BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__aarch64__=1",
|
||||
"-D__ARM_64BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__x86_64=1",
|
||||
"-D__x86_64__=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__i386=1",
|
||||
"-D__i386__=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__arm__=1",
|
||||
"-D__ARM_32BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__aarch64__=1",
|
||||
"-D__ARM_64BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__x86_64=1",
|
||||
"-D__x86_64__=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__i386=1",
|
||||
"-D__i386__=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__arm__=1",
|
||||
"-D__ARM_32BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__aarch64__=1",
|
||||
"-D__ARM_64BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__x86_64=1",
|
||||
"-D__x86_64__=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__i386=1",
|
||||
"-D__i386__=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__arm__=1",
|
||||
"-D__ARM_32BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__aarch64__=1",
|
||||
"-D__ARM_64BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__x86_64=1",
|
||||
"-D__x86_64__=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__i386=1",
|
||||
"-D__i386__=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1664,7 +1664,7 @@
|
||||
"#include_next, birincil kaynak dosyada kullanılamıyor",
|
||||
"şablon üye tanımında %no1 belirtilemiyor -- onun yerine %no2 varsayıldı",
|
||||
"yerel işlev bildiriminde, %sq özniteliği yoksayılıyor",
|
||||
"%sq öğesi ile %n içerisinde birleştirme işlemi, geçerli bir simge oluşturmuyor",
|
||||
"%sq öğesi ile %n içerisinde birleştirme işlemi, geçerli bir belirteç oluşturmuyor",
|
||||
"%no belirsiz (%n2 varsayıldı)",
|
||||
"statik bir üye işlev üzerinde tür niteleyicisine izin verilmiyor",
|
||||
"bir tür niteleyicisine, bir oluşturucu veya yıkıcı üzerinde izin verilmiyor",
|
||||
|
||||
@@ -3604,7 +3604,7 @@
|
||||
"第一个参数必须是指向整数、enum 或支持的浮点类型的指针",
|
||||
"编译多个翻译单元时无法使用 C++ 模块",
|
||||
"C++ 模块不能与 C++11 之前的 'export' 功能一起使用",
|
||||
"不支持 IFC 令牌 %sq",
|
||||
"不支持 IFC 标记 %sq",
|
||||
"'pass_object_size' 属性仅对函数声明的参数有效",
|
||||
"%sq 属性 %d1 的参数必须介于 0 和 %d2 之间",
|
||||
"此处的 ref-qualifier 被忽略",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"記憶體不足。請考慮啟用 64 位元 IntelliSense 引擎,並在設定中增加 IntelliSense 記憶體限制。",
|
||||
null,
|
||||
"檔案結尾處有未封閉的註解",
|
||||
"無法辨認的語彙基元",
|
||||
"無法辨認的 Token",
|
||||
"遺漏右引號",
|
||||
"不允許巢狀註解",
|
||||
"這裡不應該出現 '#'",
|
||||
@@ -721,8 +721,8 @@
|
||||
"不允許 mutable",
|
||||
"不允許 %n 的重新宣告更改其存取權",
|
||||
null,
|
||||
"可能誤用替代的語彙基元 '<:'",
|
||||
"可能誤用替代的語彙基元 '%%:'",
|
||||
"可能誤用替代的 Token '<:'",
|
||||
"可能誤用替代的 Token '%%:'",
|
||||
"不允許命名空間定義",
|
||||
"名稱必須是命名空間名稱",
|
||||
"不允許命名空間別名定義",
|
||||
@@ -782,7 +782,7 @@
|
||||
"參考的目標是 %nd1 -- 根據舊的 for-init 範圍規則,它可能已 %nd2",
|
||||
"控制 for-init 差異時警告的選項只有在編譯 C++ 時才能使用",
|
||||
"這裡需要虛擬 %n 的定義",
|
||||
"空白註解被解譯為語彙基元帶入的運算子 '##'",
|
||||
"空白註解被解譯為 Token 帶入的運算子 '##'",
|
||||
"friend 宣告不能有儲存類別",
|
||||
"這個宣告不能有 %no 的樣板參數清單",
|
||||
"%n 不是有效的類別成員範本",
|
||||
@@ -1664,7 +1664,7 @@
|
||||
"#include_next 不能用於主要原始程式檔",
|
||||
"無法在樣板成員定義中指定 %no1 -- 假設為 %no2",
|
||||
"區域函式宣告忽略 %sq 屬性",
|
||||
"與 %sq (於 %n 中) 的串連不會建立有效的語彙基元",
|
||||
"與 %sq (於 %n 中) 的串連不會建立有效的 Token",
|
||||
"%no 模稜兩可 (假設為 %n2)",
|
||||
"靜態成員函式不能有類型限定詞",
|
||||
"建構函式或解構函式不能有類型限定詞",
|
||||
@@ -3388,7 +3388,7 @@
|
||||
"當 %sq 用於匯入或模組指示詞中時,不得為巨集",
|
||||
"這個指示詞只能出現在全域命名空間範圍內",
|
||||
"'export' 宣告只能出現在全域或命名空間範圍",
|
||||
"%sq 剖析為識別碼而非關鍵字,因為後續的權杖與前置處理器指示詞的標記不相符",
|
||||
"%sq 剖析為識別碼而非關鍵字,因為後續的 Token 與前置處理器指示詞的標記不相符",
|
||||
"這似乎是前置處理器指示詞的開頭,但是缺少 ';',後面緊接著新行會防止",
|
||||
"這似乎是模組前置處理指示詞,但這類指示詞不能出現在巨集展開中",
|
||||
"'module' 指示詞不能出現在條件式包含的範圍 (例如,#if、#else、#elseif 等)",
|
||||
@@ -3604,7 +3604,7 @@
|
||||
"第一個引數必須是整數的指標、enum 或支援的浮點類型",
|
||||
"編譯多個翻譯單元時,無法使用 C++ 模組",
|
||||
"C++ 模組無法搭配先前的 C++11 'export' 功能使用",
|
||||
"IFC 權杖 %sq 不受支援",
|
||||
"IFC Token %sq 不受支援",
|
||||
"'pass_object_size' 屬性僅在函式宣告的參數上有效",
|
||||
"%sq 屬性 %d1 的引數必須是介於 0 到 %d2 之間的值",
|
||||
"這裡會忽略 ref-qualifier",
|
||||
@@ -3624,11 +3624,11 @@
|
||||
"在此模式下,'auto' 作為類型規範並非標準用法",
|
||||
"由於檔案損毀,無法匯入模組檔案 %sq",
|
||||
"IFC",
|
||||
"成員宣告後插入了沒有直接關聯的權杖",
|
||||
"成員宣告後插入了沒有直接關聯的 Token",
|
||||
"錯誤的插入範圍 (%r)",
|
||||
"預期為 std::string_view 類型的值,但收到 %t",
|
||||
"陳述式後插入了沒有直接關聯的權杖",
|
||||
"宣告後插入了沒有直接關聯的權杖",
|
||||
"陳述式後插入了沒有直接關聯的 Token",
|
||||
"宣告後插入了沒有直接關聯的 Token",
|
||||
"Tuple 索引值 (%d) 溢位",
|
||||
">> 輸出來自 std::meta::__report_tokens",
|
||||
">> 結束輸出自 std::meta::__report_tokens",
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
@@ -213,17 +213,6 @@
|
||||
"recursiveIncludes": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"reduce": {
|
||||
"markdownDescription": "Set to `always` to always reduce the number of recursive include paths provided to IntelliSense to only those paths currently referenced by #include statements. This requires first parsing files to determine which headers are included. Set to `never` to provide all recursive include paths to IntelliSense. Reducing the number of recursive include paths may improve IntelliSense performance when a very large number of recursive include paths are involved. Not reducing the number of recursive include paths can improve IntelliSense performance by avoiding the need to parse files to determine which include paths to provide. The `default` value is currently to reduce the number of recursive include paths provided to IntelliSense.",
|
||||
"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"always",
|
||||
"never",
|
||||
"default",
|
||||
"${default}"
|
||||
]
|
||||
},
|
||||
"priority": {
|
||||
"markdownDescription": "The priority of recursive include paths. If set to `beforeSystemIncludes`, the recursive include paths will be searched before system include paths. If set to `afterSystemIncludes`, the recursive include paths will be searched after system include paths. `beforeSystemIncludes` would more closely reflect the search order of a compiler, while `afterSystemIncludes` may result in improved performance.",
|
||||
"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
|
||||
|
||||
@@ -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}"]
|
||||
},
|
||||
];
|
||||
@@ -22,7 +22,6 @@
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.browse.properties.limitSymbolsToIncludedHeaders": "设为 `true` 以仅处理直接或间接包含为标头的文件,设为 `false` 则处理指定包含路径下的所有文件。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.browse.properties.databaseFilename": "所生成的符号数据库的路径。如果指定了相对路径,则它将相对于工作区的默认存储位置。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.browse.properties.path": "用于索引和分析工作区符号的路径列表(供“转到定义”、“查找所有引用”等使用)。默认情况下,在这些路径上进行搜索为递归搜索。指定 `*` 以指示非递归搜索。例如,`${workspaceFolder}` 将搜索所有子目录,而 `${workspaceFolder}/*` 将不进行搜索。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.recursiveIncludes.properties.reduce": "设置为 `always` 可始终将提供给 IntelliSense 的递归包含路径数减少到仅限当前由 #include 语句引用的路径。这需要首先分析文件以确定包含哪些标头。设置为 `never` 可将所有递归包含路径提供给 IntelliSense。当涉及到大量递归包含路径时,减少递归包含路径的数量可能会提高 IntelliSense 性能。如果不减少递归包含路径的数量,则可以通过避免需要分析文件以确定要提供的包含路径来提高 IntelliSense 性能。`default` 值目前会减少提供给 IntelliSense 的递归包含路径数。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.recursiveIncludes.properties.priority": "递归包含路径的优先级。如果设置为 `beforeSystemIncludes`,则会在系统包含路径之前搜索递归包含路径。如果设置为 `afterSystemIncludes` ,则会在系统包含路径后搜索递归包含路径。`beforeSystemIncludes` 将更密切地反映编译器的搜索顺序,而 `afterSystemIncludes` 则可能导致性能提升。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.recursiveIncludes.properties.order": "搜索递归包含的子目录的顺序。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.customConfigurationVariables": "可通过命令`${cpptools:activeConfigCustomVariable}` 查询的自定义变量,用于 `launch.json` 或 `tasks.json`. 中的输入变量。",
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "与要从中输出诊断的标头名称匹配的 POSIX 扩展正则表达式 (ERE)。始终显示来自每个翻译单元的主文件的诊断。支持 `${workspaceFolder}` 变量(如果不存在 `.clang-tidy` 文件,则该变量将用作默认回退值)。如果此选项不是 `null` (空),则将替代 `.clang-tidy` 文件中的 `HeaderFilterRegex` 选项(如果有)。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription": "要传递给 `clang-tidy` 的其他命令行参数。这些优先于等效的 `C_Cpp.codeAnalysis.clangTidy.*` 设置。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "如果设置了 `true` 和 `compileCommands`,则 `-p=<build-path>` 参数将传递给 `clang-tidy`,而不是在 `--` 之后传递生成参数。如果未设置环境变量以便可以找到系统包含项,则此操作可能不起作用。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "已启用的 `clang-tidy` 检查列表。这些值将追加到 `.clang-tidy` 文件中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有)。除非显式禁用,否则始终使用默认检查 `clang-analyzer-*`。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "已启用的 `clang-tidy` 检查列表。这些值将追加到 `.clang-tidy` 文件中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有)。除非显式禁用,否则将始终启用默认检查 `clang-analyzer-core.*`。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.checks.disabled.markdownDescription": "已禁用的 `clang-tidy` 检查列表。该值将追加到 `.clang-tidy` 文件中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有)。",
|
||||
"c_cpp.configuration.formatting.description": "配置格式设置引擎。",
|
||||
"c_cpp.configuration.formatting.clangFormat.markdownDescription": "`clang-format` 将用于格式代码。",
|
||||
@@ -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 引擎检测到的可疑编译错误报告回编辑器。还控制是否报告代码分析警告(如果找不到包含)。标记分析器引擎将忽略此设置。",
|
||||
@@ -210,6 +210,7 @@
|
||||
"c_cpp.configuration.preferredPathSeparator.markdownDescription": "用作生成的用户路径的路径分隔符的字符。",
|
||||
"c_cpp.configuration.simplifyStructuredComments.markdownDescription": "如果为 `true`,则悬停和自动完成的工具提示将仅显示结构化注释的某些标签。否则,将显示所有注释。",
|
||||
"c_cpp.configuration.doxygen.generateOnType.description": "控制在键入所选注释样式后是否自动插入 Doxygen 注释。",
|
||||
"c_cpp.configuration.doxygen.generateOnCodeAction.description": "控制是否启用生成 Doxygen 注释的代码操作。",
|
||||
"c_cpp.configuration.doxygen.generatedStyle.description": "用作 Doxygen 注释起始行的字符串。",
|
||||
"c_cpp.configuration.doxygen.sectionTags.description": "启用“简化结构化注释”设置后,选择希望在工具提示区域中悬停时显示的 Doxygen 节标记。 ",
|
||||
"c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "开始多行或单行注释块的模式。多行注释块的延续模式默认为 ` * `,或单行注释块默认为此字符串。",
|
||||
@@ -331,7 +332,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": "对符号加载的显式控制。",
|
||||
@@ -389,6 +391,9 @@
|
||||
"c_cpp.debuggers.sourceFileMap.sourceFileMapEntry.useForBreakpoints.description": "如果此条目仅用于堆栈帧位置映射,则为 False。如果在指定断点位置时也需要使用此条目,则为 True。",
|
||||
"c_cpp.debuggers.symbolOptions.description": "用于控制如何找到和加载符号(.pdb 文件)的选项。",
|
||||
"c_cpp.debuggers.unknownBreakpointHandling.description": "控制在命中时如何处理(通常通过原始 GDB 命令)外部设置的断点。\n允许的值为 \"throw\" (好像应用程序抛出了异常)和 \"stop\" (只会暂停调试会话)。默认值为 \"throw\"。",
|
||||
"c_cpp.debuggers.debuginfod.description": "控制 GDB 的 debuginfod 行为,以从 debuginfod 服务器下载调试符号。",
|
||||
"c_cpp.debuggers.debuginfod.enabled.description": "如果为 true (默认值),则启用 GDB 的 debuginfod 支持。设置为 false 可阻止 GDB 联系 debuginfod 服务器。",
|
||||
"c_cpp.debuggers.debuginfod.timeout.description": "debuginfod 服务器请求的超时(以秒为单位)。默认值为 30。设置为 0 可使用 GDB/libdebuginfod 默认值(无替代)。",
|
||||
"c_cpp.debuggers.VSSymbolOptions.description": "提供用于找到符号并将其加载到调试适配器的配置。",
|
||||
"c_cpp.debuggers.VSSymbolOptions.searchPaths.description": "在其中搜索 .pdb 文件的符号服务器 URL (例如 http://MyExampleSymbolServer)或目录(例如 /build/symbols)的数组。除了默认位置,还将搜索这些目录 - 在模块以及 pdb 最初放置到的路径的旁边。",
|
||||
"c_cpp.debuggers.VSSymbolOptions.searchMicrosoftSymbolServer.description": "如果为 \"true\",则 Microsoft 符号服务器(https://msdl.microsoft.com/download/symbols)会添加到符号搜索路径。如果未指定,此选项会默认为 \"false\"。",
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"debugger.not.available": "调试程序类型“{0}”不适用于非 Windows 计算机。"
|
||||
"debugger.not.available": "调试程序类型“{0}”不适用于非 Windows 计算机。",
|
||||
"debugger.noDebug.requestType.not.supported": "仅启动配置支持“运行但不调试”。",
|
||||
"debugger.noDebug.pipeTransport.not.supported": "已设置 \"pipeTransport\" 的配置不支持“运行但不调试”。",
|
||||
"debugger.noDebug.debugServerPath.not.supported": "已设置 \"debugServerPath\" 的配置不支持“运行但不调试”。",
|
||||
"debugger.noDebug.miDebuggerServerAddress.not.supported": "已设置 \"miDebuggerServerAddress\" 的配置不支持“运行但不调试”。",
|
||||
"debugger.noDebug.coreDumpPath.not.supported": "已设置 \"coreDumpPath\" 的配置不支持“运行但不调试”。"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"no.terminal.emulator": "找不到终端仿真器。请将 $TERMINAL 环境变量设置为你选择的终端仿真器,或安装以下程序之一: x-terminal-emulator、gnome-terminal、konsole、xterm。"
|
||||
}
|
||||
@@ -319,5 +319,102 @@
|
||||
"file_not_found_in_path2": "在 compile_commands.json 文件中找不到 \"{0}\"。此文件将改用文件夹“{1}”中的 c_cpp_properties.json 中包含的 \"includePath\"。",
|
||||
"copilot_hover_link": "生成 Copilot 摘要",
|
||||
"browse_path_not_found": "无法为不存在的文件夹 {0} 中的文件编制索引",
|
||||
"license_terms": "C/C++ 扩展只能用于 Microsoft Visual Studio、Visual Studio for Mac、Visual Studio Code、Azure DevOps、Team Foundation Server 以及后续的 Microsoft 产品和服务,以开发和测试您的应用程序。"
|
||||
"license_terms": "C/C++ 扩展只能用于 Microsoft Visual Studio、Visual Studio for Mac、Visual Studio Code、Azure DevOps、Team Foundation Server 以及后续的 Microsoft 产品和服务,以开发和测试您的应用程序。",
|
||||
"help_title": "Microsoft C++ 语言服务器",
|
||||
"help_usage": "使用情况: {0} [选项]",
|
||||
"help_options_header": "选项:",
|
||||
"help_help": "显示此帮助消息并退出。",
|
||||
"help_version": "显示版本信息并退出。",
|
||||
"help_accept_eula": "永久接受最终用户许可协议(EULA)。",
|
||||
"help_stderr": "不将 stderr 重定向到 /dev/null (对调试有用)。",
|
||||
"help_login": "启动交互式登录(需要 GitHub Copilot 订阅)。",
|
||||
"help_force_login": "即使已完成身份验证,也强制启动登录流程。",
|
||||
"help_allow_plaintext": "如果安全密钥链不可用,允许以明文存储凭据。",
|
||||
"help_log_dir": "指定日志文件的目录(默认值: 系统临时目录)。",
|
||||
"help_log_level": "将日志详细级别从 0 (仅错误)设置为 9 (详细)。",
|
||||
"help_lsp_config": "将参数指定为绝对路径,或相对于工作区根目录或其 .github 文件夹的路径。",
|
||||
"help_disable_telemetry": "禁用发送遥测数据。",
|
||||
"auth_device_flow_prompt": "若要通过 GitHub 进行身份验证,请复制代码 {0},然后访问 {1}。正在等待授权...",
|
||||
"auth_timed_out": "等待授权超时。",
|
||||
"auth_success": "已成功通过 GitHub 身份验证。",
|
||||
"auth_save_failed": "GitHub 身份验证成功,但无法保存令牌。",
|
||||
"auth_keyring_error": "Keyring 错误: {0}",
|
||||
"auth_keyring_locked": "keyring 集合已锁定。请解锁或重启 gnome-keyring-daemon。",
|
||||
"auth_keyring_unavailable": "没有可用的 keyring 服务。安装并启动 gnome-keyring: sudo apt install gnome-keyring",
|
||||
"auth_try_plaintext": "或通过传递 --login --allow-plaintext-secret-storage 允许明文存储。",
|
||||
"auth_expired": "设备代码已过期。请重试。",
|
||||
"auth_denied": "用户拒绝了授权。",
|
||||
"auth_unexpected_error": "轮询期间发生意外错误: {0}",
|
||||
"auth_login_failed": "GitHub 登录失败。尝试从命令行使用 --login 运行以登录。",
|
||||
"auth_eula_required": "必须接受 EULA 才能继续。请使用 --accept-eula 运行。",
|
||||
"auth_already_authenticated": "已通过 GitHub 身份验证。使用 --force-login 重新进行身份验证。",
|
||||
"config_unsupported_version": "初始化失败: 配置版本不受支持。仅支持版本 1。",
|
||||
"config_file_not_found": "初始化失败: 未找到配置文件“{0}”。",
|
||||
"config_parse_failed": "初始化失败: 无法解析配置文件“{0}”。请验证 JSON 格式。错误: {1}",
|
||||
"config_repo_path_invalid": "初始化失败: \"repositoryPath\" 未配置或无效。",
|
||||
"config_missing_source": "初始化失败: 必须配置 \"compileCommands\" 或 \"cppProperties\"。",
|
||||
"config_dual_source": "初始化失败: 不能同时配置 \"compileCommands\" 和 \"cppProperties\"。",
|
||||
"config_compile_commands_not_found": "初始化失败: 未找到 \"compileCommands\" 路径:“{0}”。",
|
||||
"config_cpp_properties_not_found": "初始化失败: 未找到 \"cppProperties\" 路径:“{0}”。",
|
||||
"config_cpp_properties_parse_failed": "初始化失败: 无法解析 \"cppProperties\" 指定的文件:“{0}”。请验证 JSON 格式。错误: {1}",
|
||||
"config_cpp_properties_schema_invalid": "初始化失败: 无法从 \"cppProperties\" 文件读取配置:“{0}”。请验证架构。",
|
||||
"config_no_configurations": "初始化失败:“{0}”不包含有效的 \"configurations\" 数组。",
|
||||
"config_configuration_not_found": "初始化失败: 在 \"cppProperties\" 文件中找不到配置“{0}”:“{1}”。",
|
||||
"config_paths_cache_missing": "初始化失败: 缺少 LSP 配置路径缓存。",
|
||||
"curl_not_found": "未找到 libcurl ({0})。身份验证和遥测需要 libcurl。",
|
||||
"curl_install_macos": "macOS 默认应已提供 libcurl。如果缺失,请通过以下命令安装: brew install curl",
|
||||
"curl_install_linux": "安装 libcurl: sudo apt install libcurl4 (Debian/Ubuntu)或 sudo dnf install libcurl (Fedora/RHEL)。",
|
||||
"curl_symbols_missing": "已加载 libcurl,但缺少必需的符号。这可能表示 libcurl 版本太旧或不兼容。没有兼容的 libcurl,语言服务器无法运行。",
|
||||
"keytar_not_found": "未找到 libsecret-1.so.0 ({0})。安全凭据存储需要 libsecret。安装 libsecret: sudo apt install libsecret-1-0 (Debian/Ubuntu)或 sudo dnf install libsecret (Fedora/RHEL)。",
|
||||
"keytar_symbols_missing": "已加载 libsecret,但缺少必需的符号。没有兼容的 libsecret,语言服务器无法运行。",
|
||||
"telemetry_disable_failed": "禁用遥测失败。",
|
||||
"lsp_method_not_found": "未找到方法: {0}",
|
||||
"intellisense_same_canonical_path": "无法为与现有文件具有相同规范化路径的文件处理 IntelliSense。URI: {0},规范化路径: {1}",
|
||||
"status_initializing": "正在初始化",
|
||||
"status_initializing_with_n_of_m": "正在初始化({0}/{1})",
|
||||
"status_initializing_with_n_of_m_and_text": "正在初始化({0}/{1}): {2}",
|
||||
"status_initializing_with_text": "正在初始化 {0}",
|
||||
"status_initializing_projects": "正在初始化项目",
|
||||
"status_initializing_projects_with_n_of_m": "正在初始化项目({0}/{1})",
|
||||
"status_initializing_projects_with_n_of_m_and_text": "正在初始化项目({0}/{1}): {2}",
|
||||
"status_initializing_projects_with_text": "正在初始化项目 {0}",
|
||||
"status_checking_for_outdated_files": "正在检查过期文件",
|
||||
"status_checking_for_outdated_files_with_n_of_m": "正在检查过期文件({0}/{1})",
|
||||
"status_checking_for_outdated_files_with_n_of_m_and_text": "正在检查过期文件({0}/{1}): {2}",
|
||||
"status_checking_for_outdated_files_with_text": "正在检查过期文件 {0}",
|
||||
"status_parsing_files": "正在解析文件",
|
||||
"status_parsing_files_with_n_of_m": "正在解析文件({0}/{1})",
|
||||
"status_parsing_files_with_n_of_m_and_text": "正在解析文件({0}/{1}): {2}",
|
||||
"status_parsing_files_with_text": "正在解析文件 {0}",
|
||||
"status_parsing_includes": "正在解析包含的文件",
|
||||
"status_parsing_includes_with_n_of_m": "正在解析包含的文件({0}/{1})",
|
||||
"status_parsing_includes_with_n_of_m_and_text": "正在解析包含的文件({0}/{1}): {2}",
|
||||
"status_parsing_includes_with_text": "正在解析包含的文件 {0}",
|
||||
"status_scanning_includes": "正在扫描 #includes 以查找更多文件",
|
||||
"status_scanning_includes_with_n_of_m": "正在扫描 #includes 以查找更多文件({0}/{1})",
|
||||
"status_scanning_includes_with_n_of_m_and_text": "正在扫描 #includes 以查找更多文件({0}/{1}): {2}",
|
||||
"status_scanning_includes_with_text": "正在扫描 #includes 以查找更多文件 {0} {1}",
|
||||
"status_updating_external_dependencies": "就绪(正在更新外部依赖项)",
|
||||
"status_updating_external_dependencies_with_n_of_m": "就绪(正在更新外部依赖项)({0}/{1})",
|
||||
"status_updating_external_dependencies_with_n_of_m_and_text": "就绪(正在更新外部依赖项)({0}/{1}): {2}",
|
||||
"status_updating_external_dependencies_with_text": "就绪(正在更新外部依赖项){0}",
|
||||
"status_optimizing_database": "就绪(正在优化数据库)",
|
||||
"status_optimizing_database_with_n_of_m": "就绪(正在优化数据库)({0}/{1})",
|
||||
"status_optimizing_database_with_n_of_m_and_text": "就绪(正在优化数据库)({0}/{1}): {2}",
|
||||
"status_optimizing_database_with_text": "就绪(正在优化数据库){0}",
|
||||
"status_creating_indexes": "正在创建索引",
|
||||
"status_creating_indexes_with_n_of_m": "正在创建索引({0}/{1})",
|
||||
"status_creating_indexes_with_n_of_m_and_text": "正在创建索引({0}/{1}): {2}",
|
||||
"status_creating_indexes_with_text": "正在创建索引 {0}",
|
||||
"status_evaluating_file": "正在评估",
|
||||
"status_evaluating_file_with_n_of_m": "正在计算({0}/{1})",
|
||||
"status_evaluating_file_with_n_of_m_and_text": "正在计算({0}/{1}): {2}",
|
||||
"status_evaluating_file_with_text": "正在计算 {0}",
|
||||
"status_indexing_files": "正在为文件编制索引",
|
||||
"status_indexing_files_with_n_of_m": "正在为文件编制索引({0} of {1})",
|
||||
"status_indexing_files_with_n_of_m_and_text": "正在为文件编制索引({0}/{1}): {2}",
|
||||
"status_indexing_files_with_text": "正在为文件编制索引 {0}",
|
||||
"help_allow_missing_lsp_config": "即使指定的 --lsp-config 文件不存在,也允许服务器启动。",
|
||||
"initialize_failed_during_engine_setup": "引擎设置期间初始化失败。",
|
||||
"important_label": "重要说明:"
|
||||
}
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
{
|
||||
"walkthrough.windows.install.compiler": "在 Windows 上安装 C++ 编译器",
|
||||
"walkthrough.windows.text1": "如果要对 Windows 进行 C++ 开发,建议安装 Microsoft Visual C++ (MSVC)编译器。",
|
||||
"walkthrough.windows.text2": "若要安装 MSVC,请打开 VS Code 终端(CTRL + `)并在以下命令中粘贴:\n",
|
||||
"walkthrough.windows.text2": "若要安装 MSVC,请打开 VS Code 终端(CTRL + `)并在以下命令中粘贴:",
|
||||
"walkthrough.windows.note1": "注意",
|
||||
"walkthrough.windows.note1.text": "可以使用 Visual Studio 生成工具中的 C++ 工具集以及 Visual Studio Code 以编译、生成并验证任何 C++ 代码库,前提是同时具有有效的 Visual Studio 许可证(社区版、专业版或企业版),且正积极将其用于开发该 C++ 代码库。",
|
||||
"walkthrough.windows.verify.compiler": "验证编译器安装",
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
{
|
||||
"walkthrough.windows.install.compiler": "在 Windows 上安装 C++ 编译器",
|
||||
"walkthrough.windows.text1": "如果要对 Windows 进行 C++ 开发,建议安装 Microsoft Visual C++ (MSVC)编译器。",
|
||||
"walkthrough.windows.text2": "若要安装 MSVC,请打开 VS Code 终端(CTRL + `)并在以下命令中粘贴:\n",
|
||||
"walkthrough.windows.text2": "若要安装 MSVC,请打开 VS Code 终端(CTRL + `)并在以下命令中粘贴:",
|
||||
"walkthrough.windows.note1": "注意",
|
||||
"walkthrough.windows.note1.text": "可以使用 Visual Studio 生成工具中的 C++ 工具集以及 Visual Studio Code 以编译、生成并验证任何 C++ 代码库,前提是同时具有有效的 Visual Studio 许可证(社区版、专业版或企业版),且正积极将其用于开发该 C++ 代码库。",
|
||||
"walkthrough.windows.verify.compiler": "验证编译器安装",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user