Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e19dd9f8d | ||
|
|
c101b677c4 | ||
|
|
2f0efe9055 | ||
|
|
9f4077452f | ||
|
|
d7d5aaf84d | ||
|
|
0bd5350af6 | ||
|
|
17a1b3199a | ||
|
|
d0e089cd71 | ||
|
|
293e77a863 | ||
|
|
c77712b1f4 | ||
|
|
1ed7c869aa | ||
|
|
854fecf0ea | ||
|
|
968332d3c1 | ||
|
|
9f04a5e905 | ||
|
|
6479acdb78 | ||
|
|
eb6d6abf86 | ||
|
|
72f7192e9b | ||
|
|
b1ed550820 | ||
|
|
322b16ef24 | ||
|
|
0d6853ce6c | ||
|
|
667f09c360 | ||
|
|
49aa6d7543 | ||
|
|
d9af43b95c | ||
|
|
33d169f0fa | ||
|
|
eabe5007db | ||
|
|
51615a38c6 | ||
|
|
c6c2208c0e | ||
|
|
1760cdd4c4 | ||
|
|
c4aac33c13 | ||
|
|
a32255425d | ||
|
|
43a786ea6c | ||
|
|
84abc3ad32 | ||
|
|
bcb0bc476b | ||
|
|
59c08fba3e | ||
|
|
7ccb51eead | ||
|
|
1f3963e9ef | ||
|
|
b65fc9f1cb | ||
|
|
6ab5092971 | ||
|
|
e340d858e7 | ||
|
|
7c4bc0772b | ||
|
|
2eb2c422d1 | ||
|
|
f94a744108 | ||
|
|
809e064075 | ||
|
|
5974720601 | ||
|
|
83ba41606c | ||
|
|
33bdfeb2e1 | ||
|
|
19e68d1f8d | ||
|
|
79fe240863 | ||
|
|
a637321374 | ||
|
|
d8636d9057 | ||
|
|
a9ec333842 | ||
|
|
507ddfc2cc | ||
|
|
712d3e552b | ||
|
|
79c6f7fb0a | ||
|
|
3bdc8c52de | ||
|
|
c8c5b67f18 | ||
|
|
f9199c761a | ||
|
|
eedc0a26cc | ||
|
|
ae056fd205 | ||
|
|
598411c6b8 | ||
|
|
d14eb4ec1d | ||
|
|
68f7e902a5 | ||
|
|
9cf7cda837 | ||
|
|
248788d4f6 | ||
|
|
4355f92dd8 | ||
|
|
86332db0ed | ||
|
|
ee2fb39cb8 | ||
|
|
7d58a314d9 | ||
|
|
2acdea1cc9 | ||
|
|
d24f781721 | ||
|
|
399d558522 | ||
|
|
0fd436f3ef | ||
|
|
b6e18b00a9 | ||
|
|
cb3964f78e | ||
|
|
50b4cd3bd5 | ||
|
|
161f02dc49 | ||
|
|
c48729b0e4 | ||
|
|
e7dff799fd | ||
|
|
ec41c3e481 | ||
|
|
71cf89ce70 | ||
|
|
f7863066f3 | ||
|
|
0c2862c379 | ||
|
|
6026c84c6f | ||
|
|
e3ee2ee76a | ||
|
|
ff1cd88466 | ||
|
|
98696368f4 | ||
|
|
99d98afcec | ||
|
|
784f1450c0 | ||
|
|
7d26dd1c4f | ||
|
|
381d69646b | ||
|
|
bfa36bc662 | ||
|
|
5cbe83ec44 | ||
|
|
d41ccfd497 | ||
|
|
c8b7f13c1a | ||
|
|
8d0d3601a7 | ||
|
|
e9613ae7ad | ||
|
|
3570705b5c | ||
|
|
096b1463a6 | ||
|
|
812318163d | ||
|
|
225b776d99 | ||
|
|
12d95f4708 | ||
|
|
317df57496 | ||
|
|
f63c3652f8 | ||
|
|
5d62607760 | ||
|
|
26d0932972 | ||
|
|
825033f768 | ||
|
|
d8426caacc | ||
|
|
8942530744 | ||
|
|
e663939e56 | ||
|
|
1fb5b63ab7 | ||
|
|
fd482d2169 | ||
|
|
2fafd831e5 | ||
|
|
1ceae9d4ed | ||
|
|
d4d5d4551f | ||
|
|
0ef77b5616 | ||
|
|
efdc8e90f6 | ||
|
|
9f020e9258 | ||
|
|
c058568767 | ||
|
|
8809e69e91 | ||
|
|
7af5c40dd0 | ||
|
|
1d2bd10691 | ||
|
|
dac96fe852 | ||
|
|
a1487e5e79 | ||
|
|
6f19496172 | ||
|
|
76ccb791ff | ||
|
|
a5a5735089 | ||
|
|
5077edf585 | ||
|
|
f38926f8b1 | ||
|
|
30de9bcc27 | ||
|
|
100e2e0828 | ||
|
|
e3b41771c6 | ||
|
|
3f7f3090f6 | ||
|
|
4149493f2c | ||
|
|
43aad3f65c | ||
|
|
bedcacb0a1 | ||
|
|
a5f8f84b43 | ||
|
|
e53b190380 | ||
|
|
1846fd4001 | ||
|
|
62e09945e3 | ||
|
|
c9b0db02fd | ||
|
|
51da619eec | ||
|
|
3eb50568e9 | ||
|
|
866b145645 | ||
|
|
9762fe5397 | ||
|
|
377896c30a | ||
|
|
98f13a6f11 | ||
|
|
0d85aea687 | ||
|
|
25d2b76514 | ||
|
|
42dfef3f6b | ||
|
|
1ce1e9cd71 | ||
|
|
65163966d5 | ||
|
|
edf8e0a155 | ||
|
|
4083075476 | ||
|
|
b745ebc218 | ||
|
|
b69d17a0f5 | ||
|
|
be8b6fb693 |
Generated
+179
-18
@@ -2971,13 +2971,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/axios/node_modules/form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=",
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-4.0.4.tgz",
|
||||
"integrity": "sha1-eEzczgZpqdaOlNEaxO6pgIjt0sQ=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"es-set-tostringtag": "^2.1.0",
|
||||
"hasown": "^2.0.2",
|
||||
"mime-types": "^2.1.12"
|
||||
},
|
||||
"engines": {
|
||||
@@ -3040,9 +3042,9 @@
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
|
||||
"version": "1.1.12",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||
"integrity": "sha1-q5tFRGblqMw6GHvqrVgEEqnFuEM=",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -3108,6 +3110,19 @@
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"node_modules/call-bind-apply-helpers": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
||||
"integrity": "sha1-S1QowiK+mF15w9gmV0edvgtZstY=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/callsites": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/callsites/-/callsites-3.1.0.tgz",
|
||||
@@ -3452,6 +3467,20 @@
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/dunder-proto": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
||||
"integrity": "sha1-165mfh3INIL4tw/Q9u78UNow9Yo=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"gopd": "^1.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/emitter-listener": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/emitter-listener/-/emitter-listener-1.1.2.tgz",
|
||||
@@ -3468,6 +3497,51 @@
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/es-define-property": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-define-property/-/es-define-property-1.0.1.tgz",
|
||||
"integrity": "sha1-mD6y+aZyTpMD9hrd8BHHLgngsPo=",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/es-errors": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-errors/-/es-errors-1.3.0.tgz",
|
||||
"integrity": "sha1-BfdaJdq5jk+x3NXhRywFRtUFfI8=",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/es-object-atoms": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
|
||||
"integrity": "sha1-HE8sSDcydZfOadLKGQp/3RcjOME=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/es-set-tostringtag": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
|
||||
"integrity": "sha1-8x274MGDsAptJutjJcgQwP0YvU0=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.6",
|
||||
"has-tostringtag": "^1.0.2",
|
||||
"hasown": "^2.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/escalade": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/escalade/-/escalade-3.2.0.tgz",
|
||||
@@ -3939,14 +4013,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/form-data": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-2.5.1.tgz",
|
||||
"integrity": "sha1-8svsV7XlniNxbhKP5E1OXdI4lfQ=",
|
||||
"version": "2.5.5",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-2.5.5.tgz",
|
||||
"integrity": "sha1-pfY2Stfk5n6VtKB+LYxvcRx09iQ=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
"combined-stream": "^1.0.8",
|
||||
"es-set-tostringtag": "^2.1.0",
|
||||
"hasown": "^2.0.2",
|
||||
"mime-types": "^2.1.35",
|
||||
"safe-buffer": "^5.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.12"
|
||||
@@ -4002,6 +4079,43 @@
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/get-intrinsic": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
||||
"integrity": "sha1-dD8OO2lkqTpUke0b/6rgVNf5jQE=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.2",
|
||||
"es-define-property": "^1.0.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"es-object-atoms": "^1.1.1",
|
||||
"function-bind": "^1.1.2",
|
||||
"get-proto": "^1.0.1",
|
||||
"gopd": "^1.2.0",
|
||||
"has-symbols": "^1.1.0",
|
||||
"hasown": "^2.0.2",
|
||||
"math-intrinsics": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/get-proto": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/get-proto/-/get-proto-1.0.1.tgz",
|
||||
"integrity": "sha1-FQs/J0OGnvPoUewMSdFbHRTQDuE=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"dunder-proto": "^1.0.1",
|
||||
"es-object-atoms": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/glob": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/glob/-/glob-8.1.0.tgz",
|
||||
@@ -4036,9 +4150,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/glob/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha1-HtxFng8MVISG7Pn8mfIiE2S5oK4=",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha1-VPxTI3phPYVMe9N0Y6rRffhyFOc=",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -4095,6 +4209,18 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/gopd": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/gopd/-/gopd-1.2.0.tgz",
|
||||
"integrity": "sha1-ifVrghe9vIgCvSmd9tfxCB1+UaE=",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/graphemer": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/graphemer/-/graphemer-1.4.0.tgz",
|
||||
@@ -4112,6 +4238,33 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/has-symbols": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/has-symbols/-/has-symbols-1.1.0.tgz",
|
||||
"integrity": "sha1-/JxqeDoISVHQuXH+EBjegTcHozg=",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/has-tostringtag": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
|
||||
"integrity": "sha1-LNxC1AvvLltO6rfAGnPFTOerWrw=",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"has-symbols": "^1.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/hasown": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/hasown/-/hasown-2.0.2.tgz",
|
||||
@@ -4533,6 +4686,15 @@
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/math-intrinsics": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
||||
"integrity": "sha1-oN10voHiqlwvJ+Zc4oNgXuTit/k=",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/memory-pager": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/memory-pager/-/memory-pager-1.5.0.tgz",
|
||||
@@ -4636,9 +4798,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha1-HtxFng8MVISG7Pn8mfIiE2S5oK4=",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha1-VPxTI3phPYVMe9N0Y6rRffhyFOc=",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -5228,7 +5390,6 @@
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||
"integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
|
||||
+6
-3
@@ -4,6 +4,7 @@ trigger:
|
||||
include:
|
||||
- main
|
||||
- release
|
||||
- insiders
|
||||
|
||||
schedules:
|
||||
- cron: 30 5 * * 0
|
||||
@@ -30,13 +31,15 @@ extends:
|
||||
parameters:
|
||||
pool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
binskim:
|
||||
preReleaseVersion: '4.3.1'
|
||||
tsa:
|
||||
enabled: true
|
||||
config:
|
||||
@@ -109,4 +112,4 @@ extends:
|
||||
displayName: Uninstall vsce
|
||||
inputs:
|
||||
command: uninstall
|
||||
arguments: --global @vscode/vsce
|
||||
arguments: --global @vscode/vsce
|
||||
|
||||
@@ -30,12 +30,12 @@ extends:
|
||||
parameters:
|
||||
pool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
stages:
|
||||
- stage: stage
|
||||
|
||||
@@ -24,12 +24,12 @@ extends:
|
||||
parameters:
|
||||
pool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
|
||||
stages:
|
||||
|
||||
@@ -24,12 +24,12 @@ extends:
|
||||
parameters:
|
||||
pool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
|
||||
stages:
|
||||
|
||||
@@ -18,12 +18,12 @@ extends:
|
||||
parameters:
|
||||
pool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
|
||||
stages:
|
||||
|
||||
@@ -18,12 +18,12 @@ extends:
|
||||
parameters:
|
||||
pool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: AzurePipelines-EO
|
||||
image: AzurePipelinesWindows2022compliantGPT
|
||||
image: 1ESPT-Windows2022
|
||||
os: windows
|
||||
|
||||
stages:
|
||||
|
||||
@@ -1 +1 @@
|
||||
The documentation for c_cpp_properties.json has moved to https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference.
|
||||
The documentation for c_cpp_properties.json has moved to https://code.visualstudio.com/docs/cpp/customize-cpp-settings.
|
||||
+71
-6
@@ -1,5 +1,70 @@
|
||||
# C/C++ for Visual Studio Code Changelog
|
||||
|
||||
## Version 1.27.5: September 10, 2025
|
||||
### Bug Fix
|
||||
* Fix extension activation getting stuck by GitHub Copilot activation. [#13914](https://github.com/microsoft/vscode-cpptools/issues/13914)
|
||||
* Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer) [PR #13918](https://github.com/microsoft/vscode-cpptools/pull/13918)
|
||||
|
||||
## Version 1.27.4: September 9, 2025
|
||||
### Bug Fixes
|
||||
* Fix crash recovery. [#13838](https://github.com/microsoft/vscode-cpptools/issues/13838)
|
||||
* Fix the language server getting stuck by a notification message box after a configuration provider times out. [#13862](https://github.com/microsoft/vscode-cpptools/issues/13862)
|
||||
* Fix a case of unintialized memory in cpptools-srv.
|
||||
* Fix excessive cpptools messages when scrolling.
|
||||
|
||||
## Version 1.27.3: September 3, 2025
|
||||
### Enhancements
|
||||
* Show a warning when too many files are processed in a workspace. [#10828](https://github.com/microsoft/vscode-cpptools/issues/10828)
|
||||
* Update GitHub Copilot APIs. [PR #13877](https://github.com/microsoft/vscode-cpptools/pull/13877)
|
||||
* Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix input delays when editing `c_cpp_properties.json`. [#13591](https://github.com/microsoft/vscode-cpptools/issues/13591)
|
||||
* Fix non-recursive browse paths from configuration providers. [#13886](https://github.com/microsoft/vscode-cpptools/issues/13886)
|
||||
* Fix an IntelliSense process crash involving `requires` expressions and templates.
|
||||
* Fix an IntelliSense process crash with `class_has_mutable_member`.
|
||||
|
||||
## Version 1.27.2: August 21, 2025
|
||||
### Bug Fix
|
||||
* Fix a crash regression with `__BASE_FILE__`. [#13866](https://github.com/microsoft/vscode-cpptools/issues/13866)
|
||||
|
||||
## Version 1.27.1: August 20, 2025
|
||||
### Bug Fixes
|
||||
* Fix the `__FILE_NAME__` macro being undefined with IntelliSense when using GCC/Clang. [#11164](https://github.com/microsoft/vscode-cpptools/issues/11164)
|
||||
* Fix Doxygen generation overwriting a function signature. [#13839](https://github.com/microsoft/vscode-cpptools/issues/13839)
|
||||
* Fix a crash on Windows 7, 8, and 10 (Server 2008, 2012, and 2016). [#13851](https://github.com/microsoft/vscode-cpptools/issues/13851)
|
||||
* Fix "CMake Tools" translations. [PR #13854](https://github.com/microsoft/vscode-cpptools/pull/13854)
|
||||
|
||||
## Version 1.27.0: August 7, 2025
|
||||
### Bug Fixes
|
||||
* Fix an IntelliSense crash in `add_cached_tokens_to_string`. [#11900](https://github.com/microsoft/vscode-cpptools/issues/11900)
|
||||
* Fix an IntelliSense crash in `find_subobject_for_interpreter_address`. [#12464](https://github.com/microsoft/vscode-cpptools/issues/12464)
|
||||
* Fix changes to the active field being lost in the configuration UI when navigating away. [#13636](https://github.com/microsoft/vscode-cpptools/issues/13636)
|
||||
* Fix compiler query failing on Windows if optional job-related API calls fail. [#13679](https://github.com/microsoft/vscode-cpptools/issues/13679)
|
||||
* Fix bugs with Doxygen comments. [#13725](https://github.com/microsoft/vscode-cpptools/issues/13725), [#13726](https://github.com/microsoft/vscode-cpptools/issues/13726), [#13745](https://github.com/microsoft/vscode-cpptools/issues/13745)
|
||||
* Fix bugs with 'Create Definition'. [#13741](https://github.com/microsoft/vscode-cpptools/issues/13741), [#13773](https://github.com/microsoft/vscode-cpptools/issues/13773)
|
||||
* Fix IntelliSense crashes when there are duplicate constexpr template functions in a TU. [#13775](https://github.com/microsoft/vscode-cpptools/issues/13775)
|
||||
* Fix the description of `debugServerPath`. [PR #13778](https://github.com/microsoft/vscode-cpptools/pull/13778)
|
||||
* Thank you for the contribution. [@redstrate (Joshua Goins)](https://github.com/redstrate)
|
||||
* Remove `-fmodule-mapper`, `-fdeps-format`, and some additional unnecessary args from compiler queries. [#13782](https://github.com/microsoft/vscode-cpptools/issues/13782)
|
||||
* Fix `-imacro` not configuring IntelliSense correctly. [#13785](https://github.com/microsoft/vscode-cpptools/issues/13785)
|
||||
* Fix `pipeTransport.quoteArgs` not being handled correctly. [#13791](https://github.com/microsoft/vscode-cpptools/issues/13791)
|
||||
* Thank you for the contribution. [@mrjist (Matt)](https://github.com/mrjist) [PR #13794](https://github.com/microsoft/vscode-cpptools/pull/13794)
|
||||
* Fix `.txx` and `.tpp` not being handled as C++ header files. [#13808](https://github.com/microsoft/vscode-cpptools/issues/13808)
|
||||
* Fix an error when using GitHub Copilot with VS Code older than 1.90.0. [#13818](https://github.com/microsoft/vscode-cpptools/issues/13818)
|
||||
* Fix activation failing if the `c_cpp_properties.json` exists but fails to be opened. [#13829](https://github.com/microsoft/vscode-cpptools/issues/13829)
|
||||
* Fix an IntelliSense bug that could cause incorrect string lengths to be reported for string literals in files that use certain file encodings.
|
||||
|
||||
## Version 1.26.5: September 10, 2025
|
||||
### Bug Fix
|
||||
* Fix extension activation getting stuck by GitHub Copilot activation. [#13914](https://github.com/microsoft/vscode-cpptools/issues/13914)
|
||||
* Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer) [PR #13918](https://github.com/microsoft/vscode-cpptools/pull/13918)
|
||||
|
||||
## Version 1.26.4: September 9, 2025
|
||||
### Enhancement
|
||||
* Update GitHub Copilot APIs. [PR #13877](https://github.com/microsoft/vscode-cpptools/pull/13877)
|
||||
* Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer)
|
||||
|
||||
## Version 1.26.3: June 24, 2025
|
||||
### New Feature
|
||||
* Improve the context provided for C++ Copilot suggestions.
|
||||
@@ -18,7 +83,7 @@
|
||||
* Fix `-iquote` not working after `-isystem`. [#13638](https://github.com/microsoft/vscode-cpptools/issues/13638)
|
||||
* Minor debugger fixes. [PR #13654](https://github.com/microsoft/vscode-cpptools/pull/13654), [PR #13671](https://github.com/microsoft/vscode-cpptools/pull/13671)
|
||||
* Fix `browse.path` merging with the configuration provider's `browse.path` with `"mergeConfigurations": false`. [#13660](https://github.com/microsoft/vscode-cpptools/issues/13660)
|
||||
* Fix doxygen comments with `[in]`, `[in,out]`, etc. attributes. [#13682](https://github.com/microsoft/vscode-cpptools/issues/13682), [#13698](https://github.com/microsoft/vscode-cpptools/issues/13698)
|
||||
* Fix Doxygen comments with `[in]`, `[in,out]`, etc. attributes. [#13682](https://github.com/microsoft/vscode-cpptools/issues/13682), [#13698](https://github.com/microsoft/vscode-cpptools/issues/13698)
|
||||
* Fix old `defines` accumulating after `defines` are changed with `"mergeConfigurations": true`. [#13687](https://github.com/microsoft/vscode-cpptools/issues/13687)
|
||||
* Fix changes to mergeable properties in `c_cpp_properties.json` not being used until a new configuration is requested with `"mergeConfigurations": true`. [#13688](https://github.com/microsoft/vscode-cpptools/issues/13688)
|
||||
* Update Apple clang 16.4 to LLVM clang version mappings and fix incorrect mappings for Apple clang 14.
|
||||
@@ -35,7 +100,7 @@
|
||||
### Bug Fixes
|
||||
* Fix no error appearing in the configuration UI when an invalid `compilerPath` is used. [#12661](https://github.com/microsoft/vscode-cpptools/issues/12661)
|
||||
* Fix the 'Debug C/C++ File' button sometimes disappearing. [#13400](https://github.com/microsoft/vscode-cpptools/issues/13400)
|
||||
* Fix a crash in `read_double`. [#13435](https://github.com/Microsoft/vscode-cpptools/issues/13435)
|
||||
* Fix a crash in `read_double`. [#13435](https://github.com/microsoft/vscode-cpptools/issues/13435)
|
||||
* Fix the handling of default file associations for certain file extensions. [PR #13455](https://github.com/microsoft/vscode-cpptools/pull/13455)
|
||||
* Fix shell parsing of the arguments of a full command line in `compilerPath`. [PR #13468](https://github.com/microsoft/vscode-cpptools/pull/13468)
|
||||
* Fix C and CUDA files being interpreted as C++ in `compile_commands.json`. [#13471](https://github.com/microsoft/vscode-cpptools/issues/13471)
|
||||
@@ -81,7 +146,7 @@
|
||||
* Fix a potential deadlock after using 'Reset IntelliSense Database'. [#13337](https://github.com/microsoft/vscode-cpptools/issues/13337)
|
||||
* Fix some localization bugs. [PR #13373](https://github.com/microsoft/vscode-cpptools/pull/13373)
|
||||
* Fix IntelliSense showing the wrong size of objects. [#13375](https://github.com/microsoft/vscode-cpptools/issues/13375)
|
||||
* Fix the `get_mangled_function_name` IntelliSense process crash. [#13358](https://github.com/Microsoft/vscode-cpptools/issues/13358)
|
||||
* Fix the `get_mangled_function_name` IntelliSense process crash. [#13358](https://github.com/microsoft/vscode-cpptools/issues/13358)
|
||||
* Fix an issue with duplicate forced includes being removed. Multiple forced includes of the same file should now properly be included multiple times.
|
||||
* Fix an issue in which the base configuration browse paths may not get populated when using a custom configuration provider.
|
||||
* Fix an issue with forced includes not being resolved against the same include path search order as a compiler would.
|
||||
@@ -140,7 +205,7 @@
|
||||
* Fix a compile commands fallback logic issue. [#12947](https://github.com/microsoft/vscode-cpptools/issues/12947)
|
||||
* Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948)
|
||||
* Fix an issue in which a `didOpen` event was processed before the language client was fully started. [#12954](https://github.com/microsoft/vscode-cpptools/issues/12954)
|
||||
* Fix the IntelliSense mode being `macos` instead of `windows` when `_WIN32` is defined on macOS. [#13016](https://github.com/Microsoft/vscode-cpptools/issues/13016)
|
||||
* Fix the IntelliSense mode being `macos` instead of `windows` when `_WIN32` is defined on macOS. [#13016](https://github.com/microsoft/vscode-cpptools/issues/13016)
|
||||
* Fix IntelliSense bugs when using non-UTF8 file encodings. [#13028](https://github.com/microsoft/vscode-cpptools/issues/13028), [#13044](https://github.com/microsoft/vscode-cpptools/issues/13044)
|
||||
* Fix an incorrect translation for "binary operator". [#13048](https://github.com/microsoft/vscode-cpptools/issues/13048)
|
||||
* Fix the "references may be missing" logging pane being shown when the `C_Cpp.loggingLevel` is `Error` or `None`. [#13066](https://github.com/microsoft/vscode-cpptools/issues/13066)
|
||||
@@ -268,13 +333,13 @@
|
||||
* Stop logging file watch events for excluded files. [#11455](https://github.com/microsoft/vscode-cpptools/issues/11455)
|
||||
* Fix a crash if the Ryzen 3000 doesn't have updated drivers. [#12201](https://github.com/microsoft/vscode-cpptools/issues/12201)
|
||||
* Fix handling of `-isystem` and `-iquote` for IntelliSense configuration. [#12207](https://github.com/microsoft/vscode-cpptools/issues/12207)
|
||||
* Fix doxygen comment generation when `/**` comments are used. [#12249](https://github.com/microsoft/vscode-cpptools/issues/12249)
|
||||
* Fix Doxygen comment generation when `/**` comments are used. [#12249](https://github.com/microsoft/vscode-cpptools/issues/12249)
|
||||
* Fix a code analysis crash on Linux if the message is too long. [#12285](https://github.com/microsoft/vscode-cpptools/issues/12285)
|
||||
* Fix relative paths in `compile_commands.json` to be relative to the `compile_commands.json`'s directory. [#12290](https://github.com/microsoft/vscode-cpptools/issues/12290)
|
||||
* Fix a tag parser performance regression. [#12292](https://github.com/microsoft/vscode-cpptools/issues/12292)
|
||||
* Fix a regression with cl.exe system include path detection. [#12293](https://github.com/microsoft/vscode-cpptools/issues/12293)
|
||||
* Fix code analysis, find all references, and rename from getting the wrong configuration for non-open files on the first run when using a configuration provider. [#12313](https://github.com/microsoft/vscode-cpptools/issues/12313)
|
||||
* Fix handling of doxygen comment blocks with `*//*` in them. [#12316](https://github.com/microsoft/vscode-cpptools/issues/12316)
|
||||
* Fix handling of Doxygen comment blocks with `*//*` in them. [#12316](https://github.com/microsoft/vscode-cpptools/issues/12316)
|
||||
* Fix potential crashes during IntelliSense process shutdown. [#12354](https://github.com/microsoft/vscode-cpptools/issues/12354)
|
||||
* Fix the language status not showing it's busy while the tag parser is initializing. [#12403](https://github.com/microsoft/vscode-cpptools/issues/12403)
|
||||
* Fix the vcpkg code action not appearing for missing headers available via vcpkg. [#12413](https://github.com/microsoft/vscode-cpptools/issues/12413)
|
||||
|
||||
+373
-25
@@ -298,6 +298,317 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
llvm/llvm-project 0d44201451f03ba907cdb268ddddfc3fa38a0ebd - Apache-2.0 WITH LLVM-exception
|
||||
|
||||
|
||||
(c) ABS
|
||||
(c) (tm)
|
||||
(c) Value A
|
||||
(c) auto AS
|
||||
(c) Value Sd
|
||||
(c) auto AST
|
||||
(c) CXType PT
|
||||
(c) Type I1Ty
|
||||
(c) Value RHS
|
||||
(c) X1 ... X1
|
||||
Copy (c) Copy
|
||||
(c) Type I32Ty
|
||||
(c) Value Elt0
|
||||
(c) Type Int8Ty
|
||||
(c) Type V8x8Ty
|
||||
(c) unsigned AS
|
||||
Copy c (c) Copy
|
||||
(c) Constant One
|
||||
(c) Type FloatTy
|
||||
(c) Type Int16Ty
|
||||
(c) Type Int32Ty
|
||||
(c) Type Int64Ty
|
||||
(c) Value AllocA
|
||||
(c) Value Alloca
|
||||
Alloc1 a1 (c) R1
|
||||
Alloc1 a2 (c) R1
|
||||
copyright u'2013
|
||||
(c) FileID MainID
|
||||
(c) Lower C Upper
|
||||
(c) Stmt NumExprs
|
||||
(c) Type DoubleTy
|
||||
(c) Type I32PtrTy
|
||||
(c) Value AllocaA
|
||||
Coproc, Opc1, CRm
|
||||
(c) Align NewAlign
|
||||
(c) PointerType P2
|
||||
Copyright (c) 2012
|
||||
Exprs new (c) Stmt
|
||||
(c) DeclRefExpr Ref
|
||||
(c) ExprResult NewE
|
||||
(c) Metadata Ops MD
|
||||
(c) SelectInst SelI
|
||||
(c) SmallVector MDs
|
||||
(c) TransferBatch B
|
||||
(c) Type Int32PtrTy
|
||||
(c) Type Int64PtrTy
|
||||
(c) Value InvMaxMin
|
||||
(c) BasicBlock Entry
|
||||
(c) CXXRecordDecl CD
|
||||
(c) FunctionType FTy
|
||||
(c) Offset C- Offset
|
||||
Copyright 2010 INRIA
|
||||
Copyright 2011 INRIA
|
||||
Copyright 2012 INRIA
|
||||
Copyright 2014 INRIA
|
||||
Copyright 2015 INRIA
|
||||
Copyright 2016 INRIA
|
||||
(c) FunctionType FnTy
|
||||
(c) QualType ResultTy
|
||||
(c) SourceRange Range
|
||||
AsmToks new (c) Token
|
||||
SubExprs new (c) Stmt
|
||||
(c) BasicBlock EntryBB
|
||||
(c) FunctionType FFnTy
|
||||
(c) FunctionType IFnTy
|
||||
(c) SourceLocation Loc
|
||||
Condition (c) Branches
|
||||
Context (c) LineToUnit
|
||||
(c) ErrMsg Stream Error
|
||||
(c) SmallVector NewVars
|
||||
(c) SmallVector ToErase
|
||||
Bbb kind copyright' Bbb
|
||||
(c) Constant PosDivisorC
|
||||
CommonPtr new (c) Common
|
||||
Copyright (c) 2012 CHECK
|
||||
(c) CharUnits AlignedSize
|
||||
(c) Constant NullV2I32Ptr
|
||||
(c) Constant PosDividendC
|
||||
Copyright 2010-2011 INRIA
|
||||
Copyright 2014-2015 INRIA
|
||||
COPYRIGHT,v 1.3 2003/06/02
|
||||
Coproc, Opc1, Rt, Rt2, CRm
|
||||
Copyright 2008 Google Inc.
|
||||
Copyright 2015 Google Inc.
|
||||
Copyright 2018 Google Inc.
|
||||
Copyright The LLVM project
|
||||
coprime. APInt A HugePrime
|
||||
(c) IdentifierInfo NumExprs
|
||||
(c) VectorType Int8PtrVecTy
|
||||
Copyright (c) 1997, Phillip
|
||||
Copyright 2005, Google Inc.
|
||||
Copyright 2006, Google Inc.
|
||||
Copyright 2007, Google Inc.
|
||||
Copyright 2008, Google Inc.
|
||||
Copyright 2013, Google Inc.
|
||||
Copyright 2015, Google Inc.
|
||||
InitCache (c) TransferBatch
|
||||
Copyright 2006, Dean Edwards
|
||||
(c) CXXBaseSpecifier NumBases
|
||||
(c) Designator NumDesignators
|
||||
(c) StringLiteral NumClobbers
|
||||
Constraints new (c) StringRef
|
||||
Copyright (c) 2010 Apple Inc.
|
||||
Copyright (c) by P.J. Plauger
|
||||
Copyright 2010 Zencoder, Inc.
|
||||
Copyright 2017 Roman Lebedev.
|
||||
ParamInfo new (c) ParmVarDecl
|
||||
Copyright (c) 2009 Google Inc.
|
||||
Copyright (c) 2016 Aaron Watry
|
||||
Copyright (c) 2017 Google Inc.
|
||||
Copyright (c) 2018 Jim Ingham.
|
||||
IMPL-NEXT switch (c) IMPL-NEXT
|
||||
coprocessor. SDValue ImmCorpoc
|
||||
(c) CHECK-NEXT foo() CHECK-NEXT
|
||||
(copr0) ConstantDataVector CDV1
|
||||
(copr1) ConstantDataVector CDV2
|
||||
Copyright (c) 1994 X Consortium
|
||||
Copyright (c) 2008 Matteo Frigo
|
||||
Copyright (c) 2009 Matteo Frigo
|
||||
Copyright 2008-2010 Apple, Inc.
|
||||
Copyright 2015 Sven Verdoolaege
|
||||
Copyright 2016 Sven Verdoolaege
|
||||
Copyright 2017 Sven Verdoolaege
|
||||
Copyright 2018 Cerebras Systems
|
||||
Copyright 2018 Sven Verdoolaege
|
||||
Copyright 2019 Cerebras Systems
|
||||
Copyright, License, and Patents
|
||||
Other Coprocessor Instructions.
|
||||
(c) StringLiteral NumConstraints
|
||||
Copyright 2011 Sven Verdoolaege.
|
||||
(c) foo() pragma omp target teams
|
||||
Copyright (c) 1992 Henry Spencer.
|
||||
Copyright (c) 2004-2018 Bootstrap
|
||||
Copyright (c) 2006 Kirill Simonov
|
||||
Copyright (c) 2010-2018 Bootstrap
|
||||
Copyright 2001-2004 Unicode, Inc.
|
||||
Value0 Data.getULEB128 (c) Value1
|
||||
copyright u'2003- d, LLVM Project
|
||||
copyright u'2011- d, LLVM Project
|
||||
Copyright (c) 1999-2007 Apple Inc.
|
||||
Copyright (c) 2009-2019 Polly Team
|
||||
Copyright 2012 Universiteit Leiden
|
||||
Copyright 2016-2017 Tobias Grosser
|
||||
copyright u'2007- d, The LLDB Team
|
||||
copyright u'2013- d, Analyzer Team
|
||||
Constraint new (c) AtomicConstraint
|
||||
Copyright (c) 2015the LLVM Project.
|
||||
copyright u'2007- d, The Clang Team
|
||||
copyright u'2010- d, The Polly Team
|
||||
copyright u'2017- d, The Flang Team
|
||||
Copyright (C ) Microsoft Corporation
|
||||
Copyright (c) 2001 Alexander Peslyak
|
||||
Copyright (c) 2014, 2015 Google Inc.
|
||||
Copyright (c) 2019 The MLIR Authors.
|
||||
Copyright (c) Microsoft Corporation.
|
||||
Copyright 2015-2016 Sven Verdoolaege
|
||||
Copyright 2016, 2017 Tobias Grosser.
|
||||
Copyright 2016-2017 Sven Verdoolaege
|
||||
Copyright 2018-2019 Cerebras Systems
|
||||
(c) PointerType InitPtrType InitValue
|
||||
Copyright (c) 1999-2003 Steve Purcell
|
||||
Copyright (c) 2012-2016, Yann Collet.
|
||||
Copyright 2011,2015 Sven Verdoolaege.
|
||||
DiagStorage new (c) DiagnosticStorage
|
||||
Copyright (c) 2008 Christian Haggstrom
|
||||
Copyright (c) 2012 Avionic Design GmbH
|
||||
Copyright 2007-2010 by the Sphinx team
|
||||
(c) CHECK-NEXT T break CHECK-NEXT Preds
|
||||
Copyright (c) 2002-2004 Tim J. Robbins.
|
||||
Copyright (c) 2005 Free Standards Group
|
||||
Copyright (c) 2019, NVIDIA CORPORATION.
|
||||
Copyright 2005-2007 Universiteit Leiden
|
||||
Copyright 2006-2007 Universiteit Leiden
|
||||
Copyright 2012 Ecole Normale Superieure
|
||||
Copyright 2013 Ecole Normale Superieure
|
||||
Copyright 2014 Ecole Normale Superieure
|
||||
Copyright 2016 Ismael Jimenez Martinez.
|
||||
NameCount AS.getU32 (c) AbbrevTableSize
|
||||
in LLVM, Diploma Thesis, (c) April 2011
|
||||
(c) StringRef NumClobbers // FIXME Avoid
|
||||
Copyright (c) 1997-2019 Intel Corporation
|
||||
Copyright (c) 2010-2015 Benjamin Peterson
|
||||
Copyright 1992, 1993, 1994 Henry Spencer.
|
||||
coproc_option_imm Operand let PrintMethod
|
||||
(c) CXXCtorInitializer NumIvarInitializers
|
||||
(c), intrinsic cos !WARNING Attribute BIND
|
||||
Copyright (c) 2004 eXtensible Systems, Inc.
|
||||
Copyright (c) 2009-2014 by the contributors
|
||||
Copyright (c) 2009-2015 by the contributors
|
||||
Copyright (c) 2009-2016 by the contributors
|
||||
Copyright (c) 2009-2019 by the contributors
|
||||
Copyright (c) 2011-2014 by the contributors
|
||||
Copyright (c) 2011-2019 by the contributors
|
||||
Copyright (c) 2017-2019 by the contributors
|
||||
(c) CHECK-NEXT Preds (1) B4 CHECK-NEXT Succs
|
||||
(c) CHECK-NEXT Preds (1) B5 CHECK-NEXT Succs
|
||||
(c) CHECK-NEXT Preds (1) B7 CHECK-NEXT Succs
|
||||
CoprocNumAsmOperand AsmOperandClass let Name
|
||||
CoprocRegAsmOperand AsmOperandClass let Name
|
||||
Copyright (c) 1993 by Sun Microsystems, Inc.
|
||||
Copyright 2012,2014 Ecole Normale Superieure
|
||||
Copyright 2012-2013 Ecole Normale Superieure
|
||||
Copyright 2012-2014 Ecole Normale Superieure
|
||||
Copyright 2013-2014 Ecole Normale Superieure
|
||||
Copyright (c) 1992, 1993, 1994 Henry Spencer.
|
||||
Copyright (c) 2002-2007 Michael J. Fromberger
|
||||
Copyright 2000 Free Software Foundation, Inc.
|
||||
CompUnitCount AS.getU32 (c) LocalTypeUnitCount
|
||||
Copyright (c) 2008 Ryan McCabe <[email protected]>
|
||||
ForeignTypeUnitCount AS.getU32 (c) BucketCount
|
||||
CoprocOptionAsmOperand AsmOperandClass let Name
|
||||
Copyright (c) 2014 Advanced Micro Devices, Inc.
|
||||
Copyright (c) 2015 Advanced Micro Devices, Inc.
|
||||
(c) Designator NumDesigs NumDesignators NumDesigs
|
||||
Copyright (c) 1992, 1993 UNIX International, Inc.
|
||||
Copyright (c) 2004 Free Software Foundation, Inc.
|
||||
Copyright (c) 2008 Free Software Foundation, Inc.
|
||||
Copyright (c) 2011 Free Software Foundation, Inc.
|
||||
Copyright (c) 2012 Free Software Foundation, Inc.
|
||||
Copyright (c) 2012, Noah Spurrier <[email protected]>
|
||||
Copyright (c) 2013-2014, Pexpect development team
|
||||
Copyright (c) 2013-2016, Pexpect development team
|
||||
Copyright (c) 2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 2015 Paul Norman <[email protected]>
|
||||
Copyright (c) 2016 Aaron Watry <[email protected]>
|
||||
Copyright extcopyright~ he year the LLVM Project.
|
||||
(c) CHECK-NEXT Preds (3) B3 B4 B2 CHECK-NEXT Succs
|
||||
(c) CHECK-NEXT Preds (3) B3 B5 B6 CHECK-NEXT Succs
|
||||
Copyright (c) 2003-2010 Python Software Foundation
|
||||
Copyright (c) 2008 Paolo Bonzini <[email protected]>
|
||||
Copyright (c) 2012 Zack Weinberg <[email protected]>
|
||||
Copyright 2008-2009 Katholieke Universiteit Leuven
|
||||
(c) Desc StrOffsetsContributionDescriptor C- Offset
|
||||
(c) Stmt NumExprs std::copy Exprs, Exprs + NumExprs
|
||||
Copyright (c) 2008 Guido U. Draheim <[email protected]>
|
||||
Copyright (c) 2008 Stepan Kasal <[email protected]>
|
||||
Copyright (c) 2012 Qualcomm Innovation Center, Inc.
|
||||
Copyright (c) 2008 Benjamin Kosnik <[email protected]>
|
||||
Copyright (c) 2014,2015 Advanced Micro Devices, Inc.
|
||||
Copyright (c) 2014 Mike Frysinger <[email protected]>
|
||||
Copyright (c) 2014, 2015 Advanced Micro Devices, Inc.
|
||||
Copyright (c) 2016 Krzesimir Nowak <[email protected]>
|
||||
Copyright (c) 1994-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 1996-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 1996-2018 Free Software Foundation, Inc.
|
||||
Copyright (c) 1997-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 1999-2013 Free Software Foundation, Inc.
|
||||
Copyright (c) 1999-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 2001-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 2002-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 2003-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 2004-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 2006-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 2008 Sven Verdoolaege <[email protected]>
|
||||
Copyright (c) 2009-2014 Free Software Foundation, Inc.
|
||||
Copyright (c) 2010-2015 Free Software Foundation, Inc.
|
||||
Copyright (c) 2010-2017 Free Software Foundation, Inc.
|
||||
Copyright (c) 2011-2013 Free Software Foundation, Inc.
|
||||
Copyright (c) 2015 Moritz Klammler <[email protected]>
|
||||
(c) StructType FrameTy Shape.FrameTy Instruction FramePtr
|
||||
Copyright (c) 2013 Jesse Towner <[email protected]>
|
||||
Copyright (c) 2013 Roy Stogner <[email protected]>
|
||||
(c) Type AtExitFuncArgs VoidStar FunctionType AtExitFuncTy
|
||||
(c) GlobalVariable Handle new GlobalVariable M, DsoHandleTy
|
||||
(c) Type ArgTys Int32Ty, Int32Ty, Int32Ty FunctionType FnTy
|
||||
Copyright (c) 2004 Scott James Remnant <[email protected]>
|
||||
Copyright (c) 2008 Steven G. Johnson <[email protected]>
|
||||
Copyright (c) 2009 Steven G. Johnson <[email protected]>
|
||||
Copyright (c) 2004, 2011-2018 Free Software Foundation, Inc.
|
||||
Copyright (c) 2013 Victor Oliveira <[email protected]>
|
||||
(c) DeclRefExpr DR M.makeDeclRefExpr(PV) ImplicitCastExpr ICE
|
||||
(c) IdentifierInfo NumExprs std::copy Names, Names + NumExprs
|
||||
Copyright (c) 1998 Todd C. Miller <[email protected]>
|
||||
(c) BranchInst BI BranchInst::Create(Exit, Exit, False, Entry)
|
||||
Copyright (c) 1994 The Regents of the University of California.
|
||||
Copyright (c) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||
Copyright (c) 1996-2001, 2003-2018 Free Software Foundation, Inc.
|
||||
Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign.
|
||||
Copyright (c) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
|
||||
Copyright (c) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
|
||||
Copyright (c) 2007-2018 University of Illinois at Urbana-Champaign.
|
||||
Copyright (c) 2007-2019 University of Illinois at Urbana-Champaign.
|
||||
(c) StringRef Expression Data.getBytes(C, BlockLength) DataExtractor
|
||||
Copyright (c) 2006-2009 Steven J. Bethard <[email protected]>
|
||||
Copyright (c) 1992, 1993 The Regents of the University of California.
|
||||
(c) StringLiteral NumClobbers std::copy Clobbers, Clobbers + NumClobbers
|
||||
Copyright (c) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
Copyright (c) 1992, 1993, 1994 The Regents of the University of California.
|
||||
Copyright (c) 2004-2005, 2007-2008, 2011-2018 Free Software Foundation, Inc.
|
||||
Copyright (c) 2004-2005, 2007-2009, 2011-2018 Free Software Foundation, Inc.
|
||||
Copyright (c) 2004-2005, 2007, 2009, 2011-2018 Free Software Foundation, Inc.
|
||||
(c) StringLiteral NumConstraints std::copy Constraints, Constraints + NumConstraints
|
||||
Copyright (c) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
|
||||
Copyright (c) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
|
||||
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
Copyright (c) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
Copyright (c) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
|
||||
|
||||
Apache-2.0 WITH LLVM-exception
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
webidl-conversions 3.0.1 - BSD-2-Clause
|
||||
@@ -752,6 +1063,67 @@ the licensed code:
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
vscode-cpptools 7.1.1 - LicenseRef-scancode-generic-cla AND MIT
|
||||
https://github.com/Microsoft/vscode-cpptools-api#readme
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
|
||||
vscode-cpptools-api
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
All rights reserved.
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
@github/copilot-language-server 1.316.0 - LicenseRef-scancode-unknown
|
||||
https://github.com/github/copilot-language-server-release
|
||||
|
||||
COPYRIGHT Zone Model
|
||||
Copyright Deno authors
|
||||
(c) 2012 by Cedric Mesnil
|
||||
Copyright (c) 2018 Agoric
|
||||
Copyright Domenic Denicola
|
||||
Copyright (c) 2011 Google Inc.
|
||||
Copyright (c) 2012 Google Inc.
|
||||
Copyright 1995-2022 Mark Adler
|
||||
Copyright 1995-2023 Mark Adler
|
||||
Copyright Node.js contributors
|
||||
Copyright (c) 2016, Contributors
|
||||
Copyright (c) 2014, StrongLoop Inc.
|
||||
Copyright 2009 the V8 project authors
|
||||
Copyright 2011 the V8 project authors
|
||||
Copyright 2012 the V8 project authors
|
||||
Copyright 2013 the V8 project authors
|
||||
Copyright 2017 the V8 project authors
|
||||
Copyright (c) Microsoft and contributors
|
||||
Copyright (c) 2016 Unicode, Inc. and others
|
||||
Copyright (c) 2012-2018 by various contributors
|
||||
Copyright (c) 2009 Thomas Robinson <280north.com>
|
||||
Copyright Joyent, Inc. and other Node contributors
|
||||
Copyright 1995-2022 Jean-loup Gailly and Mark Adler
|
||||
Copyright 1995-2023 Jean-loup Gailly and Mark Adler
|
||||
Copyright (c) 1996-2016 Free Software Foundation, Inc.
|
||||
Copyright (c) NevWare21 Solutions LLC and contributors
|
||||
Copyright 1995-2023 Jean-loup Gailly and Mark Adler Qkkbal
|
||||
Copyright (c) Sindre Sorhus <[email protected]> (sindresorhus.com)
|
||||
|
||||
LicenseRef-scancode-unknown
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
---------------------------------------------------------
|
||||
@@ -2309,7 +2681,7 @@ SOFTWARE.
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
tmp 0.2.3 - MIT
|
||||
tmp 0.2.4 - MIT
|
||||
http://github.com/raszi/node-tmp
|
||||
|
||||
Copyright (c) 2014 KARASZI Istvan
|
||||
@@ -2389,29 +2761,6 @@ The above copyright notice and this permission notice shall be included in all c
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
vscode-cpptools 7.1.1 - MIT
|
||||
https://github.com/Microsoft/vscode-cpptools-api#readme
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
|
||||
vscode-cpptools-api
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
All rights reserved.
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
---------------------------------------------------------
|
||||
@@ -2603,7 +2952,6 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
|
||||
whatwg-url 5.0.0 - MIT
|
||||
https://github.com/jsdom/whatwg-url#readme
|
||||
|
||||
(c) extraPathPercentEncodeSet.has
|
||||
Copyright (c) 2015-2016 Sebastian Mayr
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"příliš mnoho argumentů pro atribut %sq",
|
||||
"řetězec mantissa neobsahuje platné číslo",
|
||||
"chyba v pohyblivé desetinné čárce při vyhodnocování konstanty",
|
||||
"ignorován dědičný konstruktor %n pro operace podobné kopírování/přesouvání"
|
||||
"ignorován dědičný konstruktor %n pro operace podobné kopírování/přesouvání",
|
||||
"Nelze určit velikost souboru %s.",
|
||||
"%s nejde přečíst.",
|
||||
"vložit",
|
||||
"Nerozpoznaný název parametru",
|
||||
"Parametr byl zadán více než jednou.",
|
||||
"__has_embed se nemůže objevit mimo #if",
|
||||
"Národní prostředí LC_NUMERIC nelze nastavit na C.",
|
||||
"Direktivy elifdef a elifndef nejsou v tomto režimu povolené a v textu, který se přeskočí, se ignorují.",
|
||||
"Deklarace aliasu je v tomto kontextu nestandardní.",
|
||||
"Cílová sada instrukcí ABI může přidělit nestatické členy v pořadí, které neodpovídá jejich pořadí deklarací, což není v jazyce C++23 a novějších standardní.",
|
||||
"Jednotka rozhraní modulu EDG IFC",
|
||||
"Jednotka oddílu modulu EDG IFC",
|
||||
"Deklaraci modulu nelze z této jednotky překladu exportovat, pokud není vytvořen soubor rozhraní modulu.",
|
||||
"Deklarace modulu se musí exportovat z této jednotky překladu, aby se vytvořil soubor rozhraní modulu.",
|
||||
"Bylo požadováno generování souboru modulu, ale v jednotce překladu nebyl deklarován žádný modul."
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"Zu viele Argumente für %sq-Attribut",
|
||||
"Die Zeichenfolge der Mantisse enthält keine gültige Zahl",
|
||||
"Gleitkommafehler während der Konstantenauswertung",
|
||||
"Der vererbende Konstruktor %n wird bei einem Vorgang wie Kopieren/Verschieben ignoriert"
|
||||
"Der vererbende Konstruktor %n wird bei einem Vorgang wie Kopieren/Verschieben ignoriert",
|
||||
"Die Größe der Datei \"%s\" kann nicht bestimmt werden.",
|
||||
"\"%s\" kann nicht gelesen werden.",
|
||||
"Einbetten",
|
||||
"Unbekannter Parametername",
|
||||
"Der Parameter wurde mehrfach angegeben.",
|
||||
"__has_embed kann nicht außerhalb von \"#if\" vorkommen.",
|
||||
"Das LC_NUMERIC-Gebietsschema konnte nicht auf C festgelegt werden.",
|
||||
"\"elifdef\" und \"elifndef\" sind in diesem Modus nicht aktiviert und werden ignoriert, wenn Text übersprungen wird.",
|
||||
"Eine Alias-Deklaration entspricht in diesem Kontext nicht dem Standard.",
|
||||
"Die Ziel-ABI kann nicht-statische Mitglieder in einer Reihenfolge zuweisen, die nicht mit ihrer Deklarationsreihenfolge übereinstimmt, was in C++23 und später nicht standardkonform ist.",
|
||||
"EDG-IFC-Modulschnittstelleneinheit",
|
||||
"EDG-IFC-Modulpartitionseinheit",
|
||||
"Die Moduldeklaration kann aus dieser Übersetzungseinheit exportiert werden, wenn eine Modulschnittstellendatei erstellt werden.",
|
||||
"Die Moduldeklaration muss aus dieser Übersetzungseinheit exportiert werden, um eine Modulschnittstellendatei zu erstellen.",
|
||||
"Die Moduldateigenerierung wurde angefordert, aber in der Übersetzungseinheit wurde kein Modul deklariert."
|
||||
]
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"demasiados argumentos para el atributo %sq",
|
||||
"La cadena de mantisa no contiene un número válido",
|
||||
"error de punto flotante durante la evaluación constante",
|
||||
"constructor heredado %n omitido para la operación de copia o movimiento"
|
||||
"constructor heredado %n omitido para la operación de copia o movimiento",
|
||||
"no se puede determinar el tamaño del archivo %s",
|
||||
"no se puede leer %s",
|
||||
"insertar",
|
||||
"nombre de parámetro no reconocido",
|
||||
"parámetro especificado más de una vez",
|
||||
"__has_embed no puede aparecer fuera del #if",
|
||||
"no se pudo establecer la configuración regional LC_NUMERIC en C",
|
||||
"elifdef y elifndef no están habilitados en este modo y se omiten en el texto que se omite",
|
||||
"una declaración de alias no es estándar en este contexto",
|
||||
"la ABI de destino puede asignar miembros no estáticos en un orden que no coincida con su orden de declaración, que no es estándar en C++23 y versiones posteriores",
|
||||
"Unidad de interfaz del módulo EDG IFC",
|
||||
"Unidad de partición del módulo EDG IFC",
|
||||
"la declaración de módulo no se puede exportar desde esta unidad de traducción a menos que se cree un archivo de interfaz de módulo",
|
||||
"la declaración de módulo debe exportarse desde esta unidad de traducción para crear un archivo de interfaz de módulo",
|
||||
"se solicitó la generación de archivos de módulo, pero no se declaró ningún módulo en la unidad de traducción"
|
||||
]
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"trop d’arguments pour l’attribut %sq",
|
||||
"la chaîne de mantisse ne contient pas de nombre valide",
|
||||
"erreur de point flottant lors de l’évaluation constante",
|
||||
"le constructeur d’héritage %n a été ignoré pour l’opération qui ressemble à copier/déplacer"
|
||||
"le constructeur d’héritage %n a été ignoré pour l’opération qui ressemble à copier/déplacer",
|
||||
"impossible de déterminer la taille du fichier %s",
|
||||
"impossible de lire %s",
|
||||
"incorporer",
|
||||
"nom de paramètre non reconnu",
|
||||
"paramètre spécifié plusieurs fois",
|
||||
"__has_embed ne peut pas apparaître en dehors de #if",
|
||||
"impossible de définir la locale LC_NUMERIC sur C",
|
||||
"elifdef et elifndef ne sont pas activés dans ce mode et sont ignorés dans le texte qui est omis",
|
||||
"une déclaration d’alias n’est pas standard dans ce contexte",
|
||||
"l’ABI cible peut allouer des membres non statiques dans un ordre qui ne correspond pas à leur ordre de déclaration, ce qui n’est pas standard dans C++23 et versions ultérieures",
|
||||
"Unité d’interface de module IFC EDG",
|
||||
"Unité de partition de module IFC EDG",
|
||||
"la déclaration de module ne peut pas être exportée à partir de cette unité de traduction, sauf si vous créez un fichier d’interface de module",
|
||||
"la déclaration de module doit être exportée depuis cette unité de traduction pour créer un fichier d’interface de module",
|
||||
"la génération du fichier de module a été demandée, mais aucun module n’a été déclaré dans l’unité de traduction"
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"troppi argomenti per l'attributo %sq",
|
||||
"la stringa mantissa non contiene un numero valido",
|
||||
"errore di virgola mobile durante la valutazione costante",
|
||||
"eredità del costruttore %n ignorata per l'operazione analoga a copia/spostamento"
|
||||
"eredità del costruttore %n ignorata per l'operazione analoga a copia/spostamento",
|
||||
"impossibile determinare le dimensioni del file %s",
|
||||
"impossibile leggere %s",
|
||||
"incorporare",
|
||||
"nome del parametro non riconosciuto",
|
||||
"parametro specificato più di una volta",
|
||||
"non è possibile specificare __has_embed all'esterno di #if",
|
||||
"impossibile impostare le impostazioni locali LC_NUMERIC su C",
|
||||
"elifdef e elifndef non sono abilitati in questa modalità e vengono ignorati nel testo saltato",
|
||||
"una dichiarazione alias non è standard in questo contesto",
|
||||
"l'ABI di destinazione può allocare membri non statici in un ordine non corrispondente all'ordine di dichiarazione, il che non è conforme allo standard in C++23 e versioni successive",
|
||||
"unità di interfaccia del modulo EDG IFC",
|
||||
"unità di partizione del modulo IFC EDG",
|
||||
"la dichiarazione del modulo non può essere esportata da questa unità di conversione a meno che non si crei un file di interfaccia del modulo",
|
||||
"la dichiarazione del modulo deve essere esportata da questa unità di conversione per creare un file di interfaccia del modulo",
|
||||
"è stata richiesta la generazione di file di modulo, ma non è stato dichiarato alcun modulo nell'unità di conversione"
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"属性 %sq の引数が多すぎます",
|
||||
"仮数の文字列に有効な数値が含まれていません",
|
||||
"定数の評価中に浮動小数点エラーが発生しました",
|
||||
"コンストラクターの継承 %n は、コピーや移動と似た操作では無視されます"
|
||||
"コンストラクターの継承 %n は、コピーや移動と似た操作では無視されます",
|
||||
"ファイル %s のサイズを特定できません",
|
||||
"%s を読み取れません",
|
||||
"埋め込み",
|
||||
"認識されないパラメーター名",
|
||||
"パラメーターが複数回指定されました",
|
||||
"__has_embed は #if の外側には出現できません",
|
||||
"LC_NUMERIC ロケールを C に設定できませんでした",
|
||||
"elifdef と elifndef はこのモードでは有効になっておらず、スキップされるテキストでは無視されます",
|
||||
"エイリアス宣言は、このコンテキストでは非標準です",
|
||||
"ターゲット ABI は、宣言順序と一致しない順序で非静的メンバーを割り当てる可能性があります。これは、C++23 以降では非標準です",
|
||||
"EDG IFC モジュール インターフェイス ユニット",
|
||||
"EDG IFC モジュール パーティション ユニット",
|
||||
"モジュール インターフェイス ファイルを作成しない限り、モジュール宣言をこの翻訳単位からエクスポートすることはできません",
|
||||
"モジュール インターフェイス ファイルを作成するには、この翻訳単位からモジュール宣言をエクスポートする必要があります",
|
||||
"モジュール ファイルの生成が要求されましたが、翻訳単位でモジュールが宣言されていません"
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"%sq 특성에 대한 인수가 너무 많습니다.",
|
||||
"mantissa 문자열에 올바른 숫자가 없습니다.",
|
||||
"상수 평가 중 부동 소수점 오류",
|
||||
"복사/이동과 유사한 작업에 대해 상속 생성자 %n이(가) 무시됨"
|
||||
"복사/이동과 유사한 작업에 대해 상속 생성자 %n이(가) 무시됨",
|
||||
"파일 %s의 크기를 확인할 수 없습니다.",
|
||||
"%s을(를) 읽을 수 없습니다.",
|
||||
"포함",
|
||||
"인식할 수 없는 매개 변수 이름입니다.",
|
||||
"매개 변수가 두 번 이상 지정되었습니다.",
|
||||
"__has_embed는 #if 외부에 사용할 수 없습니다.",
|
||||
"LC_NUMERIC 로캘을 C로 설정할 수 없습니다.",
|
||||
"elifdef와 elifndef는 이 모드에서 사용할 수 없으며 건너뛰는 텍스트에서 무시됩니다.",
|
||||
"별칭 선언은 이 컨텍스트에서 비표준입니다.",
|
||||
"대상 ABI는 선언 순서와 일치하지 않는 순서로 비정적 멤버를 할당할 수 있습니다. 이는 C++23 이상에서 비표준입니다.",
|
||||
"EDG IFC 모듈 인터페이스 단위",
|
||||
"EDG IFC 모듈 파티션 단위",
|
||||
"모듈 인터페이스 파일을 만들지 않으면 이 변환 단위에서 모듈 선언을 내보낼 수 없습니다.",
|
||||
"모듈 인터페이스 파일을 만들려면 이 변환 단위에서 모듈 선언을 내보내야 합니다.",
|
||||
"모듈 파일 생성이 요청되었지만 변환 단위에 모듈이 선언되지 않았습니다."
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"zbyt wiele argumentów dla atrybutu %sq",
|
||||
"ciąg mantysy nie zawiera prawidłowej liczby",
|
||||
"błąd zmiennoprzecinkowy podczas obliczania stałej",
|
||||
"dziedziczenie konstruktora %n zostało zignorowane dla operacji kopiowania/przenoszenia"
|
||||
"dziedziczenie konstruktora %n zostało zignorowane dla operacji kopiowania/przenoszenia",
|
||||
"nie można określić rozmiaru pliku %s",
|
||||
"nie można odczytać %s",
|
||||
"osadź",
|
||||
"nierozpoznana nazwa parametru",
|
||||
"parametr określony co najmniej raz",
|
||||
"element __has_embed nie może występować poza wyrażeniem #if",
|
||||
"nie można ustawić parametru C dla ustawień regionalnych z parametrem LC_NUMERIC",
|
||||
"dyrektywy elifdef i elifndef nie są włączone w tym trybie i są ignorowane w pomijanym tekście",
|
||||
"deklaracja aliasu jest niestandardowa w tym kontekście",
|
||||
"docelowy zestaw instrukcji ABI może przydzielać niestatyczne składowe w kolejności, która nie odpowiada ich kolejności w deklaracji, co jest niestandardowe w wersji języka C++23 i nowszych wersjach",
|
||||
"jednostka interfejsu modułu EDG IFC",
|
||||
"jednostka partycji modułu EDG IFC",
|
||||
"deklaracja modułu nie może być wyeksportowana z tej jednostki translacji, chyba że zostanie utworzony plik interfejsu modułu",
|
||||
"deklaracja modułu musi być wyeksportowana z tej jednostki translacji, aby utworzyć plik interfejsu modułu",
|
||||
"zażądano wygenerowania pliku modułu, ale w jednostce translacji nie zadeklarowano żadnego modułu"
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"muitos argumentos para o atributo %sq",
|
||||
"cadeia de mantissa não contém um número válido",
|
||||
"erro de ponto flutuante durante a avaliação da constante",
|
||||
"construtor herdado %n ignorado para operação do tipo cópia/movimento"
|
||||
"construtor herdado %n ignorado para operação do tipo cópia/movimento",
|
||||
"não é possível determinar o tamanho do arquivo %s",
|
||||
"não é possível ler %s",
|
||||
"inserir",
|
||||
"nome do parâmetro não reconhecido",
|
||||
"parâmetro especificado mais de uma vez",
|
||||
"__has_embed não pode aparecer fora de #if",
|
||||
"não foi possível definir a localidade LC_NUMERIC como C",
|
||||
"elifdef e elifndef não estão habilitados neste modo e são ignorados no texto que está sendo pulado",
|
||||
"uma declaração de alias não é padrão neste contexto",
|
||||
"a ABI de destino pode alocar membros não estáticos em uma ordem que não corresponde à ordem de declaração, que não é padrão no C++23 e posterior",
|
||||
"Unidade de interface do módulo EDG IFC",
|
||||
"Unidade de partição do módulo EDG IFC",
|
||||
"a declaração de módulo não pode ser exportada desta unidade de tradução, a menos que crie um arquivo de interface de módulo",
|
||||
"a declaração do módulo deve ser exportada desta unidade de tradução para criar um arquivo de interface de módulo",
|
||||
"a geração de arquivo de módulo foi solicitada, mas nenhum módulo foi declarado na unidade de tradução"
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"слишком много аргументов для атрибута %sq",
|
||||
"строка мантиссы не содержит допустимого числа",
|
||||
"ошибка с плавающей запятой во время вычисления константы",
|
||||
"наследование конструктора %n игнорируется для операций, подобных копированию и перемещению"
|
||||
"наследование конструктора %n игнорируется для операций, подобных копированию и перемещению",
|
||||
"не удается определить размер файла %s",
|
||||
"не удается прочитать %s",
|
||||
"внедрить",
|
||||
"нераспознанное имя параметра",
|
||||
"параметр указан несколько раз",
|
||||
"__has_embed запрещено указывать за пределами #if",
|
||||
"не удалось установить для языкового стандарта LC_NUMERIC значение C",
|
||||
"параметры elifdef и elifndef не включены в этом режиме и игнорируются в пропускаемом тексте",
|
||||
"объявление псевдонима является нестандартным в этом контексте",
|
||||
"целевой ABI может выделять нестатические элементы в порядке, не соответствующем их порядку объявления, что является нестандартным в C++23 и более поздних версиях",
|
||||
"единица интерфейса модуля EDG IFC",
|
||||
"единица раздела модуля EDG IFC",
|
||||
"объявление модуля невозможно экспортировать из этой единицы трансляции, если не создается файл интерфейса модуля",
|
||||
"объявление модуля должно быть экспортировано из этой единицы трансляции для создания файла интерфейса модуля",
|
||||
"запрошено создание файла модуля, но в единице трансляции не объявлен модуль"
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"%sq özniteliği için çok fazla bağımsız değişken var",
|
||||
"mantissa dizesi geçerli bir sayı içermiyor",
|
||||
"sabit değerlendirme sırasında kayan nokta hatası",
|
||||
"kopyalama/taşıma benzeri işlem için %n oluşturucusunu devralma yoksayıldı"
|
||||
"kopyalama/taşıma benzeri işlem için %n oluşturucusunu devralma yoksayıldı",
|
||||
"%s dosyasının boyutu belirlenemiyor",
|
||||
"%s okunamıyor",
|
||||
"ekle",
|
||||
"tanınmayan parametre adı",
|
||||
"parametre birden fazla kez belirtildi",
|
||||
"__has_embed, #if dışında görünemez.",
|
||||
"LC_NUMERIC yerel ayarı C olarak ayarlanamadı.",
|
||||
"elifdef ve elifndef bu modda etkin değildir ve atlanan metinde yok sayılır.",
|
||||
"Bu bağlamda bir takma ad bildirimi standart değildir.",
|
||||
"Hedef ABI, statik olmayan üyeleri, C++23 ve sonraki sürümlerde standart olmayan, bildirim sırasına uymayan bir sırayla tahsis edebilir.",
|
||||
"EDG IFC modülü arabirim ünitesi",
|
||||
"EDG IFC modül bölme ünitesi",
|
||||
"modül arabirimi dosyası oluşturulmadıkça, modül bildirimi bu çeviri biriminden dışa aktarılamaz",
|
||||
"modül arabirim dosyası oluşturmak için modül bildirimi bu çeviri biriminden dışa aktarılmalıdır",
|
||||
"modül dosyası oluşturulması istendi, ancak çeviri biriminde hiçbir modül bildirilmedi"
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"属性 %sq 的参数太多",
|
||||
"mantissa 字符串不包含有效的数字",
|
||||
"常量计算期间出现浮点错误",
|
||||
"对于复制/移动类操作,已忽略继承构造函数 %n"
|
||||
"对于复制/移动类操作,已忽略继承构造函数 %n",
|
||||
"无法确定文件 %s 的大小",
|
||||
"无法读取 %s",
|
||||
"嵌入",
|
||||
"无法识别的参数名称",
|
||||
"多次指定参数",
|
||||
"__has_embed 不能出现在 #if 外部",
|
||||
"无法将 LC_NUMERIC 区域设置设为 C",
|
||||
"elifdef 和 elifndef 在此模式下未启用,并且在跳过的文本中将被忽略",
|
||||
"别名声明在此上下文中是非标准的",
|
||||
"目标 ABI 可以按与其声明顺序不匹配的顺序分配非静态成员,这在 C++23 及更高版本中是非标准的",
|
||||
"EDG IFC 模块接口单元",
|
||||
"EDG IFC 模块分区单元",
|
||||
"除非创建模块接口文件,否则无法从此翻译单元导出模块声明",
|
||||
"模块声明必须从此翻译单元导出,以创建模块接口文件",
|
||||
"已请求生成模块文件,但在翻译单元中未声明任何模块"
|
||||
]
|
||||
|
||||
@@ -3656,5 +3656,20 @@
|
||||
"屬性 %sq 的引數太多",
|
||||
"Mantissa 字串未包含有效的數字",
|
||||
"常數評估期間發生浮點錯誤",
|
||||
"繼承建構函式 %n 已略過複製/移動之類作業"
|
||||
"繼承建構函式 %n 已略過複製/移動之類作業",
|
||||
"無法判斷檔案 %s 的大小",
|
||||
"無法讀取 %s",
|
||||
"內嵌",
|
||||
"無法辨識的參數名稱",
|
||||
"參數已指定一次以上",
|
||||
"__has_embed 無法出現在外部 #if",
|
||||
"無法將 LC_NUMERIC 地區設定設為 C",
|
||||
"elifdef 和 elifndef 未在此模式中啟用,而且會在略過的文字中遭到忽略",
|
||||
"別名宣告在此內容中並非標準用法",
|
||||
"目標 ABI 可能會以不符合宣告順序的順序配置非靜態成員,此順序在 C++23 和更高版本中並非標準用法",
|
||||
"EDG IFC 模組介面單元",
|
||||
"EDG IFC 模組分割單元",
|
||||
"除非建立模組介面檔案,否則無法從此翻譯單元匯出模組宣告",
|
||||
"必須從此翻譯單元匯出模組宣告,以建立模組介面檔案",
|
||||
"已要求模組檔案產生,但未在翻譯單元中宣告任何模組"
|
||||
]
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "要连接到的 MI 调试程序服务器的网络地址(示例: localhost:1234)。",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "使用目标扩展远程模式连接到 MI 调试器服务器。",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "可选参数。如果为 `true`,则调试程序应在目标的入口点处停止。如果传递了 `processId`,则不起任何作用。",
|
||||
"c_cpp.debuggers.debugServerPath.description": "到要启动的调试服务器的可选完整路径。默认值为 null。该路径与 “miDebugServerAddress” 或带有运行 “-target-select remote <server:port>” 的 “customSetupCommand” 的自有服务器配合使用。",
|
||||
"c_cpp.debuggers.debugServerPath.description": "到要启动的调试服务器的可选完整路径。默认值为 null。该路径与 “miDebuggerServerAddress” 或带有运行 “-target-select remote <server:port>” 的 “customSetupCommand” 的自有服务器配合使用。",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "可选调试服务器参数。默认为 null。",
|
||||
"c_cpp.debuggers.serverStarted.description": "要在调试服务器输出中查找的可选服务器启动模式。默认为 null。",
|
||||
"c_cpp.debuggers.filterStdout.description": "在 stdout 流中搜索服务器启动模式,并将 stdout 记录到默认输出。默认为 true。",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "MI 偵錯工具伺服器要連線至的網路位址 (範例: localhost:1234)。",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "使用目標延伸的遠端模式連線到 MI 偵錯工具伺服器。",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "選擇性參數。若為 `true`,則偵錯工具應該在目標的進入點停止。如果已傳遞 `processId`,則這就無效。",
|
||||
"c_cpp.debuggers.debugServerPath.description": "要啟動的偵錯伺服器選用完整路徑。預設為 Null。使用時,會將 \"miDebugServerAddress\" 或您自己的伺服器與 \"customSetupCommand\" 連接,以執行 \"-target-select remote <伺服器:連接埠>\"。",
|
||||
"c_cpp.debuggers.debugServerPath.description": "要啟動的偵錯伺服器選用完整路徑。預設為 Null。使用時,會將 \"miDebuggerServerAddress\" 或您自己的伺服器與 \"customSetupCommand\" 連接,以執行 \"-target-select remote <伺服器:連接埠>\"。",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "選擇性偵錯伺服器引數。預設為 null。",
|
||||
"c_cpp.debuggers.serverStarted.description": "要在偵錯伺服器輸出中尋找的選擇性伺服器啟動模式。預設為 null。",
|
||||
"c_cpp.debuggers.filterStdout.description": "搜尋 stdout 資料流以取得伺服器啟動的模式,並將 stdout 記錄到偵錯輸出。預設為 true。",
|
||||
@@ -325,7 +325,7 @@
|
||||
"c_cpp.debuggers.cppvsdbg.console.externalTerminal.description": "主控台應用程式將會在外部終端視窗中啟動。此視窗將在重新啟動情節中重複使用,且在應用程式結束時不會自動消失。",
|
||||
"c_cpp.debuggers.cppvsdbg.console.newExternalWindow.description": "主控台應用程式將會在其本身的外部主控台視窗中啟動,該視窗會在應用程式停止時結束。非主控台應用程式將在沒有終端的情況下執行,而且將忽略 stdout/stderr。",
|
||||
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "若為 true,則停用整合式終端機支援需要的偵錯項目主控台重新導向。",
|
||||
"c_cpp.debuggers.sourceFileMap.markdownDescription": "傳遞至偵錯引擎的選擇性來源檔案對應。範例: `{ \"<original source path>\": \"<current source path>\" }`。",
|
||||
"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.dumpPath.description": "指定程式之傾印檔案的選擇性完整路徑。範例: \"c:\\temp\\app.dmp\"。預設為 null。",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"cpp.standard.description": "用於 IntelliSense 的 C++ 語言標準版本。注意: GNU 標準僅會用於查詢設定編譯器以取得 GNU 定義,而 IntelliSense 將會模擬相同的 C++ 標準版本。",
|
||||
"advanced.settings": "進階設定",
|
||||
"configuration.provider": "組態提供者",
|
||||
"configuration.provider.description": "可為來源檔案提供 IntelliSense 設定資訊 VS Code 延伸模組的識別碼。例如,使用 VS Code 延伸模組識別碼 {0} 從 CMake 工具延伸模組提供組態資訊。",
|
||||
"configuration.provider.description": "可為來源檔案提供 IntelliSense 設定資訊 VS Code 延伸模組的識別碼。例如,使用 VS Code 延伸模組識別碼 {0} 從 CMake Tools 延伸模組提供組態資訊。",
|
||||
"windows.sdk.version": "Windows SDK 版本",
|
||||
"windows.sdk.version.description": "要在 Windows 上使用的 Windows SDK 包含路徑版本,例如 {0}。",
|
||||
"mac.framework.path": "Mac 架構路徑",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "Síťová adresa MI Debugger Serveru, ke kterému se má připojit (příklad: localhost:1234)",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "Připojení k serveru ladicího programu MI přes cílový rozšířený vzdálený režim.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Nepovinný parametr. Pokud je `true`, ladicí program by se měl zastavit na vstupním bodu cíle. Pokud je předán parametr `processId`, nemá to žádný vliv.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Volitelná úplná cesta k ladicímu serveru, který se má spustit. Výchozí hodnota je null. Používá se ve spojení buď s miDebugServerAddress, nebo s vlastním serverem s customSetupCommand, na kterém běží \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Volitelná úplná cesta k ladicímu serveru, který se má spustit. Výchozí hodnota je null. Používá se ve spojení buď s miDebuggerServerAddress, nebo s vlastním serverem s customSetupCommand, na kterém běží \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "Volitelné argumenty ladicího serveru. Výchozí hodnota je null.",
|
||||
"c_cpp.debuggers.serverStarted.description": "Volitelný vzorek spuštěný na serveru, který se má vyhledat ve výstupu ladicího serveru. Výchozí hodnota je null.",
|
||||
"c_cpp.debuggers.filterStdout.description": "Vyhledá ve vzorku spuštěném na serveru stream stdout a zaznamená stdout do výstupu ladění. Výchozí hodnota je true.",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "Netzwerkadresse des MI-Debugger-Servers, mit dem eine Verbindung hergestellt werden soll (Beispiel: localhost:1234).",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "Stellen Sie eine Verbindung mit dem MI-Debuggerserver mit dem erweiterten Remotemodus des Ziels her.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Optionaler Parameter. Wenn dieser Wert auf `true` festgelegt ist, sollte der Debugger am Einstiegspunkt des Ziels anhalten. Wenn die `processId` übergeben wird, hat dies keine Auswirkungen.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Optionaler vollständiger Pfad zum Debugserver, der gestartet werden soll. Der Standardwert ist NULL. Dies wird in Verbindung mit \"miDebugServerAddress\" oder Ihrem eigenen Server mit \"customSetupCommand\" verwendet, auf dem \"-target-select remote <server:port>\" ausgeführt wird.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Optionaler vollständiger Pfad zum Debugserver, der gestartet werden soll. Der Standardwert ist NULL. Dies wird in Verbindung mit \"miDebuggerServerAddress\" oder Ihrem eigenen Server mit \"customSetupCommand\" verwendet, auf dem \"-target-select remote <server:port>\" ausgeführt wird.",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "Optionale Debugserverargumente. Der Standardwert ist \"null\".",
|
||||
"c_cpp.debuggers.serverStarted.description": "Optionales vom Server gestartetes Muster, nach dem in der Ausgabe des Debugservers gesucht wird. Der Standardwert ist \"null\".",
|
||||
"c_cpp.debuggers.filterStdout.description": "stdout-Stream für ein vom Server gestartetes Muster suchen und stdout in der Debugausgabe protokollieren. Der Standardwert ist \"true\".",
|
||||
@@ -427,7 +427,7 @@
|
||||
"c_cpp.walkthrough.create.cpp.file.title": "C++-Datei erstellen",
|
||||
"c_cpp.walkthrough.create.cpp.file.description": "[Öffnen](command:toSide:workbench.action.files.openFile) oder [erstellen](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) eine C++-Datei. Speichern Sie die Datei unbedingt mit der Erweiterung \".cpp\" extension, z. B. \"helloworld.cpp\". \n[Erstellen Sie eine C++-Datei](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)",
|
||||
"c_cpp.walkthrough.create.cpp.file.altText": "Öffnen Sie eine C++-Datei oder einen Ordner mit einem C++-Projekt.",
|
||||
"c_cpp.walkthrough.command.prompt.title": "Von der Developer Command Prompt for VS starten",
|
||||
"c_cpp.walkthrough.command.prompt.title": "Aus Developer Command Prompt for VS starten",
|
||||
"c_cpp.walkthrough.command.prompt.description": "Bei Verwendung des Microsoft Visual Studio C++-Compilers erfordert die C++-Erweiterung, dass Sie VS Code aus Developer Command Prompt for VS starten. Befolgen Sie die Anweisungen auf der rechten Seite, um den Neustart zu starten.\n[Reload Window](command:workbench.action.reloadWindow)",
|
||||
"c_cpp.walkthrough.run.debug.title": "Ausführen und Debuggen Ihrer C++-Datei",
|
||||
"c_cpp.walkthrough.run.debug.mac.description": "Öffnen Sie Ihre C++-Datei, und klicken Sie in der oberen rechten Ecke des Editors auf die Wiedergabeschaltfläche, oder drücken Sie F5, wenn Sie die Datei verwenden. Wählen Sie \"clang++ – Aktive Datei erstellen und debuggen\" aus, die mit dem Debugger ausgeführt werden soll.",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"cpp.standard.description": "Die Version des C++-Sprachstandards, die für IntelliSense verwendet werden soll. Hinweis: GNU-Standards werden nur zum Abfragen des festgelegten Compilers zum Abrufen von GNU-Definitionen verwendet, und IntelliSense emuliert die äquivalente Version des C++-Standards.",
|
||||
"advanced.settings": "Erweiterte Einstellungen",
|
||||
"configuration.provider": "Konfigurationsanbieter",
|
||||
"configuration.provider.description": "Die ID einer VS Code-Erweiterung, die IntelliSense-Konfigurationsinformationen für Quelldateien bereitstellen kann. Verwenden Sie zum Beispiel die VS Code-Erweiterungs-ID \"{0}\", um Konfigurationsinformationen aus der CMake Tools-Erweiterung bereitzustellen.",
|
||||
"configuration.provider.description": "Die ID einer VS Code-Erweiterung, die IntelliSense-Konfigurationsinformationen für Quelldateien bereitstellen kann. Verwenden Sie zum Beispiel die VS Code-Erweiterungs-ID \"{0}\", um Konfigurationsinformationen aus der Erweiterung CMake Tools bereitzustellen.",
|
||||
"windows.sdk.version": "Windows SDK-Version",
|
||||
"windows.sdk.version.description": "Die Version des Windows SDK-Includepfads zur Verwendung unter Windows, z. B. \"{0}\".",
|
||||
"mac.framework.path": "Pfad für Mac-Framework",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "Dirección de red del servidor del depurador MI al que debe conectarse (ejemplo: localhost:1234).",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "Conéctese al servidor del depurador de Instancia administrada con el modo extendido-remoto de destino.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Parámetro opcional. Si se establece en `true`, el depurador debe detenerse en el punto de entrada del destino. Si se pasa `processId`, esto no tiene efecto.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Ruta de acceso completa opcional al servidor de depuración que se va a iniciar. El valor predeterminado es null. Se usa junto con \"miDebugServerAddress\" o su servidor propio con un comando \"customSetupCommand\" que ejecuta \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Ruta de acceso completa opcional al servidor de depuración que se va a iniciar. El valor predeterminado es null. Se usa junto con \"miDebuggerServerAddress\" o su servidor propio con un comando \"customSetupCommand\" que ejecuta \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "Argumentos opcionales del servidor de depuración. El valor predeterminado es NULL.",
|
||||
"c_cpp.debuggers.serverStarted.description": "Patrón opcional iniciado por el servidor que debe buscarse en la salida del servidor de depuración. El valor predeterminado es NULL.",
|
||||
"c_cpp.debuggers.filterStdout.description": "Busca la secuencia stdout para el patrón iniciado por el servidor y registra stdout en la salida de depuración. El valor predeterminado es true.",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"cpp.standard.description": "Versión del estándar del lenguaje C++ que se va a usar para IntelliSense. Nota: Los estándares GNU solo se usan para consultar el compilador de conjuntos a fin de obtener definiciones GNU e IntelliSense emulará la versión del estándar C++ equivalente.",
|
||||
"advanced.settings": "Configuración avanzada",
|
||||
"configuration.provider": "Proveedor de configuración",
|
||||
"configuration.provider.description": "Id. de una extensión de VS Code que puede proporcionar información de configuración de IntelliSense para los archivos de código fuente. Por ejemplo, use el id. de extensión de VS Code {0} para proporcionar información de configuración de la extensión Herramientas de CMake.",
|
||||
"configuration.provider.description": "Id. de una extensión de VS Code que puede proporcionar información de configuración de IntelliSense para los archivos de código fuente. Por ejemplo, use el id. de extensión de VS Code {0} para proporcionar información de configuración de la extensión CMake Tools.",
|
||||
"windows.sdk.version": "Versión del SDK de Windows",
|
||||
"windows.sdk.version.description": "Versión de la ruta de acceso de inclusión del SDK de Windows SDK que debe usarse en Windows; por ejemplo, {0}.",
|
||||
"mac.framework.path": "Ruta de acceso de la plataforma Mac",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "Adresse réseau du serveur du débogueur MI auquel se connecter (par exemple : localhost:1234).",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "Connectez-vous au serveur débogueur MI avec le mode étendu-distant cible.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Paramètre facultatif. Si la valeur est `true`, le débogueur doit s'arrêter au point d'entrée de la cible. Si `processId` est passé, cela n'a aucun effet.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Chemin complet facultatif au serveur de débogage à lancer (valeur par défaut : null). Utilisé conjointement avec \"miDebugServerAddress\" ou votre propre serveur avec \"customSetupCommand\" qui exécute \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Chemin complet facultatif au serveur de débogage à lancer (valeur par défaut : null). Utilisé conjointement avec \"miDebuggerServerAddress\" ou votre propre serveur avec \"customSetupCommand\" qui exécute \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "Arguments facultatifs du serveur de débogage. La valeur par défaut est null.",
|
||||
"c_cpp.debuggers.serverStarted.description": "Modèle facultatif de démarrage du serveur à rechercher dans la sortie du serveur de débogage. La valeur par défaut est null.",
|
||||
"c_cpp.debuggers.filterStdout.description": "Permet de rechercher dans le flux stdout le modèle correspondant au démarrage du serveur, et de journaliser stdout dans la sortie de débogage. La valeur par défaut est true.",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "Indirizzo di rete del server del debugger MI a cui connettersi. Esempio: localhost:1234.",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "Connettersi al server del debugger MI con la modalità estesa-remota di destinazione.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Parametro facoltativo. Se è `true`, il debugger deve arrestarsi in corrispondenza del punto di ingresso della destinazione. Se viene passato `processId`, non ha alcun effetto.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Percorso completo facoltativo del server di debug da avviare. L'impostazione predefinita è Null. Viene usata insieme a \"miDebugServerAddress\" o al proprio server con un comando \"customSetupCommand\" che esegue \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Percorso completo facoltativo del server di debug da avviare. L'impostazione predefinita è Null. Viene usata insieme a \"miDebuggerServerAddress\" o al proprio server con un comando \"customSetupCommand\" che esegue \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "Argomenti facoltativi del server di debug. L'impostazione predefinita è null.",
|
||||
"c_cpp.debuggers.serverStarted.description": "Criterio facoltativo avviato dal server per cercare nell'output del server di debug. L'impostazione predefinita è null.",
|
||||
"c_cpp.debuggers.filterStdout.description": "Cerca il criterio avviato dal server nel flusso stdout e registra stdout nell'output di debug. L'impostazione predefinita è true.",
|
||||
@@ -325,7 +325,7 @@
|
||||
"c_cpp.debuggers.cppvsdbg.console.externalTerminal.description": "Le applicazioni della console verranno avviate in una finestra del terminale esterna. La finestra verrà riutilizzata in scenari di riavvio e non scomparirà automaticamente alla chiusura dell'applicazione.",
|
||||
"c_cpp.debuggers.cppvsdbg.console.newExternalWindow.description": "Le applicazioni della console verranno avviate nella finestra della console esterna, che verrà terminata alla chiusura dell'applicazione. Le applicazioni non della console vengono eseguite senza un terminale e stdout/stderr verrà ignorato.",
|
||||
"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: `{ \"<original source path>\": \"<current source path>\" }`.",
|
||||
"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.dumpPath.description": "Percorso completo facoltativo di un file dump per il programma specificato. Esempio: \"c:\\temp\\app.dmp\". L'impostazione predefinita è Null.",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "接続先の MI デバッガー サーバーのネットワークアドレスです (例: localhost: 1234)。",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "ターゲットの拡張リモート モードで MI デバッガー サーバーに接続します。",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "オプションのパラメーターです。`true` の場合、デバッガーはターゲットのエントリポイントで停止します。`processId` が渡された場合、この効果はありません。",
|
||||
"c_cpp.debuggers.debugServerPath.description": "起動するデバッグ サーバーの完全なパス (省略可能)。既定値は null です。これは、\"miDebugServerAddress\"、または \"-target-select remote <server:port>\" を実行する \"customSetupCommand\" を含む独自のサーバーのいずれかと接合して使用されます。",
|
||||
"c_cpp.debuggers.debugServerPath.description": "起動するデバッグ サーバーの完全なパス (省略可能)。既定値は null です。これは、\"miDebuggerServerAddress\"、または \"-target-select remote <server:port>\" を実行する \"customSetupCommand\" を含む独自のサーバーのいずれかと接合して使用されます。",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "デバッグ サーバー引数 (省略可能)。既定値は null です。",
|
||||
"c_cpp.debuggers.serverStarted.description": "デバッグ サーバー出力から検索する、サーバー開始のパターン (省略可能)。既定値は null です。",
|
||||
"c_cpp.debuggers.filterStdout.description": "サーバー開始のパターンを stdout ストリームから検索し、stdout をデバッグ出力にログ記録します。既定値は true です。",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "연결할 MI 디버거 서버의 네트워크 주소입니다(예: localhost:1234).",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "대상 확장 원격 모드를 사용하여 MI 디버거 서버에 연결합니다.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "선택적 매개 변수입니다. `true`이면 디버거가 대상의 진입점에서 중지됩니다. `processId`가 전달되는 경우 영향을 주지 않습니다.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "시작할 디버그 서버의 전체 경로입니다(선택 사항). 기본값은 null입니다. 이 옵션은 \"miDebugServerAddress\"와 함께 사용되거나 \"-target-select remote <server:port>\"를 실행하는 \"customSetupCommand\"와 자체 서버와 함께 사용됩니다.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "시작할 디버그 서버의 전체 경로입니다(선택 사항). 기본값은 null입니다. 이 옵션은 \"miDebuggerServerAddress\"와 함께 사용되거나 \"-target-select remote <server:port>\"를 실행하는 \"customSetupCommand\"와 자체 서버와 함께 사용됩니다.",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "선택적 디버그 서버 인수입니다. 기본값은 null입니다.",
|
||||
"c_cpp.debuggers.serverStarted.description": "디버그 서버 출력에서 찾을 서버에서 시작한 패턴(선택 사항)입니다. 기본값은 null입니다.",
|
||||
"c_cpp.debuggers.filterStdout.description": "서버에서 시작한 패턴을 stdout 스트림에서 검색하고, stdout를 디버그 출력에 기록합니다. 기본값은 true입니다.",
|
||||
@@ -325,7 +325,7 @@
|
||||
"c_cpp.debuggers.cppvsdbg.console.externalTerminal.description": "콘솔 애플리케이션이 외부 터미널 창에서 시작됩니다. 이 창은 다시 시작 시나리오에서 재사용되며, 애플리케이션이 종료될 때 자동으로 사라지지 않습니다.",
|
||||
"c_cpp.debuggers.cppvsdbg.console.newExternalWindow.description": "콘솔 애플리케이션은 애플리케이션이 중지될 때 종료되는 해당 외부 콘솔 창에서 시작됩니다. 콘솔이 아닌 애플리케이션은 터미널 없이 실행되며, stdout/stderr이 무시됩니다.",
|
||||
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "True이면 통합 터미널 지원에 필요한 디버기 콘솔 리디렉션을 사용하지 않도록 설정합니다.",
|
||||
"c_cpp.debuggers.sourceFileMap.markdownDescription": "디버그 엔진에 전달되는 선택적 소스 파일 매핑입니다. 예: `{ \"<original source path>\": \"<current source path>\" }`.",
|
||||
"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.dumpPath.description": "지정된 프로그램에 대한 코어 덤프 파일의 선택적 전체 경로입니다(예: \"c:\\temp\\app.dmp\"). 기본값은 null입니다.",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"cpp.standard.description": "IntelliSense에 사용할 C++ 언어 표준의 버전입니다. 참고: GNU 표준은 GNU 정의를 가져오기 위해 설정된 컴파일러를 쿼리하는 데만 사용되며, IntelliSense는 해당 C++ 표준 버전을 에뮬레이트합니다.",
|
||||
"advanced.settings": "고급 설정",
|
||||
"configuration.provider": "구성 공급자",
|
||||
"configuration.provider.description": "소스 파일에 대한 IntelliSense 구성 정보를 제공할 수 있는 VS Code 확장의 ID입니다. 예를 들어 VS Code 확장 ID {0} 을(를) 사용하여 CMake 도구 확장의 구성 정보를 제공합니다.",
|
||||
"configuration.provider.description": "소스 파일에 대한 IntelliSense 구성 정보를 제공할 수 있는 VS Code 확장의 ID입니다. 예를 들어 VS Code 확장 ID {0}을(를) 사용하여 CMake Tools 확장의 구성 정보를 제공합니다.",
|
||||
"windows.sdk.version": "Windows SDK 버전",
|
||||
"windows.sdk.version.description": "Windows에서 사용할 Windows SDK 포함 경로의 버전입니다(예: {0}).",
|
||||
"mac.framework.path": "Mac 프레임워크 경로",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "Adres sieciowy serwera debugera MI, z którym ma zostać nawiązane połączenie (przykład: localhost:1234).",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "Połącz się z wystąpieniem zarządzanym serwera debugera za pomocą docelowego rozszerzonego trybu zdalnego.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Parametr opcjonalny. Jeśli wartość to `true`, debuger powinien zostać zatrzymany w punkcie wejścia miejsca docelowego. W przypadku przekazania `processId` nie ma to żadnego efektu.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Opcjonalna pełna ścieżka do serwera debugowania, który ma zostać uruchomiony. Wartość domyślna to null. Jest ona używana w połączeniu z właściwością \"miDebugServerAddress\" lub Twoim własnym serwerem wraz z poleceniem \"customSetupCommand\", które uruchamia polecenie \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Opcjonalna pełna ścieżka do serwera debugowania, który ma zostać uruchomiony. Wartość domyślna to null. Jest ona używana w połączeniu z właściwością \"miDebuggerServerAddress\" lub Twoim własnym serwerem wraz z poleceniem \"customSetupCommand\", które uruchamia polecenie \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "Opcjonalne argumenty serwera debugowania. Wartość domyślna to null.",
|
||||
"c_cpp.debuggers.serverStarted.description": "Opcjonalny wzorzec uruchomiony przez serwer do wyszukania w danych wyjściowych serwera debugowania. Wartością domyślną jest null.",
|
||||
"c_cpp.debuggers.filterStdout.description": "Wyszukiwanie strumienia stdout dla wzorca uruchomionego przez serwer i rejestrowanie strumienia stdout w danych wyjściowych debugowania. Wartością domyślną jest true.",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "Endereço de rede do Servidor de Depurador MI ao qual se conectar (exemplo: localhost:1234).",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "Conecte-se ao MI Debugger Server com o modo remoto estendido de destino.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Parâmetro opcional. Se for `true`, o depurador deverá parar no ponto de entrada do destino. Se `processId` for passado, isso não terá efeito.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Caminho completo opcional para o servidor de depuração a ser lançado. O padrão é nulo. É usado em conjunto com \"miDebugServerAddress\" ou seu próprio servidor com um \"customSetupCommand\" que executa \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Caminho completo opcional para o servidor de depuração a ser lançado. O padrão é nulo. É usado em conjunto com \"miDebuggerServerAddress\" ou seu próprio servidor com um \"customSetupCommand\" que executa \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "Args opcionais do servidor de depuração. O padrão é null.",
|
||||
"c_cpp.debuggers.serverStarted.description": "Padrão iniciado pelo servidor opcional para procurar na saída do servidor de depuração. O padrão é null.",
|
||||
"c_cpp.debuggers.filterStdout.description": "Pesquise o fluxo stdout para o padrão iniciado pelo servidor e log stdout para depurar a saída. O padrão é true.",
|
||||
@@ -425,7 +425,7 @@
|
||||
"c_cpp.walkthrough.compilers.found.description": "A extensão C++ funciona com um compilador C++. Selecione um daqueles que já estão em sua máquina clicando no botão abaixo.\n[Selecione meu Compilador Padrão](command:C_Cpp.SelectIntelliSenseConfiguration?%22walkthrough%22)",
|
||||
"c_cpp.walkthrough.compilers.found.altText": "Imagem mostrando a seleção rápida de um compilador padrão e a lista de compiladores encontrados na máquina do usuário, um dos quais está selecionado.",
|
||||
"c_cpp.walkthrough.create.cpp.file.title": "Criar um arquivo C++",
|
||||
"c_cpp.walkthrough.create.cpp.file.description": "[Abrir](command:toSide:workbench.action.files.openFile) ou [criar](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) em C++ arquivo. Certifique-se de salvá-lo com a extensão \".cpp\", como \"helloworld.cpp\". \n[Criar um arquivo C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)",
|
||||
"c_cpp.walkthrough.create.cpp.file.description": "[Abrir](command:toSide:workbench.action.files.openFile) ou [criar](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) um arquivo C++. Certifique-se de salvá-lo com a extensão \".cpp\", como \"helloworld.cpp\". \n[Criar um arquivo C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)",
|
||||
"c_cpp.walkthrough.create.cpp.file.altText": "Abra um arquivo C++ ou uma pasta com um projeto C++.",
|
||||
"c_cpp.walkthrough.command.prompt.title": "Iniciar no Developer Command Prompt for VS",
|
||||
"c_cpp.walkthrough.command.prompt.description": "Ao usar o compilador Microsoft Visual Studio C++, a extensão C++ exige que você inicie o VS Code no Developer Command Prompt for VS. Siga as instruções à direita para relançar.\n[Recarregar Janela](command:workbench.action.reloadWindow)",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"cpp.standard.description": "A versão do padrão de linguagem C++ a ser usada para o IntelliSense. Observação: os padrões GNU são usados apenas para consultar o compilador de conjunto para obter definições de GNU e o IntelliSense emulará a versão do C++ padrão equivalente.",
|
||||
"advanced.settings": "Configurações Avançadas",
|
||||
"configuration.provider": "Provedor de configuração",
|
||||
"configuration.provider.description": "A ID de uma extensão do VS Code que pode fornecer informações de configuração de IntelliSense para arquivos de origem. Por exemplo, use a ID de extensão do VS Code {0} para fornecer informações de configuração da extensão de Ferramentas CMake.",
|
||||
"configuration.provider.description": "A ID de uma extensão do VS Code que pode fornecer informações de configuração de IntelliSense para arquivos de origem. Por exemplo, use a ID de extensão do VS Code {0} para fornecer informações de configuração da extensão de CMake Tools.",
|
||||
"windows.sdk.version": "Versão do SDK do Windows",
|
||||
"windows.sdk.version.description": "A versão do caminho de inclusão SDK do Windows a ser usada no Windows, por exemplo, {0}.",
|
||||
"mac.framework.path": "Caminho da estrutura do Mac",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "Сетевой адрес сервера отладчика MI, к которому требуется подключиться (пример: localhost:1234).",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "Подключение к серверу отладчика MI в целевом расширенном удаленном режиме.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Необязательный параметр. Если задано значение `true`, отладчик должен остановиться в точке входа целевого объекта.. Если передается идентификатор процесса `processId`, этот параметр не действует.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Необязательный полный путь к запускаемому серверу отладки. Значение по умолчанию — NULL. Применяется с параметром miDebugServerAddress или с вашим собственным сервером через команду customSetupCommand, использующую -target-select remote <server:port>.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Необязательный полный путь к запускаемому серверу отладки. Значение по умолчанию — NULL. Применяется с параметром miDebuggerServerAddress или с вашим собственным сервером через команду customSetupCommand, использующую -target-select remote <server:port>.",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "Необязательные аргументы сервера отладки. Значение по умолчанию: null.",
|
||||
"c_cpp.debuggers.serverStarted.description": "Дополнительный запускаемый сервером шаблон для поиска в выходных данных сервера отладки. Значение по умолчанию: null.",
|
||||
"c_cpp.debuggers.filterStdout.description": "Поиск запущенного сервером шаблона в потоке stdout и регистрация stdout в выходных данных отладки. Значение по умолчанию: true.",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"cpp.standard.description": "Версия стандарта языка C++, используемая для IntelliSense. Примечание: стандарты GNU используются только для запроса определений GNU у установленного компилятора, а IntelliSense будет эмулировать эквивалентную версию стандарта C++.",
|
||||
"advanced.settings": "Дополнительные параметры",
|
||||
"configuration.provider": "Поставщик конфигурации",
|
||||
"configuration.provider.description": "Идентификатор расширения VS Code, которое может предоставлять сведения о конфигурации IntelliSense для исходных файлов. Например, используйте идентификатор расширения VS Code {0}, чтобы предоставить сведения о конфигурации из расширения \"Средства CMake\".",
|
||||
"configuration.provider.description": "Идентификатор расширения VS Code, которое может предоставлять сведения о конфигурации IntelliSense для исходных файлов. Например, используйте идентификатор расширения VS Code {0}, чтобы предоставить сведения о конфигурации из расширения CMake Tools.",
|
||||
"windows.sdk.version": "Версия Windows SDK",
|
||||
"windows.sdk.version.description": "Версия пути включения Windows SDK для использования в Windows, например {0}.",
|
||||
"mac.framework.path": "Путь к платформе Mac",
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "Bağlanılacak MI Hata Ayıklayıcısı Sunucusunun ağ adresi (örnek: localhost:1234).",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "Hedef genişletilmiş uzak modundayken MI Hata Ayıklayıcısı Sunucusuna bağlanın.",
|
||||
"c_cpp.debuggers.stopAtEntry.markdownDescription": "İsteğe bağlı parametre. Değeri `true` ise, hata ayıklayıcısının hedefin giriş noktasında durması gerekir. `processId` geçirilirse bunun hiçbir etkisi olmaz.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Başlatılacak sunucuda hata ayıklama için isteğe bağlı tam yol. Varsayılan değeri null. \"miDebugServerAddress\" veya kendi sunucunuzun \"-target-select remote <server:port>\" çalıştıran bir \"customSetupCommand\" ile birlikte kullanılır.",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Başlatılacak sunucuda hata ayıklama için isteğe bağlı tam yol. Varsayılan değeri null. \"miDebuggerServerAddress\" veya kendi sunucunuzun \"-target-select remote <server:port>\" çalıştıran bir \"customSetupCommand\" ile birlikte kullanılır.",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "İsteğe bağlı hata ayıklama sunucusu bağımsız değişkenleri. Varsayılan olarak şu değeri alır: null.",
|
||||
"c_cpp.debuggers.serverStarted.description": "Hata ayıklama sunucusu çıktısında aranacak, sunucu tarafından başlatılan isteğe bağlı model. Varsayılan olarak şu değeri alır: null.",
|
||||
"c_cpp.debuggers.filterStdout.description": "Sunucu tarafından başlatılan model için stdout akışını arar ve çıktıda hata ayıklamak için stdout'u günlüğe kaydeder. Varsayılan olarak şu değeri alır: true.",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"cpp.standard.description": "IntelliSense için kullanılacak C++ dil standardı sürümü. Not: GNU standartları yalnızca GNU tanımlarını almak için ayarlanan derleyiciyi sorgulamak amacıyla kullanılır ve IntelliSense, eşdeğer C++ standart sürümüne öykünür.",
|
||||
"advanced.settings": "Gelişmiş Ayarlar",
|
||||
"configuration.provider": "Yapılandırma sağlayıcısı",
|
||||
"configuration.provider.description": "Kaynak dosyalar için IntelliSense yapılandırma bilgilerini sağlayabilecek VS Code uzantısının kimliği. Örneğin, CMake Araçları uzantısındaki yapılandırma bilgilerini sağlamak için VS Code {0} uzantı kimliğini kullanın.",
|
||||
"configuration.provider.description": "Kaynak dosyalar için IntelliSense yapılandırma bilgilerini sağlayabilecek VS Code uzantısının kimliği. Örneğin, Cmake Tools uzantısındaki yapılandırma bilgilerini sağlamak için VS Code {0} uzantı kimliğini kullanın.",
|
||||
"windows.sdk.version": "Windows SDK sürümü",
|
||||
"windows.sdk.version.description": "Windows üzerinde kullanılacak Windows SDK ekleme yolu sürümü, örneğin {0}.",
|
||||
"mac.framework.path": "Mac çerçevesi yolu",
|
||||
|
||||
+9
-13
@@ -2,7 +2,7 @@
|
||||
"name": "cpptools",
|
||||
"displayName": "C/C++",
|
||||
"description": "C/C++ IntelliSense, debugging, and code browsing.",
|
||||
"version": "1.26.3-main",
|
||||
"version": "1.27.5-main",
|
||||
"publisher": "ms-vscode",
|
||||
"icon": "LanguageCCPP_color_128x.png",
|
||||
"readme": "README.md",
|
||||
@@ -4055,11 +4055,9 @@
|
||||
"default": {}
|
||||
},
|
||||
"quoteArgs": {
|
||||
"exceptions": {
|
||||
"type": "boolean",
|
||||
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
|
||||
"default": true
|
||||
}
|
||||
"type": "boolean",
|
||||
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
|
||||
"default": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -4841,11 +4839,9 @@
|
||||
"default": {}
|
||||
},
|
||||
"quoteArgs": {
|
||||
"exceptions": {
|
||||
"type": "boolean",
|
||||
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
|
||||
"default": true
|
||||
}
|
||||
"type": "boolean",
|
||||
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
|
||||
"default": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -6560,7 +6556,7 @@
|
||||
"@types/glob": "^7.2.0",
|
||||
"@types/mocha": "^10.0.6",
|
||||
"@types/node": "^20.14.2",
|
||||
"@types/node-fetch": "^2.6.11",
|
||||
"@types/node-fetch": "^2.6.13",
|
||||
"@types/plist": "^3.0.5",
|
||||
"@types/proxyquire": "^1.3.31",
|
||||
"@types/semver": "^7.5.8",
|
||||
@@ -6618,7 +6614,7 @@
|
||||
"posix-getopt": "^1.2.1",
|
||||
"shell-quote": "^1.8.1",
|
||||
"ssh-config": "^4.4.4",
|
||||
"tmp": "^0.2.3",
|
||||
"tmp": "^0.2.4",
|
||||
"vscode-cpptools": "^7.1.1",
|
||||
"vscode-languageclient": "^8.1.0",
|
||||
"vscode-nls": "^5.2.0",
|
||||
|
||||
@@ -895,7 +895,7 @@
|
||||
"{Locked=\"`true`\"} {Locked=\"`processId`\"}"
|
||||
]
|
||||
},
|
||||
"c_cpp.debuggers.debugServerPath.description": "Optional full path to the debug server to launch. Defaults to null. It is used in conjunction with either \"miDebugServerAddress\" or your own server with a \"customSetupCommand\" that runs \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerPath.description": "Optional full path to the debug server to launch. Defaults to null. It is used in conjunction with either \"miDebuggerServerAddress\" or your own server with a \"customSetupCommand\" that runs \"-target-select remote <server:port>\".",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "Optional debug server args. Defaults to null.",
|
||||
"c_cpp.debuggers.serverStarted.description": "Optional server-started pattern to look for in the debug server output. Defaults to null.",
|
||||
"c_cpp.debuggers.filterStdout.description": "Search stdout stream for server-started pattern and log stdout to debug output. Defaults to true.",
|
||||
@@ -1084,4 +1084,4 @@
|
||||
"c_cpp.configuration.refactoring.includeHeader.never.description": "Never include the header file.",
|
||||
"c_cpp.languageModelTools.configuration.displayName": "C/C++ configuration",
|
||||
"c_cpp.languageModelTools.configuration.userDescription": "Configuration of the active C or C++ file, like language standard version and target platform."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,10 @@ export class RemoteAttachPicker {
|
||||
|
||||
const pipeCmd: string = `"${pipeProgram}" ${argList}`;
|
||||
|
||||
processes = await this.getRemoteOSAndProcesses(pipeCmd);
|
||||
// If unspecified quoteArgs defaults to true.
|
||||
const quoteArgs: boolean = pipeTransport.quoteArgs ?? true;
|
||||
|
||||
processes = await this.getRemoteOSAndProcesses(pipeCmd, quoteArgs);
|
||||
} else if (!pipeTransport && useExtendedRemote) {
|
||||
if (!miDebuggerPath || !miDebuggerServerAddress) {
|
||||
throw new Error(localize("debugger.path.and.server.address.required", "{0} in debug configuration requires {1} and {2}", "useExtendedRemote", "miDebuggerPath", "miDebuggerServerAddress"));
|
||||
@@ -106,7 +109,7 @@ export class RemoteAttachPicker {
|
||||
}
|
||||
|
||||
// Creates a string to run on the host machine which will execute a shell script on the remote machine to retrieve OS and processes
|
||||
private getRemoteProcessCommand(): string {
|
||||
private getRemoteProcessCommand(quoteArgs: boolean): string {
|
||||
let innerQuote: string = `'`;
|
||||
let outerQuote: string = `"`;
|
||||
let parameterBegin: string = `$(`;
|
||||
@@ -127,6 +130,12 @@ export class RemoteAttachPicker {
|
||||
innerQuote = `"`;
|
||||
outerQuote = `'`;
|
||||
}
|
||||
|
||||
// If the pipeTransport settings indicate "quoteArgs": "false", we need to skip the outer quotes.
|
||||
if (!quoteArgs) {
|
||||
outerQuote = ``;
|
||||
}
|
||||
|
||||
// Also use a full path on Linux, so that we can use transports that need a full path such as 'machinectl' to connect to nspawn containers.
|
||||
if (os.platform() === "linux") {
|
||||
shPrefix = `/bin/`;
|
||||
@@ -138,9 +147,9 @@ export class RemoteAttachPicker {
|
||||
`then ${PsProcessParser.psDarwinCommand}; fi${innerQuote}${outerQuote}`;
|
||||
}
|
||||
|
||||
private async getRemoteOSAndProcesses(pipeCmd: string): Promise<AttachItem[]> {
|
||||
private async getRemoteOSAndProcesses(pipeCmd: string, quoteArgs: boolean): Promise<AttachItem[]> {
|
||||
// Do not add any quoting in execCommand.
|
||||
const execCommand: string = `${pipeCmd} ${this.getRemoteProcessCommand()}`;
|
||||
const execCommand: string = `${pipeCmd} ${this.getRemoteProcessCommand(quoteArgs)}`;
|
||||
|
||||
const output: string = await util.execChildProcess(execCommand, undefined, this._channel);
|
||||
// OS will be on first line
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
import * as vscode from 'vscode';
|
||||
import { Position, ResponseError } from 'vscode-languageclient';
|
||||
import * as nls from 'vscode-nls';
|
||||
import { getVSCodeLanguageModel } from '../../common';
|
||||
import { modelSelector } from '../../constants';
|
||||
import * as telemetry from '../../telemetry';
|
||||
import { DefaultClient, GetCopilotHoverInfoParams, GetCopilotHoverInfoRequest, GetCopilotHoverInfoResult } from '../client';
|
||||
@@ -42,7 +43,7 @@ export class CopilotHoverProvider implements vscode.HoverProvider {
|
||||
}
|
||||
|
||||
// Ensure the user has access to Copilot.
|
||||
const vscodelm = (vscode as any).lm;
|
||||
const vscodelm = getVSCodeLanguageModel();
|
||||
if (vscodelm) {
|
||||
const [model] = await vscodelm.selectChatModels(modelSelector);
|
||||
if (!model) {
|
||||
|
||||
@@ -59,7 +59,7 @@ import { CopilotCompletionContextFeatures, CopilotCompletionContextProvider } fr
|
||||
import { CustomConfigurationProvider1, getCustomConfigProviders, isSameProviderExtensionId } from './customProviders';
|
||||
import { DataBinding } from './dataBinding';
|
||||
import { cachedEditorConfigSettings, getEditorConfigSettings } from './editorConfig';
|
||||
import { CppSourceStr, clients, configPrefix, initializeIntervalTimer, updateLanguageConfigurations, usesCrashHandler, watchForCrashes } from './extension';
|
||||
import { CppSourceStr, clients, configPrefix, initializeIntervalTimer, isWritingCrashCallStack, updateLanguageConfigurations, usesCrashHandler, watchForCrashes } from './extension';
|
||||
import { LocalizeStringParams, getLocaleId, getLocalizedString } from './localization';
|
||||
import { PersistentFolderState, PersistentState, PersistentWorkspaceState } from './persistentState';
|
||||
import { RequestCancelled, ServerCancelled, createProtocolFilter } from './protocolFilter';
|
||||
@@ -517,10 +517,15 @@ interface TagParseStatus {
|
||||
isPaused: boolean;
|
||||
}
|
||||
|
||||
interface VisibleEditorInfo {
|
||||
visibleRanges: Range[];
|
||||
originalEncoding: string;
|
||||
}
|
||||
|
||||
interface DidChangeVisibleTextEditorsParams {
|
||||
activeUri?: string;
|
||||
activeSelection?: Range;
|
||||
visibleRanges?: { [uri: string]: Range[] };
|
||||
visibleEditorInfo?: { [uri: string]: VisibleEditorInfo };
|
||||
}
|
||||
|
||||
interface DidChangeTextEditorVisibleRangesParams {
|
||||
@@ -590,6 +595,11 @@ export interface CopilotCompletionContextParams {
|
||||
doAggregateSnippets: boolean;
|
||||
}
|
||||
|
||||
export interface SetOpenFileOriginalEncodingParams {
|
||||
uri: string;
|
||||
originalEncoding: string;
|
||||
}
|
||||
|
||||
// Requests
|
||||
const PreInitializationRequest: RequestType<void, string, void> = new RequestType<void, string, void>('cpptools/preinitialize');
|
||||
const InitializationRequest: RequestType<CppInitializationParams, CppInitializationResult, void> = new RequestType<CppInitializationParams, CppInitializationResult, void>('cpptools/initialize');
|
||||
@@ -638,6 +648,7 @@ const FinishedRequestCustomConfig: NotificationType<FinishedRequestCustomConfigP
|
||||
const DidChangeSettingsNotification: NotificationType<SettingsParams> = new NotificationType<SettingsParams>('cpptools/didChangeSettings');
|
||||
const DidChangeVisibleTextEditorsNotification: NotificationType<DidChangeVisibleTextEditorsParams> = new NotificationType<DidChangeVisibleTextEditorsParams>('cpptools/didChangeVisibleTextEditors');
|
||||
const DidChangeTextEditorVisibleRangesNotification: NotificationType<DidChangeTextEditorVisibleRangesParams> = new NotificationType<DidChangeTextEditorVisibleRangesParams>('cpptools/didChangeTextEditorVisibleRanges');
|
||||
const SetOpenFileOriginalEncodingNotification: NotificationType<SetOpenFileOriginalEncodingParams> = new NotificationType<SetOpenFileOriginalEncodingParams>('cpptools/setOpenFileOriginalEncoding');
|
||||
|
||||
const CodeAnalysisNotification: NotificationType<CodeAnalysisParams> = new NotificationType<CodeAnalysisParams>('cpptools/runCodeAnalysis');
|
||||
const PauseCodeAnalysisNotification: NotificationType<void> = new NotificationType<void>('cpptools/pauseCodeAnalysis');
|
||||
@@ -942,6 +953,8 @@ export class DefaultClient implements Client {
|
||||
public getShowConfigureIntelliSenseButton(): boolean { return this.showConfigureIntelliSenseButton; }
|
||||
public setShowConfigureIntelliSenseButton(show: boolean): void { this.showConfigureIntelliSenseButton = show; }
|
||||
|
||||
private lastInvokedLspMessage: string = ""; // e.g. cpptools/hover
|
||||
|
||||
/**
|
||||
* don't use this.rootFolder directly since it can be undefined
|
||||
*/
|
||||
@@ -1677,7 +1690,6 @@ export class DefaultClient implements Client {
|
||||
closed: () => {
|
||||
languageClientCrashTimes.push(Date.now());
|
||||
languageClientCrashedNeedsRestart = true;
|
||||
telemetry.logLanguageServerEvent("languageClientCrash");
|
||||
let restart: boolean = true;
|
||||
if (languageClientCrashTimes.length < 5) {
|
||||
void clients.recreateClients();
|
||||
@@ -1691,6 +1703,27 @@ export class DefaultClient implements Client {
|
||||
void clients.recreateClients();
|
||||
}
|
||||
}
|
||||
|
||||
// Wait 1 second to allow time for the file watcher to signal a crash call stack write has occurred.
|
||||
setTimeout(() => {
|
||||
const sanitizedLspMessage = this.lastInvokedLspMessage.replace('/', '.');
|
||||
telemetry.logLanguageServerEvent("languageClientCrash",
|
||||
{
|
||||
lastInvokedLspMessage: sanitizedLspMessage
|
||||
},
|
||||
{
|
||||
restarting: Number(restart),
|
||||
writingCrashCallStack: Number(isWritingCrashCallStack),
|
||||
initializingWorkspace: Number(this.model.isInitializingWorkspace.Value),
|
||||
indexingWorkspace: Number(this.model.isIndexingWorkspace.Value),
|
||||
parsingWorkspace: Number(this.model.isParsingWorkspace.Value),
|
||||
parsingFiles: Number(this.model.isParsingFiles.Value),
|
||||
updatingIntelliSense: Number(this.model.isUpdatingIntelliSense.Value),
|
||||
runningCodeAnalysis: Number(this.model.isRunningCodeAnalysis.Value)
|
||||
}
|
||||
);
|
||||
}, 1000);
|
||||
|
||||
const message: string = restart ? localize('server.crashed.restart', 'The language server crashed. Restarting...')
|
||||
: localize('server.crashed2', 'The language server crashed 5 times in the last 3 minutes. It will not be restarted.');
|
||||
|
||||
@@ -1712,7 +1745,7 @@ export class DefaultClient implements Client {
|
||||
languageClient = new LanguageClient(`cpptools`, serverOptions, clientOptions);
|
||||
languageClient.onNotification(DebugProtocolNotification, logDebugProtocol);
|
||||
languageClient.onNotification(DebugLogNotification, logLocalized);
|
||||
languageClient.onNotification(LogTelemetryNotification, (e) => this.logTelemetry(e));
|
||||
languageClient.onNotification(LogTelemetryNotification, (e) => void this.logTelemetry(e));
|
||||
languageClient.onNotification(ShowMessageWindowNotification, showMessageWindow);
|
||||
languageClient.registerProposedFeatures();
|
||||
await languageClient.start();
|
||||
@@ -1819,32 +1852,35 @@ export class DefaultClient implements Client {
|
||||
return changedSettings;
|
||||
}
|
||||
|
||||
private prepareVisibleRanges(editors: readonly vscode.TextEditor[]): { [uri: string]: Range[] } {
|
||||
const visibleRanges: { [uri: string]: Range[] } = {};
|
||||
private prepareVisibleEditorInfo(editors: readonly vscode.TextEditor[]): { [uri: string]: VisibleEditorInfo } {
|
||||
const visibileEditorInfo: { [uri: string]: VisibleEditorInfo } = {};
|
||||
editors.forEach(editor => {
|
||||
// Use a map, to account for multiple editors for the same file.
|
||||
// First, we just concat all ranges for the same file.
|
||||
const uri: string = editor.document.uri.toString();
|
||||
if (!visibleRanges[uri]) {
|
||||
visibleRanges[uri] = [];
|
||||
if (!visibileEditorInfo[uri]) {
|
||||
visibileEditorInfo[uri] = {
|
||||
visibleRanges: [],
|
||||
originalEncoding: editor.document.encoding
|
||||
};
|
||||
}
|
||||
visibleRanges[uri] = visibleRanges[uri].concat(editor.visibleRanges.map(makeLspRange));
|
||||
visibileEditorInfo[uri].visibleRanges = visibileEditorInfo[uri].visibleRanges.concat(editor.visibleRanges.map(makeLspRange));
|
||||
});
|
||||
|
||||
// We may need to merge visible ranges, if there are multiple editors for the same file,
|
||||
// and some of the ranges overlap.
|
||||
Object.keys(visibleRanges).forEach(uri => {
|
||||
visibleRanges[uri] = util.mergeOverlappingRanges(visibleRanges[uri]);
|
||||
Object.keys(visibileEditorInfo).forEach(uri => {
|
||||
visibileEditorInfo[uri].visibleRanges = util.mergeOverlappingRanges(visibileEditorInfo[uri].visibleRanges);
|
||||
});
|
||||
|
||||
return visibleRanges;
|
||||
return visibileEditorInfo;
|
||||
}
|
||||
|
||||
// Handles changes to visible files/ranges, changes to current selection/position,
|
||||
// and changes to the active text editor. Should only be called on the primary client.
|
||||
public async onDidChangeVisibleTextEditors(editors: readonly vscode.TextEditor[]): Promise<void> {
|
||||
const params: DidChangeVisibleTextEditorsParams = {
|
||||
visibleRanges: this.prepareVisibleRanges(editors)
|
||||
visibleEditorInfo: this.prepareVisibleEditorInfo(editors)
|
||||
};
|
||||
if (vscode.window.activeTextEditor) {
|
||||
if (util.isCpp(vscode.window.activeTextEditor.document)) {
|
||||
@@ -2248,9 +2284,12 @@ export class DefaultClient implements Client {
|
||||
message += ` (${err})`;
|
||||
}
|
||||
|
||||
if (await vscode.window.showInformationMessage(message, dismiss, disable) === disable) {
|
||||
settings.toggleSetting("configurationWarnings", "enabled", "disabled");
|
||||
}
|
||||
// Do not await here, as that would prevent the function from returning until the user dismisses the message.
|
||||
void vscode.window.showInformationMessage(message, dismiss, disable).then(result => {
|
||||
if (result === disable) {
|
||||
settings.toggleSetting("configurationWarnings", "enabled", "disabled");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return result;
|
||||
@@ -2335,10 +2374,17 @@ export class DefaultClient implements Client {
|
||||
text: document.getText()
|
||||
}
|
||||
};
|
||||
await this.ready;
|
||||
await this.languageClient.sendNotification(DidOpenNotification, params);
|
||||
}
|
||||
|
||||
public async sendOpenFileOriginalEncoding(document: vscode.TextDocument): Promise<void> {
|
||||
const params: SetOpenFileOriginalEncodingParams = {
|
||||
uri: document.uri.toString(),
|
||||
originalEncoding: document.encoding
|
||||
};
|
||||
await this.languageClient.sendNotification(SetOpenFileOriginalEncodingNotification, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Copilot completion-related requests (e.g. getIncludes and getProjectContext) will have their cancellation tokens cancelled
|
||||
* if the current request times out (showing the user completion results without context info),
|
||||
@@ -2634,7 +2680,7 @@ export class DefaultClient implements Client {
|
||||
});
|
||||
|
||||
// TODO: Handle new associations without a reload.
|
||||
this.associations_for_did_change = new Set<string>(["cu", "cuh", "c", "i", "cpp", "cc", "cxx", "c++", "cp", "hpp", "hh", "hxx", "h++", "hp", "h", "ii", "ino", "inl", "ipp", "tcc", "idl"]);
|
||||
this.associations_for_did_change = new Set<string>(["cu", "cuh", "c", "i", "cpp", "cc", "cxx", "c++", "cp", "hpp", "hh", "hxx", "h++", "hp", "h", "ii", "ino", "inl", "ipp", "tcc", "txx", "tpp", "idl"]);
|
||||
const assocs: any = new OtherSettings().filesAssociations;
|
||||
for (const assoc in assocs) {
|
||||
const dotIndex: number = assoc.lastIndexOf('.');
|
||||
@@ -2736,10 +2782,38 @@ export class DefaultClient implements Client {
|
||||
}
|
||||
}
|
||||
|
||||
private logTelemetry(notificationBody: TelemetryPayload): void {
|
||||
private excessiveFilesWarningShown: boolean = false;
|
||||
private async logTelemetry(notificationBody: TelemetryPayload): Promise<void> {
|
||||
if (notificationBody.event === "includeSquiggles" && this.configurationProvider && notificationBody.properties) {
|
||||
notificationBody.properties["providerId"] = this.configurationProvider;
|
||||
}
|
||||
|
||||
const showExcessiveFilesWarning = new PersistentWorkspaceState<boolean>('CPP.showExcessiveFilesWarning', true);
|
||||
if (!this.excessiveFilesWarningShown && showExcessiveFilesWarning.Value && notificationBody.event === 'ParsingStats') {
|
||||
const filesDiscovered = notificationBody.metrics?.filesDiscovered ?? 0;
|
||||
const parsableFiles = notificationBody.metrics?.parsableFiles ?? 0;
|
||||
if (filesDiscovered > 250000 || parsableFiles > 100000) {
|
||||
// According to telemetry, less than 3% of workspaces have this many files so it seems like a reasonable threshold.
|
||||
|
||||
const message = localize(
|
||||
"parsing.stats.large.project",
|
||||
'Enumerated {0} files with {1} C/C++ source files detected. You may want to consider excluding some files for better performance.',
|
||||
filesDiscovered,
|
||||
parsableFiles);
|
||||
const learnMore = localize('learn.more', 'Learn More');
|
||||
const dontShowAgain = localize('dont.show.again', 'Don\'t Show Again');
|
||||
|
||||
// We only want to show this once per session.
|
||||
this.excessiveFilesWarningShown = true;
|
||||
const response = await vscode.window.showInformationMessage(message, learnMore, dontShowAgain);
|
||||
|
||||
if (response === dontShowAgain) {
|
||||
showExcessiveFilesWarning.Value = false;
|
||||
} else if (response === learnMore) {
|
||||
void vscode.commands.executeCommand('vscode.open', vscode.Uri.parse('https://go.microsoft.com/fwlink/?linkid=2333292'));
|
||||
}
|
||||
}
|
||||
}
|
||||
telemetry.logLanguageServerEvent(notificationBody.event, notificationBody.properties, notificationBody.metrics);
|
||||
}
|
||||
|
||||
@@ -2747,55 +2821,59 @@ export class DefaultClient implements Client {
|
||||
const message: string = notificationBody.status;
|
||||
util.setProgress(util.getProgressExecutableSuccess());
|
||||
const testHook: TestHook = getTestHook();
|
||||
if (message.endsWith("Idle")) {
|
||||
const status: IntelliSenseStatus = { status: Status.Idle };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("Parsing")) {
|
||||
this.model.isParsingWorkspace.Value = true;
|
||||
this.model.isInitializingWorkspace.Value = false;
|
||||
this.model.isIndexingWorkspace.Value = false;
|
||||
const status: IntelliSenseStatus = { status: Status.TagParsingBegun };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("Initializing")) {
|
||||
this.model.isInitializingWorkspace.Value = true;
|
||||
this.model.isIndexingWorkspace.Value = false;
|
||||
this.model.isParsingWorkspace.Value = false;
|
||||
} else if (message.endsWith("Indexing")) {
|
||||
this.model.isIndexingWorkspace.Value = true;
|
||||
this.model.isInitializingWorkspace.Value = false;
|
||||
this.model.isParsingWorkspace.Value = false;
|
||||
} else if (message.endsWith("files")) {
|
||||
this.model.isParsingFiles.Value = true;
|
||||
} else if (message.endsWith("IntelliSense")) {
|
||||
timeStamp = Date.now();
|
||||
this.model.isUpdatingIntelliSense.Value = true;
|
||||
const status: IntelliSenseStatus = { status: Status.IntelliSenseCompiling };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("IntelliSense done")) {
|
||||
getOutputChannelLogger().appendLineAtLevel(6, localize("update.intellisense.time", "Update IntelliSense time (sec): {0}", (Date.now() - timeStamp) / 1000));
|
||||
this.model.isUpdatingIntelliSense.Value = false;
|
||||
const status: IntelliSenseStatus = { status: Status.IntelliSenseReady };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("Parsing done")) { // Tag Parser Ready
|
||||
this.model.isParsingWorkspace.Value = false;
|
||||
const status: IntelliSenseStatus = { status: Status.TagParsingDone };
|
||||
testHook.updateStatus(status);
|
||||
util.setProgress(util.getProgressParseRootSuccess());
|
||||
} else if (message.endsWith("files done")) {
|
||||
this.model.isParsingFiles.Value = false;
|
||||
} else if (message.endsWith("Analysis")) {
|
||||
this.model.isRunningCodeAnalysis.Value = true;
|
||||
this.model.codeAnalysisTotal.Value = 1;
|
||||
this.model.codeAnalysisProcessed.Value = 0;
|
||||
} else if (message.endsWith("Analysis done")) {
|
||||
this.model.isRunningCodeAnalysis.Value = false;
|
||||
} else if (message.includes("Squiggles Finished - File name:")) {
|
||||
const index: number = message.lastIndexOf(":");
|
||||
const name: string = message.substring(index + 2);
|
||||
const status: IntelliSenseStatus = { status: Status.IntelliSenseReady, filename: name };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("No Squiggles")) {
|
||||
util.setIntelliSenseProgress(util.getProgressIntelliSenseNoSquiggles());
|
||||
if (message.startsWith("C_Cpp: ")) {
|
||||
if (message.endsWith("Idle")) {
|
||||
const status: IntelliSenseStatus = { status: Status.Idle };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("Parsing")) {
|
||||
this.model.isParsingWorkspace.Value = true;
|
||||
this.model.isInitializingWorkspace.Value = false;
|
||||
this.model.isIndexingWorkspace.Value = false;
|
||||
const status: IntelliSenseStatus = { status: Status.TagParsingBegun };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("Initializing")) {
|
||||
this.model.isInitializingWorkspace.Value = true;
|
||||
this.model.isIndexingWorkspace.Value = false;
|
||||
this.model.isParsingWorkspace.Value = false;
|
||||
} else if (message.endsWith("Indexing")) {
|
||||
this.model.isIndexingWorkspace.Value = true;
|
||||
this.model.isInitializingWorkspace.Value = false;
|
||||
this.model.isParsingWorkspace.Value = false;
|
||||
} else if (message.endsWith("files")) {
|
||||
this.model.isParsingFiles.Value = true;
|
||||
} else if (message.endsWith("IntelliSense")) {
|
||||
timeStamp = Date.now();
|
||||
this.model.isUpdatingIntelliSense.Value = true;
|
||||
const status: IntelliSenseStatus = { status: Status.IntelliSenseCompiling };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("IntelliSense done")) {
|
||||
getOutputChannelLogger().appendLineAtLevel(6, localize("update.intellisense.time", "Update IntelliSense time (sec): {0}", (Date.now() - timeStamp) / 1000));
|
||||
this.model.isUpdatingIntelliSense.Value = false;
|
||||
const status: IntelliSenseStatus = { status: Status.IntelliSenseReady };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("Parsing done")) { // Tag Parser Ready
|
||||
this.model.isParsingWorkspace.Value = false;
|
||||
const status: IntelliSenseStatus = { status: Status.TagParsingDone };
|
||||
testHook.updateStatus(status);
|
||||
util.setProgress(util.getProgressParseRootSuccess());
|
||||
} else if (message.endsWith("files done")) {
|
||||
this.model.isParsingFiles.Value = false;
|
||||
} else if (message.endsWith("Analysis")) {
|
||||
this.model.isRunningCodeAnalysis.Value = true;
|
||||
this.model.codeAnalysisTotal.Value = 1;
|
||||
this.model.codeAnalysisProcessed.Value = 0;
|
||||
} else if (message.endsWith("Analysis done")) {
|
||||
this.model.isRunningCodeAnalysis.Value = false;
|
||||
} else if (message.includes("Squiggles Finished - File name:")) {
|
||||
const index: number = message.lastIndexOf(":");
|
||||
const name: string = message.substring(index + 2);
|
||||
const status: IntelliSenseStatus = { status: Status.IntelliSenseReady, filename: name };
|
||||
testHook.updateStatus(status);
|
||||
} else if (message.endsWith("No Squiggles")) {
|
||||
util.setIntelliSenseProgress(util.getProgressIntelliSenseNoSquiggles());
|
||||
}
|
||||
} else if (message.includes("/")) {
|
||||
this.lastInvokedLspMessage = message;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -121,6 +121,7 @@ export class ClientCollection {
|
||||
const client: cpptools.Client = pair[1];
|
||||
|
||||
const newClient: cpptools.Client = this.createClient(client.RootFolder, true);
|
||||
await newClient.ready;
|
||||
for (const document of client.TrackedDocuments.values()) {
|
||||
this.transferOwnership(document, client);
|
||||
await newClient.sendDidOpen(document);
|
||||
|
||||
@@ -24,6 +24,7 @@ import { PersistentFolderState } from './persistentState';
|
||||
import { CppSettings, OtherSettings } from './settings';
|
||||
import { SettingsPanel } from './settingsPanel';
|
||||
import { ConfigurationType, getUI } from './ui';
|
||||
import { Deferral } from './utils';
|
||||
import escapeStringRegExp = require('escape-string-regexp');
|
||||
|
||||
nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })();
|
||||
@@ -152,7 +153,6 @@ export class CppProperties {
|
||||
private defaultCStandard: string | null = null;
|
||||
private defaultCppStandard: string | null = null;
|
||||
private defaultWindowsSdkVersion: string | null = null;
|
||||
private isCppPropertiesJsonVisible: boolean = false;
|
||||
private vcpkgIncludes: string[] = [];
|
||||
private vcpkgPathReady: boolean = false;
|
||||
private nodeAddonIncludes: string[] = [];
|
||||
@@ -250,7 +250,6 @@ export class CppProperties {
|
||||
}
|
||||
|
||||
public setupConfigurations(): void {
|
||||
|
||||
// defaultPaths is only used when there isn't a c_cpp_properties.json, but we don't send the configuration changed event
|
||||
// to the language server until the default include paths and frameworks have been sent.
|
||||
|
||||
@@ -280,21 +279,21 @@ export class CppProperties {
|
||||
});
|
||||
|
||||
vscode.workspace.onDidChangeTextDocument((e) => {
|
||||
if (e.document.uri.fsPath === settingsPath && this.isCppPropertiesJsonVisible) {
|
||||
void this.handleSquiggles().catch(logAndReturn.undefined);
|
||||
if (e.document.uri.fsPath === settingsPath) {
|
||||
this.handleSquiggles(e.document);
|
||||
}
|
||||
});
|
||||
|
||||
vscode.window.onDidChangeVisibleTextEditors((editors) => {
|
||||
const wasVisible: boolean = this.isCppPropertiesJsonVisible;
|
||||
editors.forEach(editor => {
|
||||
if (editor.document.uri.fsPath === settingsPath) {
|
||||
this.isCppPropertiesJsonVisible = true;
|
||||
if (!wasVisible) {
|
||||
void this.handleSquiggles().catch(logAndReturn.undefined);
|
||||
}
|
||||
}
|
||||
});
|
||||
vscode.workspace.onDidOpenTextDocument(document => {
|
||||
if (document.uri.fsPath === settingsPath) {
|
||||
this.handleSquiggles();
|
||||
}
|
||||
});
|
||||
|
||||
vscode.workspace.onDidCloseTextDocument(document => {
|
||||
if (document.uri.fsPath === settingsPath) {
|
||||
this.diagnosticCollection.clear();
|
||||
}
|
||||
});
|
||||
|
||||
vscode.workspace.onDidSaveTextDocument((doc: vscode.TextDocument) => {
|
||||
@@ -331,6 +330,7 @@ export class CppProperties {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public set CompilerDefaults(compilerDefaults: CompilerDefaults) {
|
||||
this.defaultCompilerPath = compilerDefaults.trustedCompilerFound ? compilerDefaults.compilerPath : null;
|
||||
this.knownCompilers = compilerDefaults.knownCompilers;
|
||||
@@ -353,7 +353,7 @@ export class CppProperties {
|
||||
|
||||
private onSelectionChanged(): void {
|
||||
this.selectionChanged.fire(this.CurrentConfigurationIndex);
|
||||
void this.handleSquiggles().catch(logAndReturn.undefined);
|
||||
this.handleSquiggles();
|
||||
}
|
||||
|
||||
private onCompileCommandsChanged(path: string): void {
|
||||
@@ -493,9 +493,10 @@ export class CppProperties {
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (error) { /*ignore*/ } finally {
|
||||
} catch (error) {
|
||||
/*ignore*/
|
||||
} finally {
|
||||
this.vcpkgPathReady = true;
|
||||
this.handleConfigurationChange();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -795,7 +796,7 @@ export class CppProperties {
|
||||
return result;
|
||||
}
|
||||
|
||||
private resolveAndSplit(paths: string[] | undefined, defaultValue: string[] | undefined, env: Environment, assumeRelative: boolean = true, glob: boolean = false): string[] {
|
||||
private async resolveAndSplit(paths: string[] | undefined, defaultValue: string[] | undefined, env: Environment, assumeRelative: boolean = true, glob: boolean = false): Promise<string[]> {
|
||||
const resolvedVariables: string[] = [];
|
||||
if (paths === undefined) {
|
||||
return resolvedVariables;
|
||||
@@ -846,7 +847,7 @@ export class CppProperties {
|
||||
if (isGlobPattern) {
|
||||
// fastGlob silently strips non-found paths. Limit that behavior to dynamic paths only.
|
||||
const matches: string[] = fastGlob.isDynamicPattern(normalized) ?
|
||||
fastGlob.sync(normalized, { onlyDirectories: true, cwd, suppressErrors: true, deep: 15 }) : [res];
|
||||
await fastGlob.async(normalized, { onlyDirectories: true, cwd, suppressErrors: true, deep: 15 }) : [res];
|
||||
resolvedGlob.push(...matches.map(s => s + suffix));
|
||||
if (resolvedGlob.length === 0) {
|
||||
resolvedGlob.push(normalized);
|
||||
@@ -881,14 +882,14 @@ export class CppProperties {
|
||||
return property;
|
||||
}
|
||||
|
||||
private updateConfigurationPathsArray(paths: string[] | undefined, defaultValue: string[] | undefined, env: Environment, assumeRelative: boolean = true): string[] | undefined {
|
||||
private updateConfigurationPathsArray(paths: string[] | undefined, defaultValue: string[] | undefined, env: Environment, assumeRelative: boolean = true): Promise<string[] | undefined> {
|
||||
if (paths) {
|
||||
return this.resolveAndSplit(paths, defaultValue, env, assumeRelative, true);
|
||||
}
|
||||
if (!paths && defaultValue) {
|
||||
if (defaultValue) {
|
||||
return this.resolveAndSplit(defaultValue, [], env, assumeRelative, true);
|
||||
}
|
||||
return paths;
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
|
||||
private updateConfigurationBoolean(property: boolean | string | undefined | null, defaultValue: boolean | undefined | null): boolean | undefined {
|
||||
@@ -933,7 +934,7 @@ export class CppProperties {
|
||||
return this.configProviderAutoSelected;
|
||||
}
|
||||
|
||||
private updateServerOnFolderSettingsChange(): void {
|
||||
private async updateServerOnFolderSettingsChange(): Promise<void> {
|
||||
this.configProviderAutoSelected = false;
|
||||
if (!this.configurationJson) {
|
||||
return;
|
||||
@@ -946,7 +947,7 @@ export class CppProperties {
|
||||
configuration.compilerPathInCppPropertiesJson = configuration.compilerPath;
|
||||
configuration.compileCommandsInCppPropertiesJson = configuration.compileCommands;
|
||||
configuration.configurationProviderInCppPropertiesJson = configuration.configurationProvider;
|
||||
configuration.includePath = this.updateConfigurationPathsArray(configuration.includePath, settings.defaultIncludePath, env);
|
||||
configuration.includePath = await this.updateConfigurationPathsArray(configuration.includePath, settings.defaultIncludePath, env);
|
||||
// in case includePath is reset below
|
||||
const origIncludePath: string[] | undefined = configuration.includePath;
|
||||
if (userSettings.addNodeAddonIncludePaths) {
|
||||
@@ -964,7 +965,7 @@ export class CppProperties {
|
||||
|
||||
configuration.macFrameworkPath = this.updateConfigurationStringArray(configuration.macFrameworkPath, settings.defaultMacFrameworkPath, env);
|
||||
configuration.windowsSdkVersion = this.updateConfigurationString(configuration.windowsSdkVersion, settings.defaultWindowsSdkVersion, env);
|
||||
configuration.forcedInclude = this.updateConfigurationPathsArray(configuration.forcedInclude, settings.defaultForcedInclude, env, false);
|
||||
configuration.forcedInclude = await this.updateConfigurationPathsArray(configuration.forcedInclude, settings.defaultForcedInclude, env, false);
|
||||
configuration.compileCommands = this.updateConfigurationStringArray(configuration.compileCommands, settings.defaultCompileCommands, env);
|
||||
configuration.compilerArgs = this.updateConfigurationStringArray(configuration.compilerArgs, settings.defaultCompilerArgs, env);
|
||||
configuration.cStandard = this.updateConfigurationString(configuration.cStandard, settings.defaultCStandard, env);
|
||||
@@ -1042,7 +1043,7 @@ export class CppProperties {
|
||||
// Otherwise, if the browse path is not set, let the native process populate it
|
||||
// with include paths, including any parsed from compilerArgs.
|
||||
} else {
|
||||
configuration.browse.path = this.updateConfigurationPathsArray(configuration.browse.path, settings.defaultBrowsePath, env);
|
||||
configuration.browse.path = await this.updateConfigurationPathsArray(configuration.browse.path, settings.defaultBrowsePath, env);
|
||||
}
|
||||
|
||||
configuration.browse.limitSymbolsToIncludedHeaders = this.updateConfigurationBoolean(configuration.browse.limitSymbolsToIncludedHeaders, settings.defaultLimitSymbolsToIncludedHeaders);
|
||||
@@ -1261,7 +1262,7 @@ export class CppProperties {
|
||||
this.settingsPanel.selectedConfigIndex = this.CurrentConfigurationIndex;
|
||||
this.settingsPanel.createOrShow(configNames,
|
||||
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex],
|
||||
this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex),
|
||||
await this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex),
|
||||
viewColumn);
|
||||
}
|
||||
}
|
||||
@@ -1292,7 +1293,7 @@ export class CppProperties {
|
||||
}
|
||||
this.settingsPanel.updateConfigUI(configNames,
|
||||
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex],
|
||||
this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
|
||||
await this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
|
||||
} else {
|
||||
// Parse failed, open json file
|
||||
void vscode.workspace.openTextDocument(this.propertiesFile).then(undefined, logAndReturn.undefined);
|
||||
@@ -1321,13 +1322,13 @@ export class CppProperties {
|
||||
return trimmedPaths;
|
||||
}
|
||||
|
||||
private saveConfigurationUI(): void {
|
||||
private async saveConfigurationUI(): Promise<void> {
|
||||
this.parsePropertiesFile(); // Clear out any modifications we may have made internally.
|
||||
if (this.settingsPanel && this.configurationJson) {
|
||||
const config: Configuration = this.settingsPanel.getLastValuesFromConfigUI();
|
||||
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex] = config;
|
||||
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex].includePath = this.trimPathWhitespace(this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex].includePath);
|
||||
this.settingsPanel.updateErrors(this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
|
||||
this.settingsPanel.updateErrors(await this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
|
||||
this.writeToJson();
|
||||
}
|
||||
// Any time parsePropertiesFile is called, configurationJson gets
|
||||
@@ -1335,12 +1336,12 @@ export class CppProperties {
|
||||
this.handleConfigurationChange();
|
||||
}
|
||||
|
||||
private onConfigSelectionChanged(): void {
|
||||
private async onConfigSelectionChanged(): Promise<void> {
|
||||
const configNames: string[] | undefined = this.ConfigurationNames;
|
||||
if (configNames && this.settingsPanel && this.configurationJson) {
|
||||
this.settingsPanel.updateConfigUI(configNames,
|
||||
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex],
|
||||
this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
|
||||
await this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1393,7 +1394,9 @@ export class CppProperties {
|
||||
}
|
||||
|
||||
void this.applyDefaultIncludePathsAndFrameworks().catch(logAndReturn.undefined);
|
||||
this.updateServerOnFolderSettingsChange();
|
||||
void this.timeOperation(() => this.updateServerOnFolderSettingsChange()).then(result => {
|
||||
getOutputChannelLogger().appendLineAtLevel(5, localize('resolve.configuration.processed', "Processed c_cpp_properties.json in {0}s", result.duration));
|
||||
}).catch(logAndReturn.undefined);
|
||||
}
|
||||
|
||||
private async ensurePropertiesFile(): Promise<void> {
|
||||
@@ -1454,6 +1457,7 @@ export class CppProperties {
|
||||
return false;
|
||||
}
|
||||
let success: boolean = true;
|
||||
const firstParse = this.configurationJson === undefined;
|
||||
try {
|
||||
const readResults: string = fs.readFileSync(this.propertiesFile.fsPath, 'utf8');
|
||||
if (readResults === "") {
|
||||
@@ -1584,6 +1588,14 @@ export class CppProperties {
|
||||
e.recursiveIncludesOrderIsExplicit = e.recursiveIncludes?.order !== undefined;
|
||||
});
|
||||
|
||||
if (firstParse) {
|
||||
// Check documents that are already open since no event will fire for them.
|
||||
const fsPath = this.propertiesFile.fsPath;
|
||||
const document = vscode.workspace.textDocuments.find(doc => doc.uri.fsPath === fsPath);
|
||||
if (document) {
|
||||
this.handleSquiggles(document);
|
||||
}
|
||||
}
|
||||
} catch (errJS) {
|
||||
const err: Error = errJS as Error;
|
||||
const failedToParse: string = localize("failed.to.parse.properties", 'Failed to parse "{0}"', this.propertiesFile.fsPath);
|
||||
@@ -1712,7 +1724,21 @@ export class CppProperties {
|
||||
return compilerPathAndArgs;
|
||||
}
|
||||
|
||||
private getErrorsForConfigUI(configIndex: number): ConfigurationErrors {
|
||||
/**
|
||||
* Time an operation and return the result plus the length of the operation.
|
||||
*
|
||||
* @param operation The async operation to perform.
|
||||
* @returns The result of the operation and the time it took to complete in seconds.
|
||||
*/
|
||||
private async timeOperation<T>(operation: () => Promise<T | undefined>): Promise<{ result: T | undefined; duration: number }> {
|
||||
const start = process.hrtime();
|
||||
const result = await operation();
|
||||
const diff = process.hrtime(start);
|
||||
const duration = diff[0] + diff[1] / 1e9; // diff[0] is in seconds, diff[1] is in nanoseconds
|
||||
return { result, duration };
|
||||
}
|
||||
|
||||
private async getErrorsForConfigUI(configIndex: number): Promise<ConfigurationErrors> {
|
||||
const errors: ConfigurationErrors = {};
|
||||
if (!this.configurationJson) {
|
||||
return errors;
|
||||
@@ -1731,15 +1757,20 @@ export class CppProperties {
|
||||
errors.compilerPath = compilerPathAndArgs.error;
|
||||
|
||||
// Validate paths (directories)
|
||||
errors.includePath = this.validatePath(config.includePath, { globPaths: true });
|
||||
errors.macFrameworkPath = this.validatePath(config.macFrameworkPath);
|
||||
errors.browsePath = this.validatePath(config.browse ? config.browse.path : undefined);
|
||||
try {
|
||||
const { result, duration } = await this.timeOperation(() => this.validatePath(config.includePath, { globPaths: true }));
|
||||
errors.includePath = result ?? duration >= 10 ? localize('resolve.includePath.took.too.long', "The include path validation took {0}s to evaluate", duration) : undefined;
|
||||
} catch (e) {
|
||||
errors.includePath = localize('resolve.includePath.failed', "Failed to resolve include path. Error: {0}", (e as Error).message);
|
||||
}
|
||||
errors.macFrameworkPath = await this.validatePath(config.macFrameworkPath);
|
||||
errors.browsePath = await this.validatePath(config.browse ? config.browse.path : undefined);
|
||||
|
||||
// Validate files
|
||||
errors.forcedInclude = this.validatePath(config.forcedInclude, { isDirectory: false, assumeRelative: false });
|
||||
errors.compileCommands = this.validatePath(config.compileCommands, { isDirectory: false });
|
||||
errors.dotConfig = this.validatePath(config.dotConfig, { isDirectory: false });
|
||||
errors.databaseFilename = this.validatePath(config.browse ? config.browse.databaseFilename : undefined, { isDirectory: false });
|
||||
errors.forcedInclude = await this.validatePath(config.forcedInclude, { isDirectory: false, assumeRelative: false });
|
||||
errors.compileCommands = await this.validatePath(config.compileCommands, { isDirectory: false });
|
||||
errors.dotConfig = await this.validatePath(config.dotConfig, { isDirectory: false });
|
||||
errors.databaseFilename = await this.validatePath(config.browse ? config.browse.databaseFilename : undefined, { isDirectory: false });
|
||||
|
||||
// Validate intelliSenseMode
|
||||
if (isWindows) {
|
||||
@@ -1752,7 +1783,7 @@ export class CppProperties {
|
||||
return errors;
|
||||
}
|
||||
|
||||
private validatePath(input: string | string[] | undefined, { isDirectory = true, assumeRelative = true, globPaths = false } = {}): string | undefined {
|
||||
private async validatePath(input: string | string[] | undefined, { isDirectory = true, assumeRelative = true, globPaths = false } = {}): Promise<string | undefined> {
|
||||
if (!input) {
|
||||
return undefined;
|
||||
}
|
||||
@@ -1768,7 +1799,7 @@ export class CppProperties {
|
||||
}
|
||||
|
||||
// Resolve and split any environment variables
|
||||
paths = this.resolveAndSplit(paths, undefined, this.ExtendedEnvironment, assumeRelative, globPaths);
|
||||
paths = await this.resolveAndSplit(paths, undefined, this.ExtendedEnvironment, assumeRelative, globPaths);
|
||||
|
||||
for (const p of paths) {
|
||||
let pathExists: boolean = true;
|
||||
@@ -1834,7 +1865,24 @@ export class CppProperties {
|
||||
return errorMsg;
|
||||
}
|
||||
|
||||
private async handleSquiggles(): Promise<void> {
|
||||
private lastConfigurationVersion: number = 0;
|
||||
private handleSquigglesDeferral: Deferral | undefined;
|
||||
|
||||
private handleSquiggles(doc?: vscode.TextDocument): void {
|
||||
// When we open the doc or the active config changes, we don't pass the doc in since we always want to process squiggles.
|
||||
if (doc?.version !== this.lastConfigurationVersion) {
|
||||
this.lastConfigurationVersion = doc?.version ?? 0;
|
||||
|
||||
// Debounce the squiggles requests.
|
||||
this.handleSquigglesDeferral?.cancel();
|
||||
this.handleSquigglesDeferral = new Deferral(() => void this.handleSquigglesImpl().catch(logAndReturn.undefined), 1000);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Not to be called directly. Use the `handleSquiggles` method instead which will debounce the calls.
|
||||
*/
|
||||
private async handleSquigglesImpl(): Promise<void> {
|
||||
if (!this.propertiesFile) {
|
||||
return;
|
||||
}
|
||||
@@ -1949,9 +1997,9 @@ export class CppProperties {
|
||||
curText = curText.substring(0, nextNameStart2);
|
||||
}
|
||||
if (this.prevSquiggleMetrics.get(currentConfiguration.name) === undefined) {
|
||||
this.prevSquiggleMetrics.set(currentConfiguration.name, { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 });
|
||||
this.prevSquiggleMetrics.set(currentConfiguration.name, { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, SlowPathResolution: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 });
|
||||
}
|
||||
const newSquiggleMetrics: { [key: string]: number } = { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 };
|
||||
const newSquiggleMetrics: { [key: string]: number } = { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, SlowPathResolution: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 };
|
||||
const isWindows: boolean = os.platform() === 'win32';
|
||||
|
||||
// TODO: Add other squiggles.
|
||||
@@ -2085,8 +2133,33 @@ export class CppProperties {
|
||||
// and extend that pattern to the next quote before and next quote after it.
|
||||
const pattern: RegExp = new RegExp(`"[^"]*?(?<="|;)${escapedPath}(?="|;).*?"`, "g");
|
||||
const configMatches: string[] | null = curText.match(pattern);
|
||||
let expandedPaths: string[];
|
||||
|
||||
const expandedPaths: string[] = this.resolveAndSplit([curPath], undefined, this.ExtendedEnvironment, true, true);
|
||||
try {
|
||||
const { result, duration } = await this.timeOperation(() => this.resolveAndSplit([curPath], undefined, this.ExtendedEnvironment, true, true));
|
||||
expandedPaths = result ?? [];
|
||||
if (duration > 10 && configMatches) {
|
||||
newSquiggleMetrics.SlowPathResolution++;
|
||||
const curOffset = curText.indexOf(configMatches[0]);
|
||||
const endOffset = curOffset + curPath.length;
|
||||
const diagnostic: vscode.Diagnostic = new vscode.Diagnostic(
|
||||
new vscode.Range(document.positionAt(curTextStartOffset + curOffset), document.positionAt(curTextStartOffset + endOffset)),
|
||||
localize('resolve.path.took.too.long', "Path took {0}s to evaluate", duration),
|
||||
vscode.DiagnosticSeverity.Warning);
|
||||
diagnostics.push(diagnostic);
|
||||
}
|
||||
} catch (e) {
|
||||
expandedPaths = [];
|
||||
if (configMatches) {
|
||||
const curOffset = curText.indexOf(configMatches[0]);
|
||||
const endOffset = curOffset + curPath.length;
|
||||
const diagnostic: vscode.Diagnostic = new vscode.Diagnostic(
|
||||
new vscode.Range(document.positionAt(curTextStartOffset + curOffset), document.positionAt(curTextStartOffset + endOffset)),
|
||||
localize('resolve.path.failed', "Failed to resolve path {0}. Error: {1}", curPath, (e as Error).message),
|
||||
vscode.DiagnosticSeverity.Warning);
|
||||
diagnostics.push(diagnostic);
|
||||
}
|
||||
}
|
||||
const incorrectExpandedPaths: string[] = [];
|
||||
|
||||
if (expandedPaths.length <= 0) {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright (c) Microsoft Corporation. All Rights Reserved.
|
||||
* See 'LICENSE' in the project root for license information.
|
||||
* ------------------------------------------------------------------------------------------ */
|
||||
import { ContextResolver, ResolveRequest, SupportedContextItem } from '@github/copilot-language-server';
|
||||
import { ContextResolver, ResolveRequest, SupportedContextItem, type ContextProvider } from '@github/copilot-language-server';
|
||||
import { randomUUID } from 'crypto';
|
||||
import * as vscode from 'vscode';
|
||||
import { DocumentSelector } from 'vscode-languageserver-protocol';
|
||||
@@ -11,7 +11,7 @@ import { getOutputChannelLogger, Logger } from '../logger';
|
||||
import * as telemetry from '../telemetry';
|
||||
import { CopilotCompletionContextResult } from './client';
|
||||
import { CopilotCompletionContextTelemetry } from './copilotCompletionContextTelemetry';
|
||||
import { getCopilotApi } from './copilotProviders';
|
||||
import { getCopilotChatApi, getCopilotClientApi, type CopilotContextProviderAPI } from './copilotProviders';
|
||||
import { clients } from './extension';
|
||||
import { CppSettings } from './settings';
|
||||
|
||||
@@ -83,7 +83,7 @@ export class CopilotCompletionContextProvider implements ContextResolver<Support
|
||||
private static readonly defaultMaxSnippetLength = 3 * 1024;
|
||||
private static readonly defaultDoAggregateSnippets = true;
|
||||
private completionContextCancellation = new vscode.CancellationTokenSource();
|
||||
private contextProviderDisposable: vscode.Disposable | undefined;
|
||||
private contextProviderDisposables: vscode.Disposable[] | undefined;
|
||||
static readonly CppContextProviderEnabledFeatures = 'enabledFeatures';
|
||||
static readonly CppContextProviderTimeBudgetMs = 'timeBudgetMs';
|
||||
static readonly CppContextProviderMaxSnippetCount = 'maxSnippetCount';
|
||||
@@ -312,7 +312,12 @@ export class CopilotCompletionContextProvider implements ContextResolver<Support
|
||||
|
||||
public dispose(): void {
|
||||
this.completionContextCancellation.cancel();
|
||||
this.contextProviderDisposable?.dispose();
|
||||
if (this.contextProviderDisposables) {
|
||||
for (const disposable of this.contextProviderDisposables) {
|
||||
disposable.dispose();
|
||||
}
|
||||
this.contextProviderDisposables = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
public removeFile(fileUri: string): void {
|
||||
@@ -444,18 +449,32 @@ ${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}
|
||||
const properties: Record<string, string> = {};
|
||||
const registerCopilotContextProvider = 'registerCopilotContextProvider';
|
||||
try {
|
||||
const copilotApi = await getCopilotApi();
|
||||
if (!copilotApi) { throw new CopilotContextProviderException("getCopilotApi() returned null, Copilot is missing or inactive."); }
|
||||
const hasGetContextProviderAPI = "getContextProviderAPI" in copilotApi;
|
||||
if (!hasGetContextProviderAPI) { throw new CopilotContextProviderException("getContextProviderAPI() is not available."); }
|
||||
const contextAPI = await copilotApi.getContextProviderAPI("v1");
|
||||
if (!contextAPI) { throw new CopilotContextProviderException("getContextProviderAPI(v1) returned null."); }
|
||||
this.contextProviderDisposable = contextAPI.registerContextProvider({
|
||||
const copilotApi = await getCopilotClientApi();
|
||||
const copilotChatApi = await getCopilotChatApi();
|
||||
if (!copilotApi && !copilotChatApi) { throw new CopilotContextProviderException("getCopilotApi() returned null, Copilot is missing or inactive."); }
|
||||
const contextProvider = {
|
||||
id: CopilotCompletionContextProvider.providerId,
|
||||
selector: CopilotCompletionContextProvider.defaultCppDocumentSelector,
|
||||
resolver: this
|
||||
});
|
||||
properties["cppCodeSnippetsProviderRegistered"] = "true";
|
||||
};
|
||||
type InstallSummary = { hasGetContextProviderAPI: boolean; hasAPI: boolean };
|
||||
const installSummary: { client?: InstallSummary; chat?: InstallSummary } = {};
|
||||
if (copilotApi) {
|
||||
installSummary.client = await this.installContextProvider(copilotApi, contextProvider);
|
||||
}
|
||||
if (copilotChatApi) {
|
||||
installSummary.chat = await this.installContextProvider(copilotChatApi, contextProvider);
|
||||
}
|
||||
if (installSummary.client?.hasAPI || installSummary.chat?.hasAPI) {
|
||||
properties["cppCodeSnippetsProviderRegistered"] = "true";
|
||||
} else {
|
||||
if (installSummary.client?.hasGetContextProviderAPI === false &&
|
||||
installSummary.chat?.hasGetContextProviderAPI === false) {
|
||||
throw new CopilotContextProviderException("getContextProviderAPI() is not available.");
|
||||
} else {
|
||||
throw new CopilotContextProviderException("getContextProviderAPI(v1) returned null.");
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug("Failed to register the Copilot Context Provider.");
|
||||
properties["error"] = "Failed to register the Copilot Context Provider";
|
||||
@@ -466,4 +485,18 @@ ${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}
|
||||
telemetry.logCopilotEvent(registerCopilotContextProvider, { ...properties });
|
||||
}
|
||||
}
|
||||
|
||||
private async installContextProvider(copilotAPI: CopilotContextProviderAPI, contextProvider: ContextProvider<SupportedContextItem>): Promise<{ hasGetContextProviderAPI: boolean; hasAPI: boolean }> {
|
||||
const hasGetContextProviderAPI = typeof copilotAPI.getContextProviderAPI === 'function';
|
||||
if (hasGetContextProviderAPI) {
|
||||
const contextAPI = await copilotAPI.getContextProviderAPI("v1");
|
||||
if (contextAPI) {
|
||||
this.contextProviderDisposables = this.contextProviderDisposables ?? [];
|
||||
this.contextProviderDisposables.push(contextAPI.registerContextProvider(contextProvider));
|
||||
}
|
||||
return { hasGetContextProviderAPI, hasAPI: contextAPI !== undefined };
|
||||
} else {
|
||||
return { hasGetContextProviderAPI: false, hasAPI: false };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,11 @@ export interface CopilotTrait {
|
||||
promptTextOverride?: string;
|
||||
}
|
||||
|
||||
export interface CopilotApi {
|
||||
export interface CopilotContextProviderAPI {
|
||||
getContextProviderAPI(version: string): Promise<ContextProviderApiV1 | undefined>;
|
||||
}
|
||||
|
||||
export interface CopilotApi extends CopilotContextProviderAPI {
|
||||
registerRelatedFilesProvider(
|
||||
providerId: { extensionId: string; languageId: string },
|
||||
callback: (
|
||||
@@ -33,11 +37,10 @@ export interface CopilotApi {
|
||||
cancellationToken: vscode.CancellationToken
|
||||
) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] } | undefined>
|
||||
): Disposable;
|
||||
getContextProviderAPI(version: string): Promise<ContextProviderApiV1 | undefined>;
|
||||
}
|
||||
|
||||
export async function registerRelatedFilesProvider(): Promise<void> {
|
||||
const api = await getCopilotApi();
|
||||
const api = await getCopilotClientApi();
|
||||
if (util.extensionContext && api) {
|
||||
try {
|
||||
for (const languageId of ['c', 'cpp', 'cuda-cpp']) {
|
||||
@@ -129,7 +132,7 @@ async function getIncludes(uri: vscode.Uri, maxDepth: number): Promise<GetInclud
|
||||
return includes;
|
||||
}
|
||||
|
||||
export async function getCopilotApi(): Promise<CopilotApi | undefined> {
|
||||
export async function getCopilotClientApi(): Promise<CopilotApi | undefined> {
|
||||
const copilotExtension = vscode.extensions.getExtension<CopilotApi>('github.copilot');
|
||||
if (!copilotExtension) {
|
||||
return undefined;
|
||||
@@ -145,3 +148,38 @@ export async function getCopilotApi(): Promise<CopilotApi | undefined> {
|
||||
return copilotExtension.exports;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getCopilotChatApi(): Promise<CopilotContextProviderAPI | undefined> {
|
||||
type CopilotChatApi = { getAPI?(version: number): CopilotContextProviderAPI | undefined };
|
||||
const copilotExtension = vscode.extensions.getExtension<CopilotChatApi>('github.copilot-chat');
|
||||
if (!copilotExtension) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
let exports: CopilotChatApi | undefined;
|
||||
if (!copilotExtension.isActive) {
|
||||
try {
|
||||
exports = await Promise.race([
|
||||
copilotExtension.activate(),
|
||||
new Promise<undefined>(resolve => {
|
||||
setTimeout(() => {
|
||||
resolve(undefined);
|
||||
}, 3000);
|
||||
})
|
||||
]);
|
||||
} catch {
|
||||
return undefined;
|
||||
}
|
||||
} else {
|
||||
exports = copilotExtension.exports;
|
||||
}
|
||||
if (!exports || typeof exports.getAPI !== 'function') {
|
||||
return undefined;
|
||||
}
|
||||
const result = exports.getAPI(1);
|
||||
return result;
|
||||
}
|
||||
|
||||
interface Disposable {
|
||||
dispose(): void;
|
||||
}
|
||||
|
||||
@@ -3,23 +3,7 @@
|
||||
* See 'LICENSE' in the project root for license information.
|
||||
* ------------------------------------------------------------------------------------------ */
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
class Deferral {
|
||||
private timer?: NodeJS.Timeout;
|
||||
|
||||
constructor(callback: () => void, timeout: number) {
|
||||
this.timer = setTimeout(() => {
|
||||
this.timer = undefined;
|
||||
callback();
|
||||
}, timeout);
|
||||
}
|
||||
public cancel() {
|
||||
if (this.timer) {
|
||||
clearTimeout(this.timer);
|
||||
this.timer = undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
import { Deferral } from './utils';
|
||||
|
||||
export class DataBinding<T> {
|
||||
private valueChanged = new vscode.EventEmitter<T>();
|
||||
|
||||
@@ -55,6 +55,7 @@ let languageConfigurations: vscode.Disposable[] = [];
|
||||
let intervalTimer: NodeJS.Timeout;
|
||||
let codeActionProvider: vscode.Disposable;
|
||||
export const intelliSenseDisabledError: string = "Do not activate the extension when IntelliSense is disabled.";
|
||||
export let isWritingCrashCallStack: boolean = false;
|
||||
|
||||
type VcpkgDatabase = Record<string, string[]>; // Stored as <header file entry> -> [<port name>]
|
||||
let vcpkgDbPromise: Promise<VcpkgDatabase>;
|
||||
@@ -1012,7 +1013,7 @@ export function watchForCrashes(crashDirectory: string): void {
|
||||
// vscode.workspace.createFileSystemWatcher only works in workspace folders.
|
||||
try {
|
||||
fs.watch(crashDirectory, (event, filename) => {
|
||||
if (event !== "rename") {
|
||||
if (event !== "change") {
|
||||
return;
|
||||
}
|
||||
if (!filename || filename === prevCppCrashFile) {
|
||||
@@ -1023,9 +1024,11 @@ export function watchForCrashes(crashDirectory: string): void {
|
||||
return;
|
||||
}
|
||||
const crashDate: Date = new Date();
|
||||
isWritingCrashCallStack = true;
|
||||
|
||||
// Wait 5 seconds to allow time for the crash log to finish being written.
|
||||
setTimeout(() => {
|
||||
isWritingCrashCallStack = false;
|
||||
fs.readFile(path.resolve(crashDirectory, filename), 'utf8', (err, data) => {
|
||||
void handleCrashFileRead(crashDirectory, filename, crashDate, err, data);
|
||||
});
|
||||
@@ -1177,7 +1180,7 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
|
||||
}
|
||||
|
||||
const lines: string[] = data.split("\n");
|
||||
let addressData: string = ".\n";
|
||||
let addressData: string;
|
||||
const isCppToolsSrv: boolean = crashFile.startsWith("cpptools-srv");
|
||||
const telemetryHeader: string = (isCppToolsSrv ? "cpptools-srv.txt" : crashFile) + "\n";
|
||||
const filtPath: string | null = which.sync("c++filt", { nothrow: true });
|
||||
@@ -1207,17 +1210,20 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
|
||||
crashStackStartLine = ++crashLogLine;
|
||||
}
|
||||
if (lines[crashStackStartLine].startsWith("SIG")) {
|
||||
signalType = lines[crashStackStartLine] + "\n";
|
||||
signalType = `${lines[crashStackStartLine]}\n`;
|
||||
addressData = `${lines[crashStackStartLine + 1]}:${lines[crashStackStartLine + 2]}\n`; // signalCode:signalAddr
|
||||
crashStackStartLine += 3;
|
||||
} else {
|
||||
// The signal type may fail to be written.
|
||||
// Intentionally different from SIGUNKNOWN from cpptools,
|
||||
// and not SIG-? to avoid matching the regex in containsFilteredTelemetryData.
|
||||
signalType = "SIGMISSING\n";
|
||||
addressData = ".\n";
|
||||
}
|
||||
data = telemetryHeader + signalType;
|
||||
let crashCallStack: string = "";
|
||||
let validFrameFound: boolean = false;
|
||||
for (let lineNum: number = crashStackStartLine + 1; lineNum < lines.length - 3; ++lineNum) { // skip last lines
|
||||
for (let lineNum: number = crashStackStartLine; lineNum < lines.length - 3; ++lineNum) { // skip last lines
|
||||
const line: string = lines[lineNum];
|
||||
const startPos: number = line.indexOf(startStr);
|
||||
let pendingCallStack: string = "";
|
||||
@@ -1413,8 +1419,7 @@ export async function preReleaseCheck(): Promise<void> {
|
||||
async function onCopilotHover(): Promise<void> {
|
||||
telemetry.logLanguageServerEvent("CopilotHover");
|
||||
|
||||
// Check if the user has access to vscode language model.
|
||||
const vscodelm = (vscode as any).lm;
|
||||
const vscodelm = util.getVSCodeLanguageModel();
|
||||
if (!vscodelm) {
|
||||
return;
|
||||
}
|
||||
@@ -1477,6 +1482,7 @@ async function onCopilotHover(): Promise<void> {
|
||||
|
||||
let chatResponse: vscode.LanguageModelChatResponse | undefined;
|
||||
try {
|
||||
// Select the chat model.
|
||||
const [model] = await vscodelm.selectChatModels(modelSelector);
|
||||
|
||||
chatResponse = await model.sendRequest(
|
||||
|
||||
@@ -121,6 +121,7 @@ export class SettingsPanel {
|
||||
{
|
||||
enableCommandUris: true,
|
||||
enableScripts: true,
|
||||
retainContextWhenHidden: true,
|
||||
|
||||
// Restrict the webview to only loading content from these directories
|
||||
localResourceRoots: [
|
||||
|
||||
@@ -118,3 +118,23 @@ export async function checkDuration<T>(fn: () => Promise<T>): Promise<{ result:
|
||||
const result = await fn();
|
||||
return { result, duration: performance.now() - start };
|
||||
}
|
||||
|
||||
/**
|
||||
* A class that delays the execution of a callback until a specified timeout period has elapsed.
|
||||
*/
|
||||
export class Deferral {
|
||||
private timer?: NodeJS.Timeout;
|
||||
|
||||
constructor(callback: () => void, timeout: number) {
|
||||
this.timer = setTimeout(() => {
|
||||
this.timer = undefined;
|
||||
callback();
|
||||
}, timeout);
|
||||
}
|
||||
public cancel() {
|
||||
if (this.timer) {
|
||||
clearTimeout(this.timer);
|
||||
this.timer = undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-1
@@ -165,7 +165,7 @@ export function getVcpkgRoot(): string {
|
||||
export function isHeaderFile(uri: vscode.Uri): boolean {
|
||||
const fileExt: string = path.extname(uri.fsPath);
|
||||
const fileExtLower: string = fileExt.toLowerCase();
|
||||
return !fileExt || [".cuh", ".hpp", ".hh", ".hxx", ".h++", ".hp", ".h", ".inl", ".ipp", ".tcc", ".tlh", ".tli", ""].some(ext => fileExtLower === ext);
|
||||
return !fileExt || [".cuh", ".hpp", ".hh", ".hxx", ".h++", ".hp", ".h", ".inl", ".ipp", ".tcc", ".txx", ".tpp", ".tlh", ".tli", ""].some(ext => fileExtLower === ext);
|
||||
}
|
||||
|
||||
export function isCppFile(uri: vscode.Uri): boolean {
|
||||
@@ -1828,3 +1828,16 @@ export function equals(array1: string[] | undefined, array2: string[] | undefine
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export function getVSCodeLanguageModel(): any | undefined {
|
||||
// Check if the user has access to vscode language model.
|
||||
const vscodelm = (vscode as any).lm;
|
||||
if (!vscodelm) {
|
||||
return undefined;
|
||||
}
|
||||
// Check that vscodelm has a method called 'selectChatModels'
|
||||
if (!vscodelm.selectChatModels || typeof vscodelm.selectChatModels !== 'function') {
|
||||
return undefined;
|
||||
}
|
||||
return vscodelm;
|
||||
}
|
||||
|
||||
@@ -125,9 +125,15 @@ export async function activate(context: vscode.ExtensionContext): Promise<CppToo
|
||||
for (let i: number = 0; i < vscode.workspace.workspaceFolders.length; ++i) {
|
||||
const config: string = path.join(vscode.workspace.workspaceFolders[i].uri.fsPath, ".vscode/c_cpp_properties.json");
|
||||
if (await util.checkFileExists(config)) {
|
||||
const doc: vscode.TextDocument = await vscode.workspace.openTextDocument(config);
|
||||
void vscode.languages.setTextDocumentLanguage(doc, "jsonc");
|
||||
util.setWorkspaceIsCpp();
|
||||
try {
|
||||
const doc: vscode.TextDocument = await vscode.workspace.openTextDocument(config);
|
||||
void vscode.languages.setTextDocumentLanguage(doc, "jsonc");
|
||||
util.setWorkspaceIsCpp();
|
||||
} catch (err) {
|
||||
// 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.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,11 +47,9 @@
|
||||
"default": {}
|
||||
},
|
||||
"quoteArgs": {
|
||||
"exceptions": {
|
||||
"type": "boolean",
|
||||
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
|
||||
"default": true
|
||||
}
|
||||
"type": "boolean",
|
||||
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
|
||||
"default": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+14
-13
@@ -480,13 +480,13 @@
|
||||
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0"
|
||||
integrity sha1-kfYpBejSPL1mIlMS8jlFSiO+v6A=
|
||||
|
||||
"@types/node-fetch@^2.6.11":
|
||||
version "2.6.12"
|
||||
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/node-fetch/-/node-fetch-2.6.12.tgz#8ab5c3ef8330f13100a7479e2cd56d3386830a03"
|
||||
integrity sha1-irXD74Mw8TEAp0eeLNVtM4aDCgM=
|
||||
"@types/node-fetch@^2.6.13":
|
||||
version "2.6.13"
|
||||
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.13.tgz#e0c9b7b5edbdb1b50ce32c127e85e880872d56ee"
|
||||
integrity sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
form-data "^4.0.0"
|
||||
form-data "^4.0.4"
|
||||
|
||||
"@types/node@*":
|
||||
version "22.13.4"
|
||||
@@ -2320,14 +2320,15 @@ for-own@^1.0.0:
|
||||
dependencies:
|
||||
for-in "^1.0.1"
|
||||
|
||||
form-data@^4.0.0:
|
||||
version "4.0.2"
|
||||
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c"
|
||||
integrity sha1-Ncq73TDDznPessQtPI0+2cpReUw=
|
||||
form-data@^4.0.4:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
|
||||
integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.8"
|
||||
es-set-tostringtag "^2.1.0"
|
||||
hasown "^2.0.2"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
from@^0.1.7:
|
||||
@@ -4711,10 +4712,10 @@ timers-ext@^0.1.7:
|
||||
es5-ext "^0.10.64"
|
||||
next-tick "^1.1.0"
|
||||
|
||||
tmp@^0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae"
|
||||
integrity sha1-63g8wivB6L69BnFHbUbqTrMqea4=
|
||||
tmp@^0.2.4:
|
||||
version "0.2.4"
|
||||
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/tmp/-/tmp-0.2.4.tgz#c6db987a2ccc97f812f17137b36af2b6521b0d13"
|
||||
integrity sha1-xtuYeizMl/gS8XE3s2rytlIbDRM=
|
||||
|
||||
to-absolute-glob@^2.0.0, to-absolute-glob@^2.0.2:
|
||||
version "2.0.2"
|
||||
|
||||
Reference in New Issue
Block a user