Compare commits
154
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdbac5714b | ||
|
|
4d01799159 | ||
|
|
d41ba04e26 | ||
|
|
592661994a | ||
|
|
98055e0aa8 | ||
|
|
7a7c1f421b | ||
|
|
82c66b05d3 | ||
|
|
08baa1d0d2 | ||
|
|
9d19aa858f | ||
|
|
0ec5075a0f | ||
|
|
578d879123 | ||
|
|
38848fa7bb | ||
|
|
31c2411fff | ||
|
|
58fe69ef79 | ||
|
|
a678db0da3 | ||
|
|
61aeb27b5c | ||
|
|
2ab211ff5a | ||
|
|
9e1fee5b77 | ||
|
|
7777353275 | ||
|
|
e11604fb12 | ||
|
|
7ea89afb30 | ||
|
|
62f57a7b38 | ||
|
|
9152b019f8 | ||
|
|
b02a2f85a4 | ||
|
|
130bb59612 | ||
|
|
f2480fd882 | ||
|
|
646df4df6e | ||
|
|
36e17520ea | ||
|
|
c238b1de0b | ||
|
|
5fd0548c00 | ||
|
|
c12be38b72 | ||
|
|
74ca0fe21a | ||
|
|
2d23836183 | ||
|
|
cd22e17227 | ||
|
|
2d5e77cb3d | ||
|
|
0040d0c786 | ||
|
|
35408d570f | ||
|
|
dc28a69f41 | ||
|
|
4927fafbe4 | ||
|
|
b17d9bd94d | ||
|
|
7c6aa892b4 | ||
|
|
03e0332738 | ||
|
|
dde8653da5 | ||
|
|
72d590a1b7 | ||
|
|
154f56e4c7 | ||
|
|
0c7a60dcae | ||
|
|
95717b4eb4 | ||
|
|
2587d00a47 | ||
|
|
77c1a14635 | ||
|
|
07a4927c41 | ||
|
|
5f0a3f4ce0 | ||
|
|
56a2bbe6c5 | ||
|
|
5351c00667 | ||
|
|
397f4e5ade | ||
|
|
0f754f7437 | ||
|
|
dc614ca3a7 | ||
|
|
4774d95296 | ||
|
|
9e662ff980 | ||
|
|
eb013a19c1 | ||
|
|
0a4fff20e8 | ||
|
|
f9c3768009 | ||
|
|
0108beae75 | ||
|
|
0e4228b3b7 | ||
|
|
7df19266de | ||
|
|
db3a96f9f7 | ||
|
|
7187b34384 | ||
|
|
eb76b09387 | ||
|
|
42c703ed74 | ||
|
|
e799b285f4 | ||
|
|
61eed95a5a | ||
|
|
4549dff7c4 | ||
|
|
4b2a1e1b63 | ||
|
|
57cf069d65 | ||
|
|
7e02d995ea | ||
|
|
6f40e5bc24 | ||
|
|
24d299fcff | ||
|
|
bbf1ad3caf | ||
|
|
d686c15de1 | ||
|
|
44a962969d | ||
|
|
894e101363 | ||
|
|
4aa35c9681 | ||
|
|
300d65a9d5 | ||
|
|
3203386c6e | ||
|
|
dd1902a8dc | ||
|
|
03ee07113a | ||
|
|
8e68bbba5d | ||
|
|
fe18c4af95 | ||
|
|
53dd88fd19 | ||
|
|
df58934ca0 | ||
|
|
959a4d15d5 | ||
|
|
7af04f6153 | ||
|
|
faa8f425ec | ||
|
|
1ad8241f66 | ||
|
|
6ea023c14a | ||
|
|
a1eef20485 | ||
|
|
0b64d607f5 | ||
|
|
18e9335d76 | ||
|
|
0a72712f04 | ||
|
|
70b35ddbc7 | ||
|
|
53917c0de2 | ||
|
|
5993256e77 | ||
|
|
239deaf331 | ||
|
|
9b8153617c | ||
|
|
205cdf663d | ||
|
|
fcac9ac6d1 | ||
|
|
541f2b158c | ||
|
|
b271ed1c68 | ||
|
|
7a56cf9064 | ||
|
|
0015bd88c9 | ||
|
|
0666a0f0e3 | ||
|
|
030c22c6d8 | ||
|
|
b9150cbd22 | ||
|
|
3b8c545e09 | ||
|
|
a54ba1e1ce | ||
|
|
d83faa224a | ||
|
|
bb5b252ee1 | ||
|
|
8a6124fd45 | ||
|
|
fd96957a10 | ||
|
|
71278ef27b | ||
|
|
59a3309ac0 | ||
|
|
e669bc4802 | ||
|
|
25fd26acdf | ||
|
|
6797ee4f99 | ||
|
|
1f6e545118 | ||
|
|
52bec4837c | ||
|
|
a3d9417e43 | ||
|
|
96d470acb0 | ||
|
|
fd3926ffe4 | ||
|
|
2727652801 | ||
|
|
90f2ed1584 | ||
|
|
4e8203a95e | ||
|
|
b3110d8964 | ||
|
|
cf49a16515 | ||
|
|
5a07193e50 | ||
|
|
4ae7cd47e1 | ||
|
|
8f0f27e5a0 | ||
|
|
63aa33ff1d | ||
|
|
de2aadcb8b | ||
|
|
76ff264e6b | ||
|
|
61f7ecf39e | ||
|
|
a54f5698d2 | ||
|
|
8af9ded977 | ||
|
|
f754fdbe25 | ||
|
|
0f0d5a34d9 | ||
|
|
47b3ffd535 | ||
|
|
1f31ea4794 | ||
|
|
0dd2603271 | ||
|
|
c4980409a9 | ||
|
|
11df85302c | ||
|
|
d9a3f8e493 | ||
|
|
b435e56ff6 | ||
|
|
25cc9b758a | ||
|
|
11f261e796 | ||
|
|
f4fb3318f3 |
@@ -1,4 +1,7 @@
|
||||
registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/
|
||||
always-auth=true
|
||||
# Disable postinstall scripts for supply chain security. Allowlist exceptions with npm trust: https://docs.npmjs.com/cli/v11/commands/npm-trust
|
||||
ignore-scripts=true
|
||||
|
||||
min-release-age=7
|
||||
audit=true
|
||||
audit-level=high
|
||||
|
||||
@@ -25,7 +25,6 @@ export const normalizeIssue = (issue: {
|
||||
const cleanse = (str: string) => {
|
||||
let out = str
|
||||
.toLowerCase()
|
||||
.replace(/<!--.*-->/gu, '')
|
||||
.replace(/.* version: .*/gu, '')
|
||||
.replace(/issue type: .*/gu, '')
|
||||
.replace(/vs ?code/gu, '')
|
||||
@@ -36,6 +35,12 @@ export const normalizeIssue = (issue: {
|
||||
.replace(/\s+/gu, ' ')
|
||||
.replace(/```[^`]*?```/gu, '');
|
||||
|
||||
while (
|
||||
out.includes('<!--') &&
|
||||
out.includes('-->') &&
|
||||
out.indexOf('-->') > out.indexOf('<!--')) {
|
||||
out = out.slice(0, out.indexOf('<!--')) + out.slice(out.indexOf('-->') + 3);
|
||||
}
|
||||
while (
|
||||
out.includes(`<details>`) &&
|
||||
out.includes('</details>') &&
|
||||
@@ -116,9 +121,9 @@ Repo: ${context.repo.owner}/${context.repo.repo}
|
||||
|
||||
<!-- Context:
|
||||
${JSON.stringify(context, null, 2)
|
||||
.replace(/<!--/gu, '<@--')
|
||||
.replace(/-->/gu, '--@>')
|
||||
.replace(/\/|\\/gu, 'slash-')}
|
||||
.replace(/<!--/gu, '<@--')
|
||||
.replace(/--!?\s*>/gu, '--@>')
|
||||
.replace(/\/|\\/gu, 'slash-')}
|
||||
-->
|
||||
`);
|
||||
};
|
||||
|
||||
Generated
+129
-567
File diff suppressed because it is too large
Load Diff
@@ -14,9 +14,8 @@
|
||||
"@actions/github": "^8.0.1",
|
||||
"@octokit/rest": "^21.1.1",
|
||||
"@slack/web-api": "^6.9.1",
|
||||
"applicationinsights": "^2.5.1",
|
||||
"axios": "^1.15.0",
|
||||
"uuid": "^8.3.2"
|
||||
"axios": "^1.16.0",
|
||||
"uuid": "^14.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@azure/storage-blob": "^12.13.0",
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
groups:
|
||||
github-actions:
|
||||
patterns: ["*"]
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
cooldown:
|
||||
default-days: 7
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Add Comment
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -5,6 +5,12 @@ on:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target-ref:
|
||||
description: Branch, tag, or SHA to test
|
||||
required: true
|
||||
default: main
|
||||
|
||||
env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||
@@ -15,3 +21,4 @@ jobs:
|
||||
with:
|
||||
runner-env: ubuntu-24.04
|
||||
platform: linux
|
||||
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
|
||||
|
||||
@@ -5,6 +5,12 @@ on:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target-ref:
|
||||
description: Branch, tag, or SHA to test
|
||||
required: true
|
||||
default: main
|
||||
|
||||
env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||
@@ -15,4 +21,6 @@ jobs:
|
||||
with:
|
||||
runner-env: macos-15
|
||||
platform: mac
|
||||
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
|
||||
yarn-args: --network-timeout 100000
|
||||
|
||||
|
||||
@@ -5,6 +5,12 @@ on:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target-ref:
|
||||
description: Branch, tag, or SHA to test
|
||||
required: true
|
||||
default: main
|
||||
|
||||
env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||
@@ -15,3 +21,4 @@ jobs:
|
||||
with:
|
||||
runner-env: windows-2025
|
||||
platform: windows
|
||||
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
|
||||
|
||||
@@ -59,11 +59,11 @@ 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@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
@@ -91,7 +91,7 @@ jobs:
|
||||
exit 1
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Run Reopener
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Add Comment
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Run Reopener
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -11,6 +11,9 @@ on:
|
||||
# Expects 'mac', 'linux', or 'windows'
|
||||
required: true
|
||||
type: string
|
||||
checkout-ref:
|
||||
required: false
|
||||
type: string
|
||||
yarn-args:
|
||||
type: string
|
||||
|
||||
@@ -22,17 +25,29 @@ jobs:
|
||||
runs-on: ${{ inputs.runner-env }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
ref: ${{ inputs.checkout-ref }}
|
||||
|
||||
- name: Use Node.js 24
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
- name: Validate Yarn lockfile
|
||||
run: yarn test-yarn-lock && yarn verify-yarn-lock
|
||||
working-directory: Extension
|
||||
|
||||
- name: Install Dependencies
|
||||
run: yarn install ${{ inputs.yarn-args }}
|
||||
working-directory: Extension
|
||||
|
||||
- name: Install gdb (linux)
|
||||
if: ${{ inputs.platform == 'linux' }}
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y gdb
|
||||
|
||||
- name: Compile Sources
|
||||
run: yarn run compile
|
||||
working-directory: Extension
|
||||
@@ -45,53 +60,46 @@ jobs:
|
||||
run: yarn test
|
||||
working-directory: Extension
|
||||
|
||||
# These tests don't require the binary.
|
||||
# On Linux, it is failing (before the tests actually run) with: Test run terminated with signal SIGSEGV.
|
||||
# But it works on Linux during the E2E test.
|
||||
- name: Run SingleRootProject tests
|
||||
if: ${{ inputs.platform != 'linux' }}
|
||||
run: yarn test --scenario=SingleRootProject --skipCheckBinaries
|
||||
- name: Acquire Native Binaries
|
||||
run: yarn install-and-copy-binaries-for-test
|
||||
working-directory: Extension
|
||||
|
||||
# NOTE : We can't run the test that require the native binary files
|
||||
# yet -- there will be an update soon that allows the tester to
|
||||
# acquire them on-the-fly
|
||||
# - name: Run languageServer integration tests
|
||||
# if: ${{ inputs.platform == 'windows' }}
|
||||
# run: yarn test --scenario=SingleRootProject
|
||||
# working-directory: Extension
|
||||
- name: Run languageServer integration tests (Windows)
|
||||
if: ${{ inputs.platform == 'windows' }}
|
||||
run: yarn test --scenario=SingleRootProject
|
||||
working-directory: Extension
|
||||
|
||||
# - name: Run E2E IntelliSense features tests
|
||||
# if: ${{ inputs.platform == 'windows' }}
|
||||
# run: yarn test --scenario=MultirootDeadlockTest
|
||||
# working-directory: Extension
|
||||
- name: Run E2E IntelliSense features tests (Windows)
|
||||
if: ${{ inputs.platform == 'windows' }}
|
||||
run: yarn test --scenario=MultirootDeadlockTest
|
||||
working-directory: Extension
|
||||
|
||||
# - name: Run E2E IntelliSense features tests
|
||||
# if: ${{ inputs.platform == 'windows' }}
|
||||
# run: yarn test --scenario=RunWithoutDebugging
|
||||
# working-directory: Extension
|
||||
- name: Run RunWithoutDebugging tests (Windows)
|
||||
if: ${{ inputs.platform == 'windows' }}
|
||||
run: yarn test --scenario=RunWithoutDebugging
|
||||
working-directory: Extension
|
||||
|
||||
# NOTE: For mac/linux run the tests with xvfb-action for UI support.
|
||||
# Another way to start xvfb https://github.com/microsoft/vscode-test/blob/master/sample/azure-pipelines.yml
|
||||
|
||||
# - name: Run languageServer integration tests (xvfb)
|
||||
# if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
|
||||
# uses: coactions/setup-xvfb@v1
|
||||
# with:
|
||||
# run: yarn test --scenario=SingleRootProject
|
||||
# working-directory: Extension
|
||||
- name: Run languageServer integration tests (linux/macOS)
|
||||
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
|
||||
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
|
||||
with:
|
||||
run: yarn test --scenario=SingleRootProject
|
||||
working-directory: Extension
|
||||
|
||||
# - name: Run E2E IntelliSense features tests (xvfb)
|
||||
# if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
|
||||
# uses: coactions/setup-xvfb@v1
|
||||
# with:
|
||||
# run: yarn test --scenario=MultirootDeadlockTest
|
||||
# working-directory: Extension
|
||||
- name: Run E2E IntelliSense features tests (linux/macOS)
|
||||
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
|
||||
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
|
||||
with:
|
||||
run: yarn test --scenario=MultirootDeadlockTest
|
||||
working-directory: Extension
|
||||
|
||||
# - name: Run E2E IntelliSense features tests (xvfb)
|
||||
# if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
|
||||
# uses: coactions/setup-xvfb@v1
|
||||
# with:
|
||||
# run: yarn test --scenario=RunWithoutDebugging
|
||||
# working-directory: Extension
|
||||
- name: Run RunWithoutDebugging tests (linux/macOS)
|
||||
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
|
||||
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
|
||||
with:
|
||||
run: yarn test --scenario=RunWithoutDebugging --scenario-arg=skipExternalConsole
|
||||
working-directory: Extension
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Run Locker
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
issues: write
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
|
||||
@@ -13,3 +13,5 @@ OneLocBuild
|
||||
|
||||
# ignore imported localization xlf directory
|
||||
vscode-translations-import
|
||||
|
||||
.vscode/settings.json
|
||||
|
||||
@@ -59,7 +59,7 @@ jobs:
|
||||
- script: mkdir $(Build.ArtifactStagingDirectory)\vsix
|
||||
displayName: Create Staging Directory
|
||||
|
||||
- script: npm install --no-save --ignore-scripts=false --include=optional --force @vscode/vsce@3.7.1
|
||||
- script: npm install --no-save --ignore-scripts=false --include=optional --force @vscode/vsce@3.9.2
|
||||
displayName: Install vsce
|
||||
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
$aadToken = az account get-access-token --query accessToken --resource $(AzureGuid) -o tsv
|
||||
Write-Host "##vso[task.setvariable variable=AAD_TOKEN;issecret=true]$aadToken"
|
||||
|
||||
- script: npm install --no-save --ignore-scripts=false --include=optional --force @vscode/vsce@3.7.1
|
||||
- script: npm install --no-save --ignore-scripts=false --include=optional --force @vscode/vsce@3.9.2
|
||||
displayName: Install vsce
|
||||
|
||||
- script: npm rebuild @vscode/vsce-sign --ignore-scripts=false
|
||||
|
||||
@@ -5,7 +5,7 @@ These steps will allow you to debug the TypeScript code that is part of the Micr
|
||||
Prerequisite steps:
|
||||
* Clone the release branch of [this](https://github.com/Microsoft/vscode-cpptools) repository.
|
||||
* git clone -b release https://github.com/Microsoft/vscode-cpptools
|
||||
* Install [node](https://nodejs.org).
|
||||
* Install the [required Node.js version](../Extension/readme.developer.md#required-tools).
|
||||
* Install [yarn](https://yarnpkg.com).
|
||||
* From a command line, run the following commands from the **Extension** folder in the root of the repository:
|
||||
* `yarn install` will install the dependencies needed to build the extension.
|
||||
|
||||
@@ -9,11 +9,18 @@ dist
|
||||
server
|
||||
debugAdapters
|
||||
LLVM
|
||||
bin/assert_dialog.sh
|
||||
bin/binaryVersion.json
|
||||
bin/cpptools*
|
||||
bin/edge_cli
|
||||
bin/isense_driver
|
||||
bin/libc.so
|
||||
bin/LICENSE.txt
|
||||
bin/scout_driver
|
||||
bin/unittests
|
||||
bin/vcpkgsrvtest
|
||||
bin/*.dll
|
||||
bin/.vs
|
||||
bin/LICENSE.txt
|
||||
|
||||
# ignore lock files
|
||||
install.lock
|
||||
|
||||
+4
-1
@@ -1,4 +1,7 @@
|
||||
registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/
|
||||
always-auth=true
|
||||
# Disable postinstall scripts for supply chain security. Allowlist exceptions with npm trust: https://docs.npmjs.com/cli/v11/commands/npm-trust
|
||||
ignore-scripts=true
|
||||
|
||||
min-release-age=7
|
||||
audit=true
|
||||
audit-level=high
|
||||
|
||||
@@ -20,9 +20,18 @@ import { verbose } from '../src/Utility/Text/streams';
|
||||
export const $root = resolve(`${__dirname}/..`);
|
||||
export let $cmd = 'main';
|
||||
export let $scenario = '';
|
||||
export const $scenarioArgs: string[] = [];
|
||||
|
||||
// loop through the args and pick out --scenario=... and remove it from the $args and set $scenario
|
||||
process.argv.slice(2).filter(each => !(each.startsWith('--scenario=') && ($scenario = each.substring('--scenario='.length))));
|
||||
// parse out the scenario arguments.
|
||||
process.argv.slice(2).reduce<string[]>((acc, arg) => {
|
||||
if (arg.startsWith('--scenario-arg=')) {
|
||||
acc.push(arg.substring('--scenario-arg='.length));
|
||||
}
|
||||
return acc;
|
||||
}, $scenarioArgs);
|
||||
|
||||
export const $args = process.argv.slice(2).filter(each => !each.startsWith('--'));
|
||||
export const $switches = process.argv.slice(2).filter(each => each.startsWith('--'));
|
||||
|
||||
@@ -39,7 +48,7 @@ chdir($root);
|
||||
|
||||
// dump unhandled async errors to the console and exit.
|
||||
process.on('unhandledRejection', (reason: any, _promise) => {
|
||||
error(`${reason?.stack?.split(/\r?\n/).filter(l => !l.includes('node:internal') && !l.includes('node_modules')).join('\n')}`);
|
||||
error(`${reason?.stack?.split(/\r?\n/).filter((l: string) => !l.includes('node:internal') && !l.includes('node_modules')).join('\n')}`);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
|
||||
import { cp, readdir, rm, stat } from 'node:fs/promises';
|
||||
import { homedir } from 'node:os';
|
||||
import { join } from 'node:path';
|
||||
import { $args, $root, green, heading, note } from './common';
|
||||
import { basename, join } from 'node:path';
|
||||
import { verbose } from '../src/Utility/Text/streams';
|
||||
import { $args, $root, Git, green, heading, note, warn } from './common';
|
||||
|
||||
const extensionPrefix = 'ms-vscode.cpptools-';
|
||||
const foldersToCopy = ['bin', 'debugAdapters', 'LLVM'] as const;
|
||||
@@ -73,17 +74,47 @@ async function getInstalledExtensions(root: string): Promise<InstalledExtension[
|
||||
}
|
||||
}
|
||||
|
||||
async function findLatestInstalledExtension(providedPath?: string): Promise<string> {
|
||||
if (providedPath) {
|
||||
return providedPath;
|
||||
async function findExtensionsFolder(root: string): Promise<string | undefined> {
|
||||
try {
|
||||
const entries = await readdir(root, { withFileTypes: true });
|
||||
for (const entry of entries) {
|
||||
if (entry.isDirectory()) {
|
||||
if (entry.name === 'extensions') {
|
||||
const extensionEntries = await readdir(join(root, entry.name), { withFileTypes: true });
|
||||
for (const extensionEntry of extensionEntries) {
|
||||
if (extensionEntry.isDirectory() && extensionEntry.name.startsWith(extensionPrefix)) {
|
||||
return join(root, entry.name);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const result = await findExtensionsFolder(join(root, entry.name));
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
// Ignore errors (permission denied, etc.)
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
async function findLatestInstalledExtension(providedPath?: string): Promise<string> {
|
||||
const searchRoots: string[] = [
|
||||
join(homedir(), '.vscode', 'extensions'),
|
||||
join(homedir(), '.vscode-insiders', 'extensions'),
|
||||
join(homedir(), '.vscode-server', 'extensions'),
|
||||
join(homedir(), '.vscode-server-insiders', 'extensions')
|
||||
];
|
||||
if (providedPath) {
|
||||
// find a folder called 'extensions' recursively under the provided path and add it to the front of the search roots
|
||||
const extensionsFolderPath = await findExtensionsFolder(providedPath);
|
||||
if (extensionsFolderPath) {
|
||||
verbose(`Found extensions folder under provided path: ${extensionsFolderPath}`);
|
||||
searchRoots.unshift(extensionsFolderPath);
|
||||
}
|
||||
}
|
||||
|
||||
const installed: InstalledExtension[] = (await Promise.all(searchRoots.map(each => getInstalledExtensions(each)))).flat();
|
||||
if (!installed.length) {
|
||||
@@ -94,7 +125,34 @@ async function findLatestInstalledExtension(providedPath?: string): Promise<stri
|
||||
return installed[0].path;
|
||||
}
|
||||
|
||||
export async function main(sourcePath = $args[0]) {
|
||||
/**
|
||||
* A few files inside the copied folders are checked into the repo (for example bin/cpp.hint and
|
||||
* bin/messages/**). The copy overwrites them with the installed extension's versions, which can differ
|
||||
* in line endings or content and then show up as spurious local modifications. Restore any tracked files
|
||||
* that the copy changed so only the untracked binaries remain in the working tree.
|
||||
*/
|
||||
async function restoreTrackedFiles(): Promise<void> {
|
||||
const modified = await Git('ls-files', '--modified', '--', ...foldersToCopy);
|
||||
if (modified.code) {
|
||||
warn(`Unable to determine which tracked files to restore: ${modified.error.all().join('\n')}`);
|
||||
return;
|
||||
}
|
||||
|
||||
const files = modified.stdio.all().map(line => line.trim()).filter(line => line.length > 0);
|
||||
if (!files.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
const restored = await Git('checkout', '--', ...files);
|
||||
if (restored.code) {
|
||||
warn(`Unable to restore tracked files after copy: ${restored.error.all().join('\n')}`);
|
||||
return;
|
||||
}
|
||||
|
||||
note(`Restored ${files.length} tracked ${files.length === 1 ? 'file' : 'files'} overwritten by the copy.`);
|
||||
}
|
||||
|
||||
export async function main(sourcePath = $args[0]): Promise<string | undefined> {
|
||||
console.log(heading('Copy installed extension binaries'));
|
||||
|
||||
const installedExtensionPath: string = await findLatestInstalledExtension(sourcePath);
|
||||
@@ -110,4 +168,9 @@ export async function main(sourcePath = $args[0]) {
|
||||
}
|
||||
|
||||
note(`Copied installed binaries into ${$root}`);
|
||||
|
||||
await restoreTrackedFiles();
|
||||
|
||||
const installedVersion = tryParseVersion(basename(installedExtensionPath));
|
||||
return installedVersion?.join('.');
|
||||
}
|
||||
|
||||
@@ -85,8 +85,13 @@ function replaceReferences(definitions: any, objects: any): any {
|
||||
objects[key].anyOf = replaceReferences(definitions, objects[key].anyOf);
|
||||
}
|
||||
|
||||
// Recursively replace references if this object has properties.
|
||||
if (objects[key].hasOwnProperty('type') && objects[key].type === 'object' && objects[key].properties !== null) {
|
||||
// Handle 'oneOf' with references
|
||||
if (objects[key].hasOwnProperty('oneOf')) {
|
||||
objects[key].oneOf = replaceReferences(definitions, objects[key].oneOf);
|
||||
}
|
||||
|
||||
// Recursively replace references if this schema node has properties.
|
||||
if (objects[key].hasOwnProperty('properties') && objects[key].properties !== null) {
|
||||
objects[key].properties = replaceReferences(definitions, objects[key].properties);
|
||||
objects[key].properties = updateDefaults(objects[key].properties, objects[key].default);
|
||||
}
|
||||
@@ -117,11 +122,13 @@ function mergeReferences(baseDefinitions: any, additionalDefinitions: any): void
|
||||
export async function main() {
|
||||
const packageJSON: any = JSON.parse(await read(resolve($root, 'package.json')));
|
||||
const schemaJSON: any = JSON.parse(await read(resolve($root, 'tools/OptionsSchema.json')));
|
||||
const taskDefinitionsJSON: any = JSON.parse(await read(resolve($root, 'tools/TaskDefinitionsSchema.json')));
|
||||
const symbolSettingsJSON: any = JSON.parse(await read(resolve($root, 'tools/VSSymbolSettings.json')));
|
||||
|
||||
mergeReferences(schemaJSON.definitions, symbolSettingsJSON.definitions);
|
||||
|
||||
schemaJSON.definitions = replaceReferences(schemaJSON.definitions, schemaJSON.definitions);
|
||||
taskDefinitionsJSON.definitions = replaceReferences(taskDefinitionsJSON.definitions, taskDefinitionsJSON.definitions);
|
||||
|
||||
// Hard Code adding in configurationAttributes launch and attach.
|
||||
// cppdbg
|
||||
@@ -132,6 +139,9 @@ export async function main() {
|
||||
packageJSON.contributes.debuggers[1].configurationAttributes.launch = schemaJSON.definitions.CppvsdbgLaunchOptions;
|
||||
packageJSON.contributes.debuggers[1].configurationAttributes.attach = schemaJSON.definitions.CppvsdbgAttachOptions;
|
||||
|
||||
// task definitions
|
||||
packageJSON.contributes.taskDefinitions = [taskDefinitionsJSON.definitions.CppBuildTaskDefinition];
|
||||
|
||||
let content: string = JSON.stringify(packageJSON, null, 4);
|
||||
|
||||
// We use '\u200b' (unicode zero-length space character) to break VS Code's URL detection regex for URLs that are examples. This process will
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
import * as fs from "fs";
|
||||
import * as path from 'path';
|
||||
import { parseString } from 'xml2js';
|
||||
import { mkdir, write } from './common';
|
||||
import { glob, mkdir, write } from './common';
|
||||
|
||||
export async function main() {
|
||||
|
||||
@@ -45,11 +45,16 @@ export async function main() {
|
||||
|
||||
const locFolderNames = fs.readdirSync(localizeRepoPath).filter(f => fs.lstatSync(path.join(localizeRepoPath, f)).isDirectory());
|
||||
for (const locFolderName of locFolderNames) {
|
||||
const lclPath = path.join(localizeRepoPath, locFolderName, "vc/vc/cpfeui.dll.lcl");
|
||||
const languageInfo = languages.find(l => l.folderName === locFolderName);
|
||||
if (!languageInfo) {
|
||||
return;
|
||||
}
|
||||
const localePath = path.join(localizeRepoPath, locFolderName);
|
||||
const lclPaths = await glob("vc/vc/cpfeui.dll.lcl", { cwd: localePath, nocase: true, nodir: true });
|
||||
if (lclPaths.length !== 1) {
|
||||
throw new Error(`Expected one cpfeui.dll.lcl under '${localePath}', found ${lclPaths.length}.`);
|
||||
}
|
||||
const lclPath = path.join(localePath, lclPaths[0]);
|
||||
const languageId = languageInfo.id;
|
||||
const outputLanguageFolder = path.join(cpptoolsRepoPath, "Extension/bin/messages", languageId);
|
||||
const outputPath = path.join(outputLanguageFolder, "messages.json");
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All Rights Reserved.
|
||||
* See 'LICENSE' in the project root for license information.
|
||||
* ------------------------------------------------------------------------------------------ */
|
||||
|
||||
import { runVSCodeCommand } from '@vscode/test-electron';
|
||||
import { writeFile } from 'node:fs/promises';
|
||||
import { join } from 'node:path';
|
||||
import { $root, error, heading, note, warn } from './common';
|
||||
import * as copy from './copyExtensionBinaries';
|
||||
import { install, isolated, options } from "./vscode";
|
||||
|
||||
export async function main() {
|
||||
console.log(heading(`Install VS Code`));
|
||||
const vscode = await install();
|
||||
if (!vscode) {
|
||||
error('Failed to install VS Code');
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(heading('Install latest C/C++ Extension'));
|
||||
const result = await runVSCodeCommand([...vscode.args ?? [], '--install-extension', 'ms-vscode.cpptools', '--pre-release'], options);
|
||||
if (result.stdout) {
|
||||
console.log(result.stdout.toString());
|
||||
}
|
||||
if (result.stderr) {
|
||||
// runVSCodeCommand resolves only when the command succeeds (it throws on a non-zero exit), so stderr here is
|
||||
// non-fatal output such as Node deprecation warnings and must not be reported as an error.
|
||||
warn(result.stderr.toString());
|
||||
}
|
||||
|
||||
const binaryVersion = await copy.main(isolated);
|
||||
if (binaryVersion) {
|
||||
await writeFile(join($root, 'bin', 'binaryVersion.json'), JSON.stringify({ version: binaryVersion }));
|
||||
note(`Wrote binary version ${binaryVersion} to bin/binaryVersion.json`);
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ import { filepath } from '../src/Utility/Filesystem/filepath';
|
||||
import { is } from '../src/Utility/System/guards';
|
||||
import { verbose } from '../src/Utility/Text/streams';
|
||||
import { getTestInfo } from '../test/common/selectTests';
|
||||
import { $args, $root, $scenario, assertAnyFile, assertAnyFolder, brightGreen, checkBinaries, cmdSwitch, cyan, error, gray, green, readJson, red, writeJson } from './common';
|
||||
import { $args, $root, $scenario, $scenarioArgs, assertAnyFile, assertAnyFolder, brightGreen, checkBinaries, cmdSwitch, cyan, error, gray, green, readJson, red, writeJson } from './common';
|
||||
import { install, isolated, options } from './vscode';
|
||||
|
||||
export { install, reset } from './vscode';
|
||||
@@ -27,6 +27,7 @@ const filters = [
|
||||
/^Unexpected token A/,
|
||||
/Cannot register 'cmake.cmakePath'/,
|
||||
/\[DEP0005\] DeprecationWarning/,
|
||||
/\[DEP0169\] DeprecationWarning/,
|
||||
/--trace-deprecation/,
|
||||
/Iconv-lite warning/,
|
||||
/^Extension '/,
|
||||
@@ -90,7 +91,8 @@ async function scenarioTests(assets: string, name: string, workspace: string) {
|
||||
extensionTestsPath: resolve($root, 'dist/test/common/selectTests'),
|
||||
launchArgs: workspace ? [...options.launchArgs, workspace] : options.launchArgs,
|
||||
extensionTestsEnv: {
|
||||
SCENARIO: assets
|
||||
SCENARIO: assets,
|
||||
SCENARIO_ARGS: $scenarioArgs.join(',')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import process from 'node:process';
|
||||
import { fileURLToPath, pathToFileURL } from 'node:url';
|
||||
|
||||
const dependencySections = ['dependencies', 'devDependencies', 'optionalDependencies'];
|
||||
|
||||
function parseLockfileKey(key) {
|
||||
const selectors = [];
|
||||
let selectorStart = 0;
|
||||
let quoted = false;
|
||||
let escaped = false;
|
||||
|
||||
for (let index = 0; index < key.length; index++) {
|
||||
const character = key[index];
|
||||
if (escaped) {
|
||||
escaped = false;
|
||||
} else if (character === '\\' && quoted) {
|
||||
escaped = true;
|
||||
} else if (character === '"') {
|
||||
quoted = !quoted;
|
||||
} else if (character === ',' && !quoted) {
|
||||
selectors.push(key.slice(selectorStart, index));
|
||||
selectorStart = index + 1;
|
||||
}
|
||||
}
|
||||
selectors.push(key.slice(selectorStart));
|
||||
|
||||
return selectors.map(selector => {
|
||||
const trimmedSelector = selector.trim();
|
||||
return trimmedSelector.startsWith('"') ? JSON.parse(trimmedSelector) : trimmedSelector;
|
||||
});
|
||||
}
|
||||
|
||||
function parseLockfileSelectors(lockfile) {
|
||||
const selectors = new Set();
|
||||
for (const line of lockfile.split(/\r?\n/)) {
|
||||
if (/^[^\s#].*:\s*$/.test(line)) {
|
||||
for (const selector of parseLockfileKey(line.replace(/:\s*$/, ''))) {
|
||||
selectors.add(selector);
|
||||
}
|
||||
}
|
||||
}
|
||||
return selectors;
|
||||
}
|
||||
|
||||
function getResolutionPackageName(pattern) {
|
||||
const segments = pattern.split('/');
|
||||
const packageName = segments.at(-1);
|
||||
const scope = segments.at(-2);
|
||||
return scope?.startsWith('@') ? `${scope}/${packageName}` : packageName;
|
||||
}
|
||||
|
||||
function getExpectedSelectors(manifest) {
|
||||
const selectors = [];
|
||||
for (const section of dependencySections) {
|
||||
for (const [packageName, range] of Object.entries(manifest[section] ?? {})) {
|
||||
selectors.push(`${packageName}@${range}`);
|
||||
}
|
||||
}
|
||||
for (const [pattern, range] of Object.entries(manifest.resolutions ?? {})) {
|
||||
selectors.push(`${getResolutionPackageName(pattern)}@${range}`);
|
||||
}
|
||||
return selectors;
|
||||
}
|
||||
|
||||
function findMissingSelectors(manifest, lockfile) {
|
||||
const lockfileSelectors = parseLockfileSelectors(lockfile);
|
||||
return getExpectedSelectors(manifest)
|
||||
.filter(selector => !lockfileSelectors.has(selector))
|
||||
.sort();
|
||||
}
|
||||
|
||||
function validateYarnLock(packageJsonPath, yarnLockPath) {
|
||||
const manifest = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
||||
const lockfile = fs.readFileSync(yarnLockPath, 'utf8');
|
||||
const missingSelectors = findMissingSelectors(manifest, lockfile);
|
||||
if (missingSelectors.length > 0) {
|
||||
throw new Error(`yarn.lock is missing selectors required by package.json:\n${missingSelectors.map(selector => ` ${selector}`).join('\n')}\nRun yarn install to update yarn.lock.`);
|
||||
}
|
||||
}
|
||||
|
||||
const invokedUrl = process.argv[1] ? pathToFileURL(path.resolve(process.argv[1])).href : undefined;
|
||||
if (invokedUrl === import.meta.url) {
|
||||
const extensionRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||
const packageJsonPath = process.argv[2] ?? path.join(extensionRoot, 'package.json');
|
||||
const yarnLockPath = process.argv[3] ?? path.join(extensionRoot, 'yarn.lock');
|
||||
|
||||
try {
|
||||
validateYarnLock(packageJsonPath, yarnLockPath);
|
||||
} catch (error) {
|
||||
process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
|
||||
process.exitCode = 1;
|
||||
}
|
||||
}
|
||||
|
||||
export { findMissingSelectors, getExpectedSelectors, parseLockfileSelectors, validateYarnLock };
|
||||
@@ -0,0 +1,41 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { findMissingSelectors } from './verifyYarnLock.mjs';
|
||||
|
||||
test('reports a stale resolution selector', () => {
|
||||
const manifest = { resolutions: { 'fast-uri': '^3.1.5' } };
|
||||
const lockfile = `fast-uri@^3.0.1, fast-uri@^3.1.4:
|
||||
version "3.1.5"
|
||||
`;
|
||||
|
||||
assert.deepEqual(findMissingSelectors(manifest, lockfile), ['fast-uri@^3.1.5']);
|
||||
});
|
||||
|
||||
test('accepts direct, scoped, and nested resolution selectors', () => {
|
||||
const manifest = {
|
||||
dependencies: { '@scope/direct': '^1.0.0' },
|
||||
devDependencies: { 'gulp-typescript': '^5.0.1' },
|
||||
resolutions: {
|
||||
'@scope/resolved': '^2.0.0',
|
||||
'gulp-typescript/**/glob-parent': '^5.1.2',
|
||||
'parent/**/@nested/package': '~3.0.0'
|
||||
}
|
||||
};
|
||||
const lockfile = `"@nested/package@~3.0.0":
|
||||
version "3.0.1"
|
||||
|
||||
"@scope/direct@^1.0.0":
|
||||
version "1.0.0"
|
||||
|
||||
"@scope/resolved@^2.0.0":
|
||||
version "2.0.0"
|
||||
|
||||
glob-parent@^3.1.0, glob-parent@^5.1.2:
|
||||
version "5.1.2"
|
||||
|
||||
gulp-typescript@^5.0.1:
|
||||
version "5.0.1"
|
||||
`;
|
||||
|
||||
assert.deepEqual(findMissingSelectors(manifest, lockfile), []);
|
||||
});
|
||||
@@ -4,20 +4,24 @@
|
||||
* ------------------------------------------------------------------------------------------ */
|
||||
|
||||
import { downloadAndUnzipVSCode, resolveCliArgsFromVSCodeExecutablePath } from '@vscode/test-electron';
|
||||
import { createHash } from 'crypto';
|
||||
import { tmpdir } from 'os';
|
||||
import { resolve } from 'path';
|
||||
import { verbose } from '../src/Utility/Text/streams';
|
||||
import { mkdir, readJson, rimraf, write } from './common';
|
||||
import { getVSCodeTestIsolate } from './vscodeTestPath';
|
||||
|
||||
export const isolated = resolve(tmpdir(), '.vscode-test', createHash('sha256').update(__dirname).digest('hex').substring(0, 6));
|
||||
export const isolated = getVSCodeTestIsolate(__dirname);
|
||||
export const extensionsDir = resolve(isolated, 'extensions');
|
||||
export const userDir = resolve(isolated, 'user-data');
|
||||
export const settings = resolve(userDir, "User", 'settings.json');
|
||||
|
||||
// Pin the test VS Code build to a known-good stable release for deterministic CI instead of
|
||||
// always pulling latest. Launching macOS 1.110+ builds requires @vscode/test-electron >= 3.1.0.
|
||||
export const testVSCodeVersion = '1.131.0';
|
||||
|
||||
export const options = {
|
||||
version: testVSCodeVersion,
|
||||
cachePath: `${isolated}/cache`,
|
||||
launchArgs: ['--no-sandbox', '--disable-updates', '--skip-welcome', '--skip-release-notes', `--extensions-dir=${extensionsDir}`, `--user-data-dir=${userDir}`, '--disable-workspace-trust']
|
||||
launchArgs: ['--no-sandbox', '--disable-updates', '--skip-welcome', '--skip-release-notes', '--disable-extensions', `--extensions-dir=${extensionsDir}`, `--user-data-dir=${userDir}`, '--disable-workspace-trust']
|
||||
};
|
||||
|
||||
export async function install() {
|
||||
@@ -34,9 +38,9 @@ export async function install() {
|
||||
args.push(`--extensions-dir=${extensionsDir}`, `--user-data-dir=${userDir}`);
|
||||
|
||||
// install the appropriate extensions
|
||||
// spawnSync(cli, [...args, '--install-extension', 'ms-vscode.cpptools'], { encoding: 'utf-8', stdio: 'ignore' });
|
||||
// spawnSync(cli, [...args, '--install-extension', 'twxs.cmake'], { encoding: 'utf-8', stdio: 'ignore' });
|
||||
// spawnSync(cli, [...args, '--install-extension', 'ms-vscode.cmake-tools'], { encoding: 'utf-8', stdio: 'ignore' });
|
||||
// runVSCodeCommand([...args, '--install-extension', 'ms-vscode.cpptools'], options);
|
||||
// runVSCodeCommand([...args, '--install-extension', 'twxs.cmake'], options);
|
||||
// runVSCodeCommand([...args, '--install-extension', 'ms-vscode.cmake-tools'], options);
|
||||
const settingsJson = await readJson(settings, {});
|
||||
if (!settingsJson["workbench.colorTheme"]) {
|
||||
settingsJson["workbench.colorTheme"] = "Tomorrow Night Blue";
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All Rights Reserved.
|
||||
* See 'LICENSE' in the project root for license information.
|
||||
* ------------------------------------------------------------------------------------------ */
|
||||
|
||||
import { createHash } from 'crypto';
|
||||
import { homedir } from 'os';
|
||||
import { posix, win32 } from 'path';
|
||||
|
||||
function isFullyQualifiedPath(value: string, platform: NodeJS.Platform): boolean {
|
||||
const path = platform === 'win32' ? win32 : posix;
|
||||
return path.isAbsolute(value) && (platform !== 'win32' || path.parse(value).root.length > 1);
|
||||
}
|
||||
|
||||
export function getVSCodeTestIsolate(
|
||||
scriptDirectory: string,
|
||||
platform: NodeJS.Platform = process.platform,
|
||||
environment: NodeJS.ProcessEnv = process.env,
|
||||
homeDirectory: string = homedir()): string {
|
||||
const path = platform === 'win32' ? win32 : posix;
|
||||
const override = environment.CPPTOOLS_VSCODE_TEST_ROOT;
|
||||
let root: string;
|
||||
|
||||
if (override) {
|
||||
if (!isFullyQualifiedPath(override, platform)) {
|
||||
throw new Error('CPPTOOLS_VSCODE_TEST_ROOT must be a fully qualified absolute path.');
|
||||
}
|
||||
root = override;
|
||||
} else {
|
||||
switch (platform) {
|
||||
case 'win32': {
|
||||
const localAppData = environment.LOCALAPPDATA;
|
||||
const cacheDirectory = localAppData && isFullyQualifiedPath(localAppData, platform) ? localAppData : path.resolve(homeDirectory, 'AppData', 'Local');
|
||||
root = path.resolve(cacheDirectory, 'Microsoft', 'vscode-cpptools', 'vscode-test');
|
||||
break;
|
||||
}
|
||||
case 'darwin':
|
||||
root = path.resolve(homeDirectory, 'Library', 'Caches', 'vscode-cpptools', 'vscode-test');
|
||||
break;
|
||||
default: {
|
||||
const xdgCacheHome = environment.XDG_CACHE_HOME;
|
||||
const cacheDirectory = xdgCacheHome && isFullyQualifiedPath(xdgCacheHome, platform) ? xdgCacheHome : path.resolve(homeDirectory, '.cache');
|
||||
root = path.resolve(cacheDirectory, 'vscode-cpptools', 'vscode-test');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const worktreeHash = createHash('sha256').update(scriptDirectory).digest('hex').substring(0, 6);
|
||||
return path.resolve(root, worktreeHash);
|
||||
}
|
||||
Vendored
+25
@@ -22,6 +22,31 @@
|
||||
// you can use a watch task as a prelaunch task and it works like you'd want it to.
|
||||
"preLaunchTask": "watch"
|
||||
},
|
||||
{
|
||||
// debugs the extension with sanitizer (TSan/ASan/UBSan) reports captured to files.
|
||||
// Requires a sanitizer build of the cpptools language server. Each process writes
|
||||
// ${userHome}/cpptools-sanitizer-logs/<sanitizer>.<pid> (see readme.developer.md).
|
||||
"name": "Run Extension (capture sanitizer logs)",
|
||||
"type": "extensionHost",
|
||||
"request": "launch",
|
||||
"env": {
|
||||
"CPPTOOLS_SANITIZER_LOG_DIR": "${userHome}/cpptools-sanitizer-logs"
|
||||
},
|
||||
"args": [
|
||||
"--no-sandbox",
|
||||
"--disable-updates",
|
||||
"--skip-welcome",
|
||||
"--skip-release-notes",
|
||||
"--disable-workspace-trust",
|
||||
"--extensionDevelopmentPath=${workspaceFolder}",
|
||||
],
|
||||
"sourceMaps": true,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**"
|
||||
],
|
||||
// you can use a watch task as a prelaunch task and it works like you'd want it to.
|
||||
"preLaunchTask": "watch"
|
||||
},
|
||||
{
|
||||
// debugs the extension (selecting the workspace)
|
||||
"name": "Run Extension-Select Workspace",
|
||||
|
||||
Vendored
+3
-1
@@ -27,12 +27,14 @@
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "vscode.json-language-features",
|
||||
"editor.tabSize": 4,
|
||||
"files.insertFinalNewline": false
|
||||
"editor.detectIndentation": true,
|
||||
"files.insertFinalNewline": true
|
||||
},
|
||||
"[jsonc]": {
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "vscode.json-language-features",
|
||||
"editor.tabSize": 4,
|
||||
"editor.detectIndentation": true,
|
||||
"files.insertFinalNewline": true
|
||||
},
|
||||
"[typescript]": {
|
||||
|
||||
+1
-1
@@ -28,4 +28,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,4 +7,4 @@
|
||||
"devDependencies": {
|
||||
"yarn": "1.22.22"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+60
-10
@@ -1,31 +1,81 @@
|
||||
# C/C++ for Visual Studio Code Changelog
|
||||
|
||||
## Version 1.32.1: April 20, 2026
|
||||
### Bug Fixes
|
||||
* Fix an IntelliSense crash when three special-case comments are used in a template. [#14360](https://github.com/microsoft/vscode-cpptools/issues/14360)
|
||||
* 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 the clang-tidy error `Error: no checks enabled.` when checks are not otherwise set. [#14391](https://github.com/microsoft/vscode-cpptools/issues/14391)
|
||||
* Update localized strings.
|
||||
|
||||
## Version 1.32.0: April 14, 2026
|
||||
## Version 1.33.8: August 17, 2026
|
||||
### New Feature
|
||||
* Add support for run without debugging. [#1201](https://github.com/microsoft/vscode-cpptools/issues/1201)
|
||||
* Unification of tag parsing with the VS implementation. In particular, it's now done using multiple parallel `cpptools-srv2` processes. [PR #14426](https://github.com/microsoft/vscode-cpptools/pull/14426)
|
||||
|
||||
### Enhancements
|
||||
* Allow platform overrides in `cppbuild` tasks. [#11601](https://github.com/microsoft/vscode-cpptools/issues/11601)
|
||||
* Add the `debuginfod` launch option to the `cppdbg` debugger schema. [#14458](https://github.com/microsoft/vscode-cpptools/issues/14458), [#14460](https://github.com/microsoft/vscode-cpptools/issues/14460), [PR #14471](https://github.com/microsoft/vscode-cpptools/pull/14471), [PR #14506](https://github.com/microsoft/vscode-cpptools/pull/14506), [MIEngine#1562](https://github.com/microsoft/MIEngine/issues/1562)
|
||||
* Add the `ignoreRunWithoutDebuggingWarnings` property to allow 'Run without debugging' warnings to be suppressed. [#14515](https://github.com/microsoft/vscode-cpptools/issues/14515)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix the wording for the `#include` errors detected message. [#8227](https://github.com/microsoft/vscode-cpptools/issues/8227)
|
||||
* Fix an incorrect `invalid type conversion` IntelliSense error. [#11294](https://github.com/microsoft/vscode-cpptools/issues/11294)
|
||||
* Fix include completion (with recursive includes) still suggesting headers from a deleted folder. [#12636](https://github.com/microsoft/vscode-cpptools/issues/12636)
|
||||
* Fix a spurious recursive includes (`**`) debug console log warning for paths merged from `c_cpp_properties.json` when `C_Cpp.mergeConfigurations` is enabled. [#14125](https://github.com/microsoft/vscode-cpptools/issues/14125)
|
||||
* Thanks for the contribution. [@owevertonguedes (Weverton Guedes)](https://github.com/owevertonguedes) [PR #14620](https://github.com/microsoft/vscode-cpptools/pull/14620)
|
||||
* Fix 'Find All References' dropping valid references when a template parameter type has a typedef alias in only one translation unit. [#14344](https://github.com/microsoft/vscode-cpptools/issues/14344)
|
||||
* Fix the remote process picker `ps` command not working with some shells. [#14442](https://github.com/microsoft/vscode-cpptools/issues/14442)
|
||||
* Thanks for the contribution. [@HuzaifaAbdulRehman](https://github.com/HuzaifaAbdulRehman) [PR #14592](https://github.com/microsoft/vscode-cpptools/pull/14592)
|
||||
* Fix a spurious IntelliSense error with class template argument deduction (CTAD). [#14453](https://github.com/microsoft/vscode-cpptools/issues/14453), [#14459](https://github.com/microsoft/vscode-cpptools/issues/14459), [#14504](https://github.com/microsoft/vscode-cpptools/issues/14504)
|
||||
* Add `important` to `C_Cpp.doxygen.sectionTags`. [PR #14473](https://github.com/microsoft/vscode-cpptools/pull/14473)
|
||||
* Update the minimum supported VS Code version to 1.77. [PR #14502](https://github.com/microsoft/vscode-cpptools/pull/14502)
|
||||
* Fix issues with the debugger `launch.json` schema. [PR #14523](https://github.com/microsoft/vscode-cpptools/pull/14523)
|
||||
* Fix `[[no_unique_address]]` empty-base layout `sizeof` being computed too large. [#14524](https://github.com/microsoft/vscode-cpptools/issues/14524)
|
||||
* Fix `${env:VAR}` and `${env.VAR}` not expanding to an empty string when the environment variable is unset, to match VS Code's behavior. [PR #14535](https://github.com/microsoft/vscode-cpptools/pull/14535)
|
||||
* Thanks for the contribution. [@notable-equivalent](https://github.com/notable-equivalent)
|
||||
* Fix C/C++ debug data-tips on members of a dereferenced expression. [PR #14540](https://github.com/microsoft/vscode-cpptools/pull/14540)
|
||||
* Thanks for the contribution. [@tieo](https://github.com/tieo)
|
||||
* Fix Windows backslash paths being mangled when adding an SSH target. [PR #14554](https://github.com/microsoft/vscode-cpptools/pull/14554)
|
||||
* Fix 'Run C/C++ File' not running the program in PowerShell when terminal shell integration is unavailable. [#14583](https://github.com/microsoft/vscode-cpptools/issues/14583)
|
||||
* Thanks for the contribution. [@owevertonguedes (Weverton Guedes)](https://github.com/owevertonguedes) [PR #14585](https://github.com/microsoft/vscode-cpptools/pull/14585)
|
||||
* Fix the build tools walkthrough for Visual Studio 2026. [PR #14589](https://github.com/microsoft/vscode-cpptools/pull/14589)
|
||||
* Fix custom configurations being discarded when `C_Cpp.mergeConfigurations` is enabled and a provider supplies the file `uri` as a `vscode.Uri`. [#14621](https://github.com/microsoft/vscode-cpptools/issues/14621)
|
||||
* Thanks for the contribution. [@owevertonguedes (Weverton Guedes)](https://github.com/owevertonguedes) [PR #14624](https://github.com/microsoft/vscode-cpptools/pull/14624)
|
||||
* Fix a tag parser crash when a UTF-8 string literal is concatenated with a narrow string literal containing an invalid multibyte sequence.
|
||||
* Fix IntelliSense incorrectly resolving `#include` files through a symbolic link after the target directory was deleted from disk.
|
||||
* Fix potential browse database corruption when the same workspace is opened by multiple processes on Linux and macOS.
|
||||
* Fix crashes when reading files saved in certain multibyte encodings such as GB18030 or EUC-JP.
|
||||
* Fix empty database folders being created in every folder of a multi-root workspace.
|
||||
* Fix the `C_Cpp.refactoring.includeHeader` setting not honoring `always`.
|
||||
* Fix spurious IntelliSense error on `std::variant` brace-initialization.
|
||||
* Fix several potential deadlocks and data races in the language server.
|
||||
* Fix an incorrect file path in an error message on Windows.
|
||||
* Reduce memory usage to help avoid out-of-memory crashes.
|
||||
* Fix stale diagnostics after editing visible headers.
|
||||
* Fix several crashes in the recursive include cache.
|
||||
* Fix an incorrect `#include` casing error on Linux.
|
||||
* Various other fixes found internally.
|
||||
* Various localization updates.
|
||||
* Fix an IntelliSense crash.
|
||||
* Update dependencies.
|
||||
|
||||
## Version 1.32.2: April 28, 2026
|
||||
### New Feature
|
||||
* Add support for "Run without debugging". [#1201](https://github.com/microsoft/vscode-cpptools/issues/1201)
|
||||
|
||||
### Enhancements
|
||||
* Add a `C_Cpp.doxygen.generateOnCodeAction` setting to allow disabling of Doxygen generation code actions. [#14341](https://github.com/microsoft/vscode-cpptools/issues/14341)
|
||||
* Add a `cpptools.waitForTagParsing` command (for use by the `C/C++ DevTools` extension). [PR #14407](https://github.com/microsoft/vscode-cpptools/pull/14407/changes)
|
||||
* Improve wildcard matching with the debugger natvis. [MIEngine#1162](https://github.com/microsoft/MIEngine/issues/1162)
|
||||
* Add support for `HideRawView` with the debugger natvis. [MIEngine#1458](https://github.com/microsoft/MIEngine/issues/1458)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix high CPU usage caused by repeated calls to `selectChatModels`. [#14168](https://github.com/microsoft/vscode-cpptools/issues/14168), [#14211](https://github.com/microsoft/vscode-cpptools/issues/14211), [#14241](https://github.com/microsoft/vscode-cpptools/issues/14241)
|
||||
* Fix the MSVC developer environment not working if `UCRTVersion` isn't found, and update the walkthrough instructions for installing MSVC. [#14352](https://github.com/microsoft/vscode-cpptools/issues/14352)
|
||||
* Fix an IntelliSense crash when three special-case comments are used in a template. [#14360](https://github.com/microsoft/vscode-cpptools/issues/14360)
|
||||
* Fix Copilot hover taking too many premium requests. [#14372](https://github.com/microsoft/vscode-cpptools/issues/14372)
|
||||
* Fix null pointers being expandable for variables in the debugger. [MIEngine#698](https://github.com/microsoft/MIEngine/issues/698)
|
||||
* Fix recursive `{this}` evaluation with the debugger natvis. [MIEngine#1391](https://github.com/microsoft/MIEngine/issues/1391)
|
||||
* Update clang-tidy and clang-format from 22.1.1 to 22.1.3 (bug fixes).
|
||||
* Fix a bug with semantic colorization of operators.
|
||||
|
||||
## Version 1.31.5: April 20, 2026
|
||||
### Bug Fixes
|
||||
* Fix `Reinstalling the Extension.md` not being found. [#14389](https://github.com/microsoft/vscode-cpptools/issues/14389)
|
||||
* Fix the `C/C++ DevTools` extension language service tools not working after the `C/C++` extension updates via `Restart Extensions`. [#14392](https://github.com/microsoft/vscode-cpptools/issues/14392)
|
||||
|
||||
## Version 1.31.4: March 31, 2026
|
||||
### Bug Fix
|
||||
* Debugging cpptools and cpptools-srv processes on macOS (to get call stacks) is now blocked when SIP is enabled (due to a potential security issue).
|
||||
|
||||
+1
-1
@@ -61,7 +61,7 @@ File questions, issues, or feature requests for the extension.
|
||||
If someone has already filed an issue that encompasses your feedback, please leave a 👍 or 👎 reaction on the issue to upvote or downvote it to help us prioritize the issue.
|
||||
<br>
|
||||
|
||||
**[Quick survey](https://www.research.net/r/VBVV6C6)**
|
||||
**[Quick survey](https://aka.ms/vcvscodesurvey)**
|
||||
<br>
|
||||
Let us know what you think of the extension by taking the quick survey.
|
||||
|
||||
|
||||
+129
-834
File diff suppressed because it is too large
Load Diff
@@ -1,33 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"cpfe",
|
||||
"--wchar_t_keyword",
|
||||
"--no_warnings",
|
||||
"--rtti",
|
||||
"--edge",
|
||||
"--exceptions",
|
||||
"--error_limit",
|
||||
"25000",
|
||||
"-D_EDG_COMPILER",
|
||||
"-D_USE_DECLSPECS_FOR_SAL=1"
|
||||
],
|
||||
"source_file_format": "-f %s",
|
||||
"expressions": [
|
||||
{
|
||||
"match": "^/I(.*)",
|
||||
"replace": "-I\n$1"
|
||||
},
|
||||
{
|
||||
"match": "^/D(.*)",
|
||||
"replace": "-D$1"
|
||||
},
|
||||
{
|
||||
"match": "^/AI(.*)",
|
||||
"replace": "--using_directory\n$1"
|
||||
},
|
||||
{
|
||||
"match": "^/dE--(.*)",
|
||||
"replace": "--$1"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__arm__=1",
|
||||
"-D__ARM_32BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__aarch64__=1",
|
||||
"-D__ARM_64BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__x86_64=1",
|
||||
"-D__x86_64__=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__i386=1",
|
||||
"-D__i386__=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__arm__=1",
|
||||
"-D__ARM_32BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__aarch64__=1",
|
||||
"-D__ARM_64BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__x86_64=1",
|
||||
"-D__x86_64__=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-Dunix=1",
|
||||
"-D__unix__=1",
|
||||
"-D__linux__=1",
|
||||
"-D__i386=1",
|
||||
"-D__i386__=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__arm__=1",
|
||||
"-D__ARM_32BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__aarch64__=1",
|
||||
"-D__ARM_64BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__x86_64=1",
|
||||
"-D__x86_64__=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__i386=1",
|
||||
"-D__i386__=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__arm__=1",
|
||||
"-D__ARM_32BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__aarch64__=1",
|
||||
"-D__ARM_64BIT_STATE=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__x86_64=1",
|
||||
"-D__x86_64__=1",
|
||||
"-D__PTRDIFF_TYPE__=long int",
|
||||
"-D__SIZE_TYPE__=long unsigned int",
|
||||
"-D__WCHAR_TYPE__=int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D__APPLE__=1",
|
||||
"-D__MACH__=1",
|
||||
"-D__i386=1",
|
||||
"-D__i386__=1",
|
||||
"-D__PTRDIFF_TYPE__=int",
|
||||
"-D__SIZE_TYPE__=unsigned int",
|
||||
"-D__WCHAR_TYPE__=long int"
|
||||
],
|
||||
"defaults_op" : "merge"
|
||||
}
|
||||
@@ -2810,7 +2810,7 @@
|
||||
"Nejde vyhodnotit hodnotu nekompletní položky %t.",
|
||||
"Systém ignoroval návratovou hodnotu z rutiny deklarované pomocí atributu nodiscard.",
|
||||
"Systém ignoroval typ návratové hodnoty s atributem nodiscard.",
|
||||
"Atribut nodiscard neplatí pro destruktory nebo rutiny s návratovým typem void.",
|
||||
"Atribut nodiscard neplatí pro destruktory nebo rutiny s návratovým typem void.",
|
||||
"Atribut fallthrough platí jenom pro příkazy null.",
|
||||
"Atribut fallthrough se může vyskytovat jenom uvnitř příkazu switch.",
|
||||
"Příkaz fallthrough musí předcházet návěstí větve příkazu switch nebo výchozí hodnotě.",
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"Přiřazení k anachronizmu this není kompatibilní s režimem C++11.",
|
||||
"Došlo k neznámé chybě. Soubor PCH IntelliSense se nevygeneroval.",
|
||||
"Nejméně jednu ze vzdálených cest nejde namapovat na stávající místní cesty. Funkce IntelliSense možná nebude fungovat zcela podle očekávání.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"Die Zuweisung zum this-Anachronismus ist mit dem C++11-Modus nicht kompatibel.",
|
||||
"Unbekannter Fehler. Es wurde keine IntelliSense PCH-Datei generiert.",
|
||||
"Mindestens ein Remotepfad kann vorhandenen lokalen Pfaden nicht zugeordnet werden. Die IntelliSense-Funktionen werden ggf. beeinträchtigt.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
@@ -3748,4 +3748,4 @@
|
||||
"%nd wurde zuvor ohne explizite Enumerationsbasis deklariert",
|
||||
"Fehlender „typename“ entspricht hier nicht dem Standard.",
|
||||
"Die abgekürzte Funktionsvorlagensyntax entspricht nicht dem Standard für Deduktionsleitfäden."
|
||||
]
|
||||
]
|
||||
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"la asignación al anacronismo \"this\" no es compatible con el modo C++11",
|
||||
"error desconocido. No se generó un archivo IntelliSense PCH.",
|
||||
"No se pueden asignar una o varias rutas remotas a las rutas locales actuales. La experiencia con IntelliSense puede degradarse.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
@@ -3748,4 +3748,4 @@
|
||||
"%nd se declaró previamente sin una base explícita de enumeración",
|
||||
"falta 'typename' no estándar aquí",
|
||||
"La sintaxis abreviada de las plantillas de funciones no es estándar para las guías de deducción"
|
||||
]
|
||||
]
|
||||
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"l'assignation à l'anachronisme 'this' n'est pas compatible avec le mode C++11",
|
||||
"une erreur inconnue s'est produite. Aucun fichier PCH IntelliSense n'a été généré.",
|
||||
"Impossible de mapper un ou plusieurs chemins distants à des chemins locaux existants. L'expérience IntelliSense risque d'être dégradée.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"l'assegnazione all'anacronismo 'this' non è compatibile con la modalità C++11",
|
||||
"si è verificato un errore sconosciuto. Non è stato generato alcun file PCH IntelliSense.",
|
||||
"Non è possibile eseguire il mapping di uno o più percorsi remoti a percorsi locali esistenti. L'operazione potrebbe influire negativamente sull'esperienza IntelliSense.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"'this' への代入 (旧形式) は C++11 モードと互換性がありません",
|
||||
"不明なエラーが発生しました。IntelliSense PCH ファイルは生成されませんでした。",
|
||||
"1 つ以上のリモート パスを既存のローカル パスにマップできません。IntelliSense の機能が低下する可能性があります。",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
@@ -3705,7 +3705,7 @@
|
||||
"<constructor-call>",
|
||||
"<NULL expression>",
|
||||
"<error>",
|
||||
"<NULL routine>",
|
||||
"<NULL ルーチン>",
|
||||
"<default>",
|
||||
"パラメーター #",
|
||||
" (1 つ上のレベル)",
|
||||
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"'this'에 대한 할당(오래된 구문)은 C++11 모드와 호환되지 않습니다.",
|
||||
"알 수 없는 오류가 발생했습니다. IntelliSense PCH 파일이 생성되지 않았습니다.",
|
||||
"하나 이상의 원격 경로를 기존 로컬 경로에 매핑할 수 없습니다. IntelliSense 성능이 저하될 수 있습니다.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
@@ -3705,7 +3705,7 @@
|
||||
"<constructor-call>",
|
||||
"<NULL expression>",
|
||||
"<error>",
|
||||
"<NULL routine>",
|
||||
"<NULL 루틴>",
|
||||
"<default>",
|
||||
"parameter #",
|
||||
" (한 수준 위로)",
|
||||
|
||||
@@ -2739,7 +2739,7 @@
|
||||
"wyrażenie niedozwolone w kontekście, którego nie obliczono",
|
||||
null,
|
||||
null,
|
||||
"wyrażenie „return” jest niedozwolone w koprocedurze (zamiast tego użyj wyrażenia „co_return”)",
|
||||
"instrukcja „return” jest niedozwolona w koprocedurze (użyj zamiast niej instrukcji „co_return”)",
|
||||
"wyrażenie „co_return” jest dozwolone tylko w koprocedurach",
|
||||
"nie można porównać wartości zmiennoprzecinkowych",
|
||||
"nie można porównać wartości wskaźników, ponieważ nie wskazują na ten sam kompletny obiekt lub wskazują na podobiekty o różnej dostępności",
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"przypisanie do przestarzałej konstrukcji „this” nie jest zgodne z trybem C++11",
|
||||
"wystąpił nieznany błąd. Nie wygenerowano pliku PCH funkcji IntelliSense.",
|
||||
"Nie można zamapować co najmniej jednej ścieżki zdalnej na istniejące ścieżki lokalne. Może to mieć negatywny wpływ na działanie funkcji IntelliSense.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
@@ -3177,7 +3177,7 @@
|
||||
"brak instrukcji co_return, podczas gdy %t nie ma elementu „return_void” na końcu %n",
|
||||
"nie znaleziono wariantu nothrow globalnego elementu „operator new” dla alokacji stanu koprocedury",
|
||||
"nie znaleziono zdatnego do użycia elementu „operator delete” dla cofania alokacji koprocedury",
|
||||
"funkcja constexpr nie może być kokprocedurą",
|
||||
"funkcja constexpr nie może być koprocedurą",
|
||||
"argument operacji dla tego wyrażenia %s jest rozpoznawany jako niebędący klasą typ %t",
|
||||
"wyrażenie co_await jest niedozwolone w inicjatorze statycznym",
|
||||
"wyrażenie co_await wywołujące funkcję %n musi być niezwracalne",
|
||||
@@ -3705,7 +3705,7 @@
|
||||
"<constructor-call>",
|
||||
"<NULL expression>",
|
||||
"<error>",
|
||||
"<NULL routine>",
|
||||
"<procedura NULL>",
|
||||
"<default>",
|
||||
"parametr #",
|
||||
" (jeden poziom wyżej)",
|
||||
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"a atribuição ao anacronismo 'this' não é compatível com o modo C++11",
|
||||
"erro desconhecido. Não foi gerado um arquivo PCH do IntelliSense.",
|
||||
"Um ou mais caminhos remotos não podem ser mapeados para os caminhos locais existentes. A experiência do IntelliSense pode ser degradada.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"назначение устаревшему элементу this несовместимо с режимом C++11",
|
||||
"произошла неизвестная ошибка. PCH-файл IntelliSense не был создан.",
|
||||
"Один или несколько удаленных путей не могут быть сопоставлены с существующими локальными путями. Использование IntelliSense может быть ограничено.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
|
||||
@@ -1664,7 +1664,7 @@
|
||||
"#include_next, birincil kaynak dosyada kullanılamıyor",
|
||||
"şablon üye tanımında %no1 belirtilemiyor -- onun yerine %no2 varsayıldı",
|
||||
"yerel işlev bildiriminde, %sq özniteliği yoksayılıyor",
|
||||
"%sq öğesi ile %n içerisinde birleştirme işlemi, geçerli bir simge oluşturmuyor",
|
||||
"%sq öğesi ile %n içerisinde birleştirme işlemi, geçerli bir belirteç oluşturmuyor",
|
||||
"%no belirsiz (%n2 varsayıldı)",
|
||||
"statik bir üye işlev üzerinde tür niteleyicisine izin verilmiyor",
|
||||
"bir tür niteleyicisine, bir oluşturucu veya yıkıcı üzerinde izin verilmiyor",
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"'this' anakronizmine yönelik atama C++11 modu ile uyumlu değil",
|
||||
"bilinmeyen bir hata oluştu. IntelliSense PCH dosyası oluşturulmadı.",
|
||||
"Bir veya daha fazla uzak yol, mevcut yerel yollarla eşlenemiyor. IntelliSense deneyimi bozulabilir.",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"对 \"this\" 计时错误的赋值与 C++11 模式不兼容",
|
||||
"出现了未知错误。未生成 IntelliSense PCH 文件。",
|
||||
"一个或多个远程路径无法映射到现有本地路径。IntelliSense 体验可能会降级。",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
@@ -3604,7 +3604,7 @@
|
||||
"第一个参数必须是指向整数、enum 或支持的浮点类型的指针",
|
||||
"编译多个翻译单元时无法使用 C++ 模块",
|
||||
"C++ 模块不能与 C++11 之前的 'export' 功能一起使用",
|
||||
"不支持 IFC 令牌 %sq",
|
||||
"不支持 IFC 标记 %sq",
|
||||
"'pass_object_size' 属性仅对函数声明的参数有效",
|
||||
"%sq 属性 %d1 的参数必须介于 0 和 %d2 之间",
|
||||
"此处的 ref-qualifier 被忽略",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"記憶體不足。請考慮啟用 64 位元 IntelliSense 引擎,並在設定中增加 IntelliSense 記憶體限制。",
|
||||
null,
|
||||
"檔案結尾處有未封閉的註解",
|
||||
"無法辨認的語彙基元",
|
||||
"無法辨認的 Token",
|
||||
"遺漏右引號",
|
||||
"不允許巢狀註解",
|
||||
"這裡不應該出現 '#'",
|
||||
@@ -721,8 +721,8 @@
|
||||
"不允許 mutable",
|
||||
"不允許 %n 的重新宣告更改其存取權",
|
||||
null,
|
||||
"可能誤用替代的語彙基元 '<:'",
|
||||
"可能誤用替代的語彙基元 '%%:'",
|
||||
"可能誤用替代的 Token '<:'",
|
||||
"可能誤用替代的 Token '%%:'",
|
||||
"不允許命名空間定義",
|
||||
"名稱必須是命名空間名稱",
|
||||
"不允許命名空間別名定義",
|
||||
@@ -782,7 +782,7 @@
|
||||
"參考的目標是 %nd1 -- 根據舊的 for-init 範圍規則,它可能已 %nd2",
|
||||
"控制 for-init 差異時警告的選項只有在編譯 C++ 時才能使用",
|
||||
"這裡需要虛擬 %n 的定義",
|
||||
"空白註解被解譯為語彙基元帶入的運算子 '##'",
|
||||
"空白註解被解譯為 Token 帶入的運算子 '##'",
|
||||
"friend 宣告不能有儲存類別",
|
||||
"這個宣告不能有 %no 的樣板參數清單",
|
||||
"%n 不是有效的類別成員範本",
|
||||
@@ -1664,7 +1664,7 @@
|
||||
"#include_next 不能用於主要原始程式檔",
|
||||
"無法在樣板成員定義中指定 %no1 -- 假設為 %no2",
|
||||
"區域函式宣告忽略 %sq 屬性",
|
||||
"與 %sq (於 %n 中) 的串連不會建立有效的語彙基元",
|
||||
"與 %sq (於 %n 中) 的串連不會建立有效的 Token",
|
||||
"%no 模稜兩可 (假設為 %n2)",
|
||||
"靜態成員函式不能有類型限定詞",
|
||||
"建構函式或解構函式不能有類型限定詞",
|
||||
@@ -2999,7 +2999,7 @@
|
||||
"'this' 用法已過時,且這種指派與 C++11 模式不相容",
|
||||
"發生未知的錯誤。未產生 IntelliSense PCH 檔案。",
|
||||
"有一或多個遠端路徑無法對應到現有的本機路徑。IntelliSense 的效能可能會變差。",
|
||||
null,
|
||||
"too many nested user-defined conversions (possible cycle of converting routines)",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
@@ -3388,7 +3388,7 @@
|
||||
"當 %sq 用於匯入或模組指示詞中時,不得為巨集",
|
||||
"這個指示詞只能出現在全域命名空間範圍內",
|
||||
"'export' 宣告只能出現在全域或命名空間範圍",
|
||||
"%sq 剖析為識別碼而非關鍵字,因為後續的權杖與前置處理器指示詞的標記不相符",
|
||||
"%sq 剖析為識別碼而非關鍵字,因為後續的 Token 與前置處理器指示詞的標記不相符",
|
||||
"這似乎是前置處理器指示詞的開頭,但是缺少 ';',後面緊接著新行會防止",
|
||||
"這似乎是模組前置處理指示詞,但這類指示詞不能出現在巨集展開中",
|
||||
"'module' 指示詞不能出現在條件式包含的範圍 (例如,#if、#else、#elseif 等)",
|
||||
@@ -3604,7 +3604,7 @@
|
||||
"第一個引數必須是整數的指標、enum 或支援的浮點類型",
|
||||
"編譯多個翻譯單元時,無法使用 C++ 模組",
|
||||
"C++ 模組無法搭配先前的 C++11 'export' 功能使用",
|
||||
"IFC 權杖 %sq 不受支援",
|
||||
"IFC Token %sq 不受支援",
|
||||
"'pass_object_size' 屬性僅在函式宣告的參數上有效",
|
||||
"%sq 屬性 %d1 的引數必須是介於 0 到 %d2 之間的值",
|
||||
"這裡會忽略 ref-qualifier",
|
||||
@@ -3624,11 +3624,11 @@
|
||||
"在此模式下,'auto' 作為類型規範並非標準用法",
|
||||
"由於檔案損毀,無法匯入模組檔案 %sq",
|
||||
"IFC",
|
||||
"成員宣告後插入了沒有直接關聯的權杖",
|
||||
"成員宣告後插入了沒有直接關聯的 Token",
|
||||
"錯誤的插入範圍 (%r)",
|
||||
"預期為 std::string_view 類型的值,但收到 %t",
|
||||
"陳述式後插入了沒有直接關聯的權杖",
|
||||
"宣告後插入了沒有直接關聯的權杖",
|
||||
"陳述式後插入了沒有直接關聯的 Token",
|
||||
"宣告後插入了沒有直接關聯的 Token",
|
||||
"Tuple 索引值 (%d) 溢位",
|
||||
">> 輸出來自 std::meta::__report_tokens",
|
||||
">> 結束輸出自 std::meta::__report_tokens",
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"defaults": [
|
||||
"-D_MSC_EXTENSIONS",
|
||||
"--microsoft",
|
||||
"--microsoft_bugs",
|
||||
"--microsoft_version",
|
||||
"1951",
|
||||
"-D_MSC_VER=1951",
|
||||
"-D_MSC_FULL_VER=195136122",
|
||||
"-D_MSC_BUILD=0",
|
||||
"-D_M_ARM=7"
|
||||
],
|
||||
"defaults_op": "merge"
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"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 +0,0 @@
|
||||
{
|
||||
"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 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
@@ -213,17 +213,6 @@
|
||||
"recursiveIncludes": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"reduce": {
|
||||
"markdownDescription": "Set to `always` to always reduce the number of recursive include paths provided to IntelliSense to only those paths currently referenced by #include statements. This requires first parsing files to determine which headers are included. Set to `never` to provide all recursive include paths to IntelliSense. Reducing the number of recursive include paths may improve IntelliSense performance when a very large number of recursive include paths are involved. Not reducing the number of recursive include paths can improve IntelliSense performance by avoiding the need to parse files to determine which include paths to provide. The `default` value is currently to reduce the number of recursive include paths provided to IntelliSense.",
|
||||
"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"always",
|
||||
"never",
|
||||
"default",
|
||||
"${default}"
|
||||
]
|
||||
},
|
||||
"priority": {
|
||||
"markdownDescription": "The priority of recursive include paths. If set to `beforeSystemIncludes`, the recursive include paths will be searched before system include paths. If set to `afterSystemIncludes`, the recursive include paths will be searched after system include paths. `beforeSystemIncludes` would more closely reflect the search order of a compiler, while `afterSystemIncludes` may result in improved performance.",
|
||||
"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
|
||||
@@ -311,4 +300,4 @@
|
||||
"version"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,6 +270,18 @@ gulp.task("translations-import", (done) => {
|
||||
let id = language.transifexId || language.id;
|
||||
return gulp.src(path.join(options.location, id, translationProjectName, `${translationExtensionName}.xlf`))
|
||||
.pipe(nls.prepareJsonFiles())
|
||||
.pipe(es.map((file, cb) => {
|
||||
// vscode-nls-dev emits .i18n.json files without a trailing newline. Append one so the
|
||||
// checked-in files match the repo convention (files.insertFinalNewline for [json]) and
|
||||
// don't produce churn the next time they're opened and saved in VS Code.
|
||||
if (file.isBuffer()) {
|
||||
const contents = file.contents;
|
||||
if (contents.length > 0 && contents[contents.length - 1] !== 0x0A) {
|
||||
file.contents = Buffer.concat([contents, Buffer.from("\n")]);
|
||||
}
|
||||
}
|
||||
cb(null, file);
|
||||
}))
|
||||
.pipe(gulp.dest(path.join("./i18n", language.folderName)))
|
||||
.pipe(es.wait()); // This is required or it gives `this.pipeTo.end is not a function`.
|
||||
}))
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
"reinstall.extension.text7": "然后通过 VS Code 中的市场 UI 重新安装。",
|
||||
"reinstall.extension.text8": "如果 VS Code 无法部署扩展的正确版本,则可以 {0} 并使用 VS Code 中市场 UI 内 \"...\" 菜单下的 \"从 VSIX... 安装\" 选项安装系统的正确 VSIX。",
|
||||
"download.vsix.link.title": "已从 VS Code 市场网站下载"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,11 +22,10 @@
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.browse.properties.limitSymbolsToIncludedHeaders": "设为 `true` 以仅处理直接或间接包含为标头的文件,设为 `false` 则处理指定包含路径下的所有文件。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.browse.properties.databaseFilename": "所生成的符号数据库的路径。如果指定了相对路径,则它将相对于工作区的默认存储位置。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.browse.properties.path": "用于索引和分析工作区符号的路径列表(供“转到定义”、“查找所有引用”等使用)。默认情况下,在这些路径上进行搜索为递归搜索。指定 `*` 以指示非递归搜索。例如,`${workspaceFolder}` 将搜索所有子目录,而 `${workspaceFolder}/*` 将不进行搜索。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.recursiveIncludes.properties.reduce": "设置为 `always` 可始终将提供给 IntelliSense 的递归包含路径数减少到仅限当前由 #include 语句引用的路径。这需要首先分析文件以确定包含哪些标头。设置为 `never` 可将所有递归包含路径提供给 IntelliSense。当涉及到大量递归包含路径时,减少递归包含路径的数量可能会提高 IntelliSense 性能。如果不减少递归包含路径的数量,则可以通过避免需要分析文件以确定要提供的包含路径来提高 IntelliSense 性能。`default` 值目前会减少提供给 IntelliSense 的递归包含路径数。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.recursiveIncludes.properties.priority": "递归包含路径的优先级。如果设置为 `beforeSystemIncludes`,则会在系统包含路径之前搜索递归包含路径。如果设置为 `afterSystemIncludes` ,则会在系统包含路径后搜索递归包含路径。`beforeSystemIncludes` 将更密切地反映编译器的搜索顺序,而 `afterSystemIncludes` 则可能导致性能提升。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.recursiveIncludes.properties.order": "搜索递归包含的子目录的顺序。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.customConfigurationVariables": "可通过命令`${cpptools:activeConfigCustomVariable}` 查询的自定义变量,用于 `launch.json` 或 `tasks.json`. 中的输入变量。",
|
||||
"c_cpp_properties.schema.json.definitions.env": "可以使用 `${变量}` 或 `${env:变量}` 语法在此文件中的任何位置重复使用的自定义变量。",
|
||||
"c_cpp_properties.schema.json.definitions.version": "配置文件的版本。此属性由扩展托管。请勿更改它。",
|
||||
"c_cpp_properties.schema.json.definitions.enableConfigurationSquiggles": "控制扩展是否将报告在 `c_cpp_properties.json` 中检测到的错误。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "与要从中输出诊断的标头名称匹配的 POSIX 扩展正则表达式 (ERE)。始终显示来自每个翻译单元的主文件的诊断。支持 `${workspaceFolder}` 变量(如果不存在 `.clang-tidy` 文件,则该变量将用作默认回退值)。如果此选项不是 `null` (空),则将替代 `.clang-tidy` 文件中的 `HeaderFilterRegex` 选项(如果有)。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription": "要传递给 `clang-tidy` 的其他命令行参数。这些优先于等效的 `C_Cpp.codeAnalysis.clangTidy.*` 设置。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "如果设置了 `true` 和 `compileCommands`,则 `-p=<build-path>` 参数将传递给 `clang-tidy`,而不是在 `--` 之后传递生成参数。如果未设置环境变量以便可以找到系统包含项,则此操作可能不起作用。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "已启用的 `clang-tidy` 检查列表。这些值将追加到 `.clang-tidy` 文件中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有)。除非显式禁用,否则始终使用默认检查 `clang-analyzer-*`。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "已启用的 `clang-tidy` 检查列表。这些值将追加到 `.clang-tidy` 文件中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有)。除非显式禁用,否则将始终启用默认检查 `clang-analyzer-core.*`。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.checks.disabled.markdownDescription": "已禁用的 `clang-tidy` 检查列表。该值将追加到 `.clang-tidy` 文件中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有)。",
|
||||
"c_cpp.configuration.formatting.description": "配置格式设置引擎。",
|
||||
"c_cpp.configuration.formatting.clangFormat.markdownDescription": "`clang-format` 将用于格式代码。",
|
||||
@@ -385,12 +385,16 @@
|
||||
"c_cpp.taskDefinitions.args.quoting.weak.description": "使用 Shell 的弱引用字符来引用参数(例如在 bash 下的 \")。",
|
||||
"c_cpp.taskDefinitions.options.description": "其他命令选项。",
|
||||
"c_cpp.taskDefinitions.options.cwd.description": "已执行程序或脚本的当前工作目录。如果省略,则使用代码的当前工作区根。",
|
||||
"c_cpp.taskDefinitions.problemMatcher.description": "用于检测任务输出中编译程序错误和警告的一个或多个问题匹配器。",
|
||||
"c_cpp.taskDefinitions.detail.description": "任务的其他详细信息。",
|
||||
"c_cpp.debuggers.sourceFileMap.sourceFileMapEntry.description": "相同源树的当前路径和编译时路径。EditorPath 下的文件会映射到 CompileTimePath 路径以进行断点匹配,并在显示 stacktrace 位置时,从 CompileTimePath 映射到 EditorPath。",
|
||||
"c_cpp.debuggers.sourceFileMap.sourceFileMapEntry.editorPath.description": "编辑器将使用的源树的路径。",
|
||||
"c_cpp.debuggers.sourceFileMap.sourceFileMapEntry.useForBreakpoints.description": "如果此条目仅用于堆栈帧位置映射,则为 False。如果在指定断点位置时也需要使用此条目,则为 True。",
|
||||
"c_cpp.debuggers.symbolOptions.description": "用于控制如何找到和加载符号(.pdb 文件)的选项。",
|
||||
"c_cpp.debuggers.unknownBreakpointHandling.description": "控制在命中时如何处理(通常通过原始 GDB 命令)外部设置的断点。\n允许的值为 \"throw\" (好像应用程序抛出了异常)和 \"stop\" (只会暂停调试会话)。默认值为 \"throw\"。",
|
||||
"c_cpp.debuggers.debuginfod.description": "控制 GDB 的 debuginfod 行为,以从 debuginfod 服务器下载调试符号。",
|
||||
"c_cpp.debuggers.debuginfod.enabled.description": "如果为 false (默认值),GDB 将不会连接 debuginfod 服务器。设置为 true 以启用 debuginfod 支持。",
|
||||
"c_cpp.debuggers.debuginfod.timeout.description": "debuginfod 服务器请求的超时(以秒为单位)。默认值为 30。设置为 0 可使用 GDB/libdebuginfod 默认值(无替代)。",
|
||||
"c_cpp.debuggers.VSSymbolOptions.description": "提供用于找到符号并将其加载到调试适配器的配置。",
|
||||
"c_cpp.debuggers.VSSymbolOptions.searchPaths.description": "在其中搜索 .pdb 文件的符号服务器 URL (例如 http://MyExampleSymbolServer)或目录(例如 /build/symbols)的数组。除了默认位置,还将搜索这些目录 - 在模块以及 pdb 最初放置到的路径的旁边。",
|
||||
"c_cpp.debuggers.VSSymbolOptions.searchMicrosoftSymbolServer.description": "如果为 \"true\",则 Microsoft 符号服务器(https://msdl.microsoft.com/download/symbols)会添加到符号搜索路径。如果未指定,此选项会默认为 \"false\"。",
|
||||
@@ -403,6 +407,7 @@
|
||||
"c_cpp.debuggers.VSSymbolOptionsModuleFilter.excludedModules.description": "调试程序不得为其加载符号的模块数组。支持通配符(例如: MyCompany.*.dll)。\n\n会忽略此属性,除非“模式”设置为 \"loadAllButExcluded\"。",
|
||||
"c_cpp.debuggers.VSSymbolOptionsModuleFilter.includedModules.description": "调试程序应为其加载符号的模块数组。支持通配符(例如: MyCompany.*.dll)。\n\n会忽略此属性,除非“模式”设置为 \"loadOnlyIncluded\"。",
|
||||
"c_cpp.debuggers.VSSymbolOptionsModuleFilter.includeSymbolsNextToModules.description": "如果为 true,则对于未在 \"includedModules\" 数组中的任何模块,调试程序将在模块本身和启动可执行文件旁边进行检查,但它将不检查符号搜索列表上的路径。此选项默认为 \"true\"\n\n会忽略此属性,除非“模式”设置为 \"loadOnlyIncluded\"。",
|
||||
"c_cpp.debuggers.ignoreRunWithoutDebuggingWarnings.description": "如果为 true,那么在运行但不调试的情况下,当未能在终端中启动程序时不会记录任何警告。",
|
||||
"c_cpp.semanticTokenTypes.referenceType.description": "C++/CLI 引用类型的样式。",
|
||||
"c_cpp.semanticTokenTypes.cliProperty.description": "C++/CLI 属性的样式。",
|
||||
"c_cpp.semanticTokenTypes.genericType.description": "C++/CLI 泛型类型的样式。",
|
||||
@@ -455,4 +460,4 @@
|
||||
"c_cpp.configuration.refactoring.includeHeader.never.description": "从不包含头文件。",
|
||||
"c_cpp.languageModelTools.configuration.displayName": "C/C++ 配置",
|
||||
"c_cpp.languageModelTools.configuration.userDescription": "活动 C 或 C++ 文件的配置,例如语言标准版本和目标平台。"
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user