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