Compare commits
601
Commits
v1.9.4-debug
...
v1.16.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
93cc277311 | ||
|
|
9d84cad54b | ||
|
|
82671ea293 | ||
|
|
605015c8af | ||
|
|
baa93534f0 | ||
|
|
e5f74bc638 | ||
|
|
68777f9873 | ||
|
|
4037db9783 | ||
|
|
67565fe0a7 | ||
|
|
a67c6610a7 | ||
|
|
4f5ec73173 | ||
|
|
79f4e8ded0 | ||
|
|
7544de0b47 | ||
|
|
491456e8de | ||
|
|
5b51db1999 | ||
|
|
46eaddc411 | ||
|
|
71c6cb6c6c | ||
|
|
0452f0aad9 | ||
|
|
478ccb6abd | ||
|
|
7504532e58 | ||
|
|
9621430533 | ||
|
|
3ef10f294e | ||
|
|
e394edb630 | ||
|
|
e65e602bab | ||
|
|
65ec5abb72 | ||
|
|
fc909f88ba | ||
|
|
c22d13af30 | ||
|
|
290a53e934 | ||
|
|
4b20f32c39 | ||
|
|
5ce976f322 | ||
|
|
352e0bf2ff | ||
|
|
684404f29c | ||
|
|
478fb3c245 | ||
|
|
c3cfd55762 | ||
|
|
b2d989f85f | ||
|
|
bb3d290d6b | ||
|
|
33bdb7f425 | ||
|
|
0c9d89787c | ||
|
|
94c12812e0 | ||
|
|
3144d82fb4 | ||
|
|
dc7651af75 | ||
|
|
9215fbe9b0 | ||
|
|
5a56dfc749 | ||
|
|
bddb1ba342 | ||
|
|
cafce7c050 | ||
|
|
324cd1bd59 | ||
|
|
ad5fe867c5 | ||
|
|
cc862b039e | ||
|
|
446eb16e7a | ||
|
|
e09702e5dc | ||
|
|
48000bdbda | ||
|
|
f8b8e094f9 | ||
|
|
5780e18487 | ||
|
|
3c6f603aea | ||
|
|
35ab3eb26d | ||
|
|
302f4226cf | ||
|
|
13893fbfb2 | ||
|
|
d603786a13 | ||
|
|
407342f482 | ||
|
|
5c8b812075 | ||
|
|
2a2d928075 | ||
|
|
e160229500 | ||
|
|
60cfb9998d | ||
|
|
6ec8c14a98 | ||
|
|
a395b8492a | ||
|
|
17e337c874 | ||
|
|
7b3ac0a22e | ||
|
|
04b0be0452 | ||
|
|
b0e7500bcb | ||
|
|
296bee8000 | ||
|
|
ec4977971e | ||
|
|
71684e0f90 | ||
|
|
7a99678e6f | ||
|
|
8bf5d6e9aa | ||
|
|
6fbf4df21d | ||
|
|
5cc9930813 | ||
|
|
5aa8b56cb7 | ||
|
|
4dfb2a39a6 | ||
|
|
cc11b68e20 | ||
|
|
5e327771ef | ||
|
|
0ec40d9000 | ||
|
|
dbfa0c5ed5 | ||
|
|
9b20549cef | ||
|
|
ce2fcf0c62 | ||
|
|
605c8032f8 | ||
|
|
bfdcba4449 | ||
|
|
fc9209f55a | ||
|
|
5a337901a6 | ||
|
|
6cabb390fd | ||
|
|
4efc47f955 | ||
|
|
8334b15f4e | ||
|
|
84343d04d3 | ||
|
|
e2c0f014dd | ||
|
|
e2bddc1901 | ||
|
|
c417da6ed4 | ||
|
|
2ad0a95bd4 | ||
|
|
e5b80da312 | ||
|
|
10125dfb08 | ||
|
|
6f4403cf05 | ||
|
|
3b7755a4d2 | ||
|
|
f0bef8dca6 | ||
|
|
fec8a4e07f | ||
|
|
e201d7905e | ||
|
|
32b9947b57 | ||
|
|
7b03e025a7 | ||
|
|
a81c4645c0 | ||
|
|
675720d466 | ||
|
|
646d9cfd6a | ||
|
|
d1e7326f4d | ||
|
|
0fd0adad84 | ||
|
|
aef2fa974e | ||
|
|
001b3a5721 | ||
|
|
350c1c3890 | ||
|
|
64c1327716 | ||
|
|
ec47886d72 | ||
|
|
40fe35c8e2 | ||
|
|
532eee96fe | ||
|
|
febcf11215 | ||
|
|
7a76ee1ec5 | ||
|
|
81a026435d | ||
|
|
9f2d17d40c | ||
|
|
2e66dc794b | ||
|
|
3644b94ee9 | ||
|
|
cf2a1112f4 | ||
|
|
bcc7d61266 | ||
|
|
3c5e7e260e | ||
|
|
b137b7c3ed | ||
|
|
67118593b8 | ||
|
|
85514f21bc | ||
|
|
fa774544ea | ||
|
|
a45c8f8670 | ||
|
|
a014fe80bd | ||
|
|
b9bd78e64e | ||
|
|
21bc17ac6e | ||
|
|
d03f2d48fa | ||
|
|
82b8f261a8 | ||
|
|
1e779a5a3c | ||
|
|
e4696c5dec | ||
|
|
9bf1c1d5a5 | ||
|
|
34745e0b10 | ||
|
|
5e96765467 | ||
|
|
9b49182355 | ||
|
|
88f419fc11 | ||
|
|
fc4fc00803 | ||
|
|
4b9ca430ba | ||
|
|
885b4c0a61 | ||
|
|
79a78ba994 | ||
|
|
982c4fb9cf | ||
|
|
9b7f7deb4d | ||
|
|
a6f535fd54 | ||
|
|
edb810aa3d | ||
|
|
42b3c28ab1 | ||
|
|
6b6c16e378 | ||
|
|
8f55a2e8d2 | ||
|
|
5f68e6a868 | ||
|
|
93dc3737fb | ||
|
|
6f2714bfbb | ||
|
|
fafca55335 | ||
|
|
2605cac2a9 | ||
|
|
98a9b0cabe | ||
|
|
dc0a7af0aa | ||
|
|
3adcec81a4 | ||
|
|
b96737a919 | ||
|
|
c4d68fd859 | ||
|
|
2d3cac0dea | ||
|
|
0fcc415231 | ||
|
|
8431b37201 | ||
|
|
23f3b47e6f | ||
|
|
7d73a3124d | ||
|
|
2041315910 | ||
|
|
04f822ab92 | ||
|
|
5a486fc8cd | ||
|
|
62fb757bb3 | ||
|
|
b79a965613 | ||
|
|
148a709e0e | ||
|
|
4916b2f361 | ||
|
|
f7c2cc869a | ||
|
|
79c8d1d64a | ||
|
|
54c73eaade | ||
|
|
a397a4731a | ||
|
|
4dfea3b68c | ||
|
|
384b33386b | ||
|
|
1a3afd10fc | ||
|
|
a2a0297ae9 | ||
|
|
8cf332baba | ||
|
|
77af87e92e | ||
|
|
01a747ad35 | ||
|
|
c8cbf6c0ba | ||
|
|
edaf6dce78 | ||
|
|
58e184fdc0 | ||
|
|
07efeb4c6c | ||
|
|
3555e2f1ab | ||
|
|
cf2ebd75fe | ||
|
|
ac74b5b6a3 | ||
|
|
c22c28d0c6 | ||
|
|
399daf9b27 | ||
|
|
b3a337aad0 | ||
|
|
ed1a1ca57e | ||
|
|
cae6c42928 | ||
|
|
4abec441f9 | ||
|
|
8e23df99d8 | ||
|
|
abe65b5879 | ||
|
|
20e220354d | ||
|
|
bc6bfac71a | ||
|
|
f40e9bc569 | ||
|
|
fa3e927011 | ||
|
|
9f9bfddd47 | ||
|
|
7fec8ba15f | ||
|
|
24f5fdd122 | ||
|
|
6a063be33f | ||
|
|
150c7aaf84 | ||
|
|
bbf2832356 | ||
|
|
e2e6662bae | ||
|
|
da3a4382dd | ||
|
|
eca31aa8a1 | ||
|
|
186ace28e0 | ||
|
|
c549c07fa6 | ||
|
|
340c00dc92 | ||
|
|
53b6bb29ec | ||
|
|
ed51a08388 | ||
|
|
140eb83f73 | ||
|
|
f1d9211b92 | ||
|
|
64b429c9a0 | ||
|
|
8a81837bd4 | ||
|
|
716979e1e3 | ||
|
|
117ec80611 | ||
|
|
6379d6e799 | ||
|
|
373e7face5 | ||
|
|
50eb6f94dd | ||
|
|
801c8dd5d4 | ||
|
|
27abc63d1c | ||
|
|
0a23125ae5 | ||
|
|
e8a33ff410 | ||
|
|
25162597e1 | ||
|
|
6502f27963 | ||
|
|
13e0bd2cff | ||
|
|
591242ab5f | ||
|
|
93e633490a | ||
|
|
250b5ca064 | ||
|
|
f0ae9b3a12 | ||
|
|
edb0af19c4 | ||
|
|
6329ba4091 | ||
|
|
ef48323a9b | ||
|
|
87a1e507ac | ||
|
|
0e3114a252 | ||
|
|
21f6ea640f | ||
|
|
03ebaf8783 | ||
|
|
d575335ade | ||
|
|
31abc1847f | ||
|
|
0b08fc9bac | ||
|
|
2bb1462f10 | ||
|
|
0ab9f770ea | ||
|
|
4416479d1c | ||
|
|
6231202374 | ||
|
|
6542b63660 | ||
|
|
fcab84cf6a | ||
|
|
e2e350883e | ||
|
|
47353932a1 | ||
|
|
850c61dc76 | ||
|
|
84bacd7edc | ||
|
|
773e60e31e | ||
|
|
9bce9d7a5d | ||
|
|
f1457ecffc | ||
|
|
8c284037c9 | ||
|
|
f2311d7dba | ||
|
|
3b4092f1ac | ||
|
|
2608f1a47c | ||
|
|
656018a440 | ||
|
|
70637aeb69 | ||
|
|
543aa5e3bb | ||
|
|
119a06f807 | ||
|
|
cb5b588711 | ||
|
|
adb9a4112c | ||
|
|
48653c0854 | ||
|
|
49e5dfdc24 | ||
|
|
35ebdb302a | ||
|
|
58f15d95d4 | ||
|
|
17db1d5970 | ||
|
|
0b97bea982 | ||
|
|
f054ffe9c8 | ||
|
|
2855600b5b | ||
|
|
ebb24763bd | ||
|
|
0c0f78d915 | ||
|
|
b0182fdd9a | ||
|
|
378e37adc9 | ||
|
|
3612c22adf | ||
|
|
230bce9864 | ||
|
|
f611df293f | ||
|
|
46944da663 | ||
|
|
518ea5bc31 | ||
|
|
3ee264015a | ||
|
|
65fcb15c09 | ||
|
|
304a336b57 | ||
|
|
28762c4be2 | ||
|
|
c2ca699e39 | ||
|
|
a8694b59a0 | ||
|
|
f0ecdd4862 | ||
|
|
98bfb54efc | ||
|
|
3a8e920a0d | ||
|
|
ba0cc65530 | ||
|
|
320d355e5d | ||
|
|
feae362cc3 | ||
|
|
66b0dbb945 | ||
|
|
14f2cc2bf4 | ||
|
|
c2fdf75c8c | ||
|
|
281d04feaf | ||
|
|
3526f5092c | ||
|
|
2be467ed68 | ||
|
|
38ed24f6a0 | ||
|
|
b56711ff6c | ||
|
|
379d1c8472 | ||
|
|
03b3995e19 | ||
|
|
466fb3b6bc | ||
|
|
08fd6214c9 | ||
|
|
feb70a3680 | ||
|
|
093757d182 | ||
|
|
a51209e051 | ||
|
|
4f86df6fa2 | ||
|
|
479368da95 | ||
|
|
9e9430e9b4 | ||
|
|
b38e9ef00a | ||
|
|
58cce1a996 | ||
|
|
ddc3857e36 | ||
|
|
0806b5774c | ||
|
|
3ff67ac89a | ||
|
|
5d358dc8de | ||
|
|
2832e546e0 | ||
|
|
5669aeb26a | ||
|
|
c846e8106d | ||
|
|
35c55c2555 | ||
|
|
065454194a | ||
|
|
9e5237fa99 | ||
|
|
7d7ff29911 | ||
|
|
5e019a77da | ||
|
|
68c9cb9236 | ||
|
|
36f04f0fce | ||
|
|
168eba4e28 | ||
|
|
39366406c5 | ||
|
|
9b1bf3b238 | ||
|
|
8eb5e9cd0e | ||
|
|
effd140a87 | ||
|
|
2afbce5b28 | ||
|
|
0c2b40b22f | ||
|
|
b590e097dc | ||
|
|
2f3f444b17 | ||
|
|
d04085e017 | ||
|
|
3eff13967a | ||
|
|
cba220883b | ||
|
|
423f838ce8 | ||
|
|
20f9990784 | ||
|
|
d6574c6d3f | ||
|
|
f5d711bd0b | ||
|
|
bd3102ad91 | ||
|
|
9005aca568 | ||
|
|
54c6227d89 | ||
|
|
41303ed8cc | ||
|
|
b885e2c39a | ||
|
|
853a4f3582 | ||
|
|
6ee27f5716 | ||
|
|
d8c3426058 | ||
|
|
886d3c58e9 | ||
|
|
ae17dab804 | ||
|
|
9fd2438d4c | ||
|
|
1ac61ed3b6 | ||
|
|
6bd2bb5fdb | ||
|
|
ac1e3274ec | ||
|
|
14be9092a1 | ||
|
|
5dfb14f86e | ||
|
|
b42091e660 | ||
|
|
646f40b8b5 | ||
|
|
c357584ec0 | ||
|
|
5d736cc6c8 | ||
|
|
304858c0cb | ||
|
|
fa32357231 | ||
|
|
8879e4e399 | ||
|
|
f1712ca20b | ||
|
|
0445fc4207 | ||
|
|
34c3835151 | ||
|
|
f38f551cda | ||
|
|
93fcc05944 | ||
|
|
12dbf2cd68 | ||
|
|
6a97dd8c93 | ||
|
|
16b4710f8c | ||
|
|
3d58b640f0 | ||
|
|
a5b573dbcd | ||
|
|
9360987d31 | ||
|
|
08776b77f7 | ||
|
|
b34766054b | ||
|
|
8914e28c26 | ||
|
|
2a39dc402a | ||
|
|
b55a98c697 | ||
|
|
fe9cfe318a | ||
|
|
08b9c995bd | ||
|
|
6da34e4236 | ||
|
|
2080e28813 | ||
|
|
79e846844f | ||
|
|
e172440607 | ||
|
|
996453b3a8 | ||
|
|
0eb68d22a0 | ||
|
|
a2a8d77445 | ||
|
|
032d9a288e | ||
|
|
3a74d10317 | ||
|
|
ef637af801 | ||
|
|
833795da79 | ||
|
|
68bc9642f4 | ||
|
|
a8bae9e3a6 | ||
|
|
fe2c5ef04b | ||
|
|
83521bc682 | ||
|
|
59ea146b6e | ||
|
|
09a1ce1e8a | ||
|
|
58a9ec846f | ||
|
|
6f3ae65833 | ||
|
|
a8e6695b55 | ||
|
|
c7edc9981f | ||
|
|
4d0912eb9d | ||
|
|
7747ac6226 | ||
|
|
13155149ea | ||
|
|
d3fffbad7b | ||
|
|
6fe98d2f54 | ||
|
|
a2683630e0 | ||
|
|
590923ca99 | ||
|
|
2a5198ed9d | ||
|
|
4a85594360 | ||
|
|
3d7f5ea0ca | ||
|
|
982314db80 | ||
|
|
3abe8a564b | ||
|
|
2dc0a86605 | ||
|
|
84f5f6505d | ||
|
|
cc685c8d7f | ||
|
|
9b07d494c6 | ||
|
|
3263fab54f | ||
|
|
145a1aa470 | ||
|
|
3254d7db33 | ||
|
|
5d4867e0ab | ||
|
|
a665cb1329 | ||
|
|
77bdf4b028 | ||
|
|
ca16d85890 | ||
|
|
b29d5e8d33 | ||
|
|
74f12d8071 | ||
|
|
dc6b33eda2 | ||
|
|
bde931bc3a | ||
|
|
81827f6536 | ||
|
|
8e5f3af858 | ||
|
|
9397ddb725 | ||
|
|
872c86ad20 | ||
|
|
6736b6771f | ||
|
|
4b4ea51138 | ||
|
|
a5de3a5c11 | ||
|
|
14e31e0d1d | ||
|
|
8bff10f1cb | ||
|
|
baf58c847e | ||
|
|
4fc18a7eb4 | ||
|
|
40821ed32c | ||
|
|
3aa99e6cc8 | ||
|
|
d6469bfd33 | ||
|
|
83c08306f9 | ||
|
|
6735b644c2 | ||
|
|
b16d0f9f42 | ||
|
|
c3dd4405a6 | ||
|
|
617261dc52 | ||
|
|
1120cb7280 | ||
|
|
969f2c1db2 | ||
|
|
2238e7347f | ||
|
|
feb8a6421a | ||
|
|
bf2674fd0c | ||
|
|
9cc30c2ccd | ||
|
|
b294eb7a9c | ||
|
|
b25fb3fd0e | ||
|
|
32ba555dee | ||
|
|
f3b60f296d | ||
|
|
f31caa30f4 | ||
|
|
04eeb03292 | ||
|
|
7b7effbe81 | ||
|
|
0d0b9ee120 | ||
|
|
62ac866bbc | ||
|
|
fc69d50751 | ||
|
|
7f21a55337 | ||
|
|
85c9b30c05 | ||
|
|
91380b3f58 | ||
|
|
fab35332eb | ||
|
|
f0d43ce102 | ||
|
|
08ab287ff7 | ||
|
|
380dcbbb58 | ||
|
|
3c98246141 | ||
|
|
0a002db1e5 | ||
|
|
b5b1c2b9df | ||
|
|
0428ebddb0 | ||
|
|
dd8f358076 | ||
|
|
34cd49174e | ||
|
|
7810d7cb34 | ||
|
|
3243e39c4f | ||
|
|
e60ae9290c | ||
|
|
00274d5090 | ||
|
|
56c1a6314f | ||
|
|
23038f4477 | ||
|
|
9f7d7fd997 | ||
|
|
982255d45c | ||
|
|
a28a456aee | ||
|
|
6d53961493 | ||
|
|
b93b58cb49 | ||
|
|
3cb4a9078c | ||
|
|
504800336c | ||
|
|
dda36530cd | ||
|
|
ffd59ee3c8 | ||
|
|
e3365bbfe4 | ||
|
|
71e9d239e3 | ||
|
|
2874fd2600 | ||
|
|
56db55a3dc | ||
|
|
8b9e009fc9 | ||
|
|
23720f5fd8 | ||
|
|
8bea1ecb35 | ||
|
|
dd3938c934 | ||
|
|
cf9b2565d0 | ||
|
|
caecbf9532 | ||
|
|
a250a53361 | ||
|
|
375d62c335 | ||
|
|
c3312d3fba | ||
|
|
df9469ca4e | ||
|
|
7886ac0e98 | ||
|
|
8eea7fb23e | ||
|
|
ec511b941d | ||
|
|
17140a9fde | ||
|
|
b30c098dc1 | ||
|
|
e135b011bc | ||
|
|
2913721755 | ||
|
|
7a83d8d76a | ||
|
|
db67ca332c | ||
|
|
69cf11512a | ||
|
|
011b5c12a9 | ||
|
|
d4df455dc0 | ||
|
|
025ab76ca6 | ||
|
|
1613298710 | ||
|
|
bcd6c9ef50 | ||
|
|
6f62c61bb4 | ||
|
|
b5c13664a6 | ||
|
|
f95b1cebf7 | ||
|
|
4813194480 | ||
|
|
97fd5b6bb9 | ||
|
|
3b4c8e71e7 | ||
|
|
75d131d3ea | ||
|
|
abc3c11cab | ||
|
|
88f0bbebb9 | ||
|
|
7b175d4ab4 | ||
|
|
29e8ff6f3b | ||
|
|
d0985f5c82 | ||
|
|
7f996068d4 | ||
|
|
27d1ac3897 | ||
|
|
a18b91b864 | ||
|
|
a06d8e601b | ||
|
|
e792d23cbc | ||
|
|
e24c264f89 | ||
|
|
999f28bf83 | ||
|
|
f7d0b1bf22 | ||
|
|
eede66558e | ||
|
|
a9890f62ae | ||
|
|
c98303bd2c | ||
|
|
c658673abb | ||
|
|
7ad30dae85 | ||
|
|
2ab63a451a | ||
|
|
857bce91ee | ||
|
|
49b8160a58 | ||
|
|
4d80ef39cb | ||
|
|
8ea76a7d8b | ||
|
|
046821112b | ||
|
|
18ac98a353 | ||
|
|
fad828ed78 | ||
|
|
f675d7ece3 | ||
|
|
213799975c | ||
|
|
3512a088d6 | ||
|
|
8ec3dfa3fd | ||
|
|
905f8dc216 | ||
|
|
6464f55fcf | ||
|
|
dba4a28d88 | ||
|
|
53a3864fdc | ||
|
|
0ea25159d4 | ||
|
|
143207aadb | ||
|
|
0edf6c3ea7 | ||
|
|
4e22b6577f | ||
|
|
1ab60bc247 | ||
|
|
33eb2f6abe | ||
|
|
11262438e3 | ||
|
|
673a68d4cc | ||
|
|
437d9b333a | ||
|
|
0139274856 | ||
|
|
87cfa702bc | ||
|
|
013bff267e | ||
|
|
d942d64b7b | ||
|
|
1a2bf6fc4c | ||
|
|
32c1d6bf52 | ||
|
|
ebd5314b48 | ||
|
|
5c7f551dba | ||
|
|
6ccea3878b | ||
|
|
e5fd036af9 | ||
|
|
4254419e76 | ||
|
|
f9ecc9c6f9 | ||
|
|
9405f41521 | ||
|
|
37cca41225 | ||
|
|
ed584b23e2 | ||
|
|
f7cab674a4 | ||
|
|
42586081fa | ||
|
|
c49e51d386 |
@@ -0,0 +1,79 @@
|
||||
name: Bug Report - Language Service
|
||||
description: Create a bug report for IntelliSense, code editing, code navigation, code completion, code formatting, semantic colorization, etc.
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
### Is there an existing issue for this?
|
||||
Please search our [existing issues](https://github.com/microsoft/vscode-cpptools/issues) to see if an issue already exists for the bug you encountered.
|
||||
|
||||
Please also review our [documentation](https://code.visualstudio.com/docs/languages/cpp) and [FAQs](https://code.visualstudio.com/docs/cpp/faq-cpp).
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Environment
|
||||
description: |
|
||||
Please provide the information for the following:
|
||||
- OS and Version
|
||||
- VS Code Version
|
||||
- C/C++ Extension Version
|
||||
- If using SSH remote, specify OS of remote machine
|
||||
value: |
|
||||
- OS and Version:
|
||||
- VS Code Version:
|
||||
- C/C++ Extension Version:
|
||||
- If using SSH remote, specify OS of remote machine:
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Bug Summary and Steps to Reproduce
|
||||
description: |
|
||||
Please describe the language service issue or language service feature that is not working as expected. Include information about the actual workspace project (for example, is the workspace a single project or multiple projects, size of the project, etc).
|
||||
|
||||
Include clear steps on how to reproduce the issue and a description of what you expected to happen.
|
||||
value: |
|
||||
Bug Summary:
|
||||
|
||||
|
||||
Steps to reproduce:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
Expected behavior:
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Configuration and Logs
|
||||
description: |
|
||||
Please provide your c_cpp_properties.json and logs:
|
||||
- Configurations in `c_cpp_properties.json`
|
||||
- Logs from running `C/C++: Log Diagnostics` from the VS Code command palette
|
||||
- Logs from [the language server logging](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-language-server)
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Other Extensions
|
||||
description: If applicable, please list other extensions installed and if the issue persists after disabling other extensions.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: |
|
||||
Optionally provide other information that will give us more context about the issue you are encountering, such as code sample, screenshots, screen recording of the issue, call stacks, etc.
|
||||
|
||||
Providing call stacks:
|
||||
For bugs like crashes, deadlocks, infinite loops, etc. that we are not able to repro and for which the call stack may be useful, please attach a debugger and/or create a dmp and provide the call stacks. Windows binaries have symbols available in VS Code by setting your "symbolSearchPath" to "https://msdl.microsoft.com/download/symbols".
|
||||
|
||||
Instructions for attaching debugger to language service process:
|
||||
https://github.com/microsoft/vscode-cpptools/wiki/Attaching-debugger-to-cpptools-or-cpptools%E2%80%90srv.
|
||||
|
||||
Performance analysis:
|
||||
For a performance issue see instructions at https://github.com/microsoft/vscode-cpptools/wiki/Troubleshooting-Performance-Issues.
|
||||
validations:
|
||||
required: false
|
||||
@@ -0,0 +1,78 @@
|
||||
name: Bug Report - Debugger
|
||||
description: Create a bug report for debugging such as call stack, breakpoints, watch window, launching or attaching to a debuggee.
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
### Is there an existing issue for this?
|
||||
Please search our [existing issues](https://github.com/microsoft/vscode-cpptools/issues) to see if an issue already exists for the bug you encountered.
|
||||
|
||||
Please also review our [documentation](https://code.visualstudio.com/docs/languages/cpp) and [FAQs](https://code.visualstudio.com/docs/cpp/faq-cpp).
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Environment
|
||||
description: |
|
||||
Please provide the information for the following:
|
||||
- OS and version
|
||||
- VS Code version
|
||||
- C/C++ extension version
|
||||
- OS and version of remote machine (if applicable)
|
||||
- GDB / LLDB version
|
||||
value: |
|
||||
- OS and version:
|
||||
- VS Code:
|
||||
- C/C++ extension:
|
||||
- OS and version of remote machine (if applicable):
|
||||
- GDB / LLDB version:
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Bug Summary and Steps to Reproduce
|
||||
description: |
|
||||
Please describe the debugging issue or debugger feature that is not working as expected.
|
||||
|
||||
Include clear steps on how to reproduce the issue.
|
||||
value: |
|
||||
Bug Summary:
|
||||
|
||||
|
||||
Steps to reproduce:
|
||||
1. In this environment...
|
||||
2. With this config...
|
||||
3. Do '...'
|
||||
4. See error...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Debugger Configurations
|
||||
description: Please provide the debugger configurations from the **tasks.json** and **launch.json** files.
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Debugger Logs
|
||||
description: |
|
||||
If applicable, please include [logging for the debugger adapter](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-debug-adapter) by adding `"logging": { "engineLogging": true, "trace": true, "traceResponse": true }` in the **launch.json** file.
|
||||
|
||||
Include logs or error messages from the Debug Console or Output windows.
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Other Extensions
|
||||
description: If applicable, please list other extensions installed and if the issue persists after disabling other extensions.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional Information
|
||||
description: |
|
||||
Optionally provide other information that will give us more context about the issue you are encountering, such as a code sample, screenshots, or screen recording of the issue.
|
||||
|
||||
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
|
||||
validations:
|
||||
required: false
|
||||
@@ -0,0 +1,15 @@
|
||||
name: Feature Request
|
||||
description: Suggest an idea for the C/C++ extension.
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
### Is there an existing request for this feature?
|
||||
Prior to creating a new feature request, please review our [existing feature requests](https://github.com/microsoft/vscode-cpptools/issues?q=is%3Aopen+is%3Aissue+label%3A%22Feature+Request%22) to avoid duplicates.
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Feature Request
|
||||
description: |
|
||||
Describe the feature you'd like.
|
||||
validations:
|
||||
required: true
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
name: Bug Report - Debugger
|
||||
about: Create a bug report for debugging such as call stack, breakpoints, watch window,
|
||||
launching or attaching to a debuggee.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Bug type: Debugger
|
||||
|
||||
<!-- Prior to creating a bug report, please review:
|
||||
📝 Existing issues at https://github.com/Microsoft/vscode-cpptools/issues
|
||||
📜 Our documentation at https://code.visualstudio.com/docs/languages/cpp
|
||||
📙 FAQs at https://code.visualstudio.com/docs/cpp/faq-cpp
|
||||
-->
|
||||
|
||||
|
||||
**Describe the bug**
|
||||
- OS and Version:
|
||||
- VS Code Version:
|
||||
- C/C++ Extension Version:
|
||||
- Other extensions you installed (and if the issue persists after disabling them):
|
||||
- A clear and concise description of what the bug is.
|
||||
|
||||
|
||||
**To Reproduce**
|
||||
*Please include a code sample and `launch.json` configuration.*
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
|
||||
**Additional context**
|
||||
*If applicable, please include logging by adding "logging": { "engineLogging": true, "trace": true, "traceResponse": true } in your `launch.json`*
|
||||
Add any other context about the problem here including log or error messages in your Debug Console or Output windows.
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Suggest an idea for this extension.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Type: Feature Request
|
||||
|
||||
<!-- Prior to creating a feature request, please review
|
||||
existing issues at https://github.com/Microsoft/vscode-cpptools/issues
|
||||
to avoid creating duplicates.
|
||||
-->
|
||||
|
||||
<!-- Describe the feature you'd like. -->
|
||||
@@ -1,45 +0,0 @@
|
||||
---
|
||||
name: Bug Report - General Extension
|
||||
about: Create a bug report for downloading, installing, or building the extension.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Bug type: General
|
||||
|
||||
<!-- Prior to creating a bug report, please review:
|
||||
📝 Existing issues at https://github.com/Microsoft/vscode-cpptools/issues
|
||||
📜 Our documentation at https://code.visualstudio.com/docs/languages/cpp
|
||||
📙 FAQs at https://code.visualstudio.com/docs/cpp/faq-cpp
|
||||
-->
|
||||
|
||||
|
||||
**Describe the bug**
|
||||
- OS and Version:
|
||||
- VS Code Version:
|
||||
- C/C++ Extension Version:
|
||||
- Other extensions you installed (and if the issue persists after disabling them):
|
||||
- A clear and concise description of what the bug is.
|
||||
|
||||
|
||||
**To Reproduce**
|
||||
*Please include code sample and `task.json` files.*
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
|
||||
**Expected behavior**
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
|
||||
**Screenshots**
|
||||
<!-- If applicable, add screenshots to help explain your problem. -->
|
||||
|
||||
|
||||
**Additional context**
|
||||
<!-- Add any other context about the problem here including log messages from the Output window. -->
|
||||
@@ -1,65 +0,0 @@
|
||||
---
|
||||
name: Bug Report - Language Service
|
||||
about: 'Create a bug report for IntelliSense, autocomplete, code editing, code navigation, etc.'
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Bug type: Language Service
|
||||
|
||||
<!-- Prior to creating a bug report, please review:
|
||||
📝 Existing issues at https://github.com/Microsoft/vscode-cpptools/issues
|
||||
📜 Our documentation at https://code.visualstudio.com/docs/languages/cpp
|
||||
📙 FAQs at https://code.visualstudio.com/docs/cpp/faq-cpp
|
||||
-->
|
||||
|
||||
|
||||
**Describe the bug**
|
||||
- OS and Version:
|
||||
- VS Code Version:
|
||||
- C/C++ Extension Version:
|
||||
- Other extensions you installed (and if the issue persists after disabling them):
|
||||
- If using SSH remote, specify OS of remote machine:
|
||||
- A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).
|
||||
|
||||
|
||||
**Steps to reproduce**
|
||||
<!-- Provide clear steps to reproduce the bug: -->
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
|
||||
**Expected behavior**
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
|
||||
**Code sample and logs**
|
||||
<!-- Please provide code sample, your c_cpp_properties.json and logs. -->
|
||||
- Code sample
|
||||
|
||||
- Configurations in `c_cpp_properties.json`
|
||||
|
||||
- Logs from running `C/C++: Log Diagnostics` from the VS Code command palette
|
||||
|
||||
- Logs from [the language server logging](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-language-server)
|
||||
|
||||
|
||||
**Screenshots**
|
||||
<!-- If applicable, add screenshots to help explain your problem. -->
|
||||
|
||||
|
||||
**Additional context**
|
||||
<!--
|
||||
Providing call stacks:
|
||||
For bugs like crashes, deadlocks, infinite loops, etc. that we are not able to repro and for which the call stack may be useful, please attach a debugger and/or create a dmp and provide the call stacks. Windows binaries have symbols available in VS Code by setting your "symbolSearchPath" to "https://msdl.microsoft.com/download/symbols".
|
||||
|
||||
Instructions for attaching debugger to language service process:
|
||||
https://github.com/microsoft/vscode-cpptools/wiki/Attaching-debugger-to-cpptools-or-cpptools%E2%80%90srv.
|
||||
|
||||
Performance analysis:
|
||||
For a performance issue see instructions at https://github.com/microsoft/vscode-cpptools/wiki/Troubleshooting-Performance-Issues.
|
||||
-->
|
||||
@@ -15,8 +15,8 @@ class Locker extends ActionBase_1.ActionBase {
|
||||
this.daysSinceUpdate = daysSinceUpdate;
|
||||
}
|
||||
async run() {
|
||||
const closedTimestamp = utils_1.daysAgoToHumanReadbleDate(this.daysSinceClose);
|
||||
const updatedTimestamp = utils_1.daysAgoToHumanReadbleDate(this.daysSinceUpdate);
|
||||
const closedTimestamp = (0, utils_1.daysAgoToHumanReadbleDate)(this.daysSinceClose);
|
||||
const updatedTimestamp = (0, utils_1.daysAgoToHumanReadbleDate)(this.daysSinceUpdate);
|
||||
const query = this.buildQuery((this.daysSinceClose ? `closed:<${closedTimestamp} ` : "") + (this.daysSinceUpdate ? `updated:<${updatedTimestamp} ` : "") + "is:closed is:unlocked");
|
||||
for await (const page of this.github.query({ q: query })) {
|
||||
await Promise.all(page.map(async (issue) => {
|
||||
@@ -24,15 +24,15 @@ class Locker extends ActionBase_1.ActionBase {
|
||||
if (!hydrated.locked && hydrated.open === false && this.validateIssue(hydrated)
|
||||
// TODO: Verify closed and updated timestamps
|
||||
) {
|
||||
console.log(`Locking issue ${hydrated.number}`);
|
||||
(0, utils_1.safeLog)(`Locking issue ${hydrated.number}`);
|
||||
await issue.lockIssue();
|
||||
}
|
||||
else {
|
||||
if (hydrated.locked) {
|
||||
console.log(`Issue ${hydrated.number} is already locked. Ignoring`);
|
||||
(0, utils_1.safeLog)(`Issue ${hydrated.number} is already locked. Ignoring`);
|
||||
}
|
||||
else if (hydrated.open) {
|
||||
console.log(`Issue ${hydrated.number} is open. Ignoring`);
|
||||
(0, utils_1.safeLog)(`Issue ${hydrated.number} is open. Ignoring`);
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { GitHub, Issue } from '../api/api'
|
||||
import { daysAgoToHumanReadbleDate } from '../common/utils'
|
||||
import { ActionBase } from '../common/ActionBase'
|
||||
import { GitHub, Issue } from '../api/api';
|
||||
import { daysAgoToHumanReadbleDate, safeLog } from '../common/utils';
|
||||
import { ActionBase } from '../common/ActionBase';
|
||||
|
||||
export class Locker extends ActionBase {
|
||||
constructor(
|
||||
@@ -26,26 +26,26 @@ export class Locker extends ActionBase {
|
||||
}
|
||||
|
||||
async run() {
|
||||
const closedTimestamp = daysAgoToHumanReadbleDate(this.daysSinceClose)
|
||||
const updatedTimestamp = daysAgoToHumanReadbleDate(this.daysSinceUpdate)
|
||||
const closedTimestamp = daysAgoToHumanReadbleDate(this.daysSinceClose);
|
||||
const updatedTimestamp = daysAgoToHumanReadbleDate(this.daysSinceUpdate);
|
||||
|
||||
const query = this.buildQuery((this.daysSinceClose ? `closed:<${closedTimestamp} ` : "") + (this.daysSinceUpdate ? `updated:<${updatedTimestamp} ` : "") + "is:closed is:unlocked");
|
||||
|
||||
for await (const page of this.github.query({ q: query })) {
|
||||
await Promise.all(
|
||||
page.map(async (issue) => {
|
||||
const hydrated = await issue.getIssue()
|
||||
const hydrated = await issue.getIssue();
|
||||
|
||||
if (!hydrated.locked && hydrated.open === false && this.validateIssue(hydrated)
|
||||
// TODO: Verify closed and updated timestamps
|
||||
) {
|
||||
console.log(`Locking issue ${hydrated.number}`)
|
||||
await issue.lockIssue()
|
||||
safeLog(`Locking issue ${hydrated.number}`);
|
||||
await issue.lockIssue();
|
||||
} else {
|
||||
if (hydrated.locked) {
|
||||
console.log(`Issue ${hydrated.number} is already locked. Ignoring`)
|
||||
safeLog(`Issue ${hydrated.number} is already locked. Ignoring`);
|
||||
} else if (hydrated.open) {
|
||||
console.log(`Issue ${hydrated.number} is open. Ignoring`)
|
||||
safeLog(`Issue ${hydrated.number} is open. Ignoring`);
|
||||
}
|
||||
}
|
||||
}),
|
||||
|
||||
@@ -13,7 +13,7 @@ class LockerAction extends Action_1.Action {
|
||||
this.id = 'Locker';
|
||||
}
|
||||
async onTriggered(github) {
|
||||
await new Locker_1.Locker(github, +utils_1.getRequiredInput('daysSinceClose'), +utils_1.getRequiredInput('daysSinceUpdate'), utils_1.getInput('labels') || undefined, utils_1.getInput('milestoneName') || undefined, utils_1.getInput('milestoneId') || undefined, utils_1.getInput('ignoreLabels') || undefined, utils_1.getInput('ignoreMilestoneNames') || undefined, utils_1.getInput('ignoreMilestoneIds') || undefined, +(utils_1.getInput('minimumVotes') || 0), +(utils_1.getInput('maximumVotes') || 9999999)).run();
|
||||
await new Locker_1.Locker(github, +(0, utils_1.getRequiredInput)('daysSinceClose'), +(0, utils_1.getRequiredInput)('daysSinceUpdate'), (0, utils_1.getInput)('labels') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999)).run();
|
||||
}
|
||||
}
|
||||
new LockerAction().run(); // eslint-disable-line
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { OctoKit } from '../api/octokit'
|
||||
import { getInput, getRequiredInput } from '../common/utils'
|
||||
import { Locker } from './Locker'
|
||||
import { Action } from '../common/Action'
|
||||
import { OctoKit } from '../api/octokit';
|
||||
import { getInput, getRequiredInput } from '../common/utils';
|
||||
import { Locker } from './Locker';
|
||||
import { Action } from '../common/Action';
|
||||
|
||||
class LockerAction extends Action {
|
||||
id = 'Locker'
|
||||
id = 'Locker';
|
||||
|
||||
async onTriggered(github: OctoKit) {
|
||||
await new Locker(
|
||||
@@ -24,8 +24,8 @@ class LockerAction extends Action {
|
||||
getInput('ignoreMilestoneIds') || undefined,
|
||||
+(getInput('minimumVotes') || 0),
|
||||
+(getInput('maximumVotes') || 9999999)
|
||||
).run()
|
||||
).run();
|
||||
}
|
||||
}
|
||||
|
||||
new LockerAction().run() // eslint-disable-line
|
||||
new LockerAction().run(); // eslint-disable-line
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Reopener = void 0;
|
||||
const utils_1 = require("../common/utils");
|
||||
const ActionBase_1 = require("../common/ActionBase");
|
||||
class Reopener extends ActionBase_1.ActionBase {
|
||||
constructor(github, alsoApplyToOpenIssues, addLabels, removeLabels, reopenComment, setMilestoneId, labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes) {
|
||||
@@ -19,7 +20,7 @@ class Reopener extends ActionBase_1.ActionBase {
|
||||
async run() {
|
||||
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
|
||||
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
|
||||
console.log(`alsoApplyToOpenIssues: ${this.alsoApplyToOpenIssues}`);
|
||||
(0, utils_1.safeLog)(`alsoApplyToOpenIssues: ${this.alsoApplyToOpenIssues}`);
|
||||
const query = this.buildQuery((this.alsoApplyToOpenIssues ? "" : "is:closed ") + "is:unlocked");
|
||||
for await (const page of this.github.query({ q: query })) {
|
||||
await Promise.all(page.map(async (issue) => {
|
||||
@@ -28,17 +29,17 @@ class Reopener extends ActionBase_1.ActionBase {
|
||||
// TODO: Verify closed and updated timestamps
|
||||
) {
|
||||
if (hydrated.open === false) {
|
||||
console.log(`Reopening issue ${hydrated.number}`);
|
||||
(0, utils_1.safeLog)(`Reopening issue ${hydrated.number}`);
|
||||
await issue.reopenIssue();
|
||||
}
|
||||
if (this.setMilestoneId != undefined) {
|
||||
console.log(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
|
||||
(0, utils_1.safeLog)(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
|
||||
await issue.setMilestone(+this.setMilestoneId);
|
||||
}
|
||||
if (removeLabelsSet.length > 0) {
|
||||
for (const removeLabel of removeLabelsSet) {
|
||||
if (removeLabel && removeLabel.length > 0) {
|
||||
console.log(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
|
||||
(0, utils_1.safeLog)(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
|
||||
await issue.removeLabel(removeLabel);
|
||||
}
|
||||
}
|
||||
@@ -46,22 +47,22 @@ class Reopener extends ActionBase_1.ActionBase {
|
||||
if (addLabelsSet.length > 0) {
|
||||
for (const addLabel of addLabelsSet) {
|
||||
if (addLabel && addLabel.length > 0) {
|
||||
console.log(`Adding label on issue ${hydrated.number}: ${addLabel}`);
|
||||
(0, utils_1.safeLog)(`Adding label on issue ${hydrated.number}: ${addLabel}`);
|
||||
await issue.addLabel(addLabel);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.reopenComment) {
|
||||
console.log(`Posting comment to issue ${hydrated.number}.`);
|
||||
(0, utils_1.safeLog)(`Posting comment to issue ${hydrated.number}.`);
|
||||
await issue.postComment(this.reopenComment);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (hydrated.locked) {
|
||||
console.log(`Issue ${hydrated.number} is locked. Ignoring`);
|
||||
(0, utils_1.safeLog)(`Issue ${hydrated.number} is locked. Ignoring`);
|
||||
}
|
||||
else if (!this.alsoApplyToOpenIssues && hydrated.open) {
|
||||
console.log(`Issue ${hydrated.number} is open. Ignoring`);
|
||||
(0, utils_1.safeLog)(`Issue ${hydrated.number} is open. Ignoring`);
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { GitHub, Issue } from '../api/api'
|
||||
import { ActionBase } from '../common/ActionBase'
|
||||
import { GitHub, Issue } from '../api/api';
|
||||
import { daysAgoToHumanReadbleDate, safeLog } from '../common/utils';
|
||||
import { ActionBase } from '../common/ActionBase';
|
||||
|
||||
export class Reopener extends ActionBase {
|
||||
constructor(
|
||||
@@ -31,50 +32,50 @@ export class Reopener extends ActionBase {
|
||||
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
|
||||
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
|
||||
|
||||
console.log(`alsoApplyToOpenIssues: ${this.alsoApplyToOpenIssues}`);
|
||||
safeLog(`alsoApplyToOpenIssues: ${this.alsoApplyToOpenIssues}`);
|
||||
|
||||
const query = this.buildQuery((this.alsoApplyToOpenIssues ? "": "is:closed ") + "is:unlocked");
|
||||
|
||||
for await (const page of this.github.query({ q: query })) {
|
||||
await Promise.all(
|
||||
page.map(async (issue) => {
|
||||
const hydrated = await issue.getIssue()
|
||||
const hydrated = await issue.getIssue();
|
||||
if (!hydrated.locked && (this.alsoApplyToOpenIssues || hydrated.open === false) && this.validateIssue(hydrated)
|
||||
// TODO: Verify closed and updated timestamps
|
||||
) {
|
||||
if (hydrated.open === false) {
|
||||
console.log(`Reopening issue ${hydrated.number}`)
|
||||
await issue.reopenIssue()
|
||||
safeLog(`Reopening issue ${hydrated.number}`);
|
||||
await issue.reopenIssue();
|
||||
}
|
||||
if (this.setMilestoneId != undefined) {
|
||||
console.log(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`)
|
||||
await issue.setMilestone(+this.setMilestoneId)
|
||||
safeLog(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
|
||||
await issue.setMilestone(+this.setMilestoneId);
|
||||
}
|
||||
if (removeLabelsSet.length > 0) {
|
||||
for (const removeLabel of removeLabelsSet) {
|
||||
if (removeLabel && removeLabel.length > 0) {
|
||||
console.log(`Removing label on issue ${hydrated.number}: ${removeLabel}`)
|
||||
await issue.removeLabel(removeLabel)
|
||||
safeLog(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
|
||||
await issue.removeLabel(removeLabel);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (addLabelsSet.length > 0) {
|
||||
for (const addLabel of addLabelsSet) {
|
||||
if (addLabel && addLabel.length > 0) {
|
||||
console.log(`Adding label on issue ${hydrated.number}: ${addLabel}`)
|
||||
await issue.addLabel(addLabel)
|
||||
safeLog(`Adding label on issue ${hydrated.number}: ${addLabel}`);
|
||||
await issue.addLabel(addLabel);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.reopenComment) {
|
||||
console.log(`Posting comment to issue ${hydrated.number}.`)
|
||||
await issue.postComment(this.reopenComment)
|
||||
safeLog(`Posting comment to issue ${hydrated.number}.`);
|
||||
await issue.postComment(this.reopenComment);
|
||||
}
|
||||
} else {
|
||||
if (hydrated.locked) {
|
||||
console.log(`Issue ${hydrated.number} is locked. Ignoring`)
|
||||
safeLog(`Issue ${hydrated.number} is locked. Ignoring`);
|
||||
} else if (!this.alsoApplyToOpenIssues && hydrated.open) {
|
||||
console.log(`Issue ${hydrated.number} is open. Ignoring`)
|
||||
safeLog(`Issue ${hydrated.number} is open. Ignoring`);
|
||||
}
|
||||
}
|
||||
}),
|
||||
|
||||
@@ -10,11 +10,11 @@ const Action_1 = require("../common/Action");
|
||||
class ReopenerAction extends Action_1.Action {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.id = 'Locker';
|
||||
this.id = 'Reopener';
|
||||
}
|
||||
async onTriggered(github) {
|
||||
const alsoApplyToOpenIssues = utils_1.getInput('alsoApplyToOpenIssues');
|
||||
await new Reopener_1.Reopener(github, alsoApplyToOpenIssues != undefined && alsoApplyToOpenIssues.toLowerCase() == 'true', utils_1.getInput('addLabels') || undefined, utils_1.getInput('removeLabels') || undefined, utils_1.getInput('reopenComment') || '', utils_1.getInput('setMilestoneId') || undefined, utils_1.getInput('labels') || undefined, utils_1.getInput('milestoneName') || undefined, utils_1.getInput('milestoneId') || undefined, utils_1.getInput('ignoreLabels') || undefined, utils_1.getInput('ignoreMilestoneNames') || undefined, utils_1.getInput('ignoreMilestoneIds') || undefined, +(utils_1.getInput('minimumVotes') || 0), +(utils_1.getInput('maximumVotes') || 9999999)).run();
|
||||
const alsoApplyToOpenIssues = (0, utils_1.getInput)('alsoApplyToOpenIssues');
|
||||
await new Reopener_1.Reopener(github, alsoApplyToOpenIssues != undefined && alsoApplyToOpenIssues.toLowerCase() == 'true', (0, utils_1.getInput)('addLabels') || undefined, (0, utils_1.getInput)('removeLabels') || undefined, (0, utils_1.getInput)('reopenComment') || '', (0, utils_1.getInput)('setMilestoneId') || undefined, (0, utils_1.getInput)('labels') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999)).run();
|
||||
}
|
||||
}
|
||||
new ReopenerAction().run(); // eslint-disable-line
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { OctoKit } from '../api/octokit'
|
||||
import { getInput, getRequiredInput } from '../common/utils'
|
||||
import { Reopener } from './Reopener'
|
||||
import { Action } from '../common/Action'
|
||||
import { OctoKit } from '../api/octokit';
|
||||
import { getInput, getRequiredInput } from '../common/utils';
|
||||
import { Reopener } from './Reopener';
|
||||
import { Action } from '../common/Action';
|
||||
|
||||
class ReopenerAction extends Action {
|
||||
id = 'Locker'
|
||||
id = 'Reopener';
|
||||
|
||||
async onTriggered(github: OctoKit) {
|
||||
const alsoApplyToOpenIssues: string | undefined = getInput('alsoApplyToOpenIssues');
|
||||
@@ -28,8 +28,8 @@ class ReopenerAction extends Action {
|
||||
getInput('ignoreMilestoneIds') || undefined,
|
||||
+(getInput('minimumVotes') || 0),
|
||||
+(getInput('maximumVotes') || 9999999)
|
||||
).run()
|
||||
).run();
|
||||
}
|
||||
}
|
||||
|
||||
new ReopenerAction().run() // eslint-disable-line
|
||||
new ReopenerAction().run(); // eslint-disable-line
|
||||
|
||||
@@ -21,8 +21,8 @@ class StaleCloser extends ActionBase_1.ActionBase {
|
||||
this.setMilestoneId = setMilestoneId;
|
||||
}
|
||||
async run() {
|
||||
const updatedTimestamp = utils_1.daysAgoToHumanReadbleDate(this.closeDays);
|
||||
const pingTimestamp = this.pingDays ? utils_1.daysAgoToTimestamp(this.pingDays) : undefined;
|
||||
const updatedTimestamp = (0, utils_1.daysAgoToHumanReadbleDate)(this.closeDays);
|
||||
const pingTimestamp = this.pingDays ? (0, utils_1.daysAgoToTimestamp)(this.pingDays) : undefined;
|
||||
const query = this.buildQuery((this.closeDays ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
|
||||
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
|
||||
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
|
||||
@@ -45,20 +45,20 @@ class StaleCloser extends ActionBase_1.ActionBase {
|
||||
await issue.hasWriteAccess(lastComment.author)) {
|
||||
if (pingTimestamp != undefined) {
|
||||
if (lastComment) {
|
||||
console.log(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Closing.`);
|
||||
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Closing.`);
|
||||
}
|
||||
else {
|
||||
console.log(`No comments on issue ${hydrated.number}. Closing.`);
|
||||
(0, utils_1.safeLog)(`No comments on issue ${hydrated.number}. Closing.`);
|
||||
}
|
||||
}
|
||||
if (this.closeComment) {
|
||||
console.log(`Posting comment on issue ${hydrated.number}`);
|
||||
(0, utils_1.safeLog)(`Posting comment on issue ${hydrated.number}`);
|
||||
await issue.postComment(this.closeComment);
|
||||
}
|
||||
if (removeLabelsSet.length > 0) {
|
||||
for (const removeLabel of removeLabelsSet) {
|
||||
if (removeLabel && removeLabel.length > 0) {
|
||||
console.log(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
|
||||
(0, utils_1.safeLog)(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
|
||||
await issue.removeLabel(removeLabel);
|
||||
}
|
||||
}
|
||||
@@ -66,22 +66,22 @@ class StaleCloser extends ActionBase_1.ActionBase {
|
||||
if (addLabelsSet.length > 0) {
|
||||
for (const addLabel of addLabelsSet) {
|
||||
if (addLabel && addLabel.length > 0) {
|
||||
console.log(`Adding label on issue ${hydrated.number}: ${addLabel}`);
|
||||
(0, utils_1.safeLog)(`Adding label on issue ${hydrated.number}: ${addLabel}`);
|
||||
await issue.addLabel(addLabel);
|
||||
}
|
||||
}
|
||||
}
|
||||
await issue.closeIssue();
|
||||
await issue.closeIssue("not_planned");
|
||||
if (this.setMilestoneId != undefined) {
|
||||
console.log(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
|
||||
(0, utils_1.safeLog)(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
|
||||
await issue.setMilestone(+this.setMilestoneId);
|
||||
}
|
||||
console.log(`Closing issue ${hydrated.number}.`);
|
||||
(0, utils_1.safeLog)(`Closing issue ${hydrated.number}.`);
|
||||
}
|
||||
else {
|
||||
// Ping
|
||||
if (hydrated.updatedAt < pingTimestamp && hydrated.assignee) {
|
||||
console.log(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Pinging @${hydrated.assignee}`);
|
||||
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Pinging @${hydrated.assignee}`);
|
||||
if (this.pingComment) {
|
||||
await issue.postComment(this.pingComment
|
||||
.replace('${assignee}', hydrated.assignee)
|
||||
@@ -89,13 +89,13 @@ class StaleCloser extends ActionBase_1.ActionBase {
|
||||
}
|
||||
}
|
||||
else {
|
||||
console.log(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Skipping.${hydrated.assignee ? ' cc @' + hydrated.assignee : ''}`);
|
||||
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Skipping.${hydrated.assignee ? ' cc @' + hydrated.assignee : ''}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!hydrated.open) {
|
||||
console.log(`Issue ${hydrated.number} is not open. Ignoring`);
|
||||
(0, utils_1.safeLog)(`Issue ${hydrated.number} is not open. Ignoring`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { GitHub } from '../api/api'
|
||||
import { ActionBase } from '../common/ActionBase'
|
||||
import { daysAgoToHumanReadbleDate, daysAgoToTimestamp } from '../common/utils'
|
||||
import { GitHub } from '../api/api';
|
||||
import { ActionBase } from '../common/ActionBase';
|
||||
import { daysAgoToHumanReadbleDate, daysAgoToTimestamp, safeLog } from '../common/utils';
|
||||
|
||||
export class StaleCloser extends ActionBase {
|
||||
constructor(
|
||||
@@ -33,7 +33,7 @@ export class StaleCloser extends ActionBase {
|
||||
}
|
||||
|
||||
async run() {
|
||||
const updatedTimestamp = daysAgoToHumanReadbleDate(this.closeDays)
|
||||
const updatedTimestamp = daysAgoToHumanReadbleDate(this.closeDays);
|
||||
const pingTimestamp = this.pingDays ? daysAgoToTimestamp(this.pingDays) : undefined;
|
||||
|
||||
const query = this.buildQuery((this.closeDays ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
|
||||
@@ -43,12 +43,12 @@ export class StaleCloser extends ActionBase {
|
||||
|
||||
for await (const page of this.github.query({ q: query })) {
|
||||
for (const issue of page) {
|
||||
const hydrated = await issue.getIssue()
|
||||
const lastCommentIterator = await issue.getComments(true).next()
|
||||
const hydrated = await issue.getIssue();
|
||||
const lastCommentIterator = await issue.getComments(true).next();
|
||||
if (lastCommentIterator.done) {
|
||||
throw Error('Unexpected comment data')
|
||||
throw Error('Unexpected comment data');
|
||||
}
|
||||
const lastComment = lastCommentIterator.value[0]
|
||||
const lastComment = lastCommentIterator.value[0];
|
||||
|
||||
if (hydrated.open && this.validateIssue(hydrated)
|
||||
// TODO: Verify updated timestamp
|
||||
@@ -63,63 +63,63 @@ export class StaleCloser extends ActionBase {
|
||||
) {
|
||||
if (pingTimestamp != undefined) {
|
||||
if (lastComment) {
|
||||
console.log(
|
||||
safeLog(
|
||||
`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Closing.`,
|
||||
)
|
||||
);
|
||||
} else {
|
||||
console.log(`No comments on issue ${hydrated.number}. Closing.`)
|
||||
safeLog(`No comments on issue ${hydrated.number}. Closing.`);
|
||||
}
|
||||
}
|
||||
if (this.closeComment) {
|
||||
console.log(`Posting comment on issue ${hydrated.number}`)
|
||||
await issue.postComment(this.closeComment)
|
||||
safeLog(`Posting comment on issue ${hydrated.number}`);
|
||||
await issue.postComment(this.closeComment);
|
||||
}
|
||||
if (removeLabelsSet.length > 0) {
|
||||
for (const removeLabel of removeLabelsSet) {
|
||||
if (removeLabel && removeLabel.length > 0) {
|
||||
console.log(`Removing label on issue ${hydrated.number}: ${removeLabel}`)
|
||||
await issue.removeLabel(removeLabel)
|
||||
safeLog(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
|
||||
await issue.removeLabel(removeLabel);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (addLabelsSet.length > 0) {
|
||||
for (const addLabel of addLabelsSet) {
|
||||
if (addLabel && addLabel.length > 0) {
|
||||
console.log(`Adding label on issue ${hydrated.number}: ${addLabel}`)
|
||||
await issue.addLabel(addLabel)
|
||||
safeLog(`Adding label on issue ${hydrated.number}: ${addLabel}`);
|
||||
await issue.addLabel(addLabel);
|
||||
}
|
||||
}
|
||||
}
|
||||
await issue.closeIssue()
|
||||
await issue.closeIssue("not_planned");
|
||||
if (this.setMilestoneId != undefined) {
|
||||
console.log(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`)
|
||||
await issue.setMilestone(+this.setMilestoneId)
|
||||
safeLog(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
|
||||
await issue.setMilestone(+this.setMilestoneId);
|
||||
}
|
||||
console.log(`Closing issue ${hydrated.number}.`)
|
||||
safeLog(`Closing issue ${hydrated.number}.`);
|
||||
} else {
|
||||
// Ping
|
||||
if (hydrated.updatedAt < pingTimestamp && hydrated.assignee) {
|
||||
console.log(
|
||||
safeLog(
|
||||
`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Pinging @${hydrated.assignee}`,
|
||||
)
|
||||
);
|
||||
if (this.pingComment) {
|
||||
await issue.postComment(
|
||||
this.pingComment
|
||||
.replace('${assignee}', hydrated.assignee)
|
||||
.replace('${author}', hydrated.author.name),
|
||||
)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
console.log(
|
||||
safeLog(
|
||||
`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Skipping.${
|
||||
hydrated.assignee ? ' cc @' + hydrated.assignee : ''
|
||||
}`,
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!hydrated.open) {
|
||||
console.log(`Issue ${hydrated.number} is not open. Ignoring`)
|
||||
safeLog(`Issue ${hydrated.number} is not open. Ignoring`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ class StaleCloserAction extends Action_1.Action {
|
||||
}
|
||||
async onTriggered(github) {
|
||||
var _a;
|
||||
await new StaleCloser_1.StaleCloser(github, +utils_1.getRequiredInput('closeDays'), utils_1.getRequiredInput('labels'), utils_1.getInput('closeComment') || '', +(utils_1.getInput('pingDays') || 0), utils_1.getInput('pingComment') || '', ((_a = utils_1.getInput('additionalTeam')) !== null && _a !== void 0 ? _a : '').split(','), utils_1.getInput('addLabels') || undefined, utils_1.getInput('removeLabels') || undefined, utils_1.getInput('setMilestoneId') || undefined, utils_1.getInput('milestoneName') || undefined, utils_1.getInput('milestoneId') || undefined, utils_1.getInput('ignoreLabels') || undefined, utils_1.getInput('ignoreMilestoneNames') || undefined, utils_1.getInput('ignoreMilestoneIds') || undefined, +(utils_1.getInput('minimumVotes') || 0), +(utils_1.getInput('maximumVotes') || 9999999), utils_1.getInput('involves') || undefined).run();
|
||||
await new StaleCloser_1.StaleCloser(github, +(0, utils_1.getRequiredInput)('closeDays'), (0, utils_1.getRequiredInput)('labels'), (0, utils_1.getInput)('closeComment') || '', +((0, utils_1.getInput)('pingDays') || 0), (0, utils_1.getInput)('pingComment') || '', ((_a = (0, utils_1.getInput)('additionalTeam')) !== null && _a !== void 0 ? _a : '').split(','), (0, utils_1.getInput)('addLabels') || undefined, (0, utils_1.getInput)('removeLabels') || undefined, (0, utils_1.getInput)('setMilestoneId') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999), (0, utils_1.getInput)('involves') || undefined).run();
|
||||
}
|
||||
}
|
||||
new StaleCloserAction().run(); // eslint-disable-line
|
||||
|
||||
@@ -9,7 +9,7 @@ import { StaleCloser } from './StaleCloser'
|
||||
import { Action } from '../common/Action'
|
||||
|
||||
class StaleCloserAction extends Action {
|
||||
id = 'StaleCloser'
|
||||
id = 'StaleCloser';
|
||||
|
||||
async onTriggered(github: OctoKit) {
|
||||
await new StaleCloser(
|
||||
@@ -31,8 +31,8 @@ class StaleCloserAction extends Action {
|
||||
+(getInput('minimumVotes') || 0),
|
||||
+(getInput('maximumVotes') || 9999999),
|
||||
getInput('involves') || undefined
|
||||
).run()
|
||||
).run();
|
||||
}
|
||||
}
|
||||
|
||||
new StaleCloserAction().run() // eslint-disable-line
|
||||
new StaleCloserAction().run(); // eslint-disable-line
|
||||
|
||||
+79
-56
@@ -4,43 +4,53 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
export interface GitHub {
|
||||
query(query: Query): AsyncIterableIterator<GitHubIssue[]>
|
||||
repoOwner: string;
|
||||
repoName: string;
|
||||
|
||||
hasWriteAccess(user: User): Promise<boolean>
|
||||
query(query: Query): AsyncIterableIterator<GitHubIssue[]>;
|
||||
|
||||
repoHasLabel(label: string): Promise<boolean>
|
||||
createLabel(label: string, color: string, description: string): Promise<void>
|
||||
deleteLabel(label: string): Promise<void>
|
||||
hasWriteAccess(user: User): Promise<boolean>;
|
||||
|
||||
readConfig(path: string): Promise<any>
|
||||
repoHasLabel(label: string): Promise<boolean>;
|
||||
createLabel(label: string, color: string, description: string): Promise<void>;
|
||||
deleteLabel(label: string): Promise<void>;
|
||||
|
||||
dispatch(title: string): Promise<void>
|
||||
readConfig(path: string): Promise<any>;
|
||||
|
||||
createIssue(owner: string, repo: string, title: string, body: string): Promise<void>
|
||||
dispatch(title: string): Promise<void>;
|
||||
|
||||
releaseContainsCommit(release: string, commit: string): Promise<'yes' | 'no' | 'unknown'>
|
||||
createIssue(owner: string, repo: string, title: string, body: string): Promise<void>;
|
||||
|
||||
releaseContainsCommit(release: string, commit: string): Promise<'yes' | 'no' | 'unknown'>;
|
||||
|
||||
/**
|
||||
* Returns what we think the current milestone for the repo is based on the due on date.
|
||||
* @returns The milestone id if one is found, else undefined
|
||||
*/
|
||||
getCurrentRepoMilestone(): Promise<number | undefined>;
|
||||
}
|
||||
|
||||
export interface GitHubIssue extends GitHub {
|
||||
getIssue(): Promise<Issue>
|
||||
getIssue(): Promise<Issue>;
|
||||
|
||||
postComment(body: string): Promise<void>
|
||||
deleteComment(id: number): Promise<void>
|
||||
getComments(last?: boolean): AsyncIterableIterator<Comment[]>
|
||||
postComment(body: string): Promise<void>;
|
||||
deleteComment(id: number): Promise<void>;
|
||||
getComments(last?: boolean): AsyncIterableIterator<Comment[]>;
|
||||
|
||||
closeIssue(): Promise<void>
|
||||
lockIssue(): Promise<void>
|
||||
reopenIssue(): Promise<void>
|
||||
closeIssue(reason: 'completed' | 'not_planned'): Promise<void>;
|
||||
lockIssue(): Promise<void>;
|
||||
unlockIssue(): Promise<void>;
|
||||
reopenIssue(): Promise<void>;
|
||||
|
||||
setMilestone(milestoneId: number): Promise<void>
|
||||
setMilestone(milestoneId: number): Promise<void>;
|
||||
|
||||
addLabel(label: string): Promise<void>
|
||||
removeLabel(label: string): Promise<void>
|
||||
addLabel(label: string): Promise<void>;
|
||||
removeLabel(label: string): Promise<void>;
|
||||
|
||||
addAssignee(assignee: string): Promise<void>
|
||||
removeAssignee(assignee: string): Promise<void>
|
||||
addAssignee(assignee: string): Promise<void>;
|
||||
removeAssignee(assignee: string): Promise<void>;
|
||||
|
||||
getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined>
|
||||
getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined>;
|
||||
}
|
||||
|
||||
type SortVar =
|
||||
@@ -54,47 +64,60 @@ type SortVar =
|
||||
| 'reactions-tada'
|
||||
| 'interactions'
|
||||
| 'created'
|
||||
| 'updated'
|
||||
type SortOrder = 'asc' | 'desc'
|
||||
| 'updated';
|
||||
type SortOrder = 'asc' | 'desc';
|
||||
export type Reactions = {
|
||||
'+1': number
|
||||
'-1': number
|
||||
laugh: number
|
||||
hooray: number
|
||||
confused: number
|
||||
heart: number
|
||||
rocket: number
|
||||
eyes: number
|
||||
}
|
||||
'+1': number;
|
||||
'-1': number;
|
||||
laugh: number;
|
||||
hooray: number;
|
||||
confused: number;
|
||||
heart: number;
|
||||
rocket: number;
|
||||
eyes: number;
|
||||
};
|
||||
|
||||
export interface User {
|
||||
name: string
|
||||
isGitHubApp?: boolean
|
||||
name: string;
|
||||
isGitHubApp?: boolean;
|
||||
}
|
||||
export interface Comment {
|
||||
author: User
|
||||
body: string
|
||||
id: number
|
||||
timestamp: number
|
||||
author: User;
|
||||
body: string;
|
||||
id: number;
|
||||
timestamp: number;
|
||||
}
|
||||
export interface Issue {
|
||||
author: User
|
||||
body: string
|
||||
title: string
|
||||
labels: string[]
|
||||
open: boolean
|
||||
locked: boolean
|
||||
number: number
|
||||
numComments: number
|
||||
reactions: Reactions
|
||||
milestoneId: number | null
|
||||
assignee?: string
|
||||
createdAt: number
|
||||
updatedAt: number
|
||||
closedAt?: number
|
||||
author: User;
|
||||
body: string;
|
||||
title: string;
|
||||
labels: string[];
|
||||
open: boolean;
|
||||
locked: boolean;
|
||||
number: number;
|
||||
isPr: boolean;
|
||||
numComments: number;
|
||||
reactions: Reactions;
|
||||
milestone: Milestone | null;
|
||||
assignee?: string;
|
||||
assignees: string[];
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
closedAt?: number;
|
||||
}
|
||||
export interface Milestone {
|
||||
milestoneId: number;
|
||||
title: string;
|
||||
description: string;
|
||||
numClosedIssues: number;
|
||||
numOpenIssues: number;
|
||||
dueOn: Date | null;
|
||||
createdAt: Date | null;
|
||||
closedAt: Date | null;
|
||||
state: 'open' | 'closed';
|
||||
}
|
||||
export interface Query {
|
||||
q: string
|
||||
sort?: SortVar
|
||||
order?: SortOrder
|
||||
q: string;
|
||||
sort?: SortVar;
|
||||
order?: SortOrder;
|
||||
}
|
||||
|
||||
+169
-90
@@ -5,11 +5,12 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.OctoKitIssue = exports.OctoKit = exports.getNumRequests = void 0;
|
||||
const core_1 = require("@actions/core");
|
||||
const github_1 = require("@actions/github");
|
||||
const child_process_1 = require("child_process");
|
||||
const utils_1 = require("../common/utils");
|
||||
let numRequests = 0;
|
||||
exports.getNumRequests = () => numRequests;
|
||||
const getNumRequests = () => numRequests;
|
||||
exports.getNumRequests = getNumRequests;
|
||||
class OctoKit {
|
||||
constructor(token, params, options = { readonly: false }) {
|
||||
this.token = token;
|
||||
@@ -18,73 +19,97 @@ class OctoKit {
|
||||
// when in readonly mode, record labels just-created so at to not throw unneccesary errors
|
||||
this.mockLabels = new Set();
|
||||
this.writeAccessCache = {};
|
||||
this._octokit = new github_1.GitHub(token);
|
||||
this._octokit = (0, github_1.getOctokit)(token);
|
||||
this.repoName = params.repo;
|
||||
this.repoOwner = params.owner;
|
||||
}
|
||||
get octokit() {
|
||||
numRequests++;
|
||||
return this._octokit;
|
||||
}
|
||||
getIssueByNumber(number) {
|
||||
return new OctoKitIssue(this.token, this.params, { number: number });
|
||||
}
|
||||
// TODO: just iterate over the issues in a page here instead of making caller do it
|
||||
async *query(query) {
|
||||
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`;
|
||||
console.log(`Querying for ${q}:`);
|
||||
const options = this.octokit.search.issuesAndPullRequests.endpoint.merge({
|
||||
const options = {
|
||||
...query,
|
||||
q,
|
||||
per_page: 100,
|
||||
headers: { Accept: 'application/vnd.github.squirrel-girl-preview+json' },
|
||||
});
|
||||
};
|
||||
let pageNum = 0;
|
||||
const timeout = async () => {
|
||||
if (pageNum < 2) {
|
||||
/* pass */
|
||||
}
|
||||
else if (pageNum < 4) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 3000));
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000));
|
||||
}
|
||||
else {
|
||||
await new Promise((resolve) => setTimeout(resolve, 30000));
|
||||
}
|
||||
};
|
||||
for await (const pageResponse of this.octokit.paginate.iterator(options)) {
|
||||
for await (const pageResponse of this.octokit.paginate.iterator(this.octokit.rest.search.issuesAndPullRequests, options)) {
|
||||
await timeout();
|
||||
numRequests++;
|
||||
const page = pageResponse.data;
|
||||
console.log(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`);
|
||||
(0, utils_1.safeLog)(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`);
|
||||
yield page.map((issue) => new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue), this.options));
|
||||
}
|
||||
}
|
||||
async createIssue(owner, repo, title, body) {
|
||||
core_1.debug(`Creating issue \`${title}\` on ${owner}/${repo}`);
|
||||
(0, utils_1.safeLog)(`Creating issue \`${title}\` on ${owner}/${repo}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.create({ owner, repo, title, body });
|
||||
await this.octokit.rest.issues.create({ owner, repo, title, body });
|
||||
}
|
||||
octokitIssueToIssue(issue) {
|
||||
var _a, _b, _c, _d, _e, _f;
|
||||
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
||||
return {
|
||||
author: { name: issue.user.login, isGitHubApp: issue.user.type === 'Bot' },
|
||||
body: issue.body,
|
||||
author: { name: (_b = (_a = issue.user) === null || _a === void 0 ? void 0 : _a.login) !== null && _b !== void 0 ? _b : 'unkown', isGitHubApp: ((_c = issue.user) === null || _c === void 0 ? void 0 : _c.type) === 'Bot' },
|
||||
body: (_d = issue.body) !== null && _d !== void 0 ? _d : '',
|
||||
number: issue.number,
|
||||
title: issue.title,
|
||||
labels: issue.labels.map((label) => label.name),
|
||||
isPr: !!((_e = issue.pull_request) === null || _e === void 0 ? void 0 : _e.html_url),
|
||||
labels: issue.labels.map((label) => { var _a; return (typeof label === 'string' ? label : (_a = label.name) !== null && _a !== void 0 ? _a : ''); }),
|
||||
open: issue.state === 'open',
|
||||
locked: issue.locked,
|
||||
numComments: issue.comments,
|
||||
reactions: issue.reactions,
|
||||
assignee: (_b = (_a = issue.assignee) === null || _a === void 0 ? void 0 : _a.login) !== null && _b !== void 0 ? _b : (_d = (_c = issue.assignees) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.login,
|
||||
milestoneId: (_f = (_e = issue.milestone) === null || _e === void 0 ? void 0 : _e.number) !== null && _f !== void 0 ? _f : null,
|
||||
assignee: (_g = (_f = issue.assignee) === null || _f === void 0 ? void 0 : _f.login) !== null && _g !== void 0 ? _g : (_j = (_h = issue.assignees) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.login,
|
||||
assignees: (_l = (_k = issue.assignees) === null || _k === void 0 ? void 0 : _k.map((assignee) => assignee.login)) !== null && _l !== void 0 ? _l : [],
|
||||
milestone: issue.milestone ? this.octokitMilestoneToMilestone(issue.milestone) : null,
|
||||
createdAt: +new Date(issue.created_at),
|
||||
updatedAt: +new Date(issue.updated_at),
|
||||
closedAt: issue.closed_at ? +new Date(issue.closed_at) : undefined,
|
||||
};
|
||||
}
|
||||
octokitMilestoneToMilestone(milestone) {
|
||||
var _a;
|
||||
if ((milestone === null || milestone === void 0 ? void 0 : milestone.number) === undefined) {
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
title: milestone.title,
|
||||
milestoneId: milestone.number,
|
||||
// Remove the time portions of the dates as they're not important
|
||||
createdAt: milestone.created_at !== null ? new Date(milestone.created_at.split('T')[0]) : null,
|
||||
dueOn: milestone.due_on !== null ? new Date(milestone.due_on.split('T')[0]) : null,
|
||||
closedAt: milestone.closed_at !== null ? new Date(milestone.closed_at.split('T')[0]) : null,
|
||||
description: (_a = milestone.description) !== null && _a !== void 0 ? _a : '',
|
||||
numClosedIssues: milestone.closed_issues,
|
||||
numOpenIssues: milestone.open_issues,
|
||||
state: milestone.state === 'open' ? 'open' : 'closed',
|
||||
};
|
||||
}
|
||||
async hasWriteAccess(user) {
|
||||
if (user.name in this.writeAccessCache) {
|
||||
core_1.debug('Got permissions from cache for ' + user);
|
||||
(0, utils_1.safeLog)('Got permissions from cache for ' + user);
|
||||
return this.writeAccessCache[user.name];
|
||||
}
|
||||
core_1.debug('Fetching permissions for ' + user);
|
||||
const permissions = (await this.octokit.repos.getCollaboratorPermissionLevel({
|
||||
(0, utils_1.safeLog)('Fetching permissions for ' + user.name);
|
||||
const permissions = (await this.octokit.rest.repos.getCollaboratorPermissionLevel({
|
||||
...this.params,
|
||||
username: user.name,
|
||||
})).data.permission;
|
||||
@@ -92,42 +117,44 @@ class OctoKit {
|
||||
}
|
||||
async repoHasLabel(name) {
|
||||
try {
|
||||
await this.octokit.issues.getLabel({ ...this.params, name });
|
||||
await this.octokit.rest.issues.getLabel({ ...this.params, name });
|
||||
return true;
|
||||
}
|
||||
catch (err) {
|
||||
if (err.status === 404) {
|
||||
const statusErorr = err;
|
||||
if (statusErorr.status === 404) {
|
||||
return this.options.readonly && this.mockLabels.has(name);
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
async createLabel(name, color, description) {
|
||||
core_1.debug('Creating label ' + name);
|
||||
(0, utils_1.safeLog)('Creating label ' + name);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.createLabel({ ...this.params, color, description, name });
|
||||
await this.octokit.rest.issues.createLabel({ ...this.params, color, description, name });
|
||||
else
|
||||
this.mockLabels.add(name);
|
||||
}
|
||||
async deleteLabel(name) {
|
||||
core_1.debug('Deleting label ' + name);
|
||||
(0, utils_1.safeLog)('Deleting label ' + name);
|
||||
try {
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.deleteLabel({ ...this.params, name });
|
||||
await this.octokit.rest.issues.deleteLabel({ ...this.params, name });
|
||||
}
|
||||
catch (err) {
|
||||
if (err.status === 404) {
|
||||
const statusErorr = err;
|
||||
if (statusErorr.status === 404) {
|
||||
return;
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
async readConfig(path) {
|
||||
core_1.debug('Reading config at ' + path);
|
||||
(0, utils_1.safeLog)('Reading config at ' + path);
|
||||
const repoPath = `.github/${path}.json`;
|
||||
try {
|
||||
const data = (await this.octokit.repos.getContents({ ...this.params, path: repoPath })).data;
|
||||
if ('type' in data && data.type === 'file') {
|
||||
const data = (await this.octokit.rest.repos.getContent({ ...this.params, path: repoPath })).data;
|
||||
if ('type' in data && data.type === 'file' && 'content' in data) {
|
||||
if (data.encoding === 'base64' && data.content) {
|
||||
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'));
|
||||
}
|
||||
@@ -140,7 +167,10 @@ class OctoKit {
|
||||
}
|
||||
}
|
||||
async releaseContainsCommit(release, commit) {
|
||||
return new Promise((resolve, reject) => child_process_1.exec(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) => {
|
||||
const isHash = (s) => /^[a-fA-F0-9]*$/.test(s);
|
||||
if (!isHash(release) || !isHash(commit))
|
||||
return 'unknown';
|
||||
return new Promise((resolve, reject) => (0, child_process_1.exec)(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) => {
|
||||
if (!err || err.code === 1) {
|
||||
resolve(!err ? 'yes' : 'no');
|
||||
}
|
||||
@@ -157,10 +187,31 @@ class OctoKit {
|
||||
}
|
||||
}));
|
||||
}
|
||||
async getCurrentRepoMilestone() {
|
||||
(0, utils_1.safeLog)(`Getting repo milestone for ${this.params.owner}/${this.params.repo}`);
|
||||
// Fetch all milestones open for this repo
|
||||
const allMilestones = (await this.octokit.rest.issues.listMilestones({
|
||||
owner: this.params.owner,
|
||||
repo: this.params.repo,
|
||||
state: 'open',
|
||||
sort: 'due_on',
|
||||
direction: 'asc',
|
||||
})).data;
|
||||
const currentDate = new Date();
|
||||
const possibleMilestones = allMilestones
|
||||
.filter((milestone) => new Date(milestone.due_on === null ? currentDate : milestone.due_on) > currentDate &&
|
||||
currentDate > new Date(milestone.created_at) &&
|
||||
!milestone.title.includes('Recovery'))
|
||||
.sort((a, b) => { var _a, _b; return +new Date((_a = a.due_on) !== null && _a !== void 0 ? _a : currentDate) - +new Date((_b = b.due_on) !== null && _b !== void 0 ? _b : currentDate); });
|
||||
if (possibleMilestones.length === 0) {
|
||||
return undefined;
|
||||
}
|
||||
return possibleMilestones[0].number;
|
||||
}
|
||||
async dispatch(title) {
|
||||
core_1.debug('Dispatching ' + title);
|
||||
(0, utils_1.safeLog)('Dispatching ' + title);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.repos.createDispatchEvent({ ...this.params, event_type: title });
|
||||
await this.octokit.rest.repos.createDispatchEvent({ ...this.params, event_type: title });
|
||||
}
|
||||
}
|
||||
exports.OctoKit = OctoKit;
|
||||
@@ -169,12 +220,12 @@ class OctoKitIssue extends OctoKit {
|
||||
super(token, params, options);
|
||||
this.params = params;
|
||||
this.issueData = issueData;
|
||||
console.log('running bot on issue', issueData.number);
|
||||
(0, utils_1.safeLog)('running bot on issue', issueData.number);
|
||||
}
|
||||
async addAssignee(assignee) {
|
||||
core_1.debug('Adding assignee ' + assignee + ' to ' + this.issueData.number);
|
||||
(0, utils_1.safeLog)('Adding assignee ' + assignee + ' to ' + this.issueData.number);
|
||||
if (!this.options.readonly) {
|
||||
await this.octokit.issues.addAssignees({
|
||||
await this.octokit.rest.issues.addAssignees({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
assignees: [assignee],
|
||||
@@ -182,45 +233,64 @@ class OctoKitIssue extends OctoKit {
|
||||
}
|
||||
}
|
||||
async removeAssignee(assignee) {
|
||||
core_1.debug('Removing assignee ' + assignee + ' to ' + this.issueData.number);
|
||||
(0, utils_1.safeLog)('Removing assignee ' + assignee + ' to ' + this.issueData.number);
|
||||
if (!this.options.readonly) {
|
||||
await this.octokit.issues.removeAssignees({
|
||||
await this.octokit.rest.issues.removeAssignees({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
assignees: [assignee],
|
||||
});
|
||||
}
|
||||
}
|
||||
async closeIssue() {
|
||||
core_1.debug('Closing issue ' + this.issueData.number);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
async closeIssue(reason) {
|
||||
(0, utils_1.safeLog)('Closing issue ' + this.issueData.number);
|
||||
if (!this.options.readonly) {
|
||||
const issue = await this.octokit.rest.issues.get({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
});
|
||||
// Don't close already closed issues even if it means changing the state
|
||||
if (issue.data.state === 'closed') {
|
||||
return;
|
||||
}
|
||||
await this.octokit.rest.issues
|
||||
.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
state: 'closed',
|
||||
state_reason: reason,
|
||||
})
|
||||
.catch((e) => {
|
||||
(0, utils_1.safeLog)('error closing issue:', e);
|
||||
});
|
||||
}
|
||||
}
|
||||
async reopenIssue() {
|
||||
core_1.debug('Reopening issue ' + this.issueData.number);
|
||||
(0, utils_1.safeLog)('Reopening issue ' + this.issueData.number);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
await this.octokit.rest.issues.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
state: 'open',
|
||||
});
|
||||
}
|
||||
async lockIssue() {
|
||||
core_1.debug('Locking issue ' + this.issueData.number);
|
||||
(0, utils_1.safeLog)('Locking issue ' + this.issueData.number);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.lock({ ...this.params, issue_number: this.issueData.number });
|
||||
await this.octokit.rest.issues.lock({ ...this.params, issue_number: this.issueData.number });
|
||||
}
|
||||
async unlockIssue() {
|
||||
(0, utils_1.safeLog)('Unlocking issue ' + this.issueData.number);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.rest.issues.unlock({ ...this.params, issue_number: this.issueData.number });
|
||||
}
|
||||
async getIssue() {
|
||||
if (isIssue(this.issueData)) {
|
||||
core_1.debug('Got issue data from query result ' + this.issueData.number);
|
||||
(0, utils_1.safeLog)('Got issue data from query result ' + this.issueData.number);
|
||||
return this.issueData;
|
||||
}
|
||||
console.log('Fetching issue ' + this.issueData.number);
|
||||
const issue = (await this.octokit.issues.get({
|
||||
(0, utils_1.safeLog)('Fetching issue ' + this.issueData.number);
|
||||
const issue = (await this.octokit.rest.issues.get({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
mediaType: { previews: ['squirrel-girl'] },
|
||||
@@ -228,77 +298,83 @@ class OctoKitIssue extends OctoKit {
|
||||
return (this.issueData = this.octokitIssueToIssue(issue));
|
||||
}
|
||||
async postComment(body) {
|
||||
core_1.debug(`Posting comment ${body} on ${this.issueData.number}`);
|
||||
(0, utils_1.safeLog)(`Posting comment on ${this.issueData.number}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.createComment({
|
||||
await this.octokit.rest.issues.createComment({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
body,
|
||||
});
|
||||
}
|
||||
async deleteComment(id) {
|
||||
core_1.debug(`Deleting comment ${id} on ${this.issueData.number}`);
|
||||
(0, utils_1.safeLog)(`Deleting comment ${id} on ${this.issueData.number}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.deleteComment({
|
||||
await this.octokit.rest.issues.deleteComment({
|
||||
owner: this.params.owner,
|
||||
repo: this.params.repo,
|
||||
comment_id: id,
|
||||
});
|
||||
}
|
||||
async setMilestone(milestoneId) {
|
||||
core_1.debug(`Setting milestone for ${this.issueData.number} to ${milestoneId}`);
|
||||
(0, utils_1.safeLog)(`Setting milestone for ${this.issueData.number} to ${milestoneId}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
await this.octokit.rest.issues.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
milestone: milestoneId,
|
||||
});
|
||||
}
|
||||
async *getComments(last) {
|
||||
core_1.debug('Fetching comments for ' + this.issueData.number);
|
||||
const response = this.octokit.paginate.iterator(this.octokit.issues.listComments.endpoint.merge({
|
||||
(0, utils_1.safeLog)('Fetching comments for ' + this.issueData.number);
|
||||
const response = this.octokit.paginate.iterator(this.octokit.rest.issues.listComments, {
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
per_page: 100,
|
||||
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
|
||||
}));
|
||||
});
|
||||
for await (const page of response) {
|
||||
numRequests++;
|
||||
yield page.data.map((comment) => ({
|
||||
author: { name: comment.user.login, isGitHubApp: comment.user.type === 'Bot' },
|
||||
body: comment.body,
|
||||
id: comment.id,
|
||||
timestamp: +new Date(comment.created_at),
|
||||
}));
|
||||
yield page.data.map((comment) => {
|
||||
var _a, _b, _c, _d;
|
||||
return ({
|
||||
author: { name: (_b = (_a = comment.user) === null || _a === void 0 ? void 0 : _a.login) !== null && _b !== void 0 ? _b : '', isGitHubApp: ((_c = comment.user) === null || _c === void 0 ? void 0 : _c.type) === 'Bot' },
|
||||
body: (_d = comment.body) !== null && _d !== void 0 ? _d : '',
|
||||
id: comment.id,
|
||||
timestamp: +new Date(comment.created_at),
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
async addLabel(name) {
|
||||
core_1.debug(`Adding label ${name} to ${this.issueData.number}`);
|
||||
(0, utils_1.safeLog)(`Adding label ${name} to ${this.issueData.number}`);
|
||||
if (!(await this.repoHasLabel(name))) {
|
||||
throw Error(`Action could not execute becuase label ${name} is not defined.`);
|
||||
}
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.addLabels({
|
||||
await this.octokit.rest.issues.addLabels({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
labels: [name],
|
||||
});
|
||||
}
|
||||
async getAssigner(assignee) {
|
||||
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
|
||||
var _a, _b;
|
||||
const options = {
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
});
|
||||
};
|
||||
let assigner;
|
||||
for await (const event of this.octokit.paginate.iterator(options)) {
|
||||
for await (const event of this.octokit.paginate.iterator(this.octokit.rest.issues.listEventsForTimeline, options)) {
|
||||
numRequests++;
|
||||
const timelineEvents = event.data;
|
||||
for (const timelineEvent of timelineEvents) {
|
||||
if (timelineEvent.event === 'assigned' &&
|
||||
timelineEvent.assignee.login === assignee) {
|
||||
assigner = timelineEvent.actor.login;
|
||||
if (timelineEvent.event === 'assigned' && ((_a = timelineEvent.assignee) === null || _a === void 0 ? void 0 : _a.login) === assignee) {
|
||||
assigner = (_b = timelineEvent.actor) === null || _b === void 0 ? void 0 : _b.login;
|
||||
}
|
||||
}
|
||||
if (assigner) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!assigner) {
|
||||
throw Error('Expected to find ' + assignee + ' in issue timeline but did not.');
|
||||
@@ -306,25 +382,26 @@ class OctoKitIssue extends OctoKit {
|
||||
return assigner;
|
||||
}
|
||||
async removeLabel(name) {
|
||||
core_1.debug(`Removing label ${name} from ${this.issueData.number}`);
|
||||
(0, utils_1.safeLog)(`Removing label ${name} from ${this.issueData.number}`);
|
||||
try {
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.removeLabel({
|
||||
await this.octokit.rest.issues.removeLabel({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
name,
|
||||
});
|
||||
}
|
||||
catch (err) {
|
||||
if (err.status === 404) {
|
||||
console.log(`Label ${name} not found on issue`);
|
||||
const statusErorr = err;
|
||||
if (statusErorr.status === 404) {
|
||||
(0, utils_1.safeLog)(`Label ${name} not found on issue`);
|
||||
return;
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
async getClosingInfo(alreadyChecked = []) {
|
||||
var _a, _b, _c, _d, _e, _f, _g;
|
||||
var _a, _b, _c, _d, _e, _f, _g, _h;
|
||||
if (alreadyChecked.includes(this.issueData.number)) {
|
||||
return undefined;
|
||||
}
|
||||
@@ -332,22 +409,21 @@ class OctoKitIssue extends OctoKit {
|
||||
if ((await this.getIssue()).open) {
|
||||
return;
|
||||
}
|
||||
const closingHashComment = /(?:\\|\/)closedWith (\S*)/;
|
||||
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
|
||||
const closingHashComment = /(?:\\|\/)closedWith (?:https:\/\/github\.com\/microsoft\/vscode\/commit\/)?([a-fA-F0-9]{7,40})/;
|
||||
const options = {
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
});
|
||||
};
|
||||
let closingCommit;
|
||||
const crossReferencing = [];
|
||||
for await (const event of this.octokit.paginate.iterator(options)) {
|
||||
for await (const event of this.octokit.paginate.iterator(this.octokit.rest.issues.listEventsForTimeline, options)) {
|
||||
numRequests++;
|
||||
const timelineEvents = event.data;
|
||||
for (const timelineEvent of timelineEvents) {
|
||||
if ((timelineEvent.event === 'closed' || timelineEvent.event === 'merged') &&
|
||||
timelineEvent.created_at &&
|
||||
timelineEvent.commit_id &&
|
||||
timelineEvent.commit_url
|
||||
.toLowerCase()
|
||||
.includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase())) {
|
||||
((_a = timelineEvent.commit_url) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase()))) {
|
||||
closingCommit = {
|
||||
hash: timelineEvent.commit_id,
|
||||
timestamp: +new Date(timelineEvent.created_at),
|
||||
@@ -356,15 +432,18 @@ class OctoKitIssue extends OctoKit {
|
||||
if (timelineEvent.event === 'reopened') {
|
||||
closingCommit = undefined;
|
||||
}
|
||||
if (timelineEvent.event === 'commented' &&
|
||||
!((_a = timelineEvent.body) === null || _a === void 0 ? void 0 : _a.includes('UNABLE_TO_LOCATE_COMMIT_MESSAGE')) &&
|
||||
if (timelineEvent.created_at &&
|
||||
timelineEvent.event === 'commented' &&
|
||||
!((_b = timelineEvent.body) === null || _b === void 0 ? void 0 : _b.includes('UNABLE_TO_LOCATE_COMMIT_MESSAGE')) &&
|
||||
closingHashComment.test(timelineEvent.body)) {
|
||||
closingCommit = {
|
||||
hash: closingHashComment.exec(timelineEvent.body)[1],
|
||||
timestamp: +new Date(timelineEvent.created_at),
|
||||
};
|
||||
}
|
||||
if (timelineEvent.event === 'cross-referenced' && ((_c = (_b = timelineEvent.source) === null || _b === void 0 ? void 0 : _b.issue) === null || _c === void 0 ? void 0 : _c.number) && ((_f = (_e = (_d = timelineEvent.source) === null || _d === void 0 ? void 0 : _d.issue) === null || _e === void 0 ? void 0 : _e.pull_request) === null || _f === void 0 ? void 0 : _f.url.includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase()))) {
|
||||
if (timelineEvent.event === 'cross-referenced' &&
|
||||
((_d = (_c = timelineEvent.source) === null || _c === void 0 ? void 0 : _c.issue) === null || _d === void 0 ? void 0 : _d.number) &&
|
||||
((_g = (_f = (_e = timelineEvent.source) === null || _e === void 0 ? void 0 : _e.issue) === null || _f === void 0 ? void 0 : _f.pull_request) === null || _g === void 0 ? void 0 : _g.url.includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase()))) {
|
||||
crossReferencing.push(timelineEvent.source.issue.number);
|
||||
}
|
||||
}
|
||||
@@ -375,16 +454,16 @@ class OctoKitIssue extends OctoKit {
|
||||
for (const id of crossReferencing.reverse()) {
|
||||
const closed = await new OctoKitIssue(this.token, this.params, {
|
||||
number: id,
|
||||
}, this.options).getClosingInfo(alreadyChecked);
|
||||
}).getClosingInfo(alreadyChecked);
|
||||
if (closed) {
|
||||
if (Math.abs(closed.timestamp - ((_g = (await this.getIssue()).closedAt) !== null && _g !== void 0 ? _g : 0)) < 5000) {
|
||||
if (Math.abs(closed.timestamp - ((_h = (await this.getIssue()).closedAt) !== null && _h !== void 0 ? _h : 0)) < 5000) {
|
||||
closingCommit = closed;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(`Got ${JSON.stringify(closingCommit)} as closing commit of ${this.issueData.number}`);
|
||||
(0, utils_1.safeLog)(`Got ${JSON.stringify(closingCommit)} as closing commit of ${this.issueData.number}`);
|
||||
return closingCommit;
|
||||
}
|
||||
}
|
||||
|
||||
+260
-171
@@ -3,181 +3,242 @@
|
||||
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { debug } from '@actions/core'
|
||||
import { GitHub as GitHubAPI } from '@actions/github'
|
||||
import { Octokit } from '@octokit/rest'
|
||||
import { exec } from 'child_process'
|
||||
import { Comment, GitHub, GitHubIssue, Issue, Query, User } from './api'
|
||||
import { getOctokit } from '@actions/github';
|
||||
import type { RequestError } from '@octokit/request-error';
|
||||
import { exec } from 'child_process';
|
||||
import { IssueGetResponse, IssuesGetResponseMilestone } from '../common/OctokitTypings';
|
||||
import { safeLog } from '../common/utils';
|
||||
import { Comment, GitHub, GitHubIssue, Issue, Milestone, Query, User } from './api';
|
||||
|
||||
let numRequests = 0
|
||||
export const getNumRequests = () => numRequests
|
||||
let numRequests = 0;
|
||||
export const getNumRequests = () => numRequests;
|
||||
|
||||
export class OctoKit implements GitHub {
|
||||
private _octokit: GitHubAPI
|
||||
protected get octokit(): GitHubAPI {
|
||||
numRequests++
|
||||
return this._octokit
|
||||
private _octokit: ReturnType<typeof getOctokit>;
|
||||
protected get octokit(): ReturnType<typeof getOctokit> {
|
||||
numRequests++;
|
||||
return this._octokit;
|
||||
}
|
||||
|
||||
// when in readonly mode, record labels just-created so at to not throw unneccesary errors
|
||||
protected mockLabels: Set<string> = new Set()
|
||||
protected mockLabels: Set<string> = new Set();
|
||||
|
||||
public readonly repoName: string;
|
||||
public readonly repoOwner: string;
|
||||
|
||||
constructor(
|
||||
protected token: string,
|
||||
protected params: { repo: string; owner: string },
|
||||
protected options: { readonly: boolean } = { readonly: false },
|
||||
) {
|
||||
this._octokit = new GitHubAPI(token)
|
||||
this._octokit = getOctokit(token);
|
||||
this.repoName = params.repo;
|
||||
this.repoOwner = params.owner;
|
||||
}
|
||||
|
||||
getIssueByNumber(number: number) {
|
||||
return new OctoKitIssue(this.token, this.params, { number: number });
|
||||
}
|
||||
|
||||
// TODO: just iterate over the issues in a page here instead of making caller do it
|
||||
async *query(query: Query): AsyncIterableIterator<GitHubIssue[]> {
|
||||
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`
|
||||
console.log(`Querying for ${q}:`)
|
||||
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`;
|
||||
|
||||
const options = this.octokit.search.issuesAndPullRequests.endpoint.merge({
|
||||
const options = {
|
||||
...query,
|
||||
q,
|
||||
per_page: 100,
|
||||
headers: { Accept: 'application/vnd.github.squirrel-girl-preview+json' },
|
||||
})
|
||||
};
|
||||
|
||||
let pageNum = 0
|
||||
let pageNum = 0;
|
||||
|
||||
const timeout = async () => {
|
||||
if (pageNum < 2) {
|
||||
/* pass */
|
||||
} else if (pageNum < 4) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 3000))
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000));
|
||||
} else {
|
||||
await new Promise((resolve) => setTimeout(resolve, 30000))
|
||||
await new Promise((resolve) => setTimeout(resolve, 30000));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
for await (const pageResponse of this.octokit.paginate.iterator(options)) {
|
||||
await timeout()
|
||||
numRequests++
|
||||
const page: Array<Octokit.SearchIssuesAndPullRequestsResponseItemsItem> = pageResponse.data
|
||||
console.log(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`)
|
||||
for await (const pageResponse of this.octokit.paginate.iterator(
|
||||
this.octokit.rest.search.issuesAndPullRequests,
|
||||
options,
|
||||
)) {
|
||||
await timeout();
|
||||
numRequests++;
|
||||
const page = pageResponse.data;
|
||||
safeLog(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`);
|
||||
yield page.map(
|
||||
(issue) => new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue), this.options),
|
||||
)
|
||||
(issue) =>
|
||||
new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue), this.options),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
async createIssue(owner: string, repo: string, title: string, body: string): Promise<void> {
|
||||
debug(`Creating issue \`${title}\` on ${owner}/${repo}`)
|
||||
if (!this.options.readonly) await this.octokit.issues.create({ owner, repo, title, body })
|
||||
safeLog(`Creating issue \`${title}\` on ${owner}/${repo}`);
|
||||
if (!this.options.readonly) await this.octokit.rest.issues.create({ owner, repo, title, body });
|
||||
}
|
||||
|
||||
protected octokitIssueToIssue(
|
||||
issue: Octokit.IssuesGetResponse | Octokit.SearchIssuesAndPullRequestsResponseItemsItem,
|
||||
): Issue {
|
||||
protected octokitIssueToIssue(issue: IssueGetResponse): Issue {
|
||||
return {
|
||||
author: { name: issue.user.login, isGitHubApp: issue.user.type === 'Bot' },
|
||||
body: issue.body,
|
||||
author: { name: issue.user?.login ?? 'unkown', isGitHubApp: issue.user?.type === 'Bot' },
|
||||
body: issue.body ?? '',
|
||||
number: issue.number,
|
||||
title: issue.title,
|
||||
labels: (issue.labels as Octokit.IssuesGetLabelResponse[]).map((label) => label.name),
|
||||
isPr: !!issue.pull_request?.html_url,
|
||||
labels: issue.labels.map((label) => (typeof label === 'string' ? label : label.name ?? '')),
|
||||
open: issue.state === 'open',
|
||||
locked: (issue as any).locked,
|
||||
numComments: issue.comments,
|
||||
reactions: (issue as any).reactions,
|
||||
assignee: issue.assignee?.login ?? (issue as any).assignees?.[0]?.login,
|
||||
milestoneId: issue.milestone?.number ?? null,
|
||||
assignee: issue.assignee?.login ?? (issue as IssueGetResponse).assignees?.[0]?.login,
|
||||
assignees: (issue as IssueGetResponse).assignees?.map((assignee) => assignee.login) ?? [],
|
||||
milestone: issue.milestone ? this.octokitMilestoneToMilestone(issue.milestone) : null,
|
||||
createdAt: +new Date(issue.created_at),
|
||||
updatedAt: +new Date(issue.updated_at),
|
||||
closedAt: issue.closed_at ? +new Date((issue.closed_at as unknown) as string) : undefined,
|
||||
}
|
||||
closedAt: issue.closed_at ? +new Date(issue.closed_at as unknown as string) : undefined,
|
||||
};
|
||||
}
|
||||
|
||||
private writeAccessCache: Record<string, boolean> = {}
|
||||
protected octokitMilestoneToMilestone(milestone: IssuesGetResponseMilestone): Milestone | null {
|
||||
if (milestone?.number === undefined) {
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
title: milestone.title,
|
||||
milestoneId: milestone.number,
|
||||
// Remove the time portions of the dates as they're not important
|
||||
createdAt: milestone.created_at !== null ? new Date(milestone.created_at.split('T')[0]) : null,
|
||||
dueOn: milestone.due_on !== null ? new Date(milestone.due_on.split('T')[0]) : null,
|
||||
closedAt: milestone.closed_at !== null ? new Date(milestone.closed_at.split('T')[0]) : null,
|
||||
description: milestone.description ?? '',
|
||||
numClosedIssues: milestone.closed_issues,
|
||||
numOpenIssues: milestone.open_issues,
|
||||
state: milestone.state === 'open' ? 'open' : 'closed',
|
||||
};
|
||||
}
|
||||
|
||||
private writeAccessCache: Record<string, boolean> = {};
|
||||
async hasWriteAccess(user: User): Promise<boolean> {
|
||||
if (user.name in this.writeAccessCache) {
|
||||
debug('Got permissions from cache for ' + user)
|
||||
return this.writeAccessCache[user.name]
|
||||
safeLog('Got permissions from cache for ' + user);
|
||||
return this.writeAccessCache[user.name];
|
||||
}
|
||||
debug('Fetching permissions for ' + user)
|
||||
safeLog('Fetching permissions for ' + user.name);
|
||||
const permissions = (
|
||||
await this.octokit.repos.getCollaboratorPermissionLevel({
|
||||
await this.octokit.rest.repos.getCollaboratorPermissionLevel({
|
||||
...this.params,
|
||||
username: user.name,
|
||||
})
|
||||
).data.permission
|
||||
return (this.writeAccessCache[user.name] = permissions === 'admin' || permissions === 'write')
|
||||
).data.permission;
|
||||
return (this.writeAccessCache[user.name] = permissions === 'admin' || permissions === 'write');
|
||||
}
|
||||
|
||||
async repoHasLabel(name: string): Promise<boolean> {
|
||||
try {
|
||||
await this.octokit.issues.getLabel({ ...this.params, name })
|
||||
return true
|
||||
await this.octokit.rest.issues.getLabel({ ...this.params, name });
|
||||
return true;
|
||||
} catch (err) {
|
||||
if (err.status === 404) {
|
||||
return this.options.readonly && this.mockLabels.has(name)
|
||||
const statusErorr = err as RequestError;
|
||||
if (statusErorr.status === 404) {
|
||||
return this.options.readonly && this.mockLabels.has(name);
|
||||
}
|
||||
throw err
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
async createLabel(name: string, color: string, description: string): Promise<void> {
|
||||
debug('Creating label ' + name)
|
||||
safeLog('Creating label ' + name);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.createLabel({ ...this.params, color, description, name })
|
||||
else this.mockLabels.add(name)
|
||||
await this.octokit.rest.issues.createLabel({ ...this.params, color, description, name });
|
||||
else this.mockLabels.add(name);
|
||||
}
|
||||
|
||||
async deleteLabel(name: string): Promise<void> {
|
||||
debug('Deleting label ' + name)
|
||||
safeLog('Deleting label ' + name);
|
||||
try {
|
||||
if (!this.options.readonly) await this.octokit.issues.deleteLabel({ ...this.params, name })
|
||||
if (!this.options.readonly) await this.octokit.rest.issues.deleteLabel({ ...this.params, name });
|
||||
} catch (err) {
|
||||
if (err.status === 404) {
|
||||
return
|
||||
const statusErorr = err as RequestError;
|
||||
if (statusErorr.status === 404) {
|
||||
return;
|
||||
}
|
||||
throw err
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
async readConfig(path: string): Promise<any> {
|
||||
debug('Reading config at ' + path)
|
||||
const repoPath = `.github/${path}.json`
|
||||
safeLog('Reading config at ' + path);
|
||||
const repoPath = `.github/${path}.json`;
|
||||
try {
|
||||
const data = (await this.octokit.repos.getContents({ ...this.params, path: repoPath })).data
|
||||
|
||||
if ('type' in data && data.type === 'file') {
|
||||
const data = (await this.octokit.rest.repos.getContent({ ...this.params, path: repoPath })).data;
|
||||
if ('type' in data && data.type === 'file' && 'content' in data) {
|
||||
if (data.encoding === 'base64' && data.content) {
|
||||
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'))
|
||||
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'));
|
||||
}
|
||||
throw Error(`Could not read contents "${data.content}" in encoding "${data.encoding}"`)
|
||||
throw Error(`Could not read contents "${data.content}" in encoding "${data.encoding}"`);
|
||||
}
|
||||
throw Error('Found directory at config path when expecting file' + JSON.stringify(data))
|
||||
throw Error('Found directory at config path when expecting file' + JSON.stringify(data));
|
||||
} catch (e) {
|
||||
throw Error('Error with config file at ' + repoPath + ': ' + JSON.stringify(e))
|
||||
throw Error('Error with config file at ' + repoPath + ': ' + JSON.stringify(e));
|
||||
}
|
||||
}
|
||||
|
||||
async releaseContainsCommit(release: string, commit: string): Promise<'yes' | 'no' | 'unknown'> {
|
||||
const isHash = (s: string) => /^[a-fA-F0-9]*$/.test(s);
|
||||
if (!isHash(release) || !isHash(commit)) return 'unknown';
|
||||
return new Promise((resolve, reject) =>
|
||||
exec(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) => {
|
||||
if (!err || err.code === 1) {
|
||||
resolve(!err ? 'yes' : 'no')
|
||||
resolve(!err ? 'yes' : 'no');
|
||||
} else if (err.message.includes(`Not a valid commit name ${release}`)) {
|
||||
// release branch is forked. Probably in endgame. Not released.
|
||||
resolve('no')
|
||||
resolve('no');
|
||||
} else if (err.message.includes(`Not a valid commit name ${commit}`)) {
|
||||
// commit is probably in a different repo.
|
||||
resolve('unknown')
|
||||
resolve('unknown');
|
||||
} else {
|
||||
reject(err)
|
||||
reject(err);
|
||||
}
|
||||
}),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
async getCurrentRepoMilestone(): Promise<number | undefined> {
|
||||
safeLog(`Getting repo milestone for ${this.params.owner}/${this.params.repo}`);
|
||||
// Fetch all milestones open for this repo
|
||||
const allMilestones = (
|
||||
await this.octokit.rest.issues.listMilestones({
|
||||
owner: this.params.owner,
|
||||
repo: this.params.repo,
|
||||
state: 'open',
|
||||
sort: 'due_on',
|
||||
direction: 'asc',
|
||||
})
|
||||
).data;
|
||||
const currentDate = new Date();
|
||||
const possibleMilestones = allMilestones
|
||||
.filter(
|
||||
(milestone) =>
|
||||
new Date(milestone.due_on === null ? currentDate : milestone.due_on) > currentDate &&
|
||||
currentDate > new Date(milestone.created_at) &&
|
||||
!milestone.title.includes('Recovery'),
|
||||
)
|
||||
.sort((a, b) => +new Date(a.due_on ?? currentDate) - +new Date(b.due_on ?? currentDate));
|
||||
if (possibleMilestones.length === 0) {
|
||||
return undefined;
|
||||
}
|
||||
return possibleMilestones[0].number;
|
||||
}
|
||||
|
||||
async dispatch(title: string): Promise<void> {
|
||||
debug('Dispatching ' + title)
|
||||
safeLog('Dispatching ' + title);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.repos.createDispatchEvent({ ...this.params, event_type: title })
|
||||
await this.octokit.rest.repos.createDispatchEvent({ ...this.params, event_type: title });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,184 +249,206 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
|
||||
private issueData: { number: number } | Issue,
|
||||
options: { readonly: boolean } = { readonly: false },
|
||||
) {
|
||||
super(token, params, options)
|
||||
console.log('running bot on issue', issueData.number)
|
||||
super(token, params, options);
|
||||
safeLog('running bot on issue', issueData.number);
|
||||
}
|
||||
|
||||
async addAssignee(assignee: string): Promise<void> {
|
||||
debug('Adding assignee ' + assignee + ' to ' + this.issueData.number)
|
||||
safeLog('Adding assignee ' + assignee + ' to ' + this.issueData.number);
|
||||
if (!this.options.readonly) {
|
||||
await this.octokit.issues.addAssignees({
|
||||
await this.octokit.rest.issues.addAssignees({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
assignees: [assignee],
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async removeAssignee(assignee: string): Promise<void> {
|
||||
debug('Removing assignee ' + assignee + ' to ' + this.issueData.number)
|
||||
safeLog('Removing assignee ' + assignee + ' to ' + this.issueData.number);
|
||||
if (!this.options.readonly) {
|
||||
await this.octokit.issues.removeAssignees({
|
||||
await this.octokit.rest.issues.removeAssignees({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
assignees: [assignee],
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async closeIssue(): Promise<void> {
|
||||
debug('Closing issue ' + this.issueData.number)
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
async closeIssue(reason: 'completed' | 'not_planned'): Promise<void> {
|
||||
safeLog('Closing issue ' + this.issueData.number);
|
||||
if (!this.options.readonly) {
|
||||
const issue = await this.octokit.rest.issues.get({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
state: 'closed',
|
||||
})
|
||||
});
|
||||
// Don't close already closed issues even if it means changing the state
|
||||
if (issue.data.state === 'closed') {
|
||||
return;
|
||||
}
|
||||
await this.octokit.rest.issues
|
||||
.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
state: 'closed',
|
||||
state_reason: reason,
|
||||
})
|
||||
.catch((e) => {
|
||||
safeLog('error closing issue:', e);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async reopenIssue(): Promise<void> {
|
||||
debug('Reopening issue ' + this.issueData.number)
|
||||
safeLog('Reopening issue ' + this.issueData.number);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
await this.octokit.rest.issues.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
state: 'open',
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
async lockIssue(): Promise<void> {
|
||||
debug('Locking issue ' + this.issueData.number)
|
||||
safeLog('Locking issue ' + this.issueData.number);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.lock({ ...this.params, issue_number: this.issueData.number })
|
||||
await this.octokit.rest.issues.lock({ ...this.params, issue_number: this.issueData.number });
|
||||
}
|
||||
|
||||
async unlockIssue(): Promise<void> {
|
||||
safeLog('Unlocking issue ' + this.issueData.number);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.rest.issues.unlock({ ...this.params, issue_number: this.issueData.number });
|
||||
}
|
||||
|
||||
async getIssue(): Promise<Issue> {
|
||||
if (isIssue(this.issueData)) {
|
||||
debug('Got issue data from query result ' + this.issueData.number)
|
||||
return this.issueData
|
||||
safeLog('Got issue data from query result ' + this.issueData.number);
|
||||
return this.issueData;
|
||||
}
|
||||
|
||||
console.log('Fetching issue ' + this.issueData.number)
|
||||
safeLog('Fetching issue ' + this.issueData.number);
|
||||
const issue = (
|
||||
await this.octokit.issues.get({
|
||||
await this.octokit.rest.issues.get({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
mediaType: { previews: ['squirrel-girl'] },
|
||||
})
|
||||
).data
|
||||
return (this.issueData = this.octokitIssueToIssue(issue))
|
||||
).data;
|
||||
return (this.issueData = this.octokitIssueToIssue(issue));
|
||||
}
|
||||
|
||||
async postComment(body: string): Promise<void> {
|
||||
debug(`Posting comment ${body} on ${this.issueData.number}`)
|
||||
safeLog(`Posting comment on ${this.issueData.number}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.createComment({
|
||||
await this.octokit.rest.issues.createComment({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
body,
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
async deleteComment(id: number): Promise<void> {
|
||||
debug(`Deleting comment ${id} on ${this.issueData.number}`)
|
||||
safeLog(`Deleting comment ${id} on ${this.issueData.number}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.deleteComment({
|
||||
await this.octokit.rest.issues.deleteComment({
|
||||
owner: this.params.owner,
|
||||
repo: this.params.repo,
|
||||
comment_id: id,
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
async setMilestone(milestoneId: number) {
|
||||
debug(`Setting milestone for ${this.issueData.number} to ${milestoneId}`)
|
||||
safeLog(`Setting milestone for ${this.issueData.number} to ${milestoneId}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
await this.octokit.rest.issues.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
milestone: milestoneId,
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
async *getComments(last?: boolean): AsyncIterableIterator<Comment[]> {
|
||||
debug('Fetching comments for ' + this.issueData.number)
|
||||
safeLog('Fetching comments for ' + this.issueData.number);
|
||||
|
||||
const response = this.octokit.paginate.iterator(
|
||||
this.octokit.issues.listComments.endpoint.merge({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
per_page: 100,
|
||||
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
|
||||
}),
|
||||
)
|
||||
const response = this.octokit.paginate.iterator(this.octokit.rest.issues.listComments, {
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
per_page: 100,
|
||||
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
|
||||
});
|
||||
|
||||
for await (const page of response) {
|
||||
numRequests++
|
||||
yield (page.data as Octokit.IssuesListCommentsResponseItem[]).map((comment) => ({
|
||||
author: { name: comment.user.login, isGitHubApp: comment.user.type === 'Bot' },
|
||||
body: comment.body,
|
||||
numRequests++;
|
||||
yield page.data.map((comment) => ({
|
||||
author: { name: comment.user?.login ?? '', isGitHubApp: comment.user?.type === 'Bot' },
|
||||
body: comment.body ?? '',
|
||||
id: comment.id,
|
||||
timestamp: +new Date(comment.created_at),
|
||||
}))
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
async addLabel(name: string): Promise<void> {
|
||||
debug(`Adding label ${name} to ${this.issueData.number}`)
|
||||
safeLog(`Adding label ${name} to ${this.issueData.number}`);
|
||||
if (!(await this.repoHasLabel(name))) {
|
||||
throw Error(`Action could not execute becuase label ${name} is not defined.`)
|
||||
throw Error(`Action could not execute becuase label ${name} is not defined.`);
|
||||
}
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.addLabels({
|
||||
await this.octokit.rest.issues.addLabels({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
labels: [name],
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
async getAssigner(assignee: string): Promise<string> {
|
||||
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
|
||||
const options = {
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
})
|
||||
};
|
||||
|
||||
let assigner: string | undefined
|
||||
let assigner: string | undefined;
|
||||
|
||||
for await (const event of this.octokit.paginate.iterator(options)) {
|
||||
numRequests++
|
||||
const timelineEvents = event.data as Octokit.IssuesListEventsForTimelineResponseItem[]
|
||||
for await (const event of this.octokit.paginate.iterator(
|
||||
this.octokit.rest.issues.listEventsForTimeline,
|
||||
options,
|
||||
)) {
|
||||
numRequests++;
|
||||
const timelineEvents = event.data;
|
||||
for (const timelineEvent of timelineEvents) {
|
||||
if (
|
||||
timelineEvent.event === 'assigned' &&
|
||||
(timelineEvent as any).assignee.login === assignee
|
||||
) {
|
||||
assigner = timelineEvent.actor.login
|
||||
if (timelineEvent.event === 'assigned' && timelineEvent.assignee?.login === assignee) {
|
||||
assigner = timelineEvent.actor?.login;
|
||||
}
|
||||
}
|
||||
if (assigner) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!assigner) {
|
||||
throw Error('Expected to find ' + assignee + ' in issue timeline but did not.')
|
||||
throw Error('Expected to find ' + assignee + ' in issue timeline but did not.');
|
||||
}
|
||||
|
||||
return assigner
|
||||
return assigner;
|
||||
}
|
||||
|
||||
async removeLabel(name: string): Promise<void> {
|
||||
debug(`Removing label ${name} from ${this.issueData.number}`)
|
||||
safeLog(`Removing label ${name} from ${this.issueData.number}`);
|
||||
try {
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.removeLabel({
|
||||
await this.octokit.rest.issues.removeLabel({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
name,
|
||||
})
|
||||
});
|
||||
} catch (err) {
|
||||
if (err.status === 404) {
|
||||
console.log(`Label ${name} not found on issue`)
|
||||
return
|
||||
const statusErorr = err as RequestError;
|
||||
if (statusErorr.status === 404) {
|
||||
safeLog(`Label ${name} not found on issue`);
|
||||
return;
|
||||
}
|
||||
throw err
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -373,43 +456,49 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
|
||||
alreadyChecked: number[] = [],
|
||||
): Promise<{ hash: string | undefined; timestamp: number } | undefined> {
|
||||
if (alreadyChecked.includes(this.issueData.number)) {
|
||||
return undefined
|
||||
return undefined;
|
||||
}
|
||||
alreadyChecked.push(this.issueData.number)
|
||||
alreadyChecked.push(this.issueData.number);
|
||||
|
||||
if ((await this.getIssue()).open) {
|
||||
return
|
||||
return;
|
||||
}
|
||||
|
||||
const closingHashComment = /(?:\\|\/)closedWith (\S*)/
|
||||
const closingHashComment =
|
||||
/(?:\\|\/)closedWith (?:https:\/\/github\.com\/microsoft\/vscode\/commit\/)?([a-fA-F0-9]{7,40})/;
|
||||
|
||||
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
|
||||
const options = {
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
})
|
||||
let closingCommit: { hash: string | undefined; timestamp: number } | undefined
|
||||
const crossReferencing: number[] = []
|
||||
for await (const event of this.octokit.paginate.iterator(options)) {
|
||||
numRequests++
|
||||
};
|
||||
let closingCommit: { hash: string | undefined; timestamp: number } | undefined;
|
||||
const crossReferencing: number[] = [];
|
||||
for await (const event of this.octokit.paginate.iterator(
|
||||
this.octokit.rest.issues.listEventsForTimeline,
|
||||
options,
|
||||
)) {
|
||||
numRequests++;
|
||||
|
||||
const timelineEvents = event.data as Octokit.IssuesListEventsForTimelineResponseItem[]
|
||||
const timelineEvents = event.data;
|
||||
for (const timelineEvent of timelineEvents) {
|
||||
if (
|
||||
(timelineEvent.event === 'closed' || timelineEvent.event === 'merged') &&
|
||||
timelineEvent.created_at &&
|
||||
timelineEvent.commit_id &&
|
||||
timelineEvent.commit_url
|
||||
.toLowerCase()
|
||||
?.toLowerCase()
|
||||
.includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase())
|
||||
) {
|
||||
closingCommit = {
|
||||
hash: timelineEvent.commit_id,
|
||||
timestamp: +new Date(timelineEvent.created_at),
|
||||
}
|
||||
};
|
||||
}
|
||||
if (timelineEvent.event === 'reopened') {
|
||||
closingCommit = undefined
|
||||
closingCommit = undefined;
|
||||
}
|
||||
if (
|
||||
timelineEvent.created_at &&
|
||||
timelineEvent.event === 'commented' &&
|
||||
!((timelineEvent as any).body as string)?.includes('UNABLE_TO_LOCATE_COMMIT_MESSAGE') &&
|
||||
closingHashComment.test((timelineEvent as any).body)
|
||||
@@ -417,7 +506,7 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
|
||||
closingCommit = {
|
||||
hash: closingHashComment.exec((timelineEvent as any).body)![1],
|
||||
timestamp: +new Date(timelineEvent.created_at),
|
||||
}
|
||||
};
|
||||
}
|
||||
if (
|
||||
timelineEvent.event === 'cross-referenced' &&
|
||||
@@ -426,7 +515,7 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
|
||||
`/${this.params.owner}/${this.params.repo}/`.toLowerCase(),
|
||||
)
|
||||
) {
|
||||
crossReferencing.push((timelineEvent as any).source.issue.number)
|
||||
crossReferencing.push((timelineEvent as any).source.issue.number);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -437,19 +526,19 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
|
||||
for (const id of crossReferencing.reverse()) {
|
||||
const closed = await new OctoKitIssue(this.token, this.params, {
|
||||
number: id,
|
||||
}, this.options).getClosingInfo(alreadyChecked)
|
||||
}).getClosingInfo(alreadyChecked);
|
||||
|
||||
if (closed) {
|
||||
if (Math.abs(closed.timestamp - ((await this.getIssue()).closedAt ?? 0)) < 5000) {
|
||||
closingCommit = closed
|
||||
break
|
||||
closingCommit = closed;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`Got ${JSON.stringify(closingCommit)} as closing commit of ${this.issueData.number}`)
|
||||
return closingCommit
|
||||
safeLog(`Got ${JSON.stringify(closingCommit)} as closing commit of ${this.issueData.number}`);
|
||||
return closingCommit;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -464,7 +553,7 @@ function isIssue(object: any): object is Issue {
|
||||
'number' in object &&
|
||||
'numComments' in object &&
|
||||
'reactions' in object &&
|
||||
'milestoneId' in object
|
||||
'milestoneId' in object;
|
||||
|
||||
return isIssue
|
||||
return isIssue;
|
||||
}
|
||||
|
||||
@@ -11,51 +11,50 @@ const utils_1 = require("./utils");
|
||||
const core_1 = require("@actions/core");
|
||||
class Action {
|
||||
constructor() {
|
||||
this.token = utils_1.getRequiredInput('token');
|
||||
this.username = new github_1.GitHub(this.token).users.getAuthenticated().then((v) => v.data.name);
|
||||
this.token = (0, utils_1.getRequiredInput)('token');
|
||||
this.username = (0, github_1.getOctokit)(this.token)
|
||||
.rest.users.getAuthenticated()
|
||||
.then((v) => { var _a; return (_a = v.data.name) !== null && _a !== void 0 ? _a : 'unknown'; }, () => 'unknown');
|
||||
}
|
||||
async run() {
|
||||
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
||||
console.log('running ', this.id, 'with context', {
|
||||
...github_1.context,
|
||||
payload: {
|
||||
issue: (_b = (_a = github_1.context.payload) === null || _a === void 0 ? void 0 : _a.issue) === null || _b === void 0 ? void 0 : _b.number,
|
||||
label: (_d = (_c = github_1.context.payload) === null || _c === void 0 ? void 0 : _c.label) === null || _d === void 0 ? void 0 : _d.name,
|
||||
repository: (_f = (_e = github_1.context.payload) === null || _e === void 0 ? void 0 : _e.repository) === null || _f === void 0 ? void 0 : _f.html_url,
|
||||
sender: (_j = (_h = (_g = github_1.context.payload) === null || _g === void 0 ? void 0 : _g.sender) === null || _h === void 0 ? void 0 : _h.login) !== null && _j !== void 0 ? _j : (_l = (_k = github_1.context.payload) === null || _k === void 0 ? void 0 : _k.sender) === null || _l === void 0 ? void 0 : _l.type,
|
||||
},
|
||||
});
|
||||
var _a, _b, _c, _d, _e, _f;
|
||||
if (utils_1.errorLoggingIssue) {
|
||||
const { repo, issue, owner } = utils_1.errorLoggingIssue;
|
||||
if (github_1.context.repo.repo === repo &&
|
||||
github_1.context.repo.owner === owner &&
|
||||
((_m = github_1.context.payload.issue) === null || _m === void 0 ? void 0 : _m.number) === issue) {
|
||||
return console.log('refusing to run on error logging issue to prevent cascading errors');
|
||||
((_a = github_1.context.payload.issue) === null || _a === void 0 ? void 0 : _a.number) === issue) {
|
||||
return (0, utils_1.safeLog)('refusing to run on error logging issue to prevent cascading errors');
|
||||
}
|
||||
}
|
||||
try {
|
||||
const token = utils_1.getRequiredInput('token');
|
||||
const readonly = !!core_1.getInput('readonly');
|
||||
const issue = (_o = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.issue) === null || _o === void 0 ? void 0 : _o.number;
|
||||
const token = (0, utils_1.getRequiredInput)('token');
|
||||
const readonly = !!(0, core_1.getInput)('readonly');
|
||||
const issue = (_b = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.issue) === null || _b === void 0 ? void 0 : _b.number;
|
||||
if (issue) {
|
||||
const octokit = new octokit_1.OctoKitIssue(token, github_1.context.repo, { number: issue }, { readonly });
|
||||
if (github_1.context.eventName === 'issue_comment') {
|
||||
await this.onCommented(octokit, github_1.context.payload.comment.body, github_1.context.actor);
|
||||
await this.onCommented(octokit, (_c = github_1.context.payload.comment) === null || _c === void 0 ? void 0 : _c.body, github_1.context.actor);
|
||||
}
|
||||
else if (github_1.context.eventName === 'issues') {
|
||||
else if (github_1.context.eventName === 'issues' ||
|
||||
github_1.context.eventName === 'pull_request' ||
|
||||
github_1.context.eventName === 'pull_request_target') {
|
||||
switch (github_1.context.payload.action) {
|
||||
case 'opened':
|
||||
await this.onOpened(octokit);
|
||||
case 'ready_for_review':
|
||||
await this.onOpened(octokit, github_1.context.payload);
|
||||
break;
|
||||
case 'reopened':
|
||||
await this.onReopened(octokit);
|
||||
break;
|
||||
case 'closed':
|
||||
await this.onClosed(octokit);
|
||||
await this.onClosed(octokit, github_1.context.payload);
|
||||
break;
|
||||
case 'labeled':
|
||||
await this.onLabeled(octokit, github_1.context.payload.label.name);
|
||||
break;
|
||||
case 'assigned':
|
||||
await this.onAssigned(octokit, github_1.context.payload.assignee.login);
|
||||
break;
|
||||
case 'unassigned':
|
||||
await this.onUnassigned(octokit, github_1.context.payload.assignee.login);
|
||||
break;
|
||||
@@ -70,22 +69,32 @@ class Action {
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (github_1.context.eventName === 'create') {
|
||||
await this.onCreated(new octokit_1.OctoKit(token, github_1.context.repo, { readonly }), (_d = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.payload) === null || _d === void 0 ? void 0 : _d.ref, (_f = (_e = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.payload) === null || _e === void 0 ? void 0 : _e.sender) === null || _f === void 0 ? void 0 : _f.login);
|
||||
}
|
||||
else {
|
||||
await this.onTriggered(new octokit_1.OctoKit(token, github_1.context.repo, { readonly }));
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
await this.error(e);
|
||||
const err = e;
|
||||
try {
|
||||
await this.error(err);
|
||||
}
|
||||
catch {
|
||||
(0, utils_1.safeLog)((err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.message) || String(e));
|
||||
}
|
||||
}
|
||||
const usage = await utils_1.getRateLimit(this.token);
|
||||
const usage = await (0, utils_1.getRateLimit)(this.token);
|
||||
}
|
||||
async error(error) {
|
||||
var _a;
|
||||
const details = {
|
||||
message: `${error.message}\n${error.stack}`,
|
||||
id: this.id,
|
||||
user: await this.username,
|
||||
};
|
||||
if (github_1.context.issue.number)
|
||||
if ((_a = github_1.context.issue) === null || _a === void 0 ? void 0 : _a.number)
|
||||
details.issue = github_1.context.issue.number;
|
||||
const rendered = `
|
||||
Message: ${details.message}
|
||||
@@ -94,28 +103,34 @@ Actor: ${details.user}
|
||||
|
||||
ID: ${details.id}
|
||||
`;
|
||||
await utils_1.logErrorToIssue(rendered, true, this.token);
|
||||
core_1.setFailed(error.message);
|
||||
await (0, utils_1.logErrorToIssue)(rendered, true, this.token);
|
||||
(0, core_1.setFailed)(error.message);
|
||||
}
|
||||
async onTriggered(_octokit) {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
async onCreated(_octokit, _ref, _creator) {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
async onEdited(_issue) {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
async onLabeled(_issue, _label) {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
async onUnassigned(_issue, _label) {
|
||||
async onAssigned(_issue, _assignee) {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
async onOpened(_issue) {
|
||||
async onUnassigned(_issue, _assignee) {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
async onOpened(_issue, _payload) {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
async onReopened(_issue) {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
async onClosed(_issue) {
|
||||
async onClosed(_issue, _payload) {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
async onMilestoned(_issue) {
|
||||
|
||||
@@ -3,87 +3,102 @@
|
||||
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { OctoKit, OctoKitIssue, getNumRequests } from '../api/octokit'
|
||||
import { context, GitHub } from '@actions/github'
|
||||
import { getRequiredInput, logErrorToIssue, getRateLimit, errorLoggingIssue } from './utils'
|
||||
import { getInput, setFailed } from '@actions/core'
|
||||
import { OctoKit, OctoKitIssue, getNumRequests } from '../api/octokit';
|
||||
import { context, getOctokit } from '@actions/github';
|
||||
import { getRequiredInput, logErrorToIssue, getRateLimit, errorLoggingIssue, safeLog } from './utils';
|
||||
import { getInput, setFailed } from '@actions/core';
|
||||
import { WebhookPayload } from '@actions/github/lib/interfaces';
|
||||
|
||||
export abstract class Action {
|
||||
abstract id: string
|
||||
abstract id: string;
|
||||
|
||||
private username: Promise<string>
|
||||
private token = getRequiredInput('token')
|
||||
private username: Promise<string>;
|
||||
private token = getRequiredInput('token');
|
||||
|
||||
constructor() {
|
||||
this.username = new GitHub(this.token).users.getAuthenticated().then((v) => v.data.name)
|
||||
this.username = getOctokit(this.token)
|
||||
.rest.users.getAuthenticated()
|
||||
.then(
|
||||
(v) => v.data.name ?? 'unknown',
|
||||
() => 'unknown',
|
||||
);
|
||||
}
|
||||
|
||||
public async run() {
|
||||
console.log('running ', this.id, 'with context', {
|
||||
...context,
|
||||
payload: {
|
||||
issue: context.payload?.issue?.number,
|
||||
label: context.payload?.label?.name,
|
||||
repository: context.payload?.repository?.html_url,
|
||||
sender: context.payload?.sender?.login ?? context.payload?.sender?.type,
|
||||
},
|
||||
})
|
||||
|
||||
if (errorLoggingIssue) {
|
||||
const { repo, issue, owner } = errorLoggingIssue
|
||||
const { repo, issue, owner } = errorLoggingIssue;
|
||||
if (
|
||||
context.repo.repo === repo &&
|
||||
context.repo.owner === owner &&
|
||||
context.payload.issue?.number === issue
|
||||
) {
|
||||
return console.log('refusing to run on error logging issue to prevent cascading errors')
|
||||
return safeLog('refusing to run on error logging issue to prevent cascading errors');
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
const token = getRequiredInput('token')
|
||||
const readonly = !!getInput('readonly')
|
||||
const token = getRequiredInput('token');
|
||||
const readonly = !!getInput('readonly');
|
||||
|
||||
const issue = context?.issue?.number
|
||||
const issue = context?.issue?.number;
|
||||
if (issue) {
|
||||
const octokit = new OctoKitIssue(token, context.repo, { number: issue }, { readonly })
|
||||
const octokit = new OctoKitIssue(token, context.repo, { number: issue }, { readonly });
|
||||
if (context.eventName === 'issue_comment') {
|
||||
await this.onCommented(octokit, context.payload.comment.body, context.actor)
|
||||
} else if (context.eventName === 'issues') {
|
||||
await this.onCommented(octokit, context.payload.comment?.body, context.actor);
|
||||
} else if (
|
||||
context.eventName === 'issues' ||
|
||||
context.eventName === 'pull_request' ||
|
||||
context.eventName === 'pull_request_target'
|
||||
) {
|
||||
switch (context.payload.action) {
|
||||
case 'opened':
|
||||
await this.onOpened(octokit)
|
||||
break
|
||||
case 'ready_for_review':
|
||||
await this.onOpened(octokit, context.payload);
|
||||
break;
|
||||
case 'reopened':
|
||||
await this.onReopened(octokit)
|
||||
break
|
||||
await this.onReopened(octokit);
|
||||
break;
|
||||
case 'closed':
|
||||
await this.onClosed(octokit)
|
||||
break
|
||||
await this.onClosed(octokit, context.payload);
|
||||
break;
|
||||
case 'labeled':
|
||||
await this.onLabeled(octokit, context.payload.label.name)
|
||||
break
|
||||
await this.onLabeled(octokit, context.payload.label.name);
|
||||
break;
|
||||
case 'assigned':
|
||||
await this.onAssigned(octokit, context.payload.assignee.login);
|
||||
break;
|
||||
case 'unassigned':
|
||||
await this.onUnassigned(octokit, context.payload.assignee.login)
|
||||
break
|
||||
await this.onUnassigned(octokit, context.payload.assignee.login);
|
||||
break;
|
||||
case 'edited':
|
||||
await this.onEdited(octokit)
|
||||
break
|
||||
await this.onEdited(octokit);
|
||||
break;
|
||||
case 'milestoned':
|
||||
await this.onMilestoned(octokit)
|
||||
break
|
||||
await this.onMilestoned(octokit);
|
||||
break;
|
||||
default:
|
||||
throw Error('Unexpected action: ' + context.payload.action)
|
||||
throw Error('Unexpected action: ' + context.payload.action);
|
||||
}
|
||||
}
|
||||
} else if (context.eventName === 'create') {
|
||||
await this.onCreated(
|
||||
new OctoKit(token, context.repo, { readonly }),
|
||||
context?.payload?.ref,
|
||||
context?.payload?.sender?.login,
|
||||
);
|
||||
} else {
|
||||
await this.onTriggered(new OctoKit(token, context.repo, { readonly }))
|
||||
await this.onTriggered(new OctoKit(token, context.repo, { readonly }));
|
||||
}
|
||||
} catch (e) {
|
||||
await this.error(e)
|
||||
const err = e as Error;
|
||||
try {
|
||||
await this.error(err);
|
||||
} catch {
|
||||
safeLog(err?.stack || err?.message || String(e));
|
||||
}
|
||||
}
|
||||
|
||||
const usage = await getRateLimit(this.token)
|
||||
const usage = await getRateLimit(this.token);
|
||||
}
|
||||
|
||||
private async error(error: Error) {
|
||||
@@ -91,9 +106,9 @@ export abstract class Action {
|
||||
message: `${error.message}\n${error.stack}`,
|
||||
id: this.id,
|
||||
user: await this.username,
|
||||
}
|
||||
};
|
||||
|
||||
if (context.issue.number) details.issue = context.issue.number
|
||||
if (context.issue?.number) details.issue = context.issue.number;
|
||||
|
||||
const rendered = `
|
||||
Message: ${details.message}
|
||||
@@ -101,37 +116,43 @@ Message: ${details.message}
|
||||
Actor: ${details.user}
|
||||
|
||||
ID: ${details.id}
|
||||
`
|
||||
await logErrorToIssue(rendered, true, this.token)
|
||||
`;
|
||||
await logErrorToIssue(rendered, true, this.token);
|
||||
|
||||
setFailed(error.message)
|
||||
setFailed(error.message);
|
||||
}
|
||||
|
||||
protected async onTriggered(_octokit: OctoKit): Promise<void> {
|
||||
throw Error('not implemented')
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onCreated(_octokit: OctoKit, _ref: string, _creator: string): Promise<void> {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onEdited(_issue: OctoKitIssue): Promise<void> {
|
||||
throw Error('not implemented')
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onLabeled(_issue: OctoKitIssue, _label: string): Promise<void> {
|
||||
throw Error('not implemented')
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onUnassigned(_issue: OctoKitIssue, _label: string): Promise<void> {
|
||||
throw Error('not implemented')
|
||||
protected async onAssigned(_issue: OctoKitIssue, _assignee: string): Promise<void> {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onOpened(_issue: OctoKitIssue): Promise<void> {
|
||||
throw Error('not implemented')
|
||||
protected async onUnassigned(_issue: OctoKitIssue, _assignee: string): Promise<void> {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onOpened(_issue: OctoKitIssue, _payload: WebhookPayload): Promise<void> {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onReopened(_issue: OctoKitIssue): Promise<void> {
|
||||
throw Error('not implemented')
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onClosed(_issue: OctoKitIssue): Promise<void> {
|
||||
throw Error('not implemented')
|
||||
protected async onClosed(_issue: OctoKitIssue, _payload: WebhookPayload): Promise<void> {
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onMilestoned(_issue: OctoKitIssue): Promise<void> {
|
||||
throw Error('not implemented')
|
||||
throw Error('not implemented');
|
||||
}
|
||||
protected async onCommented(_issue: OctoKitIssue, _comment: string, _actor: string): Promise<void> {
|
||||
throw Error('not implemented')
|
||||
throw Error('not implemented');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ActionBase = void 0;
|
||||
const utils_1 = require("./utils");
|
||||
class ActionBase {
|
||||
constructor(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
|
||||
this.labels = labels;
|
||||
@@ -27,15 +28,15 @@ class ActionBase {
|
||||
buildQuery(baseQuery) {
|
||||
var _a, _b, _c, _d, _e, _f;
|
||||
let query = baseQuery;
|
||||
console.log(`labels: ${this.labels}`);
|
||||
console.log(`milestoneName: ${this.milestoneName}`);
|
||||
console.log(`milestoneId: ${this.milestoneId}`);
|
||||
console.log(`ignoreLabels: ${this.ignoreLabels}`);
|
||||
console.log(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
|
||||
console.log(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
|
||||
console.log(`minimumVotes: ${this.minimumVotes}`);
|
||||
console.log(`maximumVotes: ${this.maximumVotes}`);
|
||||
console.log(`involves: ${this.involves}`);
|
||||
(0, utils_1.safeLog)(`labels: ${this.labels}`);
|
||||
(0, utils_1.safeLog)(`milestoneName: ${this.milestoneName}`);
|
||||
(0, utils_1.safeLog)(`milestoneId: ${this.milestoneId}`);
|
||||
(0, utils_1.safeLog)(`ignoreLabels: ${this.ignoreLabels}`);
|
||||
(0, utils_1.safeLog)(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
|
||||
(0, utils_1.safeLog)(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
|
||||
(0, utils_1.safeLog)(`minimumVotes: ${this.minimumVotes}`);
|
||||
(0, utils_1.safeLog)(`maximumVotes: ${this.maximumVotes}`);
|
||||
(0, utils_1.safeLog)(`involves: ${this.involves}`);
|
||||
// Both milestone name and milestone Id must be provided and must match.
|
||||
// The name is used to construct the query, which does not accept ID.
|
||||
// The ID is used for comparisons with issue data, which does not include the name.
|
||||
@@ -104,22 +105,23 @@ class ActionBase {
|
||||
// This is necessary because GitHub sometimes returns incorrect results,
|
||||
// and because issues may get modified while we are processing them.
|
||||
validateIssue(issue) {
|
||||
var _a, _b;
|
||||
if (this.ignoreAllWithLabels) {
|
||||
// Validate that the issue does not have labels
|
||||
if (issue.labels && issue.labels.length !== 0) {
|
||||
console.log(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
|
||||
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Make sure all labels we wanted are present.
|
||||
if ((!issue.labels || issue.labels.length == 0) && this.labelsSet.length > 0) {
|
||||
console.log(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
|
||||
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
|
||||
return false;
|
||||
}
|
||||
for (const str of this.labelsSet) {
|
||||
if (!issue.labels.includes(str)) {
|
||||
console.log(`Issue ${issue.number} skipped due to not having a required label set.`);
|
||||
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having a required label set.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -127,7 +129,7 @@ class ActionBase {
|
||||
if (issue.labels && issue.labels.length > 0) {
|
||||
for (const str of this.ignoreLabelsSet) {
|
||||
if (issue.labels.includes(str)) {
|
||||
console.log(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
|
||||
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -135,22 +137,22 @@ class ActionBase {
|
||||
}
|
||||
if (this.ignoreAllWithMilestones) {
|
||||
// Validate that the issue does not have a milestone.
|
||||
if (issue.milestoneId != null) {
|
||||
console.log(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
|
||||
if (issue.milestone) {
|
||||
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Make sure milestone is present, if required.
|
||||
if (this.milestoneId != undefined && issue.milestoneId != +this.milestoneId) {
|
||||
console.log(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${issue.milestoneId}`);
|
||||
if (this.milestoneId != null && ((_a = issue.milestone) === null || _a === void 0 ? void 0 : _a.milestoneId) != +this.milestoneId) {
|
||||
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${(_b = issue.milestone) === null || _b === void 0 ? void 0 : _b.milestoneId}`);
|
||||
return false;
|
||||
}
|
||||
// Make sure a milestones we wanted to ignore is not present.
|
||||
if (issue.milestoneId != null) {
|
||||
if (issue.milestone && issue.milestone.milestoneId != null) {
|
||||
for (const str of this.ignoreMilestoneIdsSet) {
|
||||
if (issue.milestoneId == +str) {
|
||||
console.log(`Issue ${issue.number} skipped due to milestone ${issue.milestoneId} found in list of ignored milestone IDs.`);
|
||||
if (issue.milestone.milestoneId == +str) {
|
||||
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to milestone ${issue.milestone.milestoneId} found in list of ignored milestone IDs.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -163,14 +165,14 @@ class ActionBase {
|
||||
}
|
||||
if (this.minimumVotes != undefined) {
|
||||
if (upvotes < this.minimumVotes) {
|
||||
console.log(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
|
||||
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Verify the issue does not have too many upvotes
|
||||
if (this.maximumVotes != undefined) {
|
||||
if (upvotes > this.maximumVotes) {
|
||||
console.log(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
|
||||
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { Issue } from '../api/api'
|
||||
import { safeLog } from './utils';
|
||||
|
||||
export class ActionBase {
|
||||
constructor(
|
||||
@@ -29,15 +30,15 @@ export class ActionBase {
|
||||
buildQuery(baseQuery: string): string {
|
||||
let query = baseQuery;
|
||||
|
||||
console.log(`labels: ${this.labels}`);
|
||||
console.log(`milestoneName: ${this.milestoneName}`);
|
||||
console.log(`milestoneId: ${this.milestoneId}`);
|
||||
console.log(`ignoreLabels: ${this.ignoreLabels}`);
|
||||
console.log(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
|
||||
console.log(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
|
||||
console.log(`minimumVotes: ${this.minimumVotes}`);
|
||||
console.log(`maximumVotes: ${this.maximumVotes}`);
|
||||
console.log(`involves: ${this.involves}`);
|
||||
safeLog(`labels: ${this.labels}`);
|
||||
safeLog(`milestoneName: ${this.milestoneName}`);
|
||||
safeLog(`milestoneId: ${this.milestoneId}`);
|
||||
safeLog(`ignoreLabels: ${this.ignoreLabels}`);
|
||||
safeLog(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
|
||||
safeLog(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
|
||||
safeLog(`minimumVotes: ${this.minimumVotes}`);
|
||||
safeLog(`maximumVotes: ${this.maximumVotes}`);
|
||||
safeLog(`involves: ${this.involves}`);
|
||||
|
||||
// Both milestone name and milestone Id must be provided and must match.
|
||||
// The name is used to construct the query, which does not accept ID.
|
||||
@@ -117,18 +118,18 @@ export class ActionBase {
|
||||
if (this.ignoreAllWithLabels) {
|
||||
// Validate that the issue does not have labels
|
||||
if (issue.labels && issue.labels.length !== 0) {
|
||||
console.log(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
|
||||
safeLog(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
// Make sure all labels we wanted are present.
|
||||
if ((!issue.labels || issue.labels.length == 0) && this.labelsSet.length > 0) {
|
||||
console.log(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
|
||||
safeLog(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
|
||||
return false;
|
||||
}
|
||||
for (const str of this.labelsSet) {
|
||||
if (!issue.labels.includes(str)) {
|
||||
console.log(`Issue ${issue.number} skipped due to not having a required label set.`);
|
||||
safeLog(`Issue ${issue.number} skipped due to not having a required label set.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -136,7 +137,7 @@ export class ActionBase {
|
||||
if (issue.labels && issue.labels.length > 0) {
|
||||
for (const str of this.ignoreLabelsSet) {
|
||||
if (issue.labels.includes(str)) {
|
||||
console.log(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
|
||||
safeLog(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -144,21 +145,21 @@ export class ActionBase {
|
||||
}
|
||||
if (this.ignoreAllWithMilestones) {
|
||||
// Validate that the issue does not have a milestone.
|
||||
if (issue.milestoneId != null) {
|
||||
console.log(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
|
||||
if (issue.milestone) {
|
||||
safeLog(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
// Make sure milestone is present, if required.
|
||||
if (this.milestoneId != undefined && issue.milestoneId != +this.milestoneId) {
|
||||
console.log(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${issue.milestoneId}`);
|
||||
if (this.milestoneId != null && issue.milestone?.milestoneId != +this.milestoneId) {
|
||||
safeLog(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${issue.milestone?.milestoneId}`);
|
||||
return false;
|
||||
}
|
||||
// Make sure a milestones we wanted to ignore is not present.
|
||||
if (issue.milestoneId != null) {
|
||||
if (issue.milestone && issue.milestone.milestoneId != null) {
|
||||
for (const str of this.ignoreMilestoneIdsSet) {
|
||||
if (issue.milestoneId == +str) {
|
||||
console.log(`Issue ${issue.number} skipped due to milestone ${issue.milestoneId} found in list of ignored milestone IDs.`);
|
||||
if (issue.milestone.milestoneId == +str) {
|
||||
safeLog(`Issue ${issue.number} skipped due to milestone ${issue.milestone.milestoneId} found in list of ignored milestone IDs.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -171,14 +172,14 @@ export class ActionBase {
|
||||
}
|
||||
if (this.minimumVotes != undefined) {
|
||||
if (upvotes < this.minimumVotes) {
|
||||
console.log(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
|
||||
safeLog(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Verify the issue does not have too many upvotes
|
||||
if (this.maximumVotes != undefined) {
|
||||
if (upvotes > this.maximumVotes) {
|
||||
console.log(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
|
||||
safeLog(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=OctokitTypings.js.map
|
||||
@@ -0,0 +1,16 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import type { RestEndpointMethodTypes } from '@octokit/rest';
|
||||
|
||||
// This file is just to re-export some octokit types as nicer names
|
||||
|
||||
export type ActionsListWorkflowRunsResponseWorkflowRunsItem =
|
||||
RestEndpointMethodTypes['actions']['listWorkflowRuns']['response']['data']['workflow_runs'][0];
|
||||
|
||||
export type IssueGetResponse = RestEndpointMethodTypes['issues']['get']['response']['data'];
|
||||
|
||||
export type IssuesGetResponseMilestone =
|
||||
RestEndpointMethodTypes['issues']['get']['response']['data']['milestone'];
|
||||
@@ -4,14 +4,16 @@
|
||||
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.logErrorToIssue = exports.errorLoggingIssue = exports.getRateLimit = exports.daysAgoToHumanReadbleDate = exports.daysAgoToTimestamp = exports.loadLatestRelease = exports.normalizeIssue = exports.getRequiredInput = exports.getInput = void 0;
|
||||
exports.safeLog = exports.logErrorToIssue = exports.errorLoggingIssue = exports.getRateLimit = exports.daysAgoToHumanReadbleDate = exports.daysAgoToTimestamp = exports.loadLatestRelease = exports.normalizeIssue = exports.getRequiredInput = exports.getInput = void 0;
|
||||
const core = require("@actions/core");
|
||||
const github_1 = require("@actions/github");
|
||||
const axios_1 = require("axios");
|
||||
const octokit_1 = require("../api/octokit");
|
||||
exports.getInput = (name) => core.getInput(name) || undefined;
|
||||
exports.getRequiredInput = (name) => core.getInput(name, { required: true });
|
||||
exports.normalizeIssue = (issue) => {
|
||||
const getInput = (name) => core.getInput(name) || undefined;
|
||||
exports.getInput = getInput;
|
||||
const getRequiredInput = (name) => core.getInput(name, { required: true });
|
||||
exports.getRequiredInput = getRequiredInput;
|
||||
const normalizeIssue = (issue) => {
|
||||
let { body, title } = issue;
|
||||
body = body !== null && body !== void 0 ? body : '';
|
||||
title = title !== null && title !== void 0 ? title : '';
|
||||
@@ -43,25 +45,36 @@ exports.normalizeIssue = (issue) => {
|
||||
issueType: isBug ? 'bug' : isFeatureRequest ? 'feature_request' : 'unknown',
|
||||
};
|
||||
};
|
||||
exports.loadLatestRelease = async (quality) => (await axios_1.default.get(`https://vscode-update.azurewebsites.net/api/update/darwin/${quality}/latest`)).data;
|
||||
exports.daysAgoToTimestamp = (days) => +new Date(Date.now() - days * 24 * 60 * 60 * 1000);
|
||||
exports.daysAgoToHumanReadbleDate = (days) => new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '');
|
||||
exports.getRateLimit = async (token) => {
|
||||
const usageData = (await new github_1.GitHub(token).rateLimit.get()).data.resources;
|
||||
exports.normalizeIssue = normalizeIssue;
|
||||
const loadLatestRelease = async (quality) => (await axios_1.default.get(`https://update.code.visualstudio.com/api/update/darwin/${quality}/latest`)).data;
|
||||
exports.loadLatestRelease = loadLatestRelease;
|
||||
const daysAgoToTimestamp = (days) => +new Date(Date.now() - days * 24 * 60 * 60 * 1000);
|
||||
exports.daysAgoToTimestamp = daysAgoToTimestamp;
|
||||
const daysAgoToHumanReadbleDate = (days) => new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '');
|
||||
exports.daysAgoToHumanReadbleDate = daysAgoToHumanReadbleDate;
|
||||
const getRateLimit = async (token) => {
|
||||
const usageData = (await (0, github_1.getOctokit)(token).rest.rateLimit.get()).data.resources;
|
||||
const usage = {};
|
||||
['core', 'graphql', 'search'].forEach(async (category) => {
|
||||
usage[category] = 1 - usageData[category].remaining / usageData[category].limit;
|
||||
var _a, _b, _c, _d;
|
||||
if (usageData[category]) {
|
||||
usage[category] = 1 - ((_b = (_a = usageData[category]) === null || _a === void 0 ? void 0 : _a.remaining) !== null && _b !== void 0 ? _b : 0) / ((_d = (_c = usageData[category]) === null || _c === void 0 ? void 0 : _c.limit) !== null && _d !== void 0 ? _d : 1);
|
||||
}
|
||||
});
|
||||
return usage;
|
||||
};
|
||||
exports.getRateLimit = getRateLimit;
|
||||
exports.errorLoggingIssue = (() => {
|
||||
try {
|
||||
const repo = github_1.context.repo.owner.toLowerCase() + '/' + github_1.context.repo.repo.toLowerCase();
|
||||
if (repo === 'microsoft/vscode-cpptools') {
|
||||
return { repo: 'vscode-cpptools', owner: 'Microsoft', issue: 6282 };
|
||||
if (repo === 'microsoft/vscode' || repo === 'microsoft/vscode-remote-release') {
|
||||
return { repo: 'vscode', owner: 'Microsoft', issue: 93814 };
|
||||
}
|
||||
else if (exports.getInput('errorLogIssueNumber')) {
|
||||
return { ...github_1.context.repo, issue: +exports.getRequiredInput('errorLogIssueNumber') };
|
||||
else if (/microsoft\//.test(repo)) {
|
||||
return { repo: 'vscode-internalbacklog', owner: 'Microsoft', issue: 974 };
|
||||
}
|
||||
else if ((0, exports.getInput)('errorLogIssueNumber')) {
|
||||
return { ...github_1.context.repo, issue: +(0, exports.getRequiredInput)('errorLogIssueNumber') };
|
||||
}
|
||||
else {
|
||||
return undefined;
|
||||
@@ -72,19 +85,20 @@ exports.errorLoggingIssue = (() => {
|
||||
return undefined;
|
||||
}
|
||||
})();
|
||||
exports.logErrorToIssue = async (message, ping, token) => {
|
||||
const logErrorToIssue = async (message, ping, token) => {
|
||||
var _a;
|
||||
// Attempt to wait out abuse detection timeout if present
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000));
|
||||
const dest = exports.errorLoggingIssue;
|
||||
if (!dest)
|
||||
return console.log('no error logging repo defined. swallowing error:', message);
|
||||
return new octokit_1.OctoKitIssue(token, { owner: dest.owner, repo: dest.repo }, { number: dest.issue }, { readonly: !!exports.getInput('readonly') })
|
||||
return console.log('no error logging repo defined. swallowing error.');
|
||||
return new octokit_1.OctoKitIssue(token, { owner: dest.owner, repo: dest.repo }, { number: dest.issue })
|
||||
.postComment(`
|
||||
Workflow: ${github_1.context.workflow}
|
||||
|
||||
Error: ${message}
|
||||
|
||||
Issue: ${ping ? `${github_1.context.repo.owner}/${github_1.context.repo.repo}#` : ''}${github_1.context.issue.number}
|
||||
Issue: ${ping ? `${github_1.context.repo.owner}/${github_1.context.repo.repo}#` : ''}${(_a = github_1.context.issue) === null || _a === void 0 ? void 0 : _a.number}
|
||||
|
||||
Repo: ${github_1.context.repo.owner}/${github_1.context.repo.repo}
|
||||
|
||||
@@ -96,4 +110,10 @@ ${JSON.stringify(github_1.context, null, 2)
|
||||
-->
|
||||
`);
|
||||
};
|
||||
exports.logErrorToIssue = logErrorToIssue;
|
||||
const safeLog = (message, ...args) => {
|
||||
const clean = (val) => ('' + val).replace(/:|#/g, '');
|
||||
console.log(clean(message), ...args.map(clean));
|
||||
};
|
||||
exports.safeLog = safeLog;
|
||||
//# sourceMappingURL=utils.js.map
|
||||
@@ -3,24 +3,24 @@
|
||||
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as core from '@actions/core'
|
||||
import { context, GitHub } from '@actions/github'
|
||||
import axios from 'axios'
|
||||
import { OctoKitIssue } from '../api/octokit'
|
||||
import * as core from '@actions/core';
|
||||
import { context, getOctokit } from '@actions/github';
|
||||
import axios from 'axios';
|
||||
import { OctoKitIssue } from '../api/octokit';
|
||||
|
||||
export const getInput = (name: string) => core.getInput(name) || undefined
|
||||
export const getRequiredInput = (name: string) => core.getInput(name, { required: true })
|
||||
export const getInput = (name: string) => core.getInput(name) || undefined;
|
||||
export const getRequiredInput = (name: string) => core.getInput(name, { required: true });
|
||||
|
||||
export const normalizeIssue = (issue: {
|
||||
body: string
|
||||
title: string
|
||||
body: string;
|
||||
title: string;
|
||||
}): { body: string; title: string; issueType: 'bug' | 'feature_request' | 'unknown' } => {
|
||||
let { body, title } = issue
|
||||
body = body ?? ''
|
||||
title = title ?? ''
|
||||
const isBug = body.includes('bug_report_template') || /Issue Type:.*Bug.*/.test(body)
|
||||
let { body, title } = issue;
|
||||
body = body ?? '';
|
||||
title = title ?? '';
|
||||
const isBug = body.includes('bug_report_template') || /Issue Type:.*Bug.*/.test(body);
|
||||
const isFeatureRequest =
|
||||
body.includes('feature_request_template') || /Issue Type:.*Feature Request.*/.test(body)
|
||||
body.includes('feature_request_template') || /Issue Type:.*Feature Request.*/.test(body);
|
||||
|
||||
const cleanse = (str: string) => {
|
||||
let out = str
|
||||
@@ -34,78 +34,83 @@ export const normalizeIssue = (issue: {
|
||||
.replace(/does this issue occur when all extensions are disabled.*/gu, '')
|
||||
.replace(/!?\[[^\]]*\]\([^)]*\)/gu, '')
|
||||
.replace(/\s+/gu, ' ')
|
||||
.replace(/```[^`]*?```/gu, '')
|
||||
.replace(/```[^`]*?```/gu, '');
|
||||
|
||||
while (
|
||||
out.includes(`<details>`) &&
|
||||
out.includes('</details>') &&
|
||||
out.indexOf(`</details>`) > out.indexOf(`<details>`)
|
||||
) {
|
||||
out = out.slice(0, out.indexOf('<details>')) + out.slice(out.indexOf(`</details>`) + 10)
|
||||
out = out.slice(0, out.indexOf('<details>')) + out.slice(out.indexOf(`</details>`) + 10);
|
||||
}
|
||||
|
||||
return out
|
||||
}
|
||||
return out;
|
||||
};
|
||||
|
||||
return {
|
||||
body: cleanse(body),
|
||||
title: cleanse(title),
|
||||
issueType: isBug ? 'bug' : isFeatureRequest ? 'feature_request' : 'unknown',
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
export interface Release {
|
||||
productVersion: string
|
||||
timestamp: number
|
||||
version: string
|
||||
productVersion: string;
|
||||
timestamp: number;
|
||||
version: string;
|
||||
}
|
||||
|
||||
export const loadLatestRelease = async (quality: 'stable' | 'insider'): Promise<Release | undefined> =>
|
||||
(await axios.get(`https://vscode-update.azurewebsites.net/api/update/darwin/${quality}/latest`)).data
|
||||
(await axios.get(`https://update.code.visualstudio.com/api/update/darwin/${quality}/latest`)).data;
|
||||
|
||||
export const daysAgoToTimestamp = (days: number): number => +new Date(Date.now() - days * 24 * 60 * 60 * 1000)
|
||||
export const daysAgoToTimestamp = (days: number): number =>
|
||||
+new Date(Date.now() - days * 24 * 60 * 60 * 1000);
|
||||
|
||||
export const daysAgoToHumanReadbleDate = (days: number) =>
|
||||
new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '')
|
||||
new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '');
|
||||
|
||||
export const getRateLimit = async (token: string) => {
|
||||
const usageData = (await new GitHub(token).rateLimit.get()).data.resources
|
||||
const usage = {} as { core: number; graphql: number; search: number }
|
||||
;(['core', 'graphql', 'search'] as const).forEach(async (category) => {
|
||||
usage[category] = 1 - usageData[category].remaining / usageData[category].limit
|
||||
})
|
||||
return usage
|
||||
}
|
||||
const usageData = (await getOctokit(token).rest.rateLimit.get()).data.resources;
|
||||
const usage = {} as { core: number; graphql: number; search: number };
|
||||
(['core', 'graphql', 'search'] as const).forEach(async (category) => {
|
||||
if (usageData[category]) {
|
||||
usage[category] = 1 - (usageData[category]?.remaining ?? 0) / (usageData[category]?.limit ?? 1);
|
||||
}
|
||||
});
|
||||
return usage;
|
||||
};
|
||||
|
||||
export const errorLoggingIssue = (() => {
|
||||
try {
|
||||
const repo = context.repo.owner.toLowerCase() + '/' + context.repo.repo.toLowerCase()
|
||||
if (repo === 'microsoft/vscode-cpptools') {
|
||||
return { repo: 'vscode-cpptools', owner: 'Microsoft', issue: 6282 }
|
||||
const repo = context.repo.owner.toLowerCase() + '/' + context.repo.repo.toLowerCase();
|
||||
if (repo === 'microsoft/vscode' || repo === 'microsoft/vscode-remote-release') {
|
||||
return { repo: 'vscode', owner: 'Microsoft', issue: 93814 };
|
||||
} else if (/microsoft\//.test(repo)) {
|
||||
return { repo: 'vscode-internalbacklog', owner: 'Microsoft', issue: 974 };
|
||||
} else if (getInput('errorLogIssueNumber')) {
|
||||
return { ...context.repo, issue: +getRequiredInput('errorLogIssueNumber') }
|
||||
return { ...context.repo, issue: +getRequiredInput('errorLogIssueNumber') };
|
||||
} else {
|
||||
return undefined
|
||||
return undefined;
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
return undefined
|
||||
console.error(e);
|
||||
return undefined;
|
||||
}
|
||||
})()
|
||||
})();
|
||||
|
||||
export const logErrorToIssue = async (message: string, ping: boolean, token: string): Promise<void> => {
|
||||
// Attempt to wait out abuse detection timeout if present
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000))
|
||||
const dest = errorLoggingIssue
|
||||
if (!dest) return console.log('no error logging repo defined. swallowing error:', message)
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000));
|
||||
const dest = errorLoggingIssue;
|
||||
if (!dest) return console.log('no error logging repo defined. swallowing error.');
|
||||
|
||||
return new OctoKitIssue(token, { owner: dest.owner, repo: dest.repo }, { number: dest.issue }, { readonly: !!getInput('readonly') })
|
||||
return new OctoKitIssue(token, { owner: dest.owner, repo: dest.repo }, { number: dest.issue })
|
||||
.postComment(`
|
||||
Workflow: ${context.workflow}
|
||||
|
||||
Error: ${message}
|
||||
|
||||
Issue: ${ping ? `${context.repo.owner}/${context.repo.repo}#` : ''}${context.issue.number}
|
||||
Issue: ${ping ? `${context.repo.owner}/${context.repo.repo}#` : ''}${context.issue?.number}
|
||||
|
||||
Repo: ${context.repo.owner}/${context.repo.repo}
|
||||
|
||||
@@ -115,5 +120,10 @@ ${JSON.stringify(context, null, 2)
|
||||
.replace(/-->/gu, '--@>')
|
||||
.replace(/\/|\\/gu, 'slash-')}
|
||||
-->
|
||||
`)
|
||||
}
|
||||
`);
|
||||
};
|
||||
|
||||
export const safeLog = (message: string, ...args: (string | number | string[])[]): void => {
|
||||
const clean = (val: any) => ('' + val).replace(/:|#/g, '');
|
||||
console.log(clean(message), ...args.map(clean));
|
||||
};
|
||||
|
||||
Generated
+6264
-420
File diff suppressed because it is too large
Load Diff
@@ -10,15 +10,36 @@
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.2.6",
|
||||
"@actions/github": "^2.1.1",
|
||||
"axios": "^0.21.4"
|
||||
},
|
||||
"resolutions": {
|
||||
"follow-redirects": "1.14.7"
|
||||
"@actions/core": "^1.9.1",
|
||||
"@actions/github": "^5.0.3",
|
||||
"@octokit/rest": "^19.0.3",
|
||||
"@slack/web-api": "^6.7.2",
|
||||
"applicationinsights": "^2.5.1",
|
||||
"axios": "^0.27.2",
|
||||
"uuid": "^8.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.1.0",
|
||||
"typescript": "^3.8.3"
|
||||
"@azure/storage-blob": "^12.13.0",
|
||||
"@types/chai": "^4.3.3",
|
||||
"@types/mocha": "^9.1.1",
|
||||
"@types/uuid": "^8.3.4",
|
||||
"@types/yargs": "^17.0.11",
|
||||
"@typescript-eslint/eslint-plugin": "^5.33.0",
|
||||
"@typescript-eslint/parser": "^5.33.0",
|
||||
"chai": "^4.3.6",
|
||||
"eslint": "^8.21.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"husky": "^8.0.1",
|
||||
"mocha": "^10.0.0",
|
||||
"mongodb": "^4.8.1",
|
||||
"nock": "^13.2.9",
|
||||
"prettier": "2.7.1",
|
||||
"ts-node": "^10.9.1",
|
||||
"typescript": "^4.7.4",
|
||||
"yargs": "^17.5.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"minimatch": "^3.0.5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"moduleResolution": "node",
|
||||
"removeComments": false,
|
||||
"resolveJsonModule": true,
|
||||
"skipLibCheck": true,
|
||||
"sourceMap": true,
|
||||
"lib": [
|
||||
"es2020"
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
@@ -23,4 +23,4 @@ jobs:
|
||||
labels: by design,debugger
|
||||
ignoreLabels: language service,internal
|
||||
closeDays: 0
|
||||
closeComment: "This issue has been closed automatically because it's labeled as 'by design'."
|
||||
closeComment: "This issue has been closed because the described behavior was determined to be by design."
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Install Actions
|
||||
run: cd ./.github/actions && npm install --production && cd ../..
|
||||
- name: Stale Closer
|
||||
@@ -23,6 +23,6 @@ jobs:
|
||||
labels: by design
|
||||
ignoreLabels: debugger,Feature Request,more info needed,internal
|
||||
closeDays: 60
|
||||
closeComment: "This issue has been closed automatically because it's labeled as 'by design' and has not had recent activity."
|
||||
closeComment: "This issue has been closed because the described behavior was determined to be by design."
|
||||
pingDays: 80
|
||||
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if it is no longer relevant."
|
||||
|
||||
@@ -11,12 +11,12 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js 14.16.x
|
||||
uses: actions/setup-node@v1
|
||||
- name: Use Node.js 16
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14.16.x
|
||||
node-version: 16
|
||||
|
||||
- name: Install Dependencies
|
||||
run: yarn install
|
||||
@@ -35,13 +35,13 @@ jobs:
|
||||
working-directory: Extension
|
||||
|
||||
- name: Run unit tests
|
||||
uses: GabrielBB/xvfb-action@v1.4
|
||||
uses: GabrielBB/xvfb-action@v1.6
|
||||
with:
|
||||
run: yarn run unitTests
|
||||
working-directory: Extension
|
||||
|
||||
# - name: Run languageServer integration tests
|
||||
# uses: GabrielBB/xvfb-action@v1.4
|
||||
# uses: GabrielBB/xvfb-action@v1.6
|
||||
# with:
|
||||
# run: yarn run integrationTests
|
||||
# working-directory: Extension
|
||||
|
||||
@@ -11,12 +11,12 @@ jobs:
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js 14.16.x
|
||||
uses: actions/setup-node@v1
|
||||
- name: Use Node.js 16
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14.16.x
|
||||
node-version: 16
|
||||
|
||||
- name: Install Dependencies
|
||||
run: yarn install --network-timeout 100000
|
||||
@@ -35,13 +35,13 @@ jobs:
|
||||
working-directory: Extension
|
||||
|
||||
- name: Run unit tests
|
||||
uses: GabrielBB/xvfb-action@v1.4
|
||||
uses: GabrielBB/xvfb-action@v1.6
|
||||
with:
|
||||
run: yarn run unitTests
|
||||
working-directory: Extension
|
||||
|
||||
# - name: Run languageServer integration tests
|
||||
# uses: GabrielBB/xvfb-action@v1.4
|
||||
# uses: GabrielBB/xvfb-action@v1.6
|
||||
# with:
|
||||
# run: yarn run integrationTests
|
||||
# working-directory: Extension
|
||||
|
||||
@@ -11,12 +11,12 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js 14.16.x
|
||||
uses: actions/setup-node@v1
|
||||
- name: Use Node.js 16
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14.16.x
|
||||
node-version: 16
|
||||
|
||||
- name: Install Dependencies
|
||||
run: yarn install
|
||||
|
||||
@@ -23,6 +23,6 @@ jobs:
|
||||
labels: duplicate
|
||||
ignoreLabels: debugger,Feature Request,more info needed,by design,internal
|
||||
closeDays: 60
|
||||
closeComment: "This issue has been closed automatically because it's labeled as a 'duplicate' and has not had recent activity."
|
||||
closeComment: "This issue has been closed because it is a duplicate of another issue we are tracking."
|
||||
pingDays: 80
|
||||
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if it is no longer relevant."
|
||||
|
||||
@@ -25,6 +25,6 @@ jobs:
|
||||
addLabels: more votes needed
|
||||
closeDays: 60
|
||||
maximumVotes: 2
|
||||
closeComment: "This feature request is being closed due to insufficient upvotes. When enough upvotes are received, this issue will be eligible for our backlog."
|
||||
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
|
||||
setMilestoneId: 30
|
||||
ignoreMilestoneNames: "*"
|
||||
|
||||
@@ -25,6 +25,6 @@ jobs:
|
||||
addLabels: more votes needed
|
||||
closeDays: 60
|
||||
maximumVotes: 2
|
||||
closeComment: "This feature request is being closed due to insufficient upvotes. When enough upvotes are received, this issue will be eligible for our backlog."
|
||||
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
|
||||
milestoneName: Triage
|
||||
milestoneId: 30
|
||||
|
||||
@@ -23,4 +23,4 @@ jobs:
|
||||
labels: external,debugger
|
||||
ignoreLabels: language service,internal
|
||||
closeDays: 0
|
||||
closeComment: "This issue has been closed automatically because it's labeled as 'external'."
|
||||
closeComment: "This issue has been closed because it is external or not applicable to the extension."
|
||||
|
||||
@@ -25,6 +25,6 @@ jobs:
|
||||
addLabels: more votes needed
|
||||
closeDays: 60
|
||||
maximumVotes: 2
|
||||
closeComment: "This feature request is being closed due to insufficient upvotes. When enough upvotes are received, this issue will be eligible for our backlog."
|
||||
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
|
||||
setMilestoneId: 30
|
||||
ignoreMilestoneNames: "*"
|
||||
|
||||
@@ -25,6 +25,6 @@ jobs:
|
||||
addLabels: more votes needed
|
||||
closeDays: 60
|
||||
maximumVotes: 2
|
||||
closeComment: "This feature request is being closed due to insufficient upvotes. When enough upvotes are received, this issue will be eligible for our backlog."
|
||||
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
|
||||
milestoneName: Triage
|
||||
milestoneId: 30
|
||||
|
||||
@@ -23,4 +23,4 @@ jobs:
|
||||
labels: investigate,debugger
|
||||
ignoreLabels: language service,internal
|
||||
closeDays: 180
|
||||
closeComment: "This issue has been closed automatically because it has not had recent activity."
|
||||
closeComment: "This issue has been closed as lower priority. We're sorry if this issue still impacts you but unfortunately we're not able to address this. We will accept a pull request from the community if it's applicable for this issue."
|
||||
|
||||
@@ -23,4 +23,4 @@ jobs:
|
||||
labels: "investigate: costing,debugger"
|
||||
ignoreLabels: language service,internal
|
||||
closeDays: 180
|
||||
closeComment: "This issue has been closed automatically because it has not had recent activity."
|
||||
closeComment: "This issue has been closed as lower priority. We're sorry if this issue still impacts you but unfortunately we're not able to address this. We will accept a pull request from the community if it's applicable for this issue."
|
||||
|
||||
@@ -24,6 +24,6 @@ jobs:
|
||||
ignoreLabels: language service,internal
|
||||
involves: wardengnaw,pieandcakes,calgagi
|
||||
closeDays: 14
|
||||
closeComment: "This issue has been closed automatically because it needs more information and has not had recent activity."
|
||||
closeComment: "This issue has been closed because it needs more information and has not had recent activity."
|
||||
pingDays: 7
|
||||
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information."
|
||||
|
||||
@@ -23,6 +23,6 @@ jobs:
|
||||
labels: more info needed
|
||||
ignoreLabels: debugger,internal
|
||||
closeDays: 60
|
||||
closeComment: "This issue has been closed automatically because it needs more information and has not had recent activity."
|
||||
closeComment: "This issue has been closed because it needs more information and has not had recent activity."
|
||||
pingDays: 80
|
||||
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information."
|
||||
|
||||
@@ -24,6 +24,6 @@ jobs:
|
||||
ignoreLabels: language service,internal
|
||||
involves: wardengnaw,pieandcakes,calgagi
|
||||
closeDays: 14
|
||||
closeComment: "This issue has been closed automatically because it's labeled as a 'question' and has not had recent activity."
|
||||
closeComment: "This issue has been closed because it is a question and has not had recent activity."
|
||||
pingDays: 7
|
||||
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the question has been answered."
|
||||
|
||||
@@ -23,6 +23,6 @@ jobs:
|
||||
labels: question
|
||||
ignoreLabels: debugger,internal
|
||||
closeDays: 60
|
||||
closeComment: "This issue has been closed automatically because it's labeled as a 'question' and has not had recent activity."
|
||||
closeComment: "This issue has been closed because it is a question and has not had recent activity."
|
||||
pingDays: 80
|
||||
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the question has been answered."
|
||||
|
||||
@@ -24,6 +24,11 @@ pool:
|
||||
- ImageOverride -equals AzurePipelinesWindows2022compliant
|
||||
|
||||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: '16.x'
|
||||
displayName: 'Install Node.js'
|
||||
|
||||
- task: CmdLine@2
|
||||
inputs:
|
||||
script: 'cd Extension && yarn install'
|
||||
|
||||
@@ -19,6 +19,7 @@ module.exports = {
|
||||
"rules": {
|
||||
"@typescript-eslint/adjacent-overload-signatures": "error",
|
||||
"@typescript-eslint/array-type": "error",
|
||||
"@typescript-eslint/await-thenable": "error",
|
||||
"camelcase": "off",
|
||||
"@typescript-eslint/naming-convention": [
|
||||
"error",
|
||||
@@ -27,7 +28,6 @@ module.exports = {
|
||||
"format": ["PascalCase"]
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/indent": "error",
|
||||
"@typescript-eslint/member-delimiter-style": [
|
||||
"error",
|
||||
{
|
||||
@@ -43,6 +43,7 @@ module.exports = {
|
||||
],
|
||||
"@typescript-eslint/no-for-in-array": "error",
|
||||
"@typescript-eslint/no-misused-new": "error",
|
||||
"@typescript-eslint/no-misused-promises": "error",
|
||||
"@typescript-eslint/no-namespace": "error",
|
||||
"@typescript-eslint/no-non-null-assertion": "error",
|
||||
"@typescript-eslint/no-extra-non-null-assertion": "error",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# ignore dependency packages
|
||||
node_modules
|
||||
|
||||
# ignore compliled typescript
|
||||
# ignore compiled typescript
|
||||
out
|
||||
dist
|
||||
|
||||
@@ -33,3 +33,4 @@ localized_string_ids.h
|
||||
# ignore generate files. It will be generated when building
|
||||
src/nativeStrings.ts
|
||||
|
||||
vscode*.d.ts
|
||||
|
||||
Vendored
+1
-9
@@ -10,7 +10,6 @@
|
||||
"args": [
|
||||
"--extensionDevelopmentPath=${workspaceFolder}"
|
||||
],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
@@ -25,7 +24,6 @@
|
||||
"args": [
|
||||
"--extensionDevelopmentPath=${workspaceFolder}"
|
||||
],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
@@ -40,7 +38,6 @@
|
||||
"args": [
|
||||
"--extensionDevelopmentPath=${workspaceFolder}"
|
||||
],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
@@ -54,7 +51,6 @@
|
||||
"args": [
|
||||
"--extensionDevelopmentPath=${workspaceFolder}"
|
||||
],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
@@ -69,7 +65,6 @@
|
||||
"args": [
|
||||
"--extensionDevelopmentPath=${workspaceFolder}"
|
||||
],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
@@ -85,7 +80,6 @@
|
||||
"--extensionDevelopmentPath=${workspaceFolder}",
|
||||
"--extensionTestsPath=${workspaceFolder}/out/test/unitTests/index"
|
||||
],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/test/**/*.js"
|
||||
@@ -102,7 +96,6 @@
|
||||
"--extensionDevelopmentPath=${workspaceFolder}",
|
||||
"--extensionTestsPath=${workspaceFolder}/out/test/integrationTests/languageServer/index"
|
||||
],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/test/**/*.js"
|
||||
@@ -115,11 +108,10 @@
|
||||
"request": "launch",
|
||||
"runtimeExecutable": "${execPath}",
|
||||
"args": [
|
||||
"C:/git/Vcls-vscode-test/SingleRootProject",
|
||||
"C:/git/Vcls-vscode-test/MultirootDeadlockTest/test.code-workspace",
|
||||
"--extensionDevelopmentPath=${workspaceFolder}",
|
||||
"--extensionTestsPath=${workspaceFolder}/out/test/integrationTests/IntelliSenseFeatures/index"
|
||||
],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/test/**/*.js"
|
||||
|
||||
+445
-90
@@ -1,101 +1,456 @@
|
||||
# C/C++ for Visual Studio Code Change Log
|
||||
# C/C++ for Visual Studio Code Changelog
|
||||
|
||||
## Version 1.9.4-debug: March 14, 2022
|
||||
* This is a debug build for Windows x64 intended to be used to get assertion failure information for bug [#8851](https://github.com/microsoft/vscode-cpptools/issues/8851).
|
||||
## Version 1.16.3: June 23, 2023
|
||||
### Bug Fix
|
||||
* Fix "cout is ambiguous" error. [#11122](https://github.com/microsoft/vscode-cpptools/issues/11122)
|
||||
|
||||
## Enhancements
|
||||
* Reserved identifiers with characters that match typed characters in the correct order but not contiguously are initially filtered in the auto-completion list. Doing a `ctrl` + `space` in the same location will show all auto-complete suggestions. [#4939](https://github.com/microsoft/vscode-cpptools/issues/4939)
|
||||
* Show "Catastrophic error" during tag parsing with an Error logging severity and report the number of occurrences via telemetry. [#9013](https://github.com/microsoft/vscode-cpptools/issues/9013)
|
||||
## Version 1.16.2: June 22, 2023
|
||||
### New Features
|
||||
* Add Call Hierarchy. [#16](https://github.com/microsoft/vscode-cpptools/issues/16)
|
||||
* Add "Copy Definition" and "Copy Declaration" code actions (for when the default Create placement isn't desired). [#10238](https://github.com/microsoft/vscode-cpptools/issues/10238), [#10942](https://github.com/microsoft/vscode-cpptools/issues/10942)
|
||||
|
||||
## Bug Fixes
|
||||
* Fix temp files randomly not getting deleted on Windows with a `C_Cpp.loggingLevel` of `Warning` or greater. [#9008](https://github.com/microsoft/vscode-cpptools/issues/9008)
|
||||
* Fix mingw clang being detected as gcc. [#9024](https://github.com/microsoft/vscode-cpptools/issues/9024)
|
||||
### Enhancements
|
||||
* Add support for other glob pattern syntax, such as `[]` and `^`. [#8960](https://github.com/microsoft/vscode-cpptools/issues/8960)
|
||||
* Add support for C++23 z/Z and zu/ZU suffixes in clang/gcc modes. [#10190](https://github.com/microsoft/vscode-cpptools/issues/10190)
|
||||
* Add warning logging when the database is reset due to a version change. [#10984](https://github.com/microsoft/vscode-cpptools/issues/10984)
|
||||
* Move user compilers to the beginning of the "known compilers" lists. [#10985](https://github.com/microsoft/vscode-cpptools/issues/10985)
|
||||
* Add file path to the details of a call hierarchy result. [#10997](https://github.com/microsoft/vscode-cpptools/issues/10997)
|
||||
* Add `miDebuggerArgs` to debugger attach option.
|
||||
* Thank you for the contribution @Summon528 [PR #11066](https://github.com/microsoft/vscode-cpptools/pull/11066)
|
||||
|
||||
## Version 1.9.3: March 9, 2022
|
||||
### New Feature
|
||||
### Bug Fixes
|
||||
* Fix an IntelliSense parsing bug with C++20 ranges. [#8039](https://github.com/microsoft/vscode-cpptools/issues/8039)
|
||||
* Fix incorrect insertion of Create Declaration/Definition when it also adds a #include. [#10464](https://github.com/microsoft/vscode-cpptools/issues/10464)
|
||||
* Fix an IntelliSense bug with user-defined floating-point literals. [#10837](https://github.com/microsoft/vscode-cpptools/issues/10837)
|
||||
* Fix deadlock with Find All References. [#10855](https://github.com/microsoft/vscode-cpptools/issues/10855)
|
||||
* Fix performance issues on machines with > 32 threads. [#10874](https://github.com/microsoft/vscode-cpptools/issues/10874)
|
||||
* Fix localization of "C/C++ Configurations". [#10907](https://github.com/microsoft/vscode-cpptools/issues/10907)
|
||||
* Fix the workspace folder not getting added to the browse.path in some cases. [#10914](https://github.com/microsoft/vscode-cpptools/issues/10914)
|
||||
* Fix incorrect Apple clang to LLVM clang version mappings. [#10920](https://github.com/microsoft/vscode-cpptools/issues/10920)
|
||||
* Revert -fms-extensions being added for mingw compilers by default (due to bugs). [#10940](https://github.com/microsoft/vscode-cpptools/issues/10940)
|
||||
* Fix the "known compilers" list not getting updated with "user compilers". [#10943](https://github.com/microsoft/vscode-cpptools/issues/10943)
|
||||
* Fix cancelation of Find All References while confirming references. [#10947](https://github.com/microsoft/vscode-cpptools/issues/10947)
|
||||
* Fix a bug with workspace parsing status. [PR #10974](https://github.com/microsoft/vscode-cpptools/pull/10974)
|
||||
* Fix some bugs if settings were empty string or null. [#10994](https://github.com/microsoft/vscode-cpptools/issues/10994)
|
||||
* Fix cancellation for Find All References/Rename/Call Hierarchy. [#10998](https://github.com/microsoft/vscode-cpptools/issues/10998)
|
||||
* Fix two Doxygen comment generation bugs. [#10995](https://github.com/microsoft/vscode-cpptools/issues/10995), [#11016](https://github.com/microsoft/vscode-cpptools/issues/11016)
|
||||
* Fix the thread pool sometimes not increasing in size, which could lead to the cpptools process incorrectly being shut down. [#11003](https://github.com/microsoft/vscode-cpptools/issues/11003)
|
||||
* Stop using vcFormat if .editorconfig exists with only non-formatting cpp settings. [PR #11015](https://github.com/microsoft/vscode-cpptools/pull/11015)
|
||||
* Use integratedTerminal when user is running cl.exe for debugger. [#11032](https://github.com/microsoft/vscode-cpptools/issues/11032)
|
||||
* Thank you for the contribution @caiohamamura [PR #11035](https://github.com/microsoft/vscode-cpptools/pull/11035)
|
||||
* Fix the configure your IntelliSense notification to not show again when the "Don't Show Again" option is selected. [#11070](https://github.com/microsoft/vscode-cpptools/issues/11070)
|
||||
* Fix a bug that could cause incomplete reading of stdout/stderr of child processes on Windows.
|
||||
* Fix incorrect "declaration is incompatible" IntelliSense errors.
|
||||
* Fix some potential crashes.
|
||||
|
||||
## Version 1.15.4: May 1, 2023
|
||||
### Enhancements
|
||||
* Support multiple natvis files in `visualizerFile`. [#925](https://github.com/microsoft/vscode-cpptools/issues/925)
|
||||
* Enable error squiggles for single file mode if includes resolve. [#10062](https://github.com/microsoft/vscode-cpptools/issues/10062)
|
||||
* Improve the description of the `C_Cpp.codeAnalysis.clangTidy.enabled` setting. [#10454](https://github.com/microsoft/vscode-cpptools/issues/10454)
|
||||
* Add a 'Select an IntelliSense configuration' code action and error message for standard headers which can't be found. [#10531](https://github.com/microsoft/vscode-cpptools/issues/10531)
|
||||
* Change the 'Edit "includePath" setting' code action to reference "compilerPath" for missing system includes. [#10675](https://github.com/microsoft/vscode-cpptools/issues/10675)
|
||||
* Add a "Configure IntelliSense" status bar warning (currently controlled by an experiment). [#10685](https://github.com/microsoft/vscode-cpptools/issues/10685)
|
||||
* Re-enable an updated C/C++ walkthrough (currently only available for some users). [PR #10707](https://github.com/microsoft/vscode-cpptools/pull/10707)
|
||||
* Update to clang-format/tidy 16. [#10725](https://github.com/microsoft/vscode-cpptools/issues/10725)
|
||||
* Move the configuration status bar item out of the language status UI. [#10755](https://github.com/microsoft/vscode-cpptools/issues/10755)
|
||||
* Change `Select Default Compiler` to `Select IntelliSense Configuration` with configuration providers and compile commands added. [#10756](https://github.com/microsoft/vscode-cpptools/issues/10756)
|
||||
|
||||
### Bug Fixes
|
||||
* Support use of `ccache`, 'sccache', and 'clcache' in `compilerPath` and `compile_commands.json` command lines. [#7616](https://github.com/microsoft/vscode-cpptools/issues/7616)
|
||||
* Enable `-fms-extensions` by default for Cygwin and MinGW. [#8353](https://github.com/microsoft/vscode-cpptools/issues/8353)
|
||||
* Fix incorrect, excessive logging with compile commands. [#9865](https://github.com/microsoft/vscode-cpptools/issues/9865)
|
||||
* Fix IntelliSense errors with C++ 20 range and span. [#10024](https://github.com/microsoft/vscode-cpptools/issues/10024), [#10252](https://github.com/microsoft/vscode-cpptools/issues/10252)
|
||||
* Fix two vcFormat settings being inverted. [#10262](https://github.com/microsoft/vscode-cpptools/issues/10262), [#10263](https://github.com/microsoft/vscode-cpptools/issues/10263)
|
||||
* Fix 'Create Declaration / Definition' making modifications to files outside the workspace folder. [#10402](https://github.com/microsoft/vscode-cpptools/issues/10402)
|
||||
* Fix code analysis when `--use-color=true` is used. [#10407](https://github.com/microsoft/vscode-cpptools/issues/10407)
|
||||
* Fix IntelliSense errors with CUDA. [#10455](https://github.com/microsoft/vscode-cpptools/issues/10455)
|
||||
* Fix random save failures while code analysis is running on the saved file. [#10482](https://github.com/microsoft/vscode-cpptools/issues/10482)
|
||||
* Fix the compile commands prompt setting `compileCommands` to a `compile_commands.json` in a different workspace folder. [#10588](https://github.com/microsoft/vscode-cpptools/issues/10588)
|
||||
* Fix code analysis with `_Float16`. [#10610](https://github.com/microsoft/vscode-cpptools/issues/10610)
|
||||
* Fix code analysis with c23/gnu23. [#10615](https://github.com/microsoft/vscode-cpptools/issues/10615)
|
||||
* Fix 'Reset IntelliSense Database' being delayed until parsing is finished. [#10616](https://github.com/microsoft/vscode-cpptools/issues/10616)
|
||||
* Fix uncaught exception with some configuration providers. [#10634](https://github.com/microsoft/vscode-cpptools/issues/10634)
|
||||
* Fix crashes with a multi-root workspace. [#10636](https://github.com/microsoft/vscode-cpptools/issues/10636)
|
||||
* Fix bugs with the "You do not have IntelliSense configured" prompt. [#10658](https://github.com/microsoft/vscode-cpptools/issues/10658), [#10659](https://github.com/microsoft/vscode-cpptools/issues/10659)
|
||||
* Fix random failures when adding or removing workspace folders. [PR #10665](https://github.com/microsoft/vscode-cpptools/pull/10665)
|
||||
* Fix missing clang-tidy checks setting values. [#10667](https://github.com/microsoft/vscode-cpptools/issues/10667)
|
||||
* Fix 'Select IntelliSense configuration' so that it works if it's already set in the workspace or workspace folder settings. [#10674](https://github.com/microsoft/vscode-cpptools/issues/10674)
|
||||
* Fix clang-tidy 'clang-analyzer-' documentation links not working. [#10678](https://github.com/microsoft/vscode-cpptools/issues/10678)
|
||||
* Fix the browse configuration provider cache not getting cleared. [#10692](https://github.com/microsoft/vscode-cpptools/issues/10692), [#10877](https://github.com/microsoft/vscode-cpptools/issues/10877)
|
||||
* Fix a crash with recursive environment variables on Windows. [#10704](https://github.com/microsoft/vscode-cpptools/issues/10704)
|
||||
* Fix `#import` of `.tlb` files failing due to `/Fo` arguments to `cl.exe` not being processed. [#10710](https://github.com/microsoft/vscode-cpptools/issues/10710)
|
||||
* Fix `cppbuild` tasks not using the workspace folder as the `cwd` by default. [#10742](https://github.com/microsoft/vscode-cpptools/issues/10742)
|
||||
* Fix lots of IntelliSense processes getting launched after a Find/Replace operation (potentially freezing the OS). [#10743](https://github.com/microsoft/vscode-cpptools/issues/10743)
|
||||
* Fix workspace folder variable resolution with `clang_format_style`. [#10752](https://github.com/microsoft/vscode-cpptools/issues/10752)
|
||||
* For remote attach, use an absolute `/bin/sh` path on Linux. [PR #10765](https://github.com/microsoft/vscode-cpptools/pull/10765)
|
||||
* Fix the first registered configuration provider still being automatically used after a second registers. [PR #10772](https://github.com/microsoft/vscode-cpptools/pull/10772)
|
||||
* Fix `C_Cpp.default.compilerPath` in the settings UI showing a string editor when it shouldn't. [#10795](https://github.com/microsoft/vscode-cpptools/issues/10795)
|
||||
* Fix some issues due to usage of the spread operator not doing a deep copy. [PR #10803](https://github.com/microsoft/vscode-cpptools/pull/10803)
|
||||
* Fix the Code Analysis Options dropdown showing 'Resume' instead of 'Pause' after a cancel is done in a paused state. [#10879](https://github.com/microsoft/vscode-cpptools/issues/10879)
|
||||
* Fix "Code Analysis Mode" not being localized when initially shown. [#10881](https://github.com/microsoft/vscode-cpptools/issues/10881)
|
||||
* Fix the C/C++-related status bar items flickering off/on when switching documents. [PR #10888](https://github.com/microsoft/vscode-cpptools/pull/10888)
|
||||
* Fix `__GXX_RTTI` incorrectly being defined by IntelliSense with clang and `-fms-compatibility`.
|
||||
* Reduce the likelihood of an `onWillSaveWaitUntil` timeout.
|
||||
* Fix an IntelliSense crash with C++20 concepts.
|
||||
* Stop querying clang-cl.exe as C.
|
||||
|
||||
## Version 1.14.5: March 22, 2023
|
||||
### Bug Fix
|
||||
* Fix a deadlock with a multi-root workspace. [#10719](https://github.com/microsoft/vscode-cpptools/issues/10719)
|
||||
|
||||
## Version 1.14.4: February 28, 2023
|
||||
### Enhancements
|
||||
* Add `c23` and `c2x` support for clang and gcc modes. [#7471](https://github.com/microsoft/vscode-cpptools/issues/7471)
|
||||
* Filter out clang-tidy `#pragma once in main file` warnings. [#10539](https://github.com/microsoft/vscode-cpptools/issues/10539)
|
||||
* Auto-configure `configurationProvider` even if `default.compilerPath` is set. [PR #10607](https://github.com/microsoft/vscode-cpptools/pull/10607)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix `--` in args making compiler querying fail. [#10529](https://github.com/microsoft/vscode-cpptools/issues/10529)
|
||||
* Fix every .C file being opened in a compile_commands.json if it's build for C++. [#10540](https://github.com/microsoft/vscode-cpptools/issues/10540)
|
||||
* Fix `-std=c++` not being used in compile_commands.json for .C files. [#10541](https://github.com/microsoft/vscode-cpptools/issues/10541)
|
||||
* Fix a crash when an error occurs in a forced include. [#10598](https://github.com/microsoft/vscode-cpptools/issues/10598)
|
||||
* Fix the configuration provider browse cache not getting cleared. [PR #10608](https://github.com/microsoft/vscode-cpptools/pull/10608)
|
||||
* Fix a bug that could cause IntelliSense to randomly stop updating.
|
||||
* Fix some random failures that could happen during database deletion.
|
||||
* Fix some random crashes on shutdown.
|
||||
|
||||
## Version 1.14.3: February 14, 2023
|
||||
### New Features
|
||||
* Add recursive macro expansion on hover. [#3579](https://github.com/microsoft/vscode-cpptools/issues/3579)
|
||||
* Move status bar items to the language status UI. [#8405](https://github.com/microsoft/vscode-cpptools/issues/8405)
|
||||
* This may not be enabled for all users unless `C_Cpp.experimentalFeatures` is `true`.
|
||||
* Add the 'Select Default Compiler' command that lets you choose a default compiler to configure IntelliSense. [#10027](https://github.com/microsoft/vscode-cpptools/issues/10027)
|
||||
|
||||
### Enhancements
|
||||
* Exclude rename results external to the workspace. [#9235](https://github.com/microsoft/vscode-cpptools/issues/9235)
|
||||
* Add error messages for Create Declaration / Definition. [#10163](https://github.com/microsoft/vscode-cpptools/issues/10163)
|
||||
* Add support for LLVM-based Intel C/C++ compilers. [#10218](https://github.com/microsoft/vscode-cpptools/issues/10218)
|
||||
* SSH output improvements. [PR #10292](https://github.com/microsoft/vscode-cpptools/pull/10292)
|
||||
* Reorder commands in the code action context menu. [#10400](https://github.com/microsoft/vscode-cpptools/issues/10400)
|
||||
* Add Ada to supported languages for debugging. [#10475](https://github.com/microsoft/vscode-cpptools/issues/10475)
|
||||
* Anthony Leonardo Gracio (@AnthonyLeonardoGracio) [PR #10476](https://github.com/microsoft/vscode-cpptools/pull/10476)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix usage of relative paths in IntelliSense configuration settings with multi-root workspaces. [#4983](https://github.com/microsoft/vscode-cpptools/issues/4983)
|
||||
* Fix infinite recursion in scout_parser. [#8898](https://github.com/microsoft/vscode-cpptools/issues/8898)
|
||||
* Fix an IntelliSense crash with the seqan3 library. [#8956](https://github.com/microsoft/vscode-cpptools/issues/8956)
|
||||
* Fix looping between C and C++. [#9689](https://github.com/microsoft/vscode-cpptools/issues/9689)
|
||||
* Fix Doxygen comments for the function signature being autogenerated when typing inside a function. [#9742](https://github.com/microsoft/vscode-cpptools/issues/9742)
|
||||
* Show a reload prompt after `C_Cpp.hover` is changed. [#10076](https://github.com/microsoft/vscode-cpptools/issues/10076)
|
||||
* Fix function inlay hints not working with `std::string_literal` arguments. [#10078](https://github.com/microsoft/vscode-cpptools/issues/10078)
|
||||
* Fix IntelliSense completion for `std::string` with `?:` and `string()`. [#10103](https://github.com/microsoft/vscode-cpptools/issues/10103)
|
||||
* Fix semantic colorization not working in a certain case. [#10105](https://github.com/microsoft/vscode-cpptools/issues/10105)
|
||||
* Fix IntelliSense completion not working inside constructor calls that are incomplete. [#10111](https://github.com/microsoft/vscode-cpptools/issues/10111)
|
||||
* Fix changes to the enclosing type not being taken into account after "Create Declaration / Definition" is used once. [#10162](https://github.com/microsoft/vscode-cpptools/issues/10162)
|
||||
* Fix "False positive expression must have a constant value with __builtin_choose_expr in _Static_assert". [#10168](https://github.com/microsoft/vscode-cpptools/issues/10168)
|
||||
* Fix Create Declaration / Definition with an anonymous namespace. [#10189](https://github.com/microsoft/vscode-cpptools/issues/10189)
|
||||
* Fix file exclusions not being applied to the first directory found for each browse.path entry. [#10205](https://github.com/microsoft/vscode-cpptools/issues/10205)
|
||||
* Fix IntelliSense mode auto-detection for VS 2015 compiler paths. [#10207](https://github.com/microsoft/vscode-cpptools/issues/10207)
|
||||
* Fix clang-cl 15 querying with /WX. [#10221](https://github.com/microsoft/vscode-cpptools/issues/10221)
|
||||
* Fix an incorrect IntelliSense error with `std::bind`, c++17, and windows-msvc-arm64 mode. [#10304](https://github.com/microsoft/vscode-cpptools/issues/10304)
|
||||
* Fix vcFormat when using lambda functions. [#10326](https://github.com/microsoft/vscode-cpptools/issues/10326)
|
||||
* Fix IntelliSense crash in field_for_lambda_capture. [#10359](https://github.com/microsoft/vscode-cpptools/issues/10359)
|
||||
* Fix for cpptools getting shutdown after waking up from sleep. [#10362](https://github.com/microsoft/vscode-cpptools/issues/10362)
|
||||
* Fix an IntelliSense crash when using the French language pack. [#10374](https://github.com/microsoft/vscode-cpptools/issues/10374)
|
||||
* Fix the process id picker only showing part of the process on a remote machine. [#10379](https://github.com/microsoft/vscode-cpptools/issues/10379)
|
||||
* Fix temp files generating at the incorrect path. [#10386](https://github.com/microsoft/vscode-cpptools/issues/10386)
|
||||
* Fix a crash in extractArgs. [PR #10394](https://github.com/microsoft/vscode-cpptools/pull/10394)
|
||||
* Fix a bug with settings changes not being handled correctly for multi-root. [PR #10458](https://github.com/microsoft/vscode-cpptools/pull/10458)
|
||||
|
||||
## Version 1.13.9: January 4, 2023
|
||||
### Bug Fix
|
||||
* Fix clang-format and clang-tidy not working for macOS 11 arm64. [#10282](https://github.com/microsoft/vscode-cpptools/issues/10282)
|
||||
|
||||
## Version 1.13.8: December 15, 2022
|
||||
### Bug Fixes
|
||||
* Fix tag parser failure on machines with multiple extension users. [#10224](https://github.com/microsoft/vscode-cpptools/issues/10224)
|
||||
* Fix a `--using_directory` IntelliSense error if LIBPATH is defined with non-msvc IntelliSense modes. [#10249](https://github.com/microsoft/vscode-cpptools/issues/10249)
|
||||
* Fix a crash when the configuration name is missing. [#10251](https://github.com/microsoft/vscode-cpptools/issues/10251)
|
||||
|
||||
## Version 1.13.7: December 8, 2022
|
||||
### Bug Fix
|
||||
* Fix `files.associations` not working. [#10244](https://github.com/microsoft/vscode-cpptools/issues/10244)
|
||||
|
||||
## Version 1.13.6: December 6, 2022
|
||||
### New Features
|
||||
* Add the ability to generate definitions from declarations and vice versa. [#664](https://github.com/microsoft/vscode-cpptools/issues/664)
|
||||
* Add SSH Target Selector. [PR #9760](https://github.com/microsoft/vscode-cpptools/pull/9760)
|
||||
* Add rsync support in deploySteps. [PR #9808](https://github.com/microsoft/vscode-cpptools/pull/9808)
|
||||
|
||||
### Enhancements
|
||||
* Add `C_Cpp.caseSensitiveFileSupport` for enabling case sensitive file handling on Windows. [#1994](https://github.com/microsoft/vscode-cpptools/issues/1994)
|
||||
* Add sections to settings. [#8237](https://github.com/microsoft/vscode-cpptools/issues/8237)
|
||||
* Make Doxygen hover comments customizable with `C_Cpp.doxygen.sectionTags`. [#8525](https://github.com/microsoft/vscode-cpptools/issues/8525)
|
||||
* Add better build and debug task handling for when a compiler or debugger doesn't exist. [#8836](https://github.com/microsoft/vscode-cpptools/issues/8836)
|
||||
* Delay applying `c_cpp_properties.json` changes until after a save. [#9185](https://github.com/microsoft/vscode-cpptools/issues/9185)
|
||||
* Create directories on Linux/Mac with 755 instead of 777 permissions. [#9670](https://github.com/microsoft/vscode-cpptools/issues/9670)
|
||||
* Check for MSVC environment variables for configuring IntelliSense. [#9745](https://github.com/microsoft/vscode-cpptools/issues/9745)
|
||||
* Enable the inlay hint settings to be set per-workspace folder. [#9782](https://github.com/microsoft/vscode-cpptools/issues/9782)
|
||||
* Add a `C_Cpp.hover` setting to enable disabling hover results. [#9793](https://github.com/microsoft/vscode-cpptools/issues/9793)
|
||||
* Update to clang-format and clang-tidy 15.0.3. [#9816](https://github.com/microsoft/vscode-cpptools/issues/9816)
|
||||
* Enable hiding the SSH Targets view with the `C_Cpp.sshTargetsView` setting. [#9836](https://github.com/microsoft/vscode-cpptools/issues/9836)
|
||||
* Change "Enabled", "Disabled", "Default" settings to camelCase. [PR #9862](https://github.com/microsoft/vscode-cpptools/pull/9862)
|
||||
* Add support for C++ modules IFC version 0.42. [#9884](https://github.com/microsoft/vscode-cpptools/issues/9884)
|
||||
* Add SSH terminal for targets. [PR #9895](https://github.com/microsoft/vscode-cpptools/pull/9895)
|
||||
* Make array settings give a warning for duplicates. [PR #9959](https://github.com/microsoft/vscode-cpptools/pull/9959)
|
||||
* Add "iar" and "armcc5" problem matchers. [#10054](https://github.com/microsoft/vscode-cpptools/issues/10054)
|
||||
* Michael (@morsisko) [PR #10085](https://github.com/microsoft/vscode-cpptools/pull/10085), [PR #10101](https://github.com/microsoft/vscode-cpptools/pull/10101)
|
||||
* Pass `--Wno-error=unknown` to clang-format (12 or newer) to avoid failing on unsupported settings. [#10072](https://github.com/microsoft/vscode-cpptools/issues/10072)
|
||||
* Add support for `/cygdrive` paths returned by some versions of Cygwin. [#10112](https://github.com/microsoft/vscode-cpptools/issues/10112)
|
||||
* Switch from RapidJSON to VS's internal JSON parser.
|
||||
|
||||
### Bug Fixes
|
||||
* Fix "final" breaking formatting. [#6638](https://github.com/microsoft/vscode-cpptools/issues/6638)
|
||||
* Fix incorrect "expected concept name" IntelliSense error. [#6876](https://github.com/microsoft/vscode-cpptools/issues/6876)
|
||||
* Fix incorrect Outline view with C++20 namespace ::inline syntax. [#7216](https://github.com/microsoft/vscode-cpptools/issues/7216)
|
||||
* Fix updates to compile_commands.json not being handled if specified using a relative path. [#7610](https://github.com/microsoft/vscode-cpptools/issues/7610)
|
||||
* Fix variadic macros not expanding correctly. [#8178](https://github.com/microsoft/vscode-cpptools/issues/8178)
|
||||
* Fix the `editor.parameterHints.enabled` setting not being used when `C_Cpp.autocompleteAddParentheses` is `true`. [#9314](https://github.com/microsoft/vscode-cpptools/issues/9314)
|
||||
* Fix IntelliSense bug "A result type of `__builtin_choose_expr` that returns a pointer to a function is not correctly inferred in clang mode". [#9368](https://github.com/microsoft/vscode-cpptools/issues/9368)
|
||||
* Fix some invalid macro redefinition errors. [#9435](https://github.com/microsoft/vscode-cpptools/issues/9435)
|
||||
* Fix wordexp sometimes getting stuck on Mac (and Linux). [#9688](https://github.com/microsoft/vscode-cpptools/issues/9688)
|
||||
* Fix ctrl+space completion for Doxygen tags. [#9732](https://github.com/microsoft/vscode-cpptools/issues/9732)
|
||||
* Fix the position of inlay parameter hints when using at or operator[]. [#9741](https://github.com/microsoft/vscode-cpptools/issues/9741)
|
||||
* Fix `-std=` being passed to clang-tidy in certain cases . [#9776](https://github.com/microsoft/vscode-cpptools/issues/9776)
|
||||
* Fix `${workspaceFolder}` not being resolved in `C_Cpp.clang_format_style`. [#9786](https://github.com/microsoft/vscode-cpptools/issues/9786)
|
||||
* Fix debugger visualization for ArrayItem elements more than 1000. [#9801](https://github.com/microsoft/vscode-cpptools/issues/9801)
|
||||
* Fix extra comma in the generated the `(gdb) attach` configuration in `launch.json`. [#9818](https://github.com/microsoft/vscode-cpptools/issues/9818)
|
||||
* Fix IntelliSense crash with range-v3 `ranges::views::addressof`. [#9870](https://github.com/microsoft/vscode-cpptools/issues/9870)
|
||||
* Fix slow compiler querying. [#9882](https://github.com/microsoft/vscode-cpptools/issues/9882)
|
||||
* Handle `-fexperimental-library` clang argument. [#9888](https://github.com/microsoft/vscode-cpptools/issues/9888)
|
||||
* Fix compiler querying with multiple -arch. [#9894](https://github.com/microsoft/vscode-cpptools/issues/9894)
|
||||
* Fix code analysis errors related to SSE being enabled when gcc is used. [#9898](https://github.com/microsoft/vscode-cpptools/issues/9898)
|
||||
* Fix issue with parsing SSH configurations that could cause the extension to fail to activate. [#9933](https://github.com/microsoft/vscode-cpptools/pull/9933)
|
||||
* Fix inlay hints showing "type" for lambdas in certain cases. [#9971](https://github.com/microsoft/vscode-cpptools/issues/9971)
|
||||
* Resolve variables for `C_Cpp.codeAnalysis.clangTidy.args` and `headerFilter`. [#9981](https://github.com/microsoft/vscode-cpptools/issues/9981), [#9996](https://github.com/microsoft/vscode-cpptools/issues/9996)
|
||||
* Fix some translations. [#9986](https://github.com/microsoft/vscode-cpptools/issues/9986), [#10011](https://github.com/microsoft/vscode-cpptools/issues/10011), [#10012](https://github.com/microsoft/vscode-cpptools/issues/10012), [#10013](https://github.com/microsoft/vscode-cpptools/issues/10013)
|
||||
* Fix "Step Over past a logpoint stops at the wrong place". [#9995](https://github.com/microsoft/vscode-cpptools/issues/9995)
|
||||
* Disable the "Generate Doxygen Comment" context menu when IntelliSense is disabled. [PR #10007](https://github.com/microsoft/vscode-cpptools/pull/10007)
|
||||
* Fix Doxygen code action from appearing on a function that already has a `*/` comment. [#10009](https://github.com/microsoft/vscode-cpptools/issues/10009)
|
||||
* Fix clang-tidy and clang-format not working on CentOS7 and other Linux OS's without glibc 2.27 or greater. [#10019](https://github.com/microsoft/vscode-cpptools/issues/10019)
|
||||
* Fix various bugs with the `C_Cpp.codeAnalysis.clangTidy.headerFilter` setting. [#10023](https://github.com/microsoft/vscode-cpptools/issues/10023)
|
||||
* Fix Doxygen comment generation when there's a selection. [#10028](https://github.com/microsoft/vscode-cpptools/issues/10028)
|
||||
* Fix issue that could cause document corruption. [#10035](https://github.com/microsoft/vscode-cpptools/issues/10035)
|
||||
* Fixed crash on Linux/Mac when a full command line is specified in `compilerPath` containing invalid arguments. [PR #10070](https://github.com/microsoft/vscode-cpptools/pull/10070)
|
||||
* Fix random "Failed to spawn IntelliSense process: 65520" on Mac. [#10091](https://github.com/microsoft/vscode-cpptools/issues/10091)
|
||||
* Fix debugger throwing error "stdout maxBuffer exceeded". [10107](https://github.com/microsoft/vscode-cpptools/issues/10107)
|
||||
* Fix "Can't attach to process on Windows: Unexpected token \ in JSON". [#10108](https://github.com/microsoft/vscode-cpptools/issues/10108)
|
||||
* Fix "Don't hardcode path to kill in UnixUtilities". [#10124](https://github.com/microsoft/vscode-cpptools/issues/10124)
|
||||
* Ellie Hermaszewska (@expipiplus1) [PR #1373](https://github.com/microsoft/MIEngine/pull/1373)
|
||||
* Fix formatting when clang-format 11 or earlier is used (and another issue for version 8 or earlier). [#10178](https://github.com/microsoft/vscode-cpptools/issues/10178)
|
||||
* Fix "Natvis: are multi-dimensional arrays supported in gdb natvis?". [MIEngine#980](https://github.com/microsoft/MIEngine/issues/980)
|
||||
* Fix include completion sorting extensionless headers (e.g. string) after headers with an extension (e.g. string.h).
|
||||
* Fix extensionHost logging an error related to onWillSaveTextDocument whenever a save is done.
|
||||
* Fix random "Failed to spawn IntelliSense process" on Mac.
|
||||
* Fix a deadlock when IntelliSense errors are updating.
|
||||
* Fix redundant rescan when adding a workspace folder.
|
||||
|
||||
### Removed Feature
|
||||
* Removed explicit WSL support in favor of using the WSL extension. [PR #10066](https://github.com/microsoft/vscode-cpptools/pull/10066)
|
||||
|
||||
## Version 1.12.4: August 31, 2022
|
||||
### Other
|
||||
* Revert changes to telemetry key format. [PR #9822](https://github.com/microsoft/vscode-cpptools/pull/9822)
|
||||
|
||||
## Version 1.12.3: August 30, 2022
|
||||
### New Features
|
||||
* Add Doxygen comment generation via command, context menu, code action, or typing. [#5683](https://github.com/microsoft/vscode-cpptools/issues/5683)
|
||||
* Add auto-complete of Doxygen keywords in comments.
|
||||
|
||||
### Enhancements
|
||||
* Add auto-formatting of lines that are changed by code analysis fixes. [#9322](https://github.com/microsoft/vscode-cpptools/issues/9322)
|
||||
* Add compile arguments to enable colorized output in cppBuild tasks for clang. [#9643](https://github.com/microsoft/vscode-cpptools/issues/9643)
|
||||
* Cache and reuse SSH passwords in the current remote debugging session. [PR #9654](https://github.com/microsoft/vscode-cpptools/pull/9654)
|
||||
* Fix "natvis collections only show the first 50 elements". [MIEngine#821](https://github.com/microsoft/MIEngine/issues/821)
|
||||
* Related [#9377](https://github.com/microsoft/vscode-cpptools/issues/9377)
|
||||
* Fix "cppdbg doesn't support array view of char* buf". [MIEngine#1258](https://github.com/microsoft/MIEngine/issues/1258)
|
||||
* Support explicit `this` references in natvis files.
|
||||
* @Trass3r [PR MIEngine#1163](https://github.com/microsoft/MIEngine/pull/1163)
|
||||
* Do std fallback when compiler querying, even when explicitly specified via a compiler arg.
|
||||
|
||||
### Bug Fixes
|
||||
* Fix several IntelliSense parsing bugs. [#3683](https://github.com/microsoft/vscode-cpptools/issues/3683), [#6659](https://github.com/microsoft/vscode-cpptools/issues/6659), [#7446](https://github.com/microsoft/vscode-cpptools/issues/7446), [#9215](https://github.com/microsoft/vscode-cpptools/issues/9215)
|
||||
* Fix crash when tag parsing files containing certain string literals. [#9538](https://github.com/microsoft/vscode-cpptools/issues/9538)
|
||||
* Fix incorrect semantic tokens with templated operator overloads. [#9556](https://github.com/microsoft/vscode-cpptools/issues/9556)
|
||||
* Fix `.` to `->` completion in functions defined in the class/struct definition. [#9599](https://github.com/microsoft/vscode-cpptools/issues/9599)
|
||||
* Fix inlay hint filtering not working with some cases of whitespace. [#9606](https://github.com/microsoft/vscode-cpptools/issues/9606)
|
||||
* Fix Chinese translation mistakes.
|
||||
* kouhe3 (@kouhe3) [PR #9624](https://github.com/microsoft/vscode-cpptools/pull/9624)
|
||||
* Fix IntelliSense error with ARM register declarations. [#9627](https://github.com/microsoft/vscode-cpptools/issues/9627)
|
||||
* Fix files with a `.c` extension not using a C++ `std` version passed in the `compilerArgs` or `compilerFragments`. [#9628](https://github.com/microsoft/vscode-cpptools/issues/9628)
|
||||
* Fix unnecessary IntelliSense process restarting on file creation handling. [#9630](https://github.com/microsoft/vscode-cpptools/issues/9630)
|
||||
* Fix tag parsing of classes and enums with attributes. [#9672](https://github.com/microsoft/vscode-cpptools/issues/9672)
|
||||
* Add PID to the extended remote process picker. [PR #9673](https://github.com/microsoft/vscode-cpptools/pull/9673)
|
||||
* Fix tag parser crash. [#9679](https://github.com/microsoft/vscode-cpptools/issues/9679), [#9695](https://github.com/microsoft/vscode-cpptools/issues/9695)
|
||||
* Fix code analysis fixes generating invalid code when the fix has escaped characters. [#9683](https://github.com/microsoft/vscode-cpptools/issues/9683)
|
||||
* Fix unintended generation of `nul.d` file when querying clang or gcc, when compiler arguments include dependency generation arguments. [#9707](https://github.com/microsoft/vscode-cpptools/issues/9707)
|
||||
* Fix code analysis fixes not being available when more than one check is associated with a fix. [#9755](https://github.com/microsoft/vscode-cpptools/issues/9755)
|
||||
* Fix error when debugging is started without a launch.json and IntelliSense is disabled. [#9762](https://github.com/microsoft/vscode-cpptools/issues/9762)
|
||||
* Fix "The result of GDB -exec evaluate request in all contexts is printed in debug console." [MIEngine #1236](https://github.com/microsoft/MIEngine/issues/1236)
|
||||
* Fix "Evaluating a variable after a failed Step Out causes a fatal error, leaving debug session unusable". [MIEngine#1336](https://github.com/microsoft/MIEngine/issues/1336)
|
||||
* Gareth Rees (@gareth-rees) [PR MIEngine#1337](https://github.com/microsoft/MIEngine/pull/1337)
|
||||
* Fix deadlock in HandleStackTraceRequestAsync where lock was hold too long.
|
||||
* GeorgeMay (@JoergMeier106) [PR MIEngine#1309](https://github.com/microsoft/MIEngine/pull/1309)
|
||||
* Fix potential crashes on shutdown.
|
||||
|
||||
## Version 1.11.5: August 9, 2022
|
||||
### Bug Fixes
|
||||
* Fix crash when tag parsing files containing certain string literals. [#9538](https://github.com/microsoft/vscode-cpptools/issues/9538)
|
||||
* Fix `llvm-project` parser crash on file: `clang/test/parser/parser_overflow.c`. [#9653](https://github.com/microsoft/vscode-cpptools/issues/9653)
|
||||
* Fix `llvm-project` parser crash on file: `libcxx/test/support/test.support/make_string_header.pass.cpp`. [#9679](https://github.com/microsoft/vscode-cpptools/issues/9679)
|
||||
|
||||
## Version 1.11.4: July 21, 2022
|
||||
### New Features
|
||||
* Add inlay hints for parameters and auto types. [#5845](https://github.com/microsoft/vscode-cpptools/issues/5845)
|
||||
* Add extended remote support for debugging. [#8497](https://github.com/microsoft/vscode-cpptools/issues/8497), [#9195](https://github.com/microsoft/vscode-cpptools/issues/9195), [#9491](https://github.com/microsoft/vscode-cpptools/discussions/9491), [#9505](https://github.com/microsoft/vscode-cpptools/issues/9505)
|
||||
|
||||
### Enhancements
|
||||
* Add deploySteps and variables to cppdbg. [PR #9418](https://github.com/microsoft/vscode-cpptools/pull/9418)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix "unknown register name" IntelliSense error. [#4382](https://github.com/microsoft/vscode-cpptools/issues/4382)
|
||||
* Fix performance issue with tag parsing a file with a lot of defines. [#6454](https://github.com/microsoft/vscode-cpptools/issues/6454)
|
||||
* Fix IntelliSense with gcc vector extension types. [#6890](https://github.com/microsoft/vscode-cpptools/issues/6890)
|
||||
* Fix doc comments for macros and typedefs. [#8320](https://github.com/microsoft/vscode-cpptools/issues/8320)
|
||||
* Fix issue with CUDA configuration when using a custom config provider and no config is available for the file. [#8483](https://github.com/microsoft/vscode-cpptools/issues/8483)
|
||||
* Fix missing logging when `C_Cpp.intelliSenseEngine` is set to `"Disabled"`. [#9277](https://github.com/microsoft/vscode-cpptools/issues/9277)
|
||||
* Fix doxygen comments not being displayed for multiple adjacent `@brief` or `@return` tags. [#9316](https://github.com/microsoft/vscode-cpptools/issues/9316)
|
||||
* Fix the code analysis "disable" option not automatically clearing the disabled diagnostics. [#9364](https://github.com/microsoft/vscode-cpptools/issues/9364)
|
||||
* Fix `-isystem` not being used for system headers with code analysis. [#9366](https://github.com/microsoft/vscode-cpptools/issues/9366)
|
||||
* Fix compiler querying for EDG-based compilers. [#9410](https://github.com/microsoft/vscode-cpptools/issues/9410)
|
||||
* Fix hiding IntelliSense dependent commands when `C_Cpp.intelliSenseEngine` is `"Disabled"`. [#9451](https://github.com/microsoft/vscode-cpptools/issues/9451)
|
||||
* Fix cl.exe build tasks not showing for .c files and .c build tasks being cached for .cpp files (and vice versa). [PR #9544](https://github.com/microsoft/vscode-cpptools/pull/9544)
|
||||
* Fix code analysis not detecting warnings with relative paths. [#9555](https://github.com/microsoft/vscode-cpptools/issues/9555)
|
||||
* Fix `--header-filter` being used with clang-tidy when it shouldn't when a .clang-tidy file exists. [#9566](https://github.com/microsoft/vscode-cpptools/issues/9566)
|
||||
* Fix code analysis giving an error with `__has_include` with gcc 9. [#9575](https://github.com/microsoft/vscode-cpptools/issues/9575)
|
||||
* Fix `-target` not being processed in `compilerArgs`. [#9586](https://github.com/microsoft/vscode-cpptools/issues/9586)
|
||||
|
||||
## Version 1.10.8: July 7, 2022
|
||||
### Enhancements
|
||||
* Allow breakpoints for Rust debugging. [PR #9484](https://github.com/microsoft/vscode-cpptools/pull/9484)
|
||||
* Make `C_Cpp.debugShortcut` settable per-workspace folder. [PR #9514](https://github.com/microsoft/vscode-cpptools/pull/9514)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix crash if clang-tidy returns a replacement with an empty FilePath. [#9437](https://github.com/microsoft/vscode-cpptools/issues/9437)
|
||||
* Fix skipping the compiler argument after `-c`. [#9453](https://github.com/microsoft/vscode-cpptools/issues/9453)
|
||||
* Fix `-std:c++20` not being handled with cl.exe. [#9458](https://github.com/microsoft/vscode-cpptools/issues/9458)
|
||||
* Fix bug with the environment being incorrect when compiler querying. [#9472](https://github.com/microsoft/vscode-cpptools/issues/9472)
|
||||
* Fix duplicate compiler args in compiler query with custom configuration providers using cpptools-api prior to v6. [#9531](https://github.com/microsoft/vscode-cpptools/issues/9531)
|
||||
* Fix process launching concurrency issues on Windows.
|
||||
|
||||
## Version 1.10.7: June 15, 2022
|
||||
### Bug Fixes
|
||||
* Fix bugs with process creation on Windows (which caused IntelliSense to fail). [#9431](https://github.com/microsoft/vscode-cpptools/issues/9431)
|
||||
|
||||
## Version 1.10.6: June 14, 2022
|
||||
### Bug Fixes
|
||||
* Fix `@responseFile` in `compilerArgs` not being handled on Linux/Mac. [#9434](https://github.com/microsoft/vscode-cpptools/issues/9434)
|
||||
* Fix debug preLaunchTask not working when `C_Cpp.intelliSenseEngine` is `"Disabled"`. [#9446](https://github.com/microsoft/vscode-cpptools/issues/9446)
|
||||
* Make the `C_Cpp.legacyCompilerArgsBehavior` setting non-deprecated.
|
||||
|
||||
## Version 1.10.5: June 8, 2022
|
||||
### New Features
|
||||
* Add code actions to apply clang-tidy fixes (and other actions). [#8476](https://github.com/microsoft/vscode-cpptools/issues/8476)
|
||||
* Added support for setting values on top level watch window expressions. [#9019](https://github.com/microsoft/vscode-cpptools/issues/9019)
|
||||
* Make the "Run and Debug" button feature available to all users. [#9306](https://github.com/microsoft/vscode-cpptools/issues/9306)
|
||||
|
||||
### Enhancements
|
||||
* Add `C_Cpp.clangTidy.useBuildPath` setting to enable using `-p` with clang-tidy. [#8740](https://github.com/microsoft/vscode-cpptools/issues/8740), [#8952](https://github.com/microsoft/vscode-cpptools/issues/8952)
|
||||
* Generate launch.json when adding a new debug configuration. [#9100](https://github.com/microsoft/vscode-cpptools/issues/9100)
|
||||
* Prioritize the "folder" option when doing a `#include` completion. [#9222](https://github.com/microsoft/vscode-cpptools/issues/9222)
|
||||
* Add compiler path to debug configuration details. [PR #9264](https://github.com/microsoft/vscode-cpptools/pull/9264)
|
||||
* Update the bundled clang-format and clang-tidy to version 14.0.0.
|
||||
|
||||
### Bug Fixes
|
||||
* Fix 'System.NullReferenceException when continuing after adding breakpoint.' [#1297](https://github.com/microsoft/MIEngine/issues/1297)
|
||||
* Fix completion not working in `#define` definitions and in definition names when manually invoked. [#4662](https://github.com/microsoft/vscode-cpptools/issues/4662), [#8973](https://github.com/microsoft/vscode-cpptools/issues/8973), [#9078](https://github.com/microsoft/vscode-cpptools/issues/9078)
|
||||
* Fix several IntelliSense bugs. [#6226](https://github.com/microsoft/vscode-cpptools/issues/6226), [#8294](https://github.com/microsoft/vscode-cpptools/issues/8294), [#8530](https://github.com/microsoft/vscode-cpptools/issues/8530), [#8725](https://github.com/microsoft/vscode-cpptools/issues/8725), [#8751](https://github.com/microsoft/vscode-cpptools/issues/8751), [#9076](https://github.com/microsoft/vscode-cpptools/issues/9076), [#9224](https://github.com/microsoft/vscode-cpptools/issues/9224), [#9336](https://github.com/microsoft/vscode-cpptools/issues/9336).
|
||||
* Fix issue with shell processing incorrectly occurring for `arguments` fields in `compile_commands.json` files. [#8649](https://github.com/microsoft/vscode-cpptools/issues/8649)
|
||||
* Fix handling of `@response` files for clang-tidy on Windows. [#8843](https://github.com/microsoft/vscode-cpptools/issues/8843), [#9032](https://github.com/microsoft/vscode-cpptools/issues/9032), [#9102](https://github.com/microsoft/vscode-cpptools/issues/9102)
|
||||
* Fix issue with inconsistent handling of shell escaping in compiler arg fields. All compiler arg array fields are now assumed to not include shell quoting, escaping or shell variables. Added a `C_Cpp.legacyCompilerArgsBehavior` to restore the legacy behavior. [#8963](https://github.com/microsoft/vscode-cpptools/issues/8963)
|
||||
* Add localized strings for build tasks. [#9051](https://github.com/microsoft/vscode-cpptools/issues/9051)
|
||||
* Fix Go to Definition with C for identifiers that are C++ keywords. [#9081](https://github.com/microsoft/vscode-cpptools/issues/9081)
|
||||
* Fix the new Run/Debug Code button not working with a modified program location. [#9082](https://github.com/microsoft/vscode-cpptools/issues/9082)
|
||||
* Fix `__GNUC__` system defines causing clang-tidy to undefine `_Float32`. [#9091](https://github.com/microsoft/vscode-cpptools/issues/9091)
|
||||
* Fix 'breakpoints set before launch in shared objects cannot be disabled/deleted' [#9095](https://github.com/microsoft/vscode-cpptools/issues/9095)
|
||||
* Fix compiler querying failing for compilers that don't output system includes. [#9099](https://github.com/microsoft/vscode-cpptools/issues/9099)
|
||||
* Fix completion occurring (when it shouldn't) after the comma in a definition list. [#9101](https://github.com/microsoft/vscode-cpptools/issues/9101)
|
||||
* Fix `;` incorrectly matching for `break;` and `continue;` completion. [#9115](https://github.com/microsoft/vscode-cpptools/issues/9115)
|
||||
* Fix Go to Definition on a `#include` with an absolute path. [#9287](https://github.com/microsoft/vscode-cpptools/issues/9287)
|
||||
* Fix formatting issue with vcFormat when using multi-byte UTF-8 sequences. [#9297](https://github.com/microsoft/vscode-cpptools/issues/9297)
|
||||
* Fix language server disabling due to a TypeError when invalid json values are used. [#9302](https://github.com/microsoft/vscode-cpptools/issues/9302)
|
||||
* Add support for "user" level and "workspace" level debug configurations. [#9319](https://github.com/microsoft/vscode-cpptools/issues/9319)
|
||||
* Prevent language service activation for macOS older than 10.12. [PR #9328](https://github.com/microsoft/vscode-cpptools/pull/9328)
|
||||
* Fix code analysis with g++ 12 system headers. [#9347](https://github.com/microsoft/vscode-cpptools/issues/9347)
|
||||
* Enable correct symbol parsing for methods that call loop-like macros without requiring the macro be added to cpp.hint. [#9378](https://github.com/microsoft/vscode-cpptools/issues/9378)
|
||||
* Fix a code analysis error when C++23 is used. [#9404](https://github.com/microsoft/vscode-cpptools/issues/9404)
|
||||
* Fix a potential crash in cpptools (in `get_identifier_at_offset`).
|
||||
* Other Run and Debug button updates/fixes.
|
||||
|
||||
## Version 1.9.8: April 20, 2022
|
||||
### Bug Fixes
|
||||
* Fix an issue with extension activation failing if `C_Cpp.intelliSenseEngine` was set to `Disabled`. [#9083](https://github.com/microsoft/vscode-cpptools/issues/9083)
|
||||
|
||||
## Version 1.9.7: March 23, 2022
|
||||
### New Features
|
||||
* Add debugger support for Apple M1 (osx-arm64). [#7035](https://github.com/microsoft/vscode-cpptools/issues/7035)
|
||||
* Resolves issue "[Big Sur M1] ERROR: Unable to start debugging. Unexpected LLDB output from command "-exec-run". process exited with status -1 (attach failed ((os/kern) invalid argument))". [#6779](https://github.com/microsoft/vscode-cpptools/issues/6779)
|
||||
|
||||
### Enhancements
|
||||
* Add tag parser error logging. [#8907](https://github.com/microsoft/vscode-cpptools/issues/8907)
|
||||
* Prevent stripping of format specifiers from -exec commands.
|
||||
* Gareth Rees (@gareth-rees) [MIEngine#1277](https://github.com/microsoft/MIEngine/pull/1278)
|
||||
* Improve messages for unknown breakpoints and watchpoints.
|
||||
* Gareth Rees (@gareth-rees) [MIEngine#1282](https://github.com/microsoft/MIEngine/pull/1283)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix handling of `-B` with compiler querying. [#8962](https://github.com/microsoft/vscode-cpptools/issues/8962)
|
||||
* Fix incorrect "Running clang-tidy" status indications with multi-root workspaces. [#8964](https://github.com/microsoft/vscode-cpptools/issues/8964)
|
||||
* Fix a crash during shutdown and potential database resetting due to shutdown being aborted too soon. [PR #8969](https://github.com/microsoft/vscode-cpptools/pull/8969)
|
||||
* Fix an issue that could cause the active file to not be configured by a configuration provider when custom configurations are reset. [#8974](https://github.com/microsoft/vscode-cpptools/issues/8974)
|
||||
* Fix detection of Visual Studio 2015. [#8975](https://github.com/microsoft/vscode-cpptools/issues/8975)
|
||||
* Fix a bug with relative paths with the gcc problem matcher. [#8988](https://github.com/microsoft/vscode-cpptools/issues/8988)
|
||||
* Update translated text.
|
||||
|
||||
## Version 1.9.2 (insiders3): March 1, 2022
|
||||
### New Feature
|
||||
* Add a build and debug button when `C_Cpp.debugShortcut` is `true`. [#7497](https://github.com/microsoft/vscode-cpptools/issues/7497)
|
||||
* The "Build and Debug Active File" command has been split into "Debug C++ File" and "Run C++ File", and it has been removed from the context menu.
|
||||
* Add Alpine Linux arm64 support (VSIX).
|
||||
* Add x64 debugger for CppVsdbg on Windows x64.
|
||||
|
||||
### Enhancements
|
||||
* Read an existing `launch.json` when the `Run and Debug` button is used. [#8930](https://github.com/microsoft/vscode-cpptools/issues/8930)
|
||||
* Add `;` to `break` and `continue` completion keywords. [#8932](https://github.com/microsoft/vscode-cpptools/issues/8932)
|
||||
|
||||
### Bug Fixes
|
||||
* Add a "More Info" option when an incompatible VSIX is encountered. [PR #8920](https://github.com/microsoft/vscode-cpptools/pull/8920)
|
||||
* Fix a random crash on file open.
|
||||
* Fix some IntelliSense parsing bugs.
|
||||
|
||||
## Version 1.9.1 (insiders2): February 24, 2022
|
||||
### New Features
|
||||
* Ship x64 debugger for CppVsdbg on Windows x64.
|
||||
|
||||
### Enhancements
|
||||
* Reserved identifiers with characters that match typed characters in the correct order but not contiguously are initially filtered in the auto-completion list. Doing a `ctrl` + `space` in the same location will show all auto-complete suggestions. [#4939](https://github.com/microsoft/vscode-cpptools/issues/4939)
|
||||
* Add `dotConfig` property to IntelliSense Configuration (c_cpp_properties.json) to use .config file created by Kconfig system.
|
||||
* Matheus Castello (@microhobby) [PR #7845](https://github.com/microsoft/vscode-cpptools/pull/7845)
|
||||
* Rework how cancelation is processed for semantic tokens and folding operations. [PR #8739](https://github.com/microsoft/vscode-cpptools/pull/8739)
|
||||
* Make SwitchHeaderSource use the `workbench.editor.revealIfOpen` setting.
|
||||
* Joel Smith (@joelmsmith) [PR #8857](https://github.com/microsoft/vscode-cpptools/pull/8857)
|
||||
* Add tag parser error logging. [#8907](https://github.com/microsoft/vscode-cpptools/issues/8907)
|
||||
* Add error and warning messages if the VSIX for an incompatible or mismatching platform or architecture is installed. [#8908](https://github.com/microsoft/vscode-cpptools/issues/8908)
|
||||
* Improvements to `Run and Debug` in the debug panel to make it consistent with our play button. [#8773](https://github.com/microsoft/vscode-cpptools/issues/8773)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix issue that could cause a hang when clicking on a preprocessor conditional directive. [#8717](https://github.com/microsoft/vscode-cpptools/issues/8717)
|
||||
* Fix Crash when visualizing local variables for Microsoft Edge (msedge.exe) [#8738](https://github.com/microsoft/vscode-cpptools/issues/8738)
|
||||
* Prevent error from being logged due to custom configuration processing prior to the provider being ready. [#8752](https://github.com/microsoft/vscode-cpptools/issues/8752)
|
||||
* Fix a bug on Windows with semantic tokens updating. [#8799](https://github.com/microsoft/vscode-cpptools/issues/8799)
|
||||
* Fix code analysis showing "Error while processing" on line 1 col 1 (when it shouldn't) when there's an error in a source file. [#8849](https://github.com/microsoft/vscode-cpptools/issues/8849)
|
||||
* Fix issue with cpptools restarting when it should not. [PR #8850](https://github.com/microsoft/vscode-cpptools/pull/8850)
|
||||
* Fix semantic tokens getting cleared for all other files in a TU after editing a file. [#8867](https://github.com/microsoft/vscode-cpptools/issues/8867)
|
||||
* Fix a bug with IntelliSense updating not working if a file was closed and reopened while its TU was processing an update.
|
||||
* Fix a bug and typos with cppbuild task providers.
|
||||
* InLAnn (@inlann) [PR #8897](https://github.com/microsoft/vscode-cpptools/pull/8897)
|
||||
* Fix a failure when parsing `.editorconfig` files. [#8900](https://github.com/microsoft/vscode-cpptools/issues/8900)
|
||||
* Fix issue that could cause the extension to fail to start up properly. [PR #8906](https://github.com/microsoft/vscode-cpptools/pull/8906)
|
||||
|
||||
### Documentation
|
||||
* Clarify how to get binaries when debugging the source from GitHub.
|
||||
* Hamir Mahal (@hamirmahal) [PR #8788](https://github.com/microsoft/vscode-cpptools/pull/8788)
|
||||
|
||||
## Version 1.9.0 (insiders): February 10, 2022
|
||||
### New Features
|
||||
* Add a build and debug button when `C_Cpp.debugShortcut` is `true`. [#7497](https://github.com/microsoft/vscode-cpptools/issues/7497)
|
||||
* The "Build and Debug Active File" command has been split into "Debug C++ File" and "Run C++ File", and it has been removed from the context menu.
|
||||
|
||||
### Enhancements
|
||||
* Rework how cancelation is processed for semantic tokens and folding operations. [PR #8739](https://github.com/microsoft/vscode-cpptools/pull/8739)
|
||||
|
||||
### Workarounds
|
||||
* Temporarily make x86_64 as default build and debugging target to unblock debugging on Apple Silicon (M1 chip). [#8755](https://github.com/microsoft/vscode-cpptools/issues/8755)
|
||||
* Add a "More Info" option when an incompatible VSIX is encountered. [PR #8920](https://github.com/microsoft/vscode-cpptools/pull/8920)
|
||||
* Add `;` to `break` and `continue` completion keywords. [#8932](https://github.com/microsoft/vscode-cpptools/issues/8932)
|
||||
* Prevent stripping of format specifiers from -exec commands.
|
||||
* Gareth Rees (@gareth-rees) [PR MIEngine#1277](https://github.com/microsoft/MIEngine/pull/1278)
|
||||
* Improve messages for unknown breakpoints and watchpoints.
|
||||
* Gareth Rees (@gareth-rees) [PR MIEngine#1282](https://github.com/microsoft/MIEngine/pull/1283)
|
||||
|
||||
### Bug Fixes
|
||||
* Fix some IntelliSense parsing bugs. [#5117](https://github.com/microsoft/vscode-cpptools/issues/5117)
|
||||
* Fix IntelliSense process crashes caused by a stack overflow on Mac. [#7215](https://github.com/microsoft/vscode-cpptools/issues/7215), [#8653](https://github.com/microsoft/vscode-cpptools/issues/8653)
|
||||
* Fix exclusions not applying during tag parsing of non-recursive dependent includes. [#8702](https://github.com/microsoft/vscode-cpptools/issues/8702)
|
||||
* Fix issue that could cause an infinite loop when clicking on a preprocessor conditional directive. [#8717](https://github.com/microsoft/vscode-cpptools/issues/8717)
|
||||
* Fix excludes applying to cases it should not when running code analysis. [#8724](https://github.com/microsoft/vscode-cpptools/issues/8724)
|
||||
* Fix a crash when visualizing local variables for Microsoft Edge (msedge.exe) [#8738](https://github.com/microsoft/vscode-cpptools/issues/8738)
|
||||
* Fix some system defines being incorrectly removed when running code analysis. [#8740](https://github.com/microsoft/vscode-cpptools/issues/8740)
|
||||
* Prevent an error from being logged due to custom configuration processing prior to the provider being ready. [#8752](https://github.com/microsoft/vscode-cpptools/issues/8752)
|
||||
* Fix incorrect crash recovery with multi-root. [#8762](https://github.com/microsoft/vscode-cpptools/issues/8762)
|
||||
* Fix random compiler query, clang-tidy, or clang-format failure on Windows. [#8764](https://github.com/microsoft/vscode-cpptools/issues/8764)
|
||||
* Fix incorrect crash recovery with multiroot. [#8762](https://github.com/microsoft/vscode-cpptools/issues/8762)
|
||||
* Fix invoking commands before cpptools is activated. [#8785](https://github.com/microsoft/vscode-cpptools/issues/8785)
|
||||
* Fix a bug on Windows with semantic tokens updating. [#8799](https://github.com/microsoft/vscode-cpptools/issues/8799)
|
||||
* Fix tag parser failure due to missing DLL dependencies on Windows. [#8851](https://github.com/microsoft/vscode-cpptools/issues/8851)
|
||||
* Fix semantic tokens getting cleared for all other files in a TU after editing a file. [#8867](https://github.com/microsoft/vscode-cpptools/issues/8867)
|
||||
* Fix a bug and typos with cppbuild task providers.
|
||||
* InLAnn (@inlann) [PR #8897](https://github.com/microsoft/vscode-cpptools/pull/8897)
|
||||
* Fix an issue that could cause the extension to fail to start up properly. [PR #8906](https://github.com/microsoft/vscode-cpptools/pull/8906)
|
||||
* Fix handling of `-B` with compiler querying. [#8962](https://github.com/microsoft/vscode-cpptools/issues/8962)
|
||||
* Fix incorrect "Running clang-tidy" status indications with multi-root workspaces. [#8964](https://github.com/microsoft/vscode-cpptools/issues/8964)
|
||||
* Fix a crash during shutdown and potential database resetting due to shutdown being aborted too soon. [PR #8969](https://github.com/microsoft/vscode-cpptools/pull/8969)
|
||||
* Fix an issue that could cause the active file to not be configured by a configuration provider when custom configurations are reset. [#8974](https://github.com/microsoft/vscode-cpptools/issues/8974)
|
||||
* Fix detection of Visual Studio 2015. [#8975](https://github.com/microsoft/vscode-cpptools/issues/8975)
|
||||
* Fix mingw clang being detected as gcc. [#9024](https://github.com/microsoft/vscode-cpptools/issues/9024)
|
||||
* Fix a random crash on file open.
|
||||
* Fix some IntelliSense crashes.
|
||||
* Fix some IntelliSense parsing bugs.
|
||||
* Fix a bug with IntelliSense updating not working if a file was closed and reopened while its TU was processing an update.
|
||||
* Fix a potential heap corruption when `files.associations` are changed.
|
||||
* Update translated text.
|
||||
|
||||
### Documentation
|
||||
* Clarify how to get binaries when debugging the source from GitHub.
|
||||
* Hamir Mahal (@hamirmahal) [PR #8788](https://github.com/microsoft/vscode-cpptools/pull/8788)
|
||||
|
||||
## Version 1.8.4: February 7, 2022
|
||||
### Bug Fixes
|
||||
@@ -167,7 +522,7 @@
|
||||
### New Features
|
||||
* Add a command to restart IntelliSense for a specific file. [#3727](https://github.com/microsoft/vscode-cpptools/issues/3727)
|
||||
* Add support for macOS app bundles [#6726](https://github.com/microsoft/vscode-cpptools/issues/6726)
|
||||
* [MIEngine#1091](https://github.com/microsoft/MIEngine/pull/1091)
|
||||
* [PR MIEngine#1091](https://github.com/microsoft/MIEngine/pull/1091)
|
||||
* Add support for Go To / Peek Type Definition. [#7999](https://github.com/microsoft/vscode-cpptools/issues/7999)
|
||||
|
||||
### Enhancements
|
||||
@@ -191,10 +546,10 @@
|
||||
* Fix an issue related to arg parsing in build tasks. [#7891](https://github.com/microsoft/vscode-cpptools/issues/7891)
|
||||
* Add a check when cppbuild task is used when the active file is not a source file. [#7892](https://github.com/microsoft/vscode-cpptools/issues/7892)
|
||||
* Fix a cpptools crash [#8055](https://github.com/microsoft/vscode-cpptools/issues/8055)
|
||||
* Fix issue "LogPoint stopped working v1.6.0". [#8065](https://github.com/microsoft/vscode-cpptools/issues/8065)
|
||||
* [MIEngine#1208](https://github.com/microsoft/MIEngine/pull/1208)
|
||||
* Fix issue "LogPoint stopped working v1.6.0". [#8065](https://github.com/microsoft/vscode-cpptools/issues/8065)
|
||||
* [PR MIEngine#1208](https://github.com/microsoft/MIEngine/pull/1208)
|
||||
* Fix issue "Debugger won't read/write from/to stdio". [#8075](https://github.com/microsoft/vscode-cpptools/issues/8075)
|
||||
* [MIEngine#1209](https://github.com/microsoft/MIEngine/pull/1209)
|
||||
* [PR MIEngine#1209](https://github.com/microsoft/MIEngine/pull/1209)
|
||||
* Fix an issue with VC 14.0 headers not being found. [#8078](https://github.com/microsoft/vscode-cpptools/issues/8078)
|
||||
* Fix an issue with CUDA support with `compile_commands.json`. [#8091](https://github.com/microsoft/vscode-cpptools/issues/8091)
|
||||
* Fix an issue with `/kernel` arg to `cl.exe` for C files. [#8158](https://github.com/microsoft/vscode-cpptools/issues/8158)
|
||||
@@ -203,9 +558,9 @@
|
||||
## Version 1.6.0: August 24, 2021
|
||||
### New Features
|
||||
* Added support for standard `.editorconfig` entries when using vcFormat. [#7920](https://github.com/microsoft/vscode-cpptools/issues/7920)
|
||||
* Debug Step Granularity for cppdbg [MIEngine#1169](https://github.com/microsoft/MIEngine/pull/1169)
|
||||
* Debug Step Granularity for cppdbg [PR MIEngine#1169](https://github.com/microsoft/MIEngine/pull/1169)
|
||||
* Thank you for the contribution @Trass3r
|
||||
* InstructionBreakpoints for cppdbg [MIEgnine#1192](https://github.com/microsoft/MIEngine/pull/1192)
|
||||
* InstructionBreakpoints for cppdbg [PR MIEgnine#1192](https://github.com/microsoft/MIEngine/pull/1192)
|
||||
|
||||
### Enhancements
|
||||
* Debugger now runs on .NET 5 [#7858](https://github.com/microsoft/vscode-cpptools/pull/7858)
|
||||
@@ -234,7 +589,7 @@
|
||||
* Fix an issue with cppdbg debugging on Windows x64. [#7971](https://github.com/microsoft/vscode-cpptools/issues/7971)
|
||||
* Fix an issue with VS `<execution>` header causing IntelliSense process crash. [#7972](https://github.com/microsoft/vscode-cpptools/issues/7972)
|
||||
* Fix insiders update install loop for remote scenarios. [#8000](https://github.com/microsoft/vscode-cpptools/issues/8000)
|
||||
* Fix MacOS unable to use external terminal to debug [#8008](https://github.com/microsoft/vscode-cpptools/issues/8008)
|
||||
* Fix macOS unable to use external terminal to debug [#8008](https://github.com/microsoft/vscode-cpptools/issues/8008)
|
||||
|
||||
## Version 1.5.1: July 9, 2021
|
||||
### Bug Fixes
|
||||
@@ -294,7 +649,7 @@
|
||||
* Update to clang-format 12. [#6434](https://github.com/microsoft/vscode-cpptools/issues/6434)
|
||||
* Add `private` or `protected` scope labels to class symbols. [#7120](https://github.com/microsoft/vscode-cpptools/issues/7120)
|
||||
* Fix file:line path for $FILEPOS [#7193](https://github.com/microsoft/vscode-cpptools/issues/7193)
|
||||
* [#1124](https://github.com/microsoft/MIEngine/pull/1124)
|
||||
* [PR MIEngine#1124](https://github.com/microsoft/MIEngine/pull/1124)
|
||||
* Add `stopAtConnect` and `hardwareBreakpoints` launch options [PR #7449](https://github.com/microsoft/vscode-cpptools/pull/7449)
|
||||
* `stopAtConnect` stops the debugger on connection to a remote target [PR MIEngine#1109](https://github.com/microsoft/MIEngine/pull/1109)
|
||||
* `hardwareBreakpoints` controls usage and number of remote hardware breakpoints [PR MIEngine#1128](https://github.com/microsoft/MIEngine/pull/1128)
|
||||
@@ -311,7 +666,7 @@
|
||||
* Fix an IntelliSense crash with `#pragma GCC target`. [#6698](https://github.com/microsoft/vscode-cpptools/issues/6698), [#7377](https://github.com/microsoft/vscode-cpptools/issues/7377)
|
||||
* Fix bitness detection for compilers targeting esp32. [#7034](https://github.com/microsoft/vscode-cpptools/issues/7034)
|
||||
* Fix -idirafter directories being included too early. [#7129](https://github.com/microsoft/vscode-cpptools/issues/7129)
|
||||
* Fix issue with the cpptools process lingering when no longer needed. [#7262](https://github.com/microsoft/vscode-cpptools/issues/7262)
|
||||
* Fix issue with the cpptools process lingering when no longer needed. [#7262](https://github.com/microsoft/vscode-cpptools/issues/7262)
|
||||
* Filter out C++ std when querying the compiler as C (and vice versa). [#7269](https://github.com/microsoft/vscode-cpptools/issues/7269)
|
||||
* Fix `files.exclude` ending with `/folder/**` not excluding `/folder`. [#7331](https://github.com/microsoft/vscode-cpptools/issues/7331)
|
||||
* Fix VS Code UI freezing when hovering over very large literals. [#7334](https://github.com/microsoft/vscode-cpptools/issues/7334), [#7577](https://github.com/microsoft/vscode-cpptools/issues/7577)
|
||||
@@ -386,7 +741,7 @@
|
||||
* Fix integrity hash checking of downloaded packages for the extension. [PR #7300](https://github.com/microsoft/vscode-cpptools/pull/7300)
|
||||
* Fix a bug preventing successful validation and receipt of browse configurations from custom configuration providers. [PR# 7131](https://github.com/microsoft/vscode-cpptools/pull/7313)
|
||||
* Fix a potential crash when editing at the end of a document.
|
||||
* Fix "Configure Task" selection to show root folder names for multiroot workspace [PR #7315](https://github.com/microsoft/vscode-cpptools/pull/7315)
|
||||
* Fix "Configure Task" selection to show root folder names for multi-root workspace [PR #7315](https://github.com/microsoft/vscode-cpptools/pull/7315)
|
||||
|
||||
## Version 1.2.2: February 25, 2021
|
||||
### Bug Fixes
|
||||
@@ -556,7 +911,7 @@
|
||||
* Fix `Build and Debug Active File` race condition with EngineLogs. [#6304](https://github.com/microsoft/vscode-cpptools/pull/6304)
|
||||
* Fix changes to some `c_cpp_properties.json` properties not taking effect (until a reload) if `compileCommands` is set. [#6332](https://github.com/microsoft/vscode-cpptools/issues/6332)
|
||||
* Fix issue with compiler querying not handling various clang command line options correctly. [#6356](https://github.com/microsoft/vscode-cpptools/issues/6356), [#6359](https://github.com/microsoft/vscode-cpptools/issues/6359)
|
||||
* Fix multiroot workspace tag parsing when `compileCommands` is set. [#6383](https://github.com/microsoft/vscode-cpptools/issues/6383)
|
||||
* Fix multi-root workspace tag parsing when `compileCommands` is set. [#6383](https://github.com/microsoft/vscode-cpptools/issues/6383)
|
||||
* Fix mingw32 compilers not being detected. [#6394](https://github.com/microsoft/vscode-cpptools/issues/6394)
|
||||
* Various bug fixes for vcFormat. [PR #6408](https://github.com/microsoft/vscode-cpptools/pull/6408)
|
||||
* Fix issue causing zh-cn and zh-tw language files not to be used. [PR #6418](https://github.com/microsoft/vscode-cpptools/pull/6418)
|
||||
@@ -611,7 +966,7 @@
|
||||
* Get the default target of the compiler. If the default target is ARM/ARM64, do not use the generic "--target" option to determine bitness. [#5772](https://github.com/microsoft/vscode-cpptools/issues/5772)
|
||||
* Fix `compilerArgs` not being used if no `compilerPath` is set. [#5776](https://github.com/microsoft/vscode-cpptools/issues/5776)
|
||||
* Fix an incorrect IntelliSense error squiggle. [#5783](https://github.com/microsoft/vscode-cpptools/issues/5783)
|
||||
* Fix semantic colorization and inactive regions for multiroot workspaces. [#5812](https://github.com/microsoft/vscode-cpptools/issues/5812), [#5828](https://github.com/microsoft/vscode-cpptools/issues/5828)
|
||||
* Fix semantic colorization and inactive regions for multi-root workspaces. [#5812](https://github.com/microsoft/vscode-cpptools/issues/5812), [#5828](https://github.com/microsoft/vscode-cpptools/issues/5828)
|
||||
* Fix bug with cl.exe flags /FU and /FI not being processed. [#5819](https://github.com/microsoft/vscode-cpptools/issues/5819)
|
||||
* Fix `cStandard` being set to `c11` instead of `gnu18` with gcc. [#5834](https://github.com/microsoft/vscode-cpptools/issues/5834)
|
||||
* Fix Doxygen parameterHint comment to display for a parameter name that is followed by colon. [#5836](https://github.com/microsoft/vscode-cpptools/issues/5836)
|
||||
@@ -639,7 +994,7 @@
|
||||
* The way comments are formatted is controlled by the `C_Cpp.simplifyStructuredComments` setting.
|
||||
* Auto-convert `.` to `->` when the type is a pointer. [#862](https://github.com/microsoft/vscode-cpptools/issues/862)
|
||||
* Switch to using the VS Code Semantic Tokens API for semantic colorization (works with remoting). [PR #5401](https://github.com/microsoft/vscode-cpptools/pull/5401), [#3932](https://github.com/microsoft/vscode-cpptools/issues/3932), [#3933](https://github.com/microsoft/vscode-cpptools/issues/3933), [#3942](https://github.com/microsoft/vscode-cpptools/issues/3942)
|
||||
* Add support for LogMessage Breakpoints for debug type `cppdbg`. [MIEngine#1013](https://github.com/microsoft/MIEngine/pull/1013)
|
||||
* Add support for LogMessage Breakpoints for debug type `cppdbg`. [PR MIEngine#1013](https://github.com/microsoft/MIEngine/pull/1013)
|
||||
|
||||
### Enhancements
|
||||
* Automatically add `"${default}"` to the default `includePath` in `c_cpp_properties.json` if `C_Cpp.default.includePath` is set. [#3733](https://github.com/microsoft/vscode-cpptools/issues/3733)
|
||||
@@ -732,7 +1087,7 @@
|
||||
* Fix the "Unable to load schema" error for `c_cpp_properties.json`. [#4841](https://github.com/microsoft/vscode-cpptools/issues/4841)
|
||||
* Change "Visual Studio" `clang_format_fallback_style` setting to use NamespaceIndentation All. [#5124](https://github.com/microsoft/vscode-cpptools/issues/5124)
|
||||
* Fix "C++98" and "C++0x" modes. [#5157](https://github.com/microsoft/vscode-cpptools/issues/5157), [#5225](https://github.com/microsoft/vscode-cpptools/issues/5225)
|
||||
* Improve the error message for multiroot projects using `compile_commands.json`. [#5160](https://github.com/microsoft/vscode-cpptools/issues/5160)
|
||||
* Improve the error message for multi-root projects using `compile_commands.json`. [#5160](https://github.com/microsoft/vscode-cpptools/issues/5160)
|
||||
* Fix some cpptools process crashes. [#5280](https://github.com/microsoft/vscode-cpptools/issues/5280)
|
||||
* Avoid `<…>` truncation on hover. [#5291](https://github.com/microsoft/vscode-cpptools/issues/5291)
|
||||
* Fix incorrect translations. [PR #5300](https://github.com/microsoft/vscode-cpptools/pull/5300)
|
||||
@@ -750,7 +1105,7 @@
|
||||
|
||||
## Version 0.27.0: March 30, 2020
|
||||
### Enhancements
|
||||
* Improved multi-root implementation with a single language server process and database for the entire workspace (shared between workspace folders). Fixes most [multi-root bugs](https://github.com/microsoft/vscode-cpptools/issues?q=is%3Aopen+is%3Aissue+label%3A%22Feature%3A+Multiroot%22+label%3A%22fixed+%28release+pending%29%22+milestone%3A0.27.0).
|
||||
* Improved multi-root implementation with a single language server process and database for the entire workspace (shared between workspace folders). Fixes most [multi-root bugs](https://github.com/microsoft/vscode-cpptools/issues?q=is%3Aopen+is%3Aissue+label%3A%22Feature%3A+Multi-root%22+label%3A%22fixed+%28release+pending%29%22+milestone%3A0.27.0).
|
||||
* Update to clang-format 9.0.1 (and without shared library dependencies). [#2887](https://github.com/microsoft/vscode-cpptools/issues/2887), [#3174](https://github.com/microsoft/vscode-cpptools/issues/3174)
|
||||
* Add new setting `C_Cpp.debugger.useBacktickCommandSubstitution` to fix debugging when CShell is the remote default shell. [#4015](https://github.com/microsoft/vscode-cpptools/issues/4015)
|
||||
* @Helloimbob [PR #5053](https://github.com/microsoft/vscode-cpptools/pull/5053)
|
||||
@@ -780,7 +1135,7 @@
|
||||
* Fix failure to detect CL.exe if VS Installer files are stored on a drive other than the system drive. [#4929](https://github.com/microsoft/vscode-cpptools/issues/4929)
|
||||
* Fix extension randomly getting stuck while communicating with the IntelliSense process on Mac. [#4989](https://github.com/microsoft/vscode-cpptools/issues/4989)
|
||||
* Fix completion results appearing after numeric literals. [#5019](https://github.com/microsoft/vscode-cpptools/issues/5019)
|
||||
* Fix issue with cancellation of a `Rename` operation causing subsequent `Find All References` and `Rename` operations to fail. [#5022](https://github.com/microsoft/vscode-cpptools/issues/5022)
|
||||
* Fix issue with cancellation of a `Rename` operation causing subsequent `Find All References` and `Rename` operations to fail. [#5022](https://github.com/microsoft/vscode-cpptools/issues/5022)
|
||||
* Fix some settings not being editable in the UI. [PR #5126](https://github.com/microsoft/vscode-cpptools/pull/5126)
|
||||
* Fix `cpp_properties.json` error squiggles not appearing. [#5131](https://github.com/microsoft/vscode-cpptools/issues/5131)
|
||||
* Fix `search.exclude` not applying if there are > 1 symbols matching in the excluded file. [#5152](https://github.com/microsoft/vscode-cpptools/issues/5152)
|
||||
|
||||
+21
-1
@@ -4,10 +4,30 @@
|
||||
|
||||
[](https://aka.ms/vsls)
|
||||
|
||||
The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.
|
||||
The C/C++ extension adds language support for C/C++ to Visual Studio Code, including [editing (IntelliSense)](https://code.visualstudio.com/docs/cpp/cpp-ide) and [debugging](https://code.visualstudio.com/docs/cpp/cpp-debug) features.
|
||||
|
||||
## Pre-requisites
|
||||
C++ is a compiled language meaning your program's source code must be translated (compiled) before it can be run on your computer. VS Code is first and foremost an editor, and relies on command-line tools to do much of the development workflow. The C/C++ extension **does not include a C++ compiler or debugger**. You will need to install these tools or use those already installed on your computer.
|
||||
* C++ compiler pre-installed
|
||||
* C++ debugger pre-installed
|
||||
|
||||
<br/>
|
||||
|
||||
Here is a list of compilers and architectures per platform officially supported by the extension. These are reflected by the available [IntelliSense modes](https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation#_intellisense-mode) from the extension's IntelliSense configuration. Note that support for other compilers may be limited.
|
||||
|
||||
Platform | Compilers | Architectures
|
||||
:--- | :--- | :---
|
||||
Windows | MSVC, Clang, GCC | x64, x86, arm64, arm
|
||||
Linux | Clang, GCC | x64, x86, arm64, arm
|
||||
macOS | Clang, GCC | x64, x86, arm64
|
||||
|
||||
For more information about installing the required tools or setting up the extension, please follow the tutorials below.
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
## Overview and tutorials
|
||||
* [C/C++ extension overview](https://code.visualstudio.com/docs/languages/cpp)
|
||||
* [Introductory Videos](https://code.visualstudio.com/docs/cpp/introvideos-cpp)
|
||||
|
||||
C/C++ extension tutorials per compiler and platform
|
||||
* [Microsoft C++ compiler (MSVC) on Windows](https://code.visualstudio.com/docs/cpp/config-msvc)
|
||||
|
||||
@@ -29,4 +29,4 @@
|
||||
|
||||
<p data-loc-id="reinstall.extension.text7">Then reinstall via the marketplace UI in VS Code.</p>
|
||||
|
||||
<p data-loc-id="reinstall.extension.text8">If the correct version of the extension fails to be deployed by VS Code, the correct VSIX for your system can be <a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools" data-loc-id="download.vsix.link.title">downloaded from the VS Code marketplace web site</a> and installed using the `Install from VSIX...` option under the '...' menu in the marketplace UI in VS Code.</p>
|
||||
<p data-loc-id="reinstall.extension.text8">If the correct version of the extension fails to be deployed by VS Code, the correct VSIX for your system can be <a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools" data-loc-id="download.vsix.link.title">downloaded from the VS Code marketplace web site</a> and installed using the 'Install from VSIX...' option under the '...' menu in the marketplace UI in VS Code.</p>
|
||||
|
||||
+3685
-2822
File diff suppressed because it is too large
Load Diff
@@ -180,7 +180,7 @@
|
||||
"Použití '&' na pole nemá žádný účinek.",
|
||||
"Pravý operand %% je nula.",
|
||||
"Argument je nekompatibilní s formálním parametrem.",
|
||||
"Argument je nekompatibilní s odpovídající konverzí formátovacího řetězce.",
|
||||
"Argument není kompatibilní s odpovídajícím převodem formátovacího řetězce (očekával se typ %t1, ale argument má typ %t2).",
|
||||
"Nepodařilo se otevřít zdrojový soubor %sq (seznam vyhledávání neobsahuje žádné adresáře).",
|
||||
"Přetypování musí být integrálního typu.",
|
||||
"Přetypování musí být aritmetického typu nebo typu ukazatel.",
|
||||
@@ -952,7 +952,7 @@
|
||||
"Možnost nonstd_using_decl se dá použít jenom při kompilaci C++.",
|
||||
"Návratový typ funkce main musí být int.",
|
||||
"Netypový parametr šablony nemůže být typu třídy.",
|
||||
"Výchozí argument šablony se nemůže specifikovat u deklarace člena šablony třídy mimo jeho třídu.",
|
||||
"U definice člena šablony třídy mimo šablonu nelze zadat výchozí argument šablony.",
|
||||
"Příkaz return není povolený v obslužné rutině testovacího bloku funkce konstruktoru.",
|
||||
"Běžné nebo rozšířené specifikátory se nedají kombinovat v označení inicializátoru.",
|
||||
"Druhý dolní index nesmí být menší než první dolní index.",
|
||||
@@ -1644,7 +1644,7 @@
|
||||
"Deklarace kopírovacího konstruktoru pro %t1 se potlačila, protože deklarace %t2 není přístupná.",
|
||||
"Destruktor pro %t1 se nebude volat, protože není přístupný a destruktor pro %t2 byl potlačený.",
|
||||
"Po definici na konci souboru nenásleduje středník nebo deklarátor.",
|
||||
"První argument musí být ukazatel na celočíselný nebo výčtový typ.",
|
||||
"Prvním argumentem musí být ukazatel na celočíselný typ nebo typ výčtu",
|
||||
"Synchronizované operace jsou platné jenom u objektů o velikosti 1, 2, 4 nebo 8.",
|
||||
"Argumenty navíc se ignorují.",
|
||||
"Předpokládalo se, že znak = následuje po názvu makra %sq v definici příkazového řádku.",
|
||||
@@ -1916,13 +1916,13 @@
|
||||
"Sada parametrů nemůže mít výchozí hodnotu.",
|
||||
"C++/CLI se dá povolit jenom v režimu Microsoft C++.",
|
||||
"Pro konstantu enumerátoru se nedá použít název value__. (V tomto kontextu je to vyhrazený název.)",
|
||||
"U typu výčtu s nadřízeným typem boolean je povinná explicitní hodnota výčtu.",
|
||||
"Explicitní hodnota enumerátoru je ve výčtovém typu s logickou základní hodnotou povinná",
|
||||
null,
|
||||
"Odkazovalo se na sadu parametrů %sq, která nebyla rozšířená.",
|
||||
"Rozšíření sady nepoužívá žádnou sadu argumentů.",
|
||||
"Sada %sq má jiný počet prvků než sada %sq2.",
|
||||
null,
|
||||
"Atribut vector_size se u typu výčtu nepovoluje.",
|
||||
"atribut vector_size není povolený s typem výčtu",
|
||||
"Vlastnost nemůže být současně statická i virtuální.",
|
||||
"Indexovaná vlastnost nemůže být triviální.",
|
||||
"Tato deklarace se nedá použít v definici vlastnosti.",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"Specifikátor viditelnosti na nejvyšší úrovni vyžaduje definici typu.",
|
||||
"Triviální vlastnost nemůže být odkazovaného typu.",
|
||||
"Triviální vlastnost nemůže být typu const nebo volatile.",
|
||||
"%nd se dřív deklaroval jako jiný druh typu výčtu.",
|
||||
"%nd se dříve deklaroval jako jiný typ výčtu",
|
||||
"Proměnná zachycená výrazem lambda nemůže být typu třídy %[managed].",
|
||||
"Přepisování virtuální funkce s kovariantním návratovým typem není u třídy %[managed] povolené.",
|
||||
"Pole popisovačů není povolené.",
|
||||
@@ -2175,7 +2175,7 @@
|
||||
"Pojmenovaný specifikátor přepisu je povolený jenom ve třídě %[managed].",
|
||||
"Typu tohoto členu neodpovídá žádný člen označený pojmenovaným specifikátorem přepisu.",
|
||||
"Deklarace statického konstruktoru nemůže zahrnovat pojmenovaný specifikátor přepisu.",
|
||||
"Typ vymezeného výčtu musí mít název.",
|
||||
"Typ výčtu s vymezeným oborem musí mít název.",
|
||||
"Přenos řízení na blok finally není povolený.",
|
||||
"Příkaz return se v bloku finally použít nedá.",
|
||||
"Blok try vyžaduje aspoň jeden obslužnou rutinu nebo klauzuli finally.",
|
||||
@@ -2216,7 +2216,7 @@
|
||||
"U operátoru dynamic_cast se nemůže použít obecný typ, který by mohl být hodnotovým typem.",
|
||||
"Univerzální název znaku musí označovat platný bod kódu.",
|
||||
"Obecná omezení neodpovídají omezením %nd.",
|
||||
"Výraz __underlying_type se vztahuje jenom na typy výčtu.",
|
||||
"__underlying_type platí jenom pro výčtové typy",
|
||||
"U tohoto přetypování se očekával jenom jeden výraz operandu.",
|
||||
"Znak Unicode s šestnáctkovou hodnotou %s se nedá prezentovat ve výchozí systémové znakové stránce.",
|
||||
"Nestandardní převod svázaného ukazatele na člen na ukazatel funkce",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"%nd se dřív deklaroval s jiným základním typem.",
|
||||
"Tady se nedá použít enum class nebo enum struct. Použijte místo toho prostý výčet enum.",
|
||||
"U inicializátoru pro objekt typu %t je povolená jenom jedna úroveň závorek.",
|
||||
"%nd se nedá použít jako název výčtového typu.",
|
||||
"%nd nelze použít jako název typu výčtu",
|
||||
null,
|
||||
"U inicializátoru uzavřeného v závorkách nejde použít new auto.",
|
||||
"Definice std::initializer_list neobsahuje očekávaný konstruktor.",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"Inicializátor v závorkách pro entitu, která není třídou, musí být výraz, ne seznam uzavřený ve složených závorkách.",
|
||||
"Seznam uzavřený ve složených závorkách neposkytuje pro tuto funkci lambda návratový typ.",
|
||||
"Deklarovaná specifikace výjimky je nekompatibilní s generovanou specifikací.",
|
||||
"Typy vymezeného výčtu jsou funkcí C++11.",
|
||||
"Vymezené typy výčtu jsou funkcí C++11",
|
||||
"Typ funkce se nedá inicializovat pomocí hodnoty.",
|
||||
"Inicializace seznamu typu objektu %t není povolená, protože má neúplný typ.",
|
||||
"Seznam inicializátorů std::initializer_list obsahuje destruktor. Ten by ale obsahovat neměl: knihovna je chybně nakonfigurovaná.",
|
||||
@@ -2406,7 +2406,7 @@
|
||||
"Volání funkce musí mít v konstantním výrazu konstantní hodnotu.",
|
||||
"Funkce main se nedá deklarovat jako constexpr.",
|
||||
null,
|
||||
"Definice typu výčtu nebo třídy se nedá použít ve funkci constexpr nebo těle konstruktoru.",
|
||||
"Definice typu třídy nebo výčtu se nemůže vyskytovat ve funkci constexpr ani v těle konstruktoru",
|
||||
"Tady jsou povolené jenom atributy ve stylu GNU.",
|
||||
"Nestandardní použití auto současně k odvození typu od inicializátoru a ohlášení ukončovacího návratového typu.",
|
||||
"Deklarace seznamu parametrů typu void s kvalifikovaným typem void je nestandardní.",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"Proměnná ve funkci constexpr není inicializovaná.",
|
||||
"Inicializace (uzavřená v závorkách) proměnné deklarované se zástupným typem, ale bez znaku =, vyžaduje právě jeden element uzavřený do závorek.",
|
||||
"neexistuje žádná konfigurace %s --target",
|
||||
"atribut není podporovaný v 64bitových konfiguracích x86",
|
||||
"Atribut je podporován pouze v 32bitových konfiguracích x86",
|
||||
"%s vyžaduje argument",
|
||||
"konstruktor nebo destruktor nemůže být korutina",
|
||||
"%n nemůže být korutina",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"Neplatný typ %t pro this-pointer členské funkce %nfd s omezením AMP",
|
||||
"Neplatný návratový typ %t pro funkci %nfd s omezením AMP",
|
||||
"Neplatný typ parametru %t pro funkci %nfd s omezením AMP",
|
||||
null,
|
||||
"Neplatný konstruktor ve funkci %nfd s omezením AMP",
|
||||
"Neplatná třída úložiště %s ve funkci %nfd s omezením AMP",
|
||||
"%s není ve funkci %nfd s omezením AMP povolené.",
|
||||
"Neplatné přetypování ve funkci s omezením AMP",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"Nestálý typ %t brání vyhodnocování constexpr v __builtin_bit_cast.",
|
||||
"Typ sjednocení, ukazatele nebo ukazatele na člen %t brání vyhodnocování constexpr v __builtin_bit_cast.",
|
||||
"%npTd, zděděno pomocí decl %p",
|
||||
"Podobjekt %t pro dědící konstruktory se nedá vytvořit -- implicitní výchozí konstruktor se odstranil.",
|
||||
"Nelze provést vytvoření dílčího objektu %t pro dědící konstruktory – přidružený konstruktor je odstraněn",
|
||||
"%n musí vracet void.",
|
||||
"Neplatný začátek deklarace členu",
|
||||
"Očekává se klíčové slovo auto.",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"mapování souborů modulu pro %s bylo zadané více než jednou",
|
||||
"mapování jednotek záhlaví pro %s bylo zadané více než jednou",
|
||||
"není zadané žádné mapování pro %s",
|
||||
"mapování souborů modulu pro %s je neplatné",
|
||||
null,
|
||||
"nejde najít záhlaví %s, které se má importovat",
|
||||
"více než jeden soubor v seznamu souborů modulu odpovídá %s",
|
||||
"soubor modulu, který se našel pro %s, je pro jiný modul",
|
||||
"libovolný druh souboru modulu",
|
||||
"nejde přečíst soubor modulu",
|
||||
"předdefinovaná funkce není k dispozici, protože typ char8_t se nepodporuje s aktuálními možnostmi",
|
||||
"možnost příkazového řádku --ms_await nejde zadat, pokud jsou povolené korutiny C++20",
|
||||
null,
|
||||
"nestandardní použití explicitního konstruktoru %nod pro inicializaci výchozího agregačního elementu",
|
||||
"zdroj nebo cíl vnitřní funkce memcpy-like neukazuje na objekt",
|
||||
"vnitřní funkce memcpy-like se pokouší o kopírování reprezentačně odlišných typů %t1 a %t2",
|
||||
@@ -3378,7 +3378,7 @@
|
||||
"Název modulu nesmí obsahovat slovo module.",
|
||||
null,
|
||||
null,
|
||||
"%n není výčtový typ.",
|
||||
"%n není typ výčtu",
|
||||
"Enumerátor %no2 je v konfliktu s %n1.",
|
||||
"Enumerátor %no se už v tomto oboru %p deklaroval.",
|
||||
"specifikace throw() není součástí standardu C++20 a novějších",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"Pro oddíl %sq2 se požádalo o pozici v souboru %d1 (relativní pozice %d2) v modulu %sq1, pozice ale předchází začátek oddílu.",
|
||||
"Pro oddíl %sq2 se požádalo o pozici v souboru %d1 (relativní pozice %d2) v modulu %sq1, pozice ale přetéká konec svého oddílu.",
|
||||
"Pro oddíl %sq2 se požádalo o pozici v souboru %d1 (relativní pozice %d2) v modulu %sq1, pozice ale není zarovnaná s elementy oddílu.",
|
||||
"Z podpole %sq",
|
||||
"z dílčího pole %sq (relativní pozice k uzlu %d)",
|
||||
"Z oddílu %sq, elementu %d1 (pozice v souboru %d2, relativní pozice %d3)",
|
||||
"Atributy výrazu lambda tady nejsou standardní.",
|
||||
"Identifikátor %sq by bylo možné zaměnit za vizuálně podobné %p.",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"V grafu definice parametrů IFC byl zadán tento počet parametrů: %d1, zatímco deklarace IFC určovala tento počet parametrů: %d2.",
|
||||
"V grafu definice parametrů IFC byl zadán %d1 parametr, zatímco deklarace IFC určovala tento počet parametrů: %d2.",
|
||||
"V grafu definice parametrů IFC byl zadán tento počet parametrů: %d1, zatímco deklarace IFC určovala %d2 parametr.",
|
||||
"Chybí reprezentace IFC definice funkce %sq."
|
||||
"Chybí reprezentace IFC definice funkce %sq.",
|
||||
"modifikátor funkce se nevztahuje na deklaraci členské šablony.",
|
||||
"výběr člena zahrnuje příliš mnoho vnořených anonymních typů",
|
||||
"mezi operandy není žádný společný typ",
|
||||
"očekával se ukazatel na člen",
|
||||
"flexibilní člen pole nelze deklarovat v jinak prázdném typu",
|
||||
"Očekávalo se, že std::source_location::__impl bude definováno pro třídu pouze s datovými členy _M_function_name, _M_file_name, _M_column a _M_line.",
|
||||
"zadané číslo sloupce je pro implementaci std::source_location příliš velké",
|
||||
"zadané číslo řádku je pro implementaci std::source_location příliš velké",
|
||||
"znaková konstanta UTF-16 nemůže zabírat více než jednu jednotku kódu; hodnota byla zkrácena",
|
||||
"oba argumenty musí mít stejný typ",
|
||||
"typ %t není platný jako argument pro tento předdefinovan.",
|
||||
"voláno z %nd:",
|
||||
"kvalifikovaný typ je pro anonymní bitová pole nestandardní.",
|
||||
"typ elementu vektorové podmínky (%t1) musí mít stejnou velikost jako typ elementu výsledku (%t2).",
|
||||
"typ operandu vektoru s plovoucí desetinnou čárkou (%t) nemá žádný odpovídající celočíselný vektorový typ.",
|
||||
"mangling pro výrazy requires ještě není implementovaný.",
|
||||
"kvůli atributu „není k dispozici“",
|
||||
"duplicitní kvalifikátor asm",
|
||||
"bitové pole s nekompletním typem výčtu nebo neprůhledný výčet s neplatným základním typem",
|
||||
"došlo k pokusu o vytvoření elementu z oddílu IFC %sq pomocí indexu do oddílu IFC %sq2.",
|
||||
"oddíl %sq určil svou velikost položky jako %d1, když bylo očekáváno %d2.",
|
||||
"při zpracování modulu %sq1 byl zjištěn neočekávaný požadavek IFC.",
|
||||
"podmínka selhala na řádku %d v %s1: %sq2",
|
||||
"atomické omezení závisí na sobě",
|
||||
"Funkce noreturn má návratový typ, který není void.",
|
||||
"oprava byla provedena vyřazením parametru %sq (v relativním indexu %d).",
|
||||
"výchozí argument šablony nelze zadat pro definici členské šablony mimo její třídu.",
|
||||
"při rekonstrukci entity se zjistil neplatný název identifikátoru IFC %sq.",
|
||||
"neplatný identifikátor IFC s názvem %sq byl během obnovy entity přeskočen.",
|
||||
"neplatná hodnota řazení modulu %sq",
|
||||
"šablona funkce načtená z modulu IFC byla nesprávně parsována jako %nd.",
|
||||
"nepovedlo se načíst odkaz na entitu IFC v modulu %sq.",
|
||||
"Z oddílu %sq, elementu %d1 (pozice v souboru %d2, relativní pozice %d3)",
|
||||
"zřetězené specifikátory nejsou povolené pro typ třídy s netriviálním destruktorem.",
|
||||
"Explicitní deklarace specializace nemůže být deklarací typu friend.",
|
||||
"typ std::float128_t se nepodporuje. místo toho se použije std::float64_t",
|
||||
"typ std::bfloat16_t se nepodporuje. místo toho se použije std::float32_t",
|
||||
"vodítko pro dedukce se nedá deklarovat pro šablonu aliasu %no",
|
||||
"%n bylo deklarováno jako nedostupné.",
|
||||
"%n bylo deklarováno jako nedostupné (%sq).",
|
||||
"kvůli atributu deprecated",
|
||||
"explicitní parametry šablony lambda jsou funkcí C++20",
|
||||
"použití _Noreturn je od C23 zastaralé. Místo toho použijte [[noreturn]].",
|
||||
"použití _Alignof je od C23 zastaralé. Místo toho použijte alignof.",
|
||||
"použití _Alignas je od C23 zastaralé. Místo toho použijte alignas.",
|
||||
"použití _Bool je od C23 zastaralé. Místo toho použijte bool.",
|
||||
"použití _Static_assert je od C23 zastaralé. Místo toho použijte static_assert.",
|
||||
"použití _Thread_local je od C23 zastaralé. Místo toho použijte thread_local.",
|
||||
"Aby bylo možné používat soubor modulu %sq (modul Microsoft Visual Studio IFC), musí být povolený režim Microsoftu.",
|
||||
"soubor modulu %sq se nepovedlo otevřít",
|
||||
"nalezeno v mapě modulu %sq.",
|
||||
"nalezeno v mapě jednotek hlaviček pro %sq"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"Das Anwenden von \"&\" auf ein Array hat keine Auswirkungen.",
|
||||
"Der rechte Operand von \"%%\" ist Null.",
|
||||
"Das Argument ist nicht mit dem formellen Parameter kompatibel.",
|
||||
"Das Argument ist mit der entsprechenden Formatzeichenfolgenkonvertierung inkompatibel.",
|
||||
"Argument ist nicht mit der entsprechenden Formatzeichenfolgenkonvertierung kompatibel (erwarteter Typ %t1, aber das Argument weist den Typ %t2 auf)",
|
||||
"Die Quelldatei \"%sq\" konnte nicht geöffnet werden (keine Verzeichnisse in der Suchliste).",
|
||||
"Der Typ der Umwandlung muss eine ganze Zahl sein.",
|
||||
"Der Typ der Umwandlung muss arithmetisch oder ein Zeiger sein.",
|
||||
@@ -952,7 +952,7 @@
|
||||
"Die nonstad_using_decl-Option kann nur beim Kompilieren von C++ verwendet werden.",
|
||||
"Der Rückgabetyp der Main-Funktion muss \"int\" sein.",
|
||||
"Ein Nichttyp-Vorlagenparameter darf keinen Klassentyp aufweisen.",
|
||||
"Ein Standardvorlagenargument kann nicht in der Deklaration eines Members einer Klassenvorlage außerhalb seiner Klasse angegeben werden.",
|
||||
"ein Standardvorlagenargument kann nicht in der Definition eines Members einer Klassenvorlage außerhalb der Vorlage angegeben werden",
|
||||
"Eine return-Anweisung ist in einem Handler eines Funktions-Try-Blocks eines Konstruktors nicht zulässig.",
|
||||
"Normale und erweiterte Kennzeichner können nicht in einer Initialisiererkennzeichnung kombiniert werden.",
|
||||
"Der zweite Index darf nicht kleiner als der erste sein.",
|
||||
@@ -1644,7 +1644,7 @@
|
||||
"Die Deklaration des Kopierkonstruktors für \"%t1\" wurde unterdrückt, da auf die Deklaration von \"%t2\" nicht zugegriffen werden kann.",
|
||||
"Der Destruktor für \"%t1\" wird nicht aufgerufen, da auf ihn nicht zugegriffen werden kann und der Destruktor für \"%t2\" unterdrückt wurde.",
|
||||
"Auf die Definition am Ende der Datei darf kein Semikolon oder ein Deklarator folgen.",
|
||||
"Das erste Argument muss ein Zeiger auf einen Ganzzahl- oder einen Enumerationstyp sein.",
|
||||
"das erste Argument muss ein Zeiger auf einen Integer- oder Enumerationstyp sein.",
|
||||
"Synchronisierte Operationen sind nur für Objekte der Größe 1, 2, 4 oder 8 gültig.",
|
||||
"Zusätzliche Argumente werden ignoriert.",
|
||||
"\"=\" nahm den folgenden Makronamen \"%sq\" in der Befehlszeilendefinition an.",
|
||||
@@ -1695,8 +1695,8 @@
|
||||
null,
|
||||
"Für die Vektoroperation sind identische Elementtypen erforderlich.",
|
||||
"Die Vektoroperation gilt nicht für Vektoren mit nicht integralem Typ.",
|
||||
"Die Datei \"%s\" kann nicht geöffnet werden: %sq2.",
|
||||
"Die -Datei \"%s\" kann nicht geöffnet werden: %sq2: %s3.",
|
||||
"Die Datei %s kann nicht geöffnet werden: %sq2.",
|
||||
"Die -Datei %s kann nicht geöffnet werden: %sq2: %s3.",
|
||||
"Vorkompilierte Headerdatei",
|
||||
"Vordefiniertes Makro",
|
||||
"Generierter C-Code",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"ein Sichtbarkeitsspezifizierer der obersten Ebene erfordert eine Typdefinition",
|
||||
"eine triviale Eigenschaft kann keinen Verweistyp aufweisen",
|
||||
"eine triviale Eigenschaft kann keinen const- oder volatile-Typ aufweisen",
|
||||
"%nd wurde zuvor als andere Art von Enumerationstyp deklariert",
|
||||
"%nd wurde zuvor als andere Variante des Enumerationstyps deklariert",
|
||||
"Eine von einer Lambdafunktion erfasste Variable kann keinen %[managed]-Klassentyp aufweisen.",
|
||||
"Überschreiben einer virtuellen Funktion mit einem covariant-Rückgabetyp ist in einer %[managed]-Klasse nicht zulässig",
|
||||
"ein Array von Handles ist nicht zulässig",
|
||||
@@ -2175,7 +2175,7 @@
|
||||
"ein benannter Überschreibungsspezifizierer ist nur in einer %[managed]-Klasse zulässig",
|
||||
"kein vom benannten Überschreibungsspezifizierer angegebener Member stimmt mit dem Typ dieses Members überein",
|
||||
"eine statische Destruktordeklaration kann keinen benannten Überschreibungsspezifizierer enthalten",
|
||||
"Eine Enumeration mit eigenem Gültigkeitsbereich muss einen Namen aufweisen.",
|
||||
"ein bereichsbezogenes Enumerationstyp muss einen Namen haben",
|
||||
"Übertragung des Steuerelements in einen Finally-Block ist nicht zulässig",
|
||||
"Eine return-Anweisung innerhalb eines Finally-Block ist unzulässig.",
|
||||
"Der Try-Block erfordert mindestens einen Handler oder eine Finally-Klausel.",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"\"%nd\" wurde zuvor mit einem unterschiedlichen Basistyp deklariert",
|
||||
"'enum class' und 'enum struct' können hier nicht verwendet werden (verwenden Sie stattdessen eine einfache 'enum')",
|
||||
"bei Initialisierern für Objekte des Typs \"%t\" ist nur eine Ebene geschweifter Klammern zulässig",
|
||||
"\"%nd\" kann nicht als Name für einen Enumerationstyp",
|
||||
"%nd kann nicht als Name für einen Enumerationstyp verwendet werden",
|
||||
null,
|
||||
"Ein Initialisierer in geschweiften Klammern darf nicht mit 'new auto' verwendet werden.",
|
||||
"Die Definition von \"std::initializer_list\" enthält nicht den erwarteten Konstruktor.",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"Ein in Klammern gesetzter Initialisierer für eine Nicht-Klassenentität muss ein Ausdruck sein, keine in geschweifte Klammern gesetzte Liste.",
|
||||
"Eine in geschweifte Klammern gesetzte Liste stellt keinen Rückgabetyp für diese Lambdafunktion bereit.",
|
||||
"Die deklarierte Ausnahmespezifikation ist mit der generierten inkompatibel.",
|
||||
"Enumerationstypen mit eigenem Gültigkeitsbereich sind eine Funktion von C++11.",
|
||||
"bereichsbezogene Enumerationstypen sind ein C++11-Feature.",
|
||||
"Ein Funktionstyp kann nicht wertinitialisiert sein.",
|
||||
"Die Listeninitialisierung eines Objekttyps \"%t\" ist nicht zulässig, da der Typ unvollständig ist.",
|
||||
"\"std::initializer_list\" enthält entgegen der Erwartung einen Destruktor -- Die Bibliothek ist falsch konfiguriert.",
|
||||
@@ -2406,7 +2406,7 @@
|
||||
"Ein Funktionsaufruf muss in einem Konstantenausdruck einen konstanten Wert enthalten.",
|
||||
"Die Main-Funktion darf nicht als constexpr deklariert werden.",
|
||||
null,
|
||||
"Die Definition einer Klasse oder eines Enumerationstyps darf nicht in einer constexpr-Funktion oder einem Konstruktortext stehen.",
|
||||
"die Definition einer Klasse oder eines Enumerationstyps darf nicht in einer constexpr-Funktion oder einem Konstruktortext stehen",
|
||||
"Hier sind nur Attribute im GNU-Stil zulässig.",
|
||||
"Nicht dem Standard entsprechende Verwendung von 'auto', um den Typ eines Initialisierers abzuleiten und einen nachstehenden Rückgabetyp anzukündigen",
|
||||
"Die Deklaration einer Void-Parameterliste mit einem qualifizierten Void-Typ entspricht nicht dem Standard.",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"Variable in constexpr-Funktion ist nicht initialisiert.",
|
||||
"Initialisierung in Klammern einer Variablen, die mit einem Platzhaltertyp, jedoch ohne \"=\" initialisiert wurde, erfordert genau ein Element innerhalb der Klammern",
|
||||
"Es ist keine --target-Konfiguration \"%s\" vorhanden.",
|
||||
"Das Attribut wird in 64-Bit-x86-Konfigurationen nicht unterstützt.",
|
||||
"das Attribut wird nur in einer 32-Bit-x86-Konfigurationen unterstützt",
|
||||
"\"%s\" erfordert ein Argument.",
|
||||
"Ein Konstruktor oder Destruktor kann keine Coroutine sein.",
|
||||
"\"%n\" kann keine Coroutine sein.",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"Unzulässiger Typ %t im this-Zeiger für die eingeschränkte amp-Memberfunktion %nfd",
|
||||
"Unzulässiger Rückgabetyp \"%t\" für die auf AMP begrenzte Funktion \"%nfd\".",
|
||||
"Unzulässiger Parametertyp \"%t\" für die auf AMP begrenzte Funktion \"%nfd\".",
|
||||
null,
|
||||
"Unzulässiges Konstrukt in auf AMP begrenzter Funktion %nfd",
|
||||
"Unzulässige Speicherklasse \"%s\" in der auf AMP begrenzten Funktion \"%nfd\".",
|
||||
"\"%s\" ist in der auf AMP begrenzten Funktion \"%nfd\" unzulässig.",
|
||||
"Unzulässige Umwandlung in auf AMP begrenzte Funktion.",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"Ein flüchtiger %t-Typ verhindert die constexpr-Auswertung von \"__builtin_bit_cast\".",
|
||||
"Ein Union-, Zeiger- oder Pointer-to-Member-Typ \"%t\" verhindert die constexpr-Auswertung von \"__builtin_bit_cast\".",
|
||||
"%npTd, geerbt über die Verwendung von decl %p",
|
||||
"Die Teilobjekterstellung von \"%t\" für erbende Konstruktoren kann nicht durchgeführt werden – der implizite Standardkonstruktor wurde gelöscht.",
|
||||
"Die Teilobjekterstellung von %t für erbende Konstruktoren kann nicht durchgeführt werden – der zugehörige Konstruktor wurde gelöscht.",
|
||||
"\"%n\" muss \"void\" zurückgeben.",
|
||||
"Ungültiger Beginn der Memberdeklaration.",
|
||||
"Erwartet wurde \"auto\".",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"Die Moduldateizuordnung für \"%s\" wurde mehrmals angegeben.",
|
||||
"Die Zuordnung der Headereinheit für \"%s\" wurde mehrmals angegeben.",
|
||||
"Für \"%s\" wurde keine Zuordnung angegeben.",
|
||||
"Die Moduldateizuordnung für \"%s\" ist ungültig.",
|
||||
null,
|
||||
"Der zu importierende Header \"%s\" wurde nicht gefunden.",
|
||||
"Mehrere Dateien in der Moduldateiliste stimmen mit \"%s\" überein.",
|
||||
"Die für \"%s\" gefundene Moduldatei ist für ein anderes Modul bestimmt.",
|
||||
"Beliebige Art von Moduldatei",
|
||||
"Die Moduldatei kann nicht gelesen werden.",
|
||||
"Die integrierte Funktion ist nicht verfügbar, weil der char8_t-Typ mit den aktuellen Optionen nicht unterstützt wird.",
|
||||
"Die Befehlszeilenoption \"--ms_await\" kann nicht angegeben werden, wenn C++20-Coroutinen aktiviert sind.",
|
||||
null,
|
||||
"Nicht standardmäßige Verwendung des expliziten Konstruktors \"%nod\" für die standardmäßige Aggregatelementinitialisierung",
|
||||
"Die Quelle oder das Ziel des memcpy-ähnlichen systeminternen Objekts verweist nicht auf ein Objekt.",
|
||||
"Ein memcpy-ähnliches systeminternes Objekt versucht, die darstellerisch unterschiedlichen Typen %t1 und %t2 zu kopieren.",
|
||||
@@ -3378,7 +3378,7 @@
|
||||
"\"Modul\" ist in einem Modulnamen unzulässig.",
|
||||
null,
|
||||
null,
|
||||
"\"%n\" ist kein Enumerationstyp.",
|
||||
"%n ist kein Enumerationstyp",
|
||||
"Der Enumerator \"%no2\" steht in Konflikt mit \"%n1\".",
|
||||
"Der Enumerator \"%no\" wurde bereits in diesem Bereich (%p) deklariert.",
|
||||
"Die Spezifikation \"throw()\" ist nicht in C++ 20 und höher enthalten.",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"Modul %sq1 Dateiposition %d1 (relative Position %d2) wurde für Partition %sq2 angefordert – was dem Start der Partition vorausgeht",
|
||||
"Modul %sq1 Dateiposition %d1 (relative Position %d2) wurde für die Partition %sq2 angefordert – was das Ende ihrer Partition überschreitet",
|
||||
"Modul %sq1 Dateiposition %d1 (relative Position %d2) wurde für die Partition %sq2 angefordert – welche mit ihren Partitionselementen falsch ausgerichtet ist",
|
||||
"aus dem Subfeld %sq",
|
||||
"von Unterfeld %sq (relative Position zum Knoten %d)",
|
||||
"von Partition %sq Element %d1 (Dateiposition %d2, relative Position %d3)",
|
||||
"Lambda-Attribute entsprechen hier nicht dem Standard",
|
||||
"der Bezeichner %sq könnte mit einem visuell ähnlichen Bezeichner verwechselt werden, der %p angezeigt wird",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"%d1 Parameter wurden im IFC-Parameterdefinitionschart angegeben, während %d2 Parameter in der IFC-Deklaration angegeben wurden.",
|
||||
"%d1 Parameter wurde im IFC-Parameterdefinitionschart angegeben, während %d2 Parameter in der IFC-Deklaration angegeben wurden.",
|
||||
"%d1 Parameter wurden im IFC-Parameterdefinitionschart angegeben, während %d2 Parameter in der IFC-Deklaration angegeben wurde.",
|
||||
"Die IFC-Darstellung der Definition der Funktion %sq fehlt."
|
||||
"Die IFC-Darstellung der Definition der Funktion %sq fehlt.",
|
||||
"Funktionsmodifizierer gilt nicht für eine statische Mitgliedervorlagendeklaration",
|
||||
"Die Mitgliederauswahl umfasst zu viele geschachtelte anonyme Typen",
|
||||
"Es gibt keinen gemeinsamen Typ zwischen den Operanden",
|
||||
"Es wurde ein Pointer-to-Member erwartet",
|
||||
"Ein flexibles Arrayelement kann nicht in einem ansonsten leeren Typ deklariert werden.",
|
||||
"Es wurde erwartet, dass \"std::source_location::__impl\" für eine Klasse definiert ist, die nur die Datenmember \"_M_function_name\", \"_M_file_name\", \"_M_column\", \"_M_line\" enthält.",
|
||||
"die angegebene Spaltennummer ist für die Implementierung von „std::source_location“ zu groß",
|
||||
"die angegebene Zeilennummer ist für die Implementierung von „std::source_location“ zu groß",
|
||||
"Eine UTF-16-Zeichenkonstante darf nicht mehrere Codeeinheiten belegen. Wert abgeschnitten.",
|
||||
"Beide Argumente müssen denselben Typ aufweisen.",
|
||||
"Der Typ \"%t\" ist als Argument für dieses integrierte Element ungültig.",
|
||||
"aufgerufen von %nd:",
|
||||
"ein qualifizierter Typ ist kein Standard für anonyme Bitfelder",
|
||||
"der Elementtyp der Vektorbedingung (%t1) muss dieselbe Größe haben wie der Elementtyp des Ergebnisses (%t2)",
|
||||
"der Gleitkomma-Vektoroperandentyp (%t) hat keinen übereinstimmenden ganzzahligen Vektortyp",
|
||||
"das Mangling für 'requires'-Ausdrücke ist noch nicht implementiert",
|
||||
"aufgrund eines „nicht verfügbaren“ Attributs",
|
||||
"Doppelter „ASM“-Qualifizierer",
|
||||
"entweder ein Bitfeld mit einem unvollständigen Enumerationstyp oder eine opake Enumeration mit einem ungültigen Basistyp",
|
||||
"Es wurde versucht, ein Element aus der IFC-Partition %sq mithilfe eines Indexes in der IFC-Partition %sq2 zu erstellen",
|
||||
"Die Partition %sq hat ihre Eintragsgröße mit %d1 angegeben, obwohl %d2 erwartet wurde",
|
||||
"Unerwartete IFC-Anforderung beim Verarbeiten des Moduls %sq1",
|
||||
"Bedingungsfehler in Zeile %d in %s1: %sq2",
|
||||
"Die atomische Einschränkung hängt von sich selbst ab",
|
||||
"Die Funktion \"noreturn\" weist den Rückgabetyp \"nicht void\" auf.",
|
||||
"Eine Korrektur wurde vorgenommen, indem der Parameter %sq (beim relativen Index %d) weggelassen wurde",
|
||||
"ein Standardvorlagenargument kann nicht für die Definition einer Membervorlage außerhalb seiner Klasse angegeben werden",
|
||||
"Ungültiger IFC-Bezeichnername %sq bei der Rekonstruktion der Entität gefunden",
|
||||
"Ungültiger IFC-Bezeichnername %sq bei der Rekonstruktion der Entität übersprungen",
|
||||
"Modul %sq ungültiger Sortierwert",
|
||||
"Eine aus einem IFC-Modul geladene Funktionsvorlage wurde fälschlicherweise als %nd analysiert",
|
||||
"Fehler beim Laden eines IFC-Entitätsverweises im Modul \"%sq\"",
|
||||
"von Partition %sq Element %d1 (Dateiposition %d2, relative Position %d3)",
|
||||
"verkettete Kennzeichner sind für einen Klassentyp mit einem nichttrivialen Destruktor nicht zulässig",
|
||||
"Eine explizite Spezialisierungsdeklaration darf keine Frienddeklaration sein",
|
||||
"der Typ „std::float128_t“ wird nicht unterstützt. Stattdessen wird „std::float64_t“ verwendet",
|
||||
"der Typ „std::bfloat16_t“ wird nicht unterstützt. Stattdessen wird „std::float32_t“ verwendet",
|
||||
"Für die Aliasvorlage %no darf keine Deduktionsanleitung deklariert werden.",
|
||||
"%n wurde als nicht verfügbar deklariert.",
|
||||
"%n wurde als nicht verfügbar deklariert (%sq).",
|
||||
"aufgrund eines „veralteten“ Attributs",
|
||||
"Explizite Lambdavorlagenparameter sind ein C++20-Feature.",
|
||||
"Die Verwendung von „_Noreturn“ in C23 ist veraltet. Verwenden Sie stattdessen „[[noreturn]]“.",
|
||||
"Die Verwendung von „_Alignof“ in C23 ist veraltet. Verwenden Sie stattdessen „alignof“.",
|
||||
"Die Verwendung von „_Alignas“ in C23 ist veraltet. Verwenden Sie stattdessen „alignas“.",
|
||||
"Die Verwendung von „_Bool“ in C23 ist veraltet. Verwenden Sie stattdessen „bool“.",
|
||||
"Die Verwendung von „_Static_assert“ in C23 ist veraltet. Verwenden Sie stattdessen „static_assert“.",
|
||||
"Die Verwendung von „_Thread_local“ in C23 ist veraltet. Verwenden Sie stattdessen „thread_local“.",
|
||||
"Der Microsoft-Modus muss aktiviert sein, um die Moduldatei %sq (ein Microsoft Visual Studio IFC-Modul) zu verwenden.",
|
||||
"Die Moduldatei \"%sq\" konnte nicht importiert werden.",
|
||||
"wurde in der Modulzuordnung für das Modul %sq gefunden",
|
||||
"wurde in der Headereinheitszuordnung für %sq gefunden"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"no tiene ningún efecto aplicar '&' a una matriz",
|
||||
"el operando derecho de '%%' es cero",
|
||||
"el argumento no es compatible con un parámetro formal",
|
||||
"el argumento no es compatible con la conversión de la cadena de formato correspondiente",
|
||||
"el argumento no es compatible con la conversión de cadena de formato correspondiente (se esperaba el tipo %t1 pero el argumento tiene el tipo %t2)",
|
||||
"no se pudo abrir el archivo de código fuente %sq (no hay directorios en la lista de búsqueda)",
|
||||
"la conversión debe ser de tipo integral",
|
||||
"la conversión debe ser de tipo aritmético o de puntero",
|
||||
@@ -952,7 +952,7 @@
|
||||
"la opción 'nonstd_using_decl' solo se puede usar al compilar C++",
|
||||
"el tipo de valor devuelto de la función 'main' debe ser 'int'",
|
||||
"un parámetro de plantilla sin tipo no puede tener un tipo de clase",
|
||||
"no se puede especificar un argumento de plantilla predeterminado en la declaración de un miembro de una plantilla de clase fuera de su clase",
|
||||
"no se puede especificar un argumento de plantilla predeterminado en la definición de un miembro de una plantilla de clase fuera de la plantilla",
|
||||
"No se permite una instrucción \"return\" en un controlador de un bloque try de función de un constructor",
|
||||
"los designadores comunes y extendidos no se pueden combinar en una designación de inicializador",
|
||||
"el segundo subíndice no debe ser más pequeño que el primero",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"un especificador de visibilidad de nivel superior requiere una definición de tipo",
|
||||
"una propiedad trivial no puede tener un tipo de referencia",
|
||||
"una propiedad trivial no puede tener un tipo const o volatile",
|
||||
"%nd se declaró previamente como un tipo de enumeración distinto",
|
||||
"%nd se declaró anteriormente como un tipo diferente de tipo de enumeración",
|
||||
"una variable capturada por una lambda no puede tener un tipo de clase %[managed]",
|
||||
"no se admite la invalidación de una función virtual con un tipo de valor devuelto covariante en una clase %[managed]",
|
||||
"no se permite una matriz de identificadores",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"un inicializador entre paréntesis para una entidad que no es una clase debe ser una expresión, no una lista entre llaves",
|
||||
"una lista entre llaves no proporciona un tipo devuelto para este lambda",
|
||||
"la especificación de excepción declarada es incompatible con la que se ha generado",
|
||||
"los tipos de enumeración con ámbito son una funcionalidad de C++11",
|
||||
"los tipos de enumeración con ámbito son una característica de C++11",
|
||||
"un tipo de función no se puede inicializar con un valor",
|
||||
"no se permite la inicialización con lista de un tipo de objeto %t porque el tipo está incompleto",
|
||||
"std::initializer_list tiene un destructor y se supone que no debe tenerlo; la biblioteca no está bien configurada",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"la variable de la función constexpr está sin inicializar",
|
||||
"la inicialización entre llaves de una variable declarada con un tipo de marcador de posición pero sin \"=\" necesita exactamente un elemento dentro de las llaves",
|
||||
"no existe ninguna configuración \"%s\" --target",
|
||||
"el atributo no es compatible con configuraciones x86 de 64 bits",
|
||||
"el atributo solo se admite en configuraciones x86 de 32 bits",
|
||||
"\"%s\" requiere un argumento",
|
||||
"un constructor o destructor no puede ser una corrutina",
|
||||
"%n no puede ser una corrutina",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"tipo %t no válido en puntero this para la función miembro %nfd con restricción amp",
|
||||
"Tipo de valor devuelto %t no válido para la función %nfd con restricción amp",
|
||||
"Tipo de parámetro %t no válido para la función %nfd con restricción amp",
|
||||
null,
|
||||
"construcción no válida en la función %nfd con restricción amp",
|
||||
"Clase de almacenamiento %s no válida en la función %nfd con restricción amp",
|
||||
"%s no se permite en la función %nfd con restricción amp",
|
||||
"conversión no válida en la función con restricción amp",
|
||||
@@ -2997,7 +2997,7 @@
|
||||
"<error de emisión de diagnóstico>",
|
||||
"Hay demasiados errores como para que el motor de IntelliSense funcione correctamente. Puede que algunos no se vean en el editor.",
|
||||
"la asignación al anacronismo \"this\" no es compatible con el modo C++11",
|
||||
"error desconocido. No se generó un archivo Intellisense PCH.",
|
||||
"error desconocido. No se generó un archivo IntelliSense PCH.",
|
||||
"No se pueden asignar una o varias rutas remotas a las rutas locales actuales. La experiencia con IntelliSense puede degradarse.",
|
||||
null,
|
||||
null,
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"un tipo volatile %t impide la evaluación constexpr de __builtin_bit_cast",
|
||||
"un tipo de unión, puntero o puntero a miembro %t impide la evaluación constexpr de __builtin_bit_cast",
|
||||
"%npTd, heredado mediante el uso de la declaración %p",
|
||||
"no se puede realizar la construcción de subobjetos de %t para los constructores de herencia; se elimina el constructor predeterminado implícito",
|
||||
"no se puede realizar la construcción del subobjeto de %t para los constructores heredados; se elimina el constructor asociado",
|
||||
"%n debe devolver void",
|
||||
"inicio de declaración de miembro no válido",
|
||||
"se esperaba \"auto\"",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"la asignación de archivos de módulo para \"%s\" se especificó más de una vez",
|
||||
"la asignación de unidades de encabezado para \"%s\" se especificó más de una vez",
|
||||
"no se especificó ninguna asignación para \"%s\"",
|
||||
"la asignación del archivo de módulo para \"%s\" no es válida",
|
||||
null,
|
||||
"no se encuentra el encabezado \"%s\" para importar",
|
||||
"hay más de un archivo de la lista de archivos de módulo que coincide con \"%s\"",
|
||||
"el archivo de módulo que se encontró para \"%s\" es para otro módulo",
|
||||
"cualquier tipo de archivo de módulo",
|
||||
"no se puede leer el archivo de módulo",
|
||||
"la función integrada no está disponible porque no se admite el tipo char8_t con las opciones actuales",
|
||||
"no se puede especificar la opción de línea de comandos --ms_await si están habilitadas las corrutinas de C++ 20",
|
||||
null,
|
||||
"uso no estándar de %nod de constructor explícito para la inicialización predeterminada del elemento de agregado",
|
||||
"el origen o el destino del intento intrínseco de tipo memcpy no apunta a un objeto",
|
||||
"intentos intrínsecos de tipo memcpy para copiar los tipos %t1 y %t2 diferentes de forma representativa",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"módulo %sq1, posición de archivo %d1 (posición relativa %d2) solicitada para la partición %sq2, que es anterior al inicio de la partición",
|
||||
"módulo %sq1, posición de archivo %d1 (posición relativa %d2) solicitada para la partición %sq2, que desborda el final de su partición",
|
||||
"módulo %sq1 posición de archivo %d1 (posición relativa %d2) solicitada para la partición %sq2, que está mal alineada con sus elementos de particiones",
|
||||
"del subcampo %sq",
|
||||
"desde el subcampo %sq (posición relativa al nodo %d)",
|
||||
"de la partición %sq elemento %d1 (posición de archivo %d2, posición relativa %d3)",
|
||||
"los atributos lambda no son estándar aquí",
|
||||
"el identificador %sq podría confundirse con uno visualmente similar que aparece %p",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"el gráfico de definición de parámetros IFC especificó %d1 parámetros, mientras que la declaración IFC especificó %d2 parámetros",
|
||||
"el gráfico de definición de parámetros IFC especificó %d1 parámetro, mientras que la declaración IFC especificó %d2 parámetros",
|
||||
"el gráfico de definición de parámetros IFC especificó %d1 parámetros, mientras que la declaración IFC especificó %d2 parámetro",
|
||||
"Falta la representación IFC de la definición de la función %sq"
|
||||
"Falta la representación IFC de la definición de la función %sq",
|
||||
"el modificador de función no se aplica a la declaración de plantilla de miembro",
|
||||
"la selección de miembros implica demasiados tipos anónimos anidados",
|
||||
"no hay ningún tipo común entre los operandos",
|
||||
"se esperaba un puntero a miembro",
|
||||
"un miembro de matriz flexible no se puede declarar en un tipo que de otro modo estaría vacío",
|
||||
"se esperaba que 'std::source_location::__impl' se definiera a una clase con solo los miembros de datos '_M_function_name', '_M_file_name', '_M_column', '_M_line'",
|
||||
"el número de columna dado es demasiado grande para la implementación 'std::source_location'",
|
||||
"el número de línea especificado es demasiado grande para la implementación 'std::source_location'",
|
||||
"una constante de caracteres UTF-16 no puede ocupar más de una unidad de código; valor truncado",
|
||||
"ambos argumentos deben tener el mismo tipo",
|
||||
"el tipo %t no es válido como argumento para este elemento integrado",
|
||||
"llamado desde %nd:",
|
||||
"un tipo calificado no es estándar para campos de bits anónimos",
|
||||
"el tipo de elemento de la condición de vector (%t1) debe tener el mismo tamaño que el tipo de elemento del resultado (%t2)",
|
||||
"el tipo de operando de vector de punto flotante (%t) no tiene ningún tipo de vector entero coincidente",
|
||||
"aún no se ha implementado la limpieza de expresiones \"requires\"",
|
||||
"debido a un atributo “no disponible”",
|
||||
"calificador 'asm' duplicado",
|
||||
"un campo de bits con un tipo de enumeración incompleto o una enumeración opaca con un tipo base no válido",
|
||||
"intentó construir un elemento a partir de la partición IFC %sq mediante un índice en la partición IFC %sq2",
|
||||
"la partición %sq especificó su tamaño de entrada como %d1 cuando se esperaba %d2",
|
||||
"se encontró un requisito IFC inesperado al procesar el módulo %sq1",
|
||||
"error de condición en la línea %d en %s1: %sq2",
|
||||
"la restricción atómica depende de sí misma",
|
||||
"La función \"noreturn\" tiene un tipo de valor devuelto distinto de nulo",
|
||||
"se ha quitado el parámetro %sq (en el índice relativo %d) para realizar una corrección",
|
||||
"no se puede especificar un argumento de plantilla predeterminado en la definición de una plantilla de miembro fuera de su clase",
|
||||
"se encontró un nombre de identificador IFC no válido %sq durante la reconstrucción de entidades",
|
||||
"se omitió un nombre de identificador IFC no válido %sq durante la reconstrucción de entidades",
|
||||
"el módulo %sq es un valor de ordenación no válido",
|
||||
"una plantilla de función cargada desde un módulo IFC se analizó incorrectamente como %nd",
|
||||
"no se pudo cargar una referencia de entidad IFC en el módulo %sq",
|
||||
"de la partición %sq elemento %d1 (posición de archivo %d2, posición relativa %d3)",
|
||||
"no se permiten designadores encadenados para un tipo de clase con un destructor no trivial",
|
||||
"una declaración de especialización explícita no puede ser una declaración \"friend\"",
|
||||
"no se admite el tipo std::float128_t; se usará std::float64_t en su lugar",
|
||||
"no se admite el tipo std::bfloat16_t; se usará std::float32_t en su lugar",
|
||||
"no se puede declarar una guía de deducción para la plantilla de alias %no",
|
||||
"%n se declaró no disponible",
|
||||
"%n se declaró no disponible (%sq)",
|
||||
"debido a un atributo \"en desuso\"",
|
||||
"los parámetros de plantilla lambda explícitos son una característica de C++20",
|
||||
"el uso de \"_Noreturn\" ha quedado obsoleto en C23; usar '[[noreturn]]' en su lugar",
|
||||
"el uso de \"_Alignof\" ha quedado obsoleto en C23; usar \"alignof\" en su lugar",
|
||||
"el uso de \"_Alignas\" ha quedado obsoleto en C23; usar \"alignas\" en su lugar",
|
||||
"el uso de \"_Bool\" ha quedado obsoleto en C23; usar 'bool' en su lugar",
|
||||
"el uso de \"_Static_assert\" ha quedado obsoleto en C23; usar \"static_assert\" en su lugar",
|
||||
"el uso de \"_Thread_local\" ha quedado obsoleto en C23; usar \"thread_local\" en su lugar",
|
||||
"El modo Microsoft debe estar habilitado para usar el archivo de módulo %sq (un módulo IFC de Microsoft Visual Studio).",
|
||||
"no se pudo abrir el archivo de módulo %sq",
|
||||
"se encuentra en la asignación de módulo para el módulo %sq",
|
||||
"se encuentra en el mapa de unidad de encabezado para %sq"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"l'application de '&' à un tableau n'a aucun effet",
|
||||
"l'opérande droit de '%%' est égal à zéro",
|
||||
"argument incompatible avec le paramètre formel",
|
||||
"argument incompatible avec la conversion de chaîne de format correspondante",
|
||||
"l’argument est incompatible avec la conversion de chaîne de format correspondante (type attendu %t1 mais l’argument a le type %t2)",
|
||||
"impossible d'ouvrir le fichier source %sq (aucun répertoire dans la liste de recherche)",
|
||||
"le type de cast doit être intégral",
|
||||
"le type de cast doit être arithmétique ou pointeur",
|
||||
@@ -952,7 +952,7 @@
|
||||
"l'option 'nonstd_using_decl' peut uniquement être utilisée lors de la compilation de C++",
|
||||
"le type de retour de la fonction 'main' doit être 'int'",
|
||||
"un paramètre de modèle sans type ne peut pas avoir le type classe",
|
||||
"impossible de spécifier un argument template par défaut sur la déclaration d'un membre de modèle de classe en dehors de sa classe",
|
||||
"impossible de spécifier un argument de modèle par défaut sur la définition d'un membre de modèle de classe en dehors du modèle",
|
||||
"instruction return non autorisée dans le gestionnaire d'un bloc try de fonction d'un constructeur",
|
||||
"impossible de combiner des désignateurs ordinaires et étendus dans la désignation d'un initialiseur",
|
||||
"le second indice doit être inférieur au premier",
|
||||
@@ -1644,7 +1644,7 @@
|
||||
"la déclaration du constructeur de copie de %t1 a été supprimée car celle de %t2 est inaccessible",
|
||||
"le destructeur de %t1 ne sera pas appelé car il est inaccessible et le destructeur de %t2 a été supprimé",
|
||||
"la définition à la fin du fichier n'est pas suivie d'un point-virgule ou d'un déclarateur",
|
||||
"le premier argument doit être un pointeur vers un type entier ou énumération",
|
||||
"le premier argument doit être un pointeur vers un type enum ou entier",
|
||||
"les opérations synchronisées sont valides sur les objets de taille 1, 2, 4 ou 8",
|
||||
"arguments supplémentaires ignorés",
|
||||
"'=' pris par défaut après le nom de macro %sq dans la définition de ligne de commande",
|
||||
@@ -1916,13 +1916,13 @@
|
||||
"un package de paramètres ne peut pas avoir de valeur par défaut",
|
||||
"C++/CLI peut uniquement être activé en mode Microsoft C++",
|
||||
"impossible d'utiliser 'value__' en tant que nom de constante d'énumérateur (il s'agit d'un nom réservé dans ce contexte)",
|
||||
"une valeur d'énumérateur explicite est requise dans un type d'énumération avec un type sous-jacent booléen",
|
||||
"une valeur d’énumération explicite est requise dans un type enum avec un type sous-jacent booléen",
|
||||
null,
|
||||
"package de paramètres %sq référencé mais non développé",
|
||||
"l'expansion de package n'utilise aucun package d'arguments",
|
||||
"le package %sq n'a pas le même nombre d'éléments que %sq2",
|
||||
null,
|
||||
"l'attribut vector_size n'est pas autorisé avec un type d'énumération",
|
||||
"l'attribut vector_size n'est pas autorisé avec un type enum",
|
||||
"une propriété ne peut pas être à la fois statique et virtuelle",
|
||||
"une propriété indexée ne peut pas être triviale",
|
||||
"cette déclaration ne peut pas figurer dans une définition de propriété",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"un spécificateur de visibilité de niveau supérieur requiert une définition de type",
|
||||
"une propriété triviale ne peut pas être de type référence",
|
||||
"une propriété triviale ne peut pas être de type const ou volatile",
|
||||
"%nd a précédemment été déclaré en tant qu'un autre genre d'énumération",
|
||||
"%nd a précédemment été déclaré en tant qu'un autre genre de type enum",
|
||||
"une variable capturée par une capture lambda ne peut pas avoir un type de classe %[managed]",
|
||||
"une fonction virtuelle effectuant une substitution avec un type de retour covariant n'est pas autorisée dans une classe %[managed]",
|
||||
"tableau de handles non autorisé",
|
||||
@@ -2175,7 +2175,7 @@
|
||||
"un spécificateur de substitution nommé est uniquement autorisé dans une classe %[managed]",
|
||||
"aucun membre désigné par le spécificateur de substitution nommé ne correspond au type de ce membre",
|
||||
"une déclaration de constructeur statique ne peut pas inclure un spécificateur de substitution nommé",
|
||||
"un type énumération délimitée doit avoir un nom",
|
||||
"un type enum délimité doit avoir un nom",
|
||||
"transfert de contrôle non autorisé dans un bloc finally",
|
||||
"instruction return non autorisée dans un bloc finally",
|
||||
"un bloc try requiert au moins un gestionnaire ou une clause finally",
|
||||
@@ -2216,7 +2216,7 @@
|
||||
"le type d'un dynamic_cast ne peut pas être un type générique susceptible d'être un type valeur",
|
||||
"un nom de caractère universel doit désigner un point de code valide",
|
||||
"les contraintes génériques ne correspondent pas à celles de %nd",
|
||||
"__underlying_type s'applique uniquement aux types d'énumération",
|
||||
"__underlying_type s'applique uniquement aux types enum",
|
||||
"une seule expression d'opérande attendue pour ce cast",
|
||||
"le caractère Unicode avec valeur hexadécimale %s n'est pas représentable dans la page de codes par défaut système",
|
||||
"conversion non standard de pointeur vers membre lié en pointeur fonction",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"%nd a précédemment été déclaré avec un type de base différent",
|
||||
"'enum class' et 'enum struct' ne peuvent pas être utilisés ici (utilisez un 'enum' simple à la place)",
|
||||
"un seul niveau d'accolades autorisé sur un initialiseur pour un objet de type %t",
|
||||
"%nd ne peut pas être utilisé en tant que nom de type d'énumération",
|
||||
"%nd ne peut pas être utilisé en tant que nom de type enum",
|
||||
null,
|
||||
"un initialiseur entre accolades ne peut pas être utilisé avec 'new auto'",
|
||||
"la définition de std::initializer_list ne contient pas le constructeur attendu",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"un initialiseur entre parenthèses pour une entité autre qu'une classe doit être une expression et non une liste entre accolades",
|
||||
"une liste entre accolades ne fournit pas de type de retour pour cette expression lambda",
|
||||
"la spécification d'exception déclarée est incompatible avec celle qui a été générée",
|
||||
"les types d'énumération délimitée sont une fonctionnalité du C++11",
|
||||
"les types enum délimités sont une fonctionnalité du C++11",
|
||||
"un type de fonction ne peut pas être initialisé par une valeur",
|
||||
"l'initialisation de liste d'un type d'objet %t n'est pas autorisée car le type est incomplet",
|
||||
"std::initializer_list a un destructeur et n'est pas censé en avoir un -- la bibliothèque n'est pas configurée correctement",
|
||||
@@ -2406,7 +2406,7 @@
|
||||
"l'appel de fonction doit avoir une valeur constante dans une expression constante",
|
||||
"impossible de déclarer la fonction 'main' constexpr",
|
||||
null,
|
||||
"une définition de classe ou de type d'énumération ne peut pas apparaître dans une fonction constexpr ou dans le corps d'un constructeur",
|
||||
"une définition de classe ou de type enum ne peut pas apparaître dans une fonction constexpr ou dans le corps d'un constructeur",
|
||||
"seuls les attributs de style GNU sont autorisés ici",
|
||||
"utilisation non standard de 'auto' pour déduire le type d'un initialiseur et pour annoncer un type de retour de fin",
|
||||
"la déclaration d'une liste de paramètres void avec un type void qualifié est non standard",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"la variable dans la fonction constexpr n'est pas initialisée",
|
||||
"L'initialisation entre accolades d'une variable déclarée avec un type d'espace réservé mais sans `=` requiert exactement un élément à l'intérieur des accolades",
|
||||
"aucune configuration --target '%s' n'existe",
|
||||
"l'attribut n'est pas pris en charge dans les configurations x86 64 bits",
|
||||
"l'attribut est uniquement pris en charge dans les configurations 32 bits x86",
|
||||
"'%s' nécessite un argument",
|
||||
"un constructeur ou un destructeur ne peut pas être une coroutine",
|
||||
"%n ne peut pas être une coroutine",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"type interdit %t dans ce pointeur pour la fonction membre %nfd restreinte à amp",
|
||||
"type de retour interdit %t pour la fonction à restriction amp %nfd",
|
||||
"type de paramètre interdit %t pour la fonction à restriction amp %nfd",
|
||||
null,
|
||||
"construction non conforme dans la fonction à restriction amp %nfd",
|
||||
"classe de stockage interdite %s dans la fonction à restriction amp %nfd",
|
||||
"%s non autorisé dans la fonction à restriction amp %nfd",
|
||||
"cast non conforme dans la fonction à restriction amp",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"un type volatile %t empêche l'évaluation de constexpr de __builtin_bit_cast",
|
||||
"un type union, pointeur ou pointeur vers membre %t empêche l'évaluation de constexpr de __builtin_bit_cast",
|
||||
"%npTd, hérité via l'utilisation de decl %p",
|
||||
"la construction de sous-objet de %t pour l'héritage de constructeurs ne peut pas être effectuée -- le constructeur par défaut implicite est supprimé",
|
||||
"la construction de sous-objet de %t pour l'héritage de constructeurs ne peut pas être effectuée -- le constructeur associé est supprimé",
|
||||
"%n doit retourner void",
|
||||
"début de déclaration de membre non valide",
|
||||
"'auto' attendu",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"mappage de fichier de module pour '%s' spécifié plusieurs fois",
|
||||
"mappage d'unité d'en-tête pour '%s' spécifié plusieurs fois",
|
||||
"aucun mappage spécifié pour '%s'",
|
||||
"le mappage de fichier de module pour '%s' est non valide",
|
||||
null,
|
||||
"l'en-tête '%s' à importer est introuvable",
|
||||
"plusieurs fichiers dans la liste de fichiers de module correspondent à '%s'",
|
||||
"le fichier de module trouvé pour '%s' est destiné à un autre module",
|
||||
"n'importe quel genre de fichier de module",
|
||||
"impossible de lire le fichier de module",
|
||||
"la fonction intégrée n'est pas disponible, car le type char8_t n'est pas pris en charge avec les options actuelles",
|
||||
"l'option de ligne de commande --ms_await ne peut pas être spécifiée si les coroutines C++20 sont activées",
|
||||
null,
|
||||
"utilisation non standard du constructeur explicite %nod pour l'initialisation de l'élément d'agrégation par défaut",
|
||||
"la source ou la destination de l'intrinsèque de type memcpy ne pointe pas vers un objet",
|
||||
"l'intrinsèque de type memcpy tente de copier les types représentatifs distincts %t1 et %t2",
|
||||
@@ -3378,7 +3378,7 @@
|
||||
"'module' n'est pas autorisé dans un nom de module",
|
||||
null,
|
||||
null,
|
||||
"%n n'est pas un type énumération",
|
||||
"%n n'est pas un type enum",
|
||||
"l'énumérateur %no2 est en conflit avec %n1",
|
||||
"l'énumérateur %no a déjà été déclaré dans cette étendue %p",
|
||||
"la spécification 'throw()' ne fait pas partie de C++20 ni des versions ultérieures",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"module %sq1 position de fichier %d1 (position relative %d2) demandée pour la partition %sq2, qui précède le début de la partition",
|
||||
"module %sq1 position de fichier %d1 (position relative %d2) demandée pour la partition %sq2, qui dépasse la fin de sa partition",
|
||||
"module %sq1 position de fichier %d1 (position relative %d2) demandée pour la partition %sq2, qui est mal alignée avec ses éléments de partitions",
|
||||
"à partir du sous-champ %sq",
|
||||
"à partir du sous-champ %sq (position relative par rapport au nœud %d)",
|
||||
"à partir de la partition %sq, élément %d1 (position de fichier %d2, position relative %d3)",
|
||||
"les attributs lambda ne sont pas standard ici",
|
||||
"l’identificateur %sq peut être confondu avec un identificateur visuellement similaire qui apparaît %p",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"%d1 paramètre a été spécifié par le graphique de définition de paramètres IFC alors que %d2 paramètres ont été spécifiés par la déclaration IFC.",
|
||||
"%d1 paramètre a été spécifié par le graphique de définition de paramètres IFC alors que %d2 paramètres ont été spécifiés par la déclaration IFC.",
|
||||
"%d1 paramètre a été spécifié par le graphique de définition de paramètres IFC alors que %d2 paramètres ont été spécifiés par la déclaration IFC.",
|
||||
"La représentation IFC de la définition de la fonction %sq est manquante."
|
||||
"La représentation IFC de la définition de la fonction %sq est manquante.",
|
||||
"Le modificateur de fonction ne s'applique pas à la déclaration du modèle de membre.",
|
||||
"la sélection de membre implique un trop grand nombre de types anonymes imbriqués",
|
||||
"il n’existe aucun type commun entre les opérandes",
|
||||
"pointeur vers membre attendu",
|
||||
"un membre de tableau flexible ne peut pas être déclaré dans un type autrement vide.",
|
||||
"expected 'std::source_location::__impl' to be defined to a class with only the data members '_M_function_name', '_M_file_name', '_M_column', '_M_line'",
|
||||
"numéro de colonne donné trop grand pour l’implémentation de 'std::source_location'",
|
||||
"numéro de ligne donné trop grand pour l’implémentation de 'std::source_location'",
|
||||
"une constante de caractères UTF-16 ne peut pas occuper plusieurs unités de code ; valeur tronquée",
|
||||
"les deux arguments doivent avoir le même type",
|
||||
"le type %t n’est pas valide en tant qu’argument pour ce builtin",
|
||||
"appelé à partir de %nd :",
|
||||
"un type qualifié n’est pas standard pour les champs de bits anonymes.",
|
||||
"le type d’élément de la condition vectorielle (%t1) doit avoir la même taille que le type d’élément du résultat (%t2).",
|
||||
"le type d’opérande vectoriel à virgule flottante (%t) n’a pas de type de vecteur entier correspondant.",
|
||||
"La gestion des expressions \"requires\" n'est pas encore implémentée.",
|
||||
"en raison d’un attribut 'unavailable'",
|
||||
"qualificateur 'asm' dupliqué",
|
||||
"soit un champ de bits avec un type enum incomplet, soit une énumération opaque avec un type de base non valide",
|
||||
"a tenté de construire un élément à partir d’une partition IFC %sq à l’aide d’un index dans la partition IFC %sq2.",
|
||||
"le %sq de partition a spécifié sa taille d’entrée %d1 alors que %d2 était attendu.",
|
||||
"une exigence IFC inattendue s’est produite lors du traitement du module %sq1.",
|
||||
"échec de la condition à la ligne %d dans %s1 : %sq2",
|
||||
"la contrainte atomique dépend d’elle-même.",
|
||||
"La fonction 'noreturn' a un type de retour non vide",
|
||||
"une correction a été effectuée en supprimant le paramètre %sq (au %d d’index relatif)",
|
||||
"impossible de spécifier un argument template par défaut sur la définition d'un membre de modèle en dehors de sa classe",
|
||||
"nom d’identificateur IFC non valide %sq rencontré lors de la reconstruction de l’entité",
|
||||
"identificateur IFC non valide nommé %sq ignoré lors de la reconstruction de l’entité",
|
||||
"le module %sq valeur de tri non valide",
|
||||
"un modèle de fonction chargé à partir d’un module IFC a été analysé de manière incorrecte en tant que %nd",
|
||||
"échec du chargement d’une référence d’entité IFC dans le module %sq",
|
||||
"à partir de la partition %sq, élément %d1 (position de fichier %d2, position relative %d3)",
|
||||
"les désignateurs chaînés ne sont pas autorisés pour un type classe avec un destructeur non trivial",
|
||||
"une déclaration de spécialisation explicite ne peut pas être une déclaration friend",
|
||||
"le type std::float128_t n’est pas pris en charge ; std::float64_t sera utilisé à la place",
|
||||
"le type std::bfloat16_t n’est pas pris en charge ; std::float32_t sera utilisé à la place",
|
||||
"un guide de déduction ne peut pas être déclaré pour le modèle d’alias %no",
|
||||
"%n a été déclaré non disponible",
|
||||
"%n a été déclaré indisponible (%sq)",
|
||||
"en raison d’un attribut 'deprecated'",
|
||||
"les paramètres de modèle lambda explicites sont une fonctionnalité C++20",
|
||||
"l’utilisation de '_Noreturn' a été obsolète en C23; utiliser '[[noreturn]]' à la place",
|
||||
"l’utilisation de '_Alignof' a été obsolète en C23; utiliser 'alignof' à la place",
|
||||
"l’utilisation de '_Alignas' a été obsolète en C23; utiliser 'alignas' à la place",
|
||||
"l’utilisation de '_Bool' a été obsolète en C23; utiliser 'bool' à la place",
|
||||
"l’utilisation de '_Static_assert' a été obsolète en C23; utiliser 'static_assert' à la place",
|
||||
"l’utilisation de '_Thread_local' a été obsolète en C23; utiliser 'thread_local' à la place",
|
||||
"Le mode Microsoft doit être activé pour utiliser le fichier de module %sq (module IFC Microsoft Visual Studio)",
|
||||
"impossible d’ouvrir le fichier de module %sq",
|
||||
"trouvé dans le mappage de module pour le module %sq",
|
||||
"trouvé dans le mappage d’unité d’en-tête pour %sq"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"l'applicazione di '&' a una matrice non ha alcun effetto",
|
||||
"l'operando destro di '%%' è zero",
|
||||
"argomento incompatibile con il parametro formale",
|
||||
"argomento incompatibile con la conversione della stringa di formato corrispondente",
|
||||
"argomento non compatibile con la conversione della stringa di formato corrispondente (tipo previsto %t1 ma argomento di tipo %t2)",
|
||||
"non è stato possibile aprire il file di origine %sq. Non è presente alcuna directory nell'elenco di ricerca",
|
||||
"il cast deve essere di tipo integrale",
|
||||
"il cast deve essere di tipo aritmetico o puntatore",
|
||||
@@ -952,7 +952,7 @@
|
||||
"è possibile utilizzare l'opzione 'nonstd_using_decl' solo quando si esegue la compilazione nel linguaggio C++",
|
||||
"il tipo restituito della funzione 'main' deve essere 'int'",
|
||||
"il tipo di un parametro di modello non di tipo non può essere di classe",
|
||||
"impossibile specificare un argomento di modello predefinito nella dichiarazione di un membro di un modello di classe esterno alla relativa classe",
|
||||
"impossibile specificare un argomento di modello predefinito nella definizione di un membro di un modello di classe all'esterno del modello",
|
||||
"istruzione return non consentita in un gestore di un blocco try di funzione di un costruttore",
|
||||
"non è possibile combinare indicatori ordinari ed estesi in una designazione di inizializzatori",
|
||||
"il secondo indice deve essere minore del primo",
|
||||
@@ -1916,13 +1916,13 @@
|
||||
"un pacchetto parametri non può avere un valore predefinito",
|
||||
"C++/CLI può essere abilitato solo in modalità Microsoft C++",
|
||||
"non è possibile usare 'value__' come nome di una costante di enumerazione (è un nome riservato in questo contesto)",
|
||||
"è richiesto un valore di enumerazione esplicito in un tipo di enumerazione con tipo sottostante booleano",
|
||||
"è richiesto un valore di enumerazione esplicito in un tipo enumerazione con tipo sottostante booleano",
|
||||
null,
|
||||
"è stato fatto riferimento al pacchetto parametri %sq che però non è espanso",
|
||||
"l'espansione del pacchetto non usa pacchetti di argomenti",
|
||||
"il pacchetto %sq non ha lo stesso numero di elementi di %sq2",
|
||||
null,
|
||||
"l'attributo vector_size non è consentito con un tipo di enumeratore",
|
||||
"l'attributo vector_size non è consentito con un tipo enumerazione",
|
||||
"una proprietà non può essere contemporaneamente statica e virtuale",
|
||||
"una proprietà indicizzata non può essere semplice",
|
||||
"questa dichiarazione non può apparire in una definizione di proprietà",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"un identificatore di visibilità di primo livello richiede una definizione di tipo",
|
||||
"una proprietà trivial non può disporre di un tipo di riferimento",
|
||||
"una proprietà trivial non può disporre di un tipo const o volatile",
|
||||
"%nd è stato dichiarato in precedenza come un tipo diverso di tipo di enumeratore",
|
||||
"%nd è stato dichiarato in precedenza come tipo di enumerazione diverso",
|
||||
"in una variabile acquisita da un lambda non può essere presente un tipo classe %[managed]",
|
||||
"l'override della funzione virtuale con un tipo restituito con variante non è consentito in una classe %[managed]",
|
||||
"matrice di handle non consentita",
|
||||
@@ -2175,7 +2175,7 @@
|
||||
"un indicatore di override denominato è consentito solo in una classe %[managed]",
|
||||
"nessun membro designato dall'indicatore di override denominato corrisponde al tipo di membro",
|
||||
"una dichiarazione di costruttore statico non può includere un indicatore di override denominato",
|
||||
"il tipo di enumerazione con ambito deve avere un nome",
|
||||
"il tipo enumerazione con ambito deve avere un nome",
|
||||
"trasferimento del controllo in un blocco finally non consentito",
|
||||
"istruzione return all'interno di un blocco finally non consentita",
|
||||
"con il blocco try è richiesto almeno un gestore o una clausola finally",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"%nd dichiarato in precedenza con un tipo base diverso",
|
||||
"in questo punto non è possibile usare 'enum class' ed 'enum struct' (usare semplicemente 'enum')",
|
||||
"è consentito un solo livello di parentesi in un inizializzatore per un oggetto di tipo %t",
|
||||
"non è possibile usare %nd come nome del tipo di enumerazione",
|
||||
"non è possibile usare %nd come nome del tipo enumerazione",
|
||||
null,
|
||||
"impossibile utilizzare un inizializzatore tra parentesi con 'new auto'",
|
||||
"la definizione di std::initializer_list non contiene il costruttore previsto",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"un inizializzatore tra parentesi per un'entità non classe deve essere un'espressione, non un elenco tra parentesi graffe",
|
||||
"un elenco tra parentesi graffe non fornisce un tipo restituito per questa espressione lambda",
|
||||
"la specifica dell'eccezione dichiarata non è compatibile con quella generata",
|
||||
"i tipi di enumerazione con ambito sono una funzionalità C++11",
|
||||
"i tipi enumerazione con ambito sono una funzionalità C++11",
|
||||
"un tipo di funzione non può essere inizializzato dal valore",
|
||||
"l'inizializzazione di elenco di un tipo di oggetto %t non è consentita perché il tipo non è completo",
|
||||
"std::initializer_list contiene un distruttore non previsto. La libreria non è configurata correttamente",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"la variabile nella funzione constexpr non è inizializzata",
|
||||
"per l'inizializzazione tra parentesi graffe di una variabile dichiarata con un tipo di segnaposto, ma senza `=`, è necessario specificare un solo elemento all'interno delle parentesi",
|
||||
"non esistono configurazioni '%s' --target",
|
||||
"l'attributo non è supportato in configurazioni x86 a 64 bit",
|
||||
"l'attributo è supportato soltanto in configurazioni x86 a 32 bit",
|
||||
"con '%s' è richiesto un argomento",
|
||||
"un costruttore o un distruttore non può essere una coroutine",
|
||||
"%n non può essere una coroutine",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"il tipo %t nel puntatore this per la funzione membro con limitazioni amp %nfd non è valido",
|
||||
"il tipo restituito %t per la funzione con restrizioni AMP %nfd non è valido",
|
||||
"il tipo di parametro %t per la funzione con restrizioni AMP %nfd non è valido",
|
||||
null,
|
||||
"il costrutto nella funzione con restrizioni AMP %nfd non è valido",
|
||||
"la classe di archiviazione %s nella funzione con restrizioni AMP %nfd non è valida",
|
||||
"%s non è consentito nella funzione con restrizioni AMP %nfd",
|
||||
"il cast nella funzione con restrizioni AMP non è valido",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"un tipo volatile %t impedisce la valutazione constexpr di __builtin_bit_cast",
|
||||
"un tipo unione, puntatore o puntatore a membro %t impedisce la valutazione constexpr di __builtin_bit_cast",
|
||||
"%npTd, ereditato tramite l'uso della dichiarazione %p",
|
||||
"non è possibile costruire oggetti secondari di %t per ereditare costruttori. Il costruttore predefinito implicito è stato eliminato",
|
||||
"non è possibile costruire oggetti secondari di %t per ereditare costruttori. Il costruttore associato è stato eliminato",
|
||||
"%n deve restituire void",
|
||||
"l'inizio della dichiarazione di membro non è valido",
|
||||
"è previsto 'auto'",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"il mapping del file del modulo per '%s' è stato specificato più di una volta",
|
||||
"il mapping dell'unità intestazione per '%s' è stato specificato più di una volta",
|
||||
"non è stato specificato alcun mapping per '%s'",
|
||||
"Il mapping del file del modulo per '%s' non è valido",
|
||||
null,
|
||||
"non è possibile trovare l'intestazione '%s' da importare",
|
||||
"più di un file nell'elenco file di modulo corrisponde a '%s'",
|
||||
"il file di modulo trovato per '%s' è riferito a un modulo diverso",
|
||||
"qualsiasi tipo di modulo",
|
||||
"non è possibile leggere il file del modulo",
|
||||
"la funzione predefinita non è disponibile perché il tipo char8_t non è supportato con le opzioni correnti",
|
||||
"non è possibile specificare l'opzione della riga di comando --ms_await se le coroutine di C++20 sono abilitate",
|
||||
null,
|
||||
"uso non standard del costruttore esplicito %nod per l'inizializzazione dell'elemento di aggregazione predefinito",
|
||||
"l'origine o la destinazione dell'intrinseco simile a memcpy non punta a un oggetto",
|
||||
"l'intrinseco simile a memcpy prova a copiare i tipi distinti dal punto di vista della rappresentazione %t1 e %t2",
|
||||
@@ -3378,7 +3378,7 @@
|
||||
"Il nome di un modulo non può contenere 'module'",
|
||||
null,
|
||||
null,
|
||||
"%n non è un tipo di enumerazione",
|
||||
"%n non è un tipo enumerazione.",
|
||||
"l'enumeratore %no2 è in conflitto con %n1",
|
||||
"l'enumeratore %no è già stato dichiarato in questo ambito %p",
|
||||
"la specifica 'throw()' non fa parte di C++20 e versioni successive",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"modulo %sq1 posizione del file %d1 (posizione relativa %d2) richiesta per la partizione %sq2, che precede l'inizio della partizione",
|
||||
"modulo %sq1 posizione del file %d1 (posizione relativa %d2) richiesta per la partizione %sq2, che causa l'overflow della fine della partizione",
|
||||
"modulo %sq1 posizione file %d1 (posizione relativa %d2) richiesta per la partizione %sq2, che non è allineata con i relativi elementi di partizioni",
|
||||
"dal sottocampo %sq",
|
||||
"dal sottocampo %sq (posizione relativa al nodo %d)",
|
||||
"dalla partizione %sq elemento %d1 (posizione file %d2, posizione relativa %d3)",
|
||||
"attributi lambda non conformi allo standard",
|
||||
"l'identificatore %sq potrebbe essere confuso con un identificatore visivamente simile visualizzato %p",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"%d1 parametri specificati dal grafico di definizione dei parametri IFC mentre %d2 parametri sono stati specificati dalla dichiarazione IFC",
|
||||
"%d1 parametro è stato specificato dal grafico di definizione del parametro IFC mentre %d2 parametri sono stati specificati dalla dichiarazione IFC",
|
||||
"%d1 parametri sono stati specificati dal grafico di definizione del parametro IFC mentre %d2 parametro è stato specificato dalla dichiarazione IFC",
|
||||
"Manca la rappresentazione IFC della definizione della funzione %sq"
|
||||
"Manca la rappresentazione IFC della definizione della funzione %sq",
|
||||
"il modificatore di funzione non si applica alla dichiarazione del modello di membro",
|
||||
"la selezione dei membri implica troppi tipi anonimi annidati",
|
||||
"non esiste alcun tipo comune tra gli operandi",
|
||||
"è previsto un puntatore a membro",
|
||||
"un membro di matrice flessibile non può essere dichiarato in un tipo altrimenti vuoto",
|
||||
"previsto 'std::source_location::__impl' da definire in una classe con solo i membri dati '_M_function_name', '_M_file_name', '_M_column', '_M_line'",
|
||||
"il numero di colonna specificato è troppo grande per l'implementazione di 'std::source_location'",
|
||||
"il numero di riga specificato è troppo grande per l'implementazione di 'std::source_location'",
|
||||
"una costante di caratteri UTF-16 non può occupare più di un'unità di codice; valore troncato",
|
||||
"entrambi gli argomenti devono avere lo stesso tipo",
|
||||
"il tipo %t non è valido come argomento per questa compilazione",
|
||||
"chiamato da %nd:",
|
||||
"un tipo qualificato non è conforme allo standard per i campi di bit anonimi",
|
||||
"il tipo di elemento della condizione vettoriale (%t1) deve avere le stesse dimensioni del tipo di elemento del risultato (%t2)",
|
||||
"il tipo di operando di vettore a virgola mobile (%t) non ha un tipo di vettore intero corrispondente",
|
||||
"il mangling per le espressioni 'requires' non è ancora implementato",
|
||||
"a causa di un attributo 'non disponibile'",
|
||||
"qualificatore 'asm' duplicato",
|
||||
"o un campo di bit con un tipo di enumerazione incompleto o un'enumerazione opaca con un tipo di base non valido",
|
||||
"ha tentato di costruire un elemento dalla partizione IFC %sq utilizzando un indice nella partizione IFC %sq2",
|
||||
"la partizione %sq ha specificato la dimensione della voce come %d1 mentre era previsto %d2",
|
||||
"Durante l'elaborazione del modulo %sq1 è stato riscontrato un requisito IFC imprevisto.",
|
||||
"condizione fallita alla riga %d in %s1: %sq2",
|
||||
"il vincolo atomico dipende da se stesso",
|
||||
"La funzione 'noreturn' ha un tipo restituito non void",
|
||||
"è stata apportata una correzione eliminando il parametro %sq (in corrispondenza dell'indice relativo %d)",
|
||||
"non è possibile specificare un argomento di modello predefinito nella definizione di un modello di membro all'esterno della relativa classe",
|
||||
"nome identificatore IFC %sq non valido rilevato durante la ricostruzione dell'entità",
|
||||
"nome identificatore IFC %sq non valido ignorato durante la ricostruzione dell'entità",
|
||||
"il modulo %sq valore di ordinamento non valido",
|
||||
"un modello di funzione caricato da un modulo IFC è stato analizzato erroneamente come %nd",
|
||||
"non è stato possibile caricare un riferimento all'entità IFC nel modulo %sq",
|
||||
"dalla partizione %sq elemento %d1 (posizione file %d2, posizione relativa %d3)",
|
||||
"gli indicatori concatenati non sono consentiti per un tipo di classe con un distruttore non banale",
|
||||
"una dichiarazione di specializzazione esplicita non può essere una dichiarazione Friend",
|
||||
"il tipo std::float128_t non è supportato; verrà invece usato std::float64_t",
|
||||
"il tipo std::bfloat16_t non è supportato; verrà utilizzato std::float32_t",
|
||||
"non è possibile dichiarare una guida alla deduzione per il modello di alias %no",
|
||||
"%n dichiarato non disponibile",
|
||||
"%n dichiarato non disponibile (%sq)",
|
||||
"a causa di un attributo 'deprecato'",
|
||||
"i parametri espliciti del modello lambda sono una funzionalità di C++20",
|
||||
"l'uso di '_Noreturn' è obsoleto in C23; usare '[[noreturn]]'",
|
||||
"l'uso di '_Alignof' è obsoleto in C23; usare 'alignof'",
|
||||
"l'uso di '_Alignas' è obsoleto in C23; usare 'alignas'",
|
||||
"l'uso di '_Bool' è obsoleto in C23; usare 'bool'",
|
||||
"l'uso di '_Static_assert' è obsoleto in C23; usare 'static_assert'",
|
||||
"l'uso di '_Thread_local' è obsoleto in C23; usare 'thread_local'",
|
||||
"È necessario abilitare la modalità Microsoft per usare il file del modulo %sq (un modulo IFC Microsoft Visual Studio)",
|
||||
"non è stato possibile aprire il file del modulo %sq",
|
||||
"trovato nella mappa dei moduli per il modulo %sq",
|
||||
"trovato nella mappa delle unità intestazione per %sq"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"配列に適用された '&' は無効です",
|
||||
"'%%' の右オペランドが 0 です",
|
||||
"引数と仮パラメーターの間に互換性がありません",
|
||||
"引数と、対応する書式指定文字列変換の間に互換性がありません",
|
||||
"引数は対応する書式指定文字列変換と互換性がありません (想定されていた型は %t1 ですが引数の型は %t2 でした)",
|
||||
"ソース ファイル %sq を開けませんでした (検索リストにディレクトリがありません)",
|
||||
"キャストは整数型である必要があります",
|
||||
"キャストは演算型またはポインター型である必要があります",
|
||||
@@ -952,7 +952,7 @@
|
||||
"オプション 'nonstd_using_decl' は C++ をコンパイルするときにのみ使用できます",
|
||||
"関数 'main' の戻り値の型は 'int' である必要があります",
|
||||
"非型テンプレート パラメーターにクラス型を使用することはできません",
|
||||
"既定のテンプレート引数はクラスの外部でのクラス テンプレートのメンバーの宣言では指定できません",
|
||||
"既定のテンプレート引数は、そのテンプレートの外部でのクラス テンプレートのメンバーの定義では指定できません",
|
||||
"コンストラクターの関数 try ブロックのハンドラーでは return ステートメントを使用できません",
|
||||
"指定子 ordinary と extended を初期化子の指定で組み合わせることはできません",
|
||||
"2 番目の添字を 1 番目より小さくすることはできません",
|
||||
@@ -1644,7 +1644,7 @@
|
||||
"%t2 のコピー コンストラクターにアクセスできないため、%t1 のコピー コンストラクターの宣言は抑制されています",
|
||||
"%t1 のデストラクターは、アクセスできず、また %t2 のデストラクターが抑制されたため、呼び出されません",
|
||||
"ファイル末尾の定義の終わりにセミコロンまたは宣言子がありません",
|
||||
"最初の引数は整数または列挙型へのポインターでなければなりません",
|
||||
"最初の引数は整数または列挙型へのポインターである必要があります",
|
||||
"同期された操作はサイズが 1、2、4、または 8 のオブジェクトでのみ有効です",
|
||||
"余分な引数は無視されました",
|
||||
"コマンド ライン定義でマクロ名 %sq の後に '=' があることが想定されます",
|
||||
@@ -1916,7 +1916,7 @@
|
||||
"パラメーター パックには既定値を設定できません",
|
||||
"C++/CLI は Microsoft C++ モードでのみ有効にできます",
|
||||
"'value__' は列挙定数の名前として使用できません (このコンテキストではこの名前は予約されています)",
|
||||
"基になる型がブールの列挙型には、明示的な列挙子の値が必要です",
|
||||
"基になる型がブールである列挙型には明示的な列挙子の値が必要です",
|
||||
null,
|
||||
"パラメーター パック %sq が参照されましたが展開されていません",
|
||||
"パックの展開で引数パックが使用されません",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"トップレベルの可視性指定子には型定義が必要です",
|
||||
"trivial プロパティに参照型を指定することはできません",
|
||||
"trivial プロパティに const 型または volatile 型を指定することはできません",
|
||||
"%nd は以前に異なる種類の列挙型として宣言されました",
|
||||
"%nd は以前に異なる種類の列挙型として宣言されています",
|
||||
"ラムダでキャプチャされる変数には %[managed] クラス型を使用できません",
|
||||
"共変の戻り値の型をオーバーライドする仮想関数は、%[managed] クラスでは使用できません",
|
||||
"ハンドルの配列は使用できません",
|
||||
@@ -2175,7 +2175,7 @@
|
||||
"名前付きオーバーライド指定子は %[managed] クラスでのみ使用できます",
|
||||
"名前付きオーバーライド指定子で指定されたメンバーは、このメンバーの型と一致しません",
|
||||
"静的コンストラクター宣言には名前付きオーバーライド指定子を含めることができません",
|
||||
"スコープを持つ列挙型型には名前を指定する必要があります",
|
||||
"スコープ付き列挙型には名前を指定する必要があります",
|
||||
"finally ブロックへの制御の転送は許可されていません",
|
||||
"finally ブロック内では return ステートメントは使用できません",
|
||||
"try ブロックには 1 つ以上のハンドラーまたは finally 句が必要です",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"非クラス エンティティのかっこで囲まれた初期化子は、式である必要があり、中かっこで囲まれたリストであってはなりません",
|
||||
"中かっこで囲まれたリストは、このラムダの戻り値の型を提供しません",
|
||||
"宣言された例外指定は生成された例外指定と互換性がありません",
|
||||
"スコープを持つ列挙型型は C++11 の機能です",
|
||||
"スコープ付き列挙型は C++11 の機能です",
|
||||
"関数型を値で初期化できません",
|
||||
"オブジェクト型 %t のリスト初期化は、型が不完全であるため許可されません",
|
||||
"std::initializer_list にはデストラクターが含まれていて、ライブラリは正しく構成されている必要があります",
|
||||
@@ -2406,7 +2406,7 @@
|
||||
"関数呼び出しでは、定数式に定数値が必要です",
|
||||
"関数 'main' は constexpr として宣言できません",
|
||||
null,
|
||||
"クラス型または列挙型の定義は、constexpr 関数またはコンストラクターの本体には指定できません",
|
||||
"クラスまたは列挙型の定義は、constexpr 関数またはコンストラクターの本体では指定できません",
|
||||
"ここでは GNU 形式の属性のみを使用できます",
|
||||
"初期化子から型を推測すること、および後続の戻り値の型を知らせることを目的とした、'auto' の非標準の使用です",
|
||||
"修飾された void 型を使用した void パラメーター リストの宣言は非標準です",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"constexpr 関数の変数が初期化されていません",
|
||||
"中かっこで囲まれた変数の初期化がプレースホルダー型で宣言されましたが、`=` がないため、中かっこ内の要素と正確に一致しなければなりません",
|
||||
"'%s' --target の構成が存在しません",
|
||||
"64 ビット x86 構成では、属性がサポートされていません",
|
||||
"属性は 32 ビット x86 構成でのみサポートされています",
|
||||
"'%s' は引数が必要です",
|
||||
"コンストラクターまたはデストラクターをコルーチンにすることはできません",
|
||||
"%n をコルーチンにすることはできません",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"amp 制限メンバー関数 %nfd の this-pointer に無効な型 %t",
|
||||
"amp 制限関数 %nfd に無効な戻り値の型 %t",
|
||||
"amp 制限関数 %nfd に無効なパラメーター型 %t",
|
||||
null,
|
||||
"amp 制限関数 %nfd に無効なコンストラクト",
|
||||
"無効なストレージ クラス %s (amp 制限関数 %nfd)",
|
||||
"%s は amp 制限関数 %nfd では許可されていません",
|
||||
"amp 制限関数に無効なキャスト",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"volatile 型 %t は、__builtin_bit_cast の constexpr 評価を妨げます",
|
||||
"UNION、ポインター、またはメンバーへのポインター型 %t は、__builtin_bit_cast の constexpr 評価を妨げます",
|
||||
"%npTd (宣言 %p を使用して継承されています)",
|
||||
"コンストラクターを継承するための %t のサブオブジェクト構築は実行できません。暗黙の既定のコンストラクターは削除されます",
|
||||
"コンストラクターを継承するための %t のサブオブジェクト構築は実行できません。関連するコンストラクターは削除されます",
|
||||
"%n は void を返す必要があります",
|
||||
"メンバー宣言の先頭が無効です",
|
||||
"'auto' が必要です",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"'%s' のモジュール ファイル マッピングが 2 回以上指定されました",
|
||||
"'%s' のヘッダー単位のマッピングが 2 回以上指定されました",
|
||||
"'%s' にマッピングが指定されていません",
|
||||
"'%s' のモジュール ファイル マッピングが無効です",
|
||||
null,
|
||||
"インポートするヘッダー '%s' が見つかりません",
|
||||
"モジュール ファイル リスト内の複数のファイルが '%s' と一致しています",
|
||||
"'%s' に対して見つかったモジュール ファイルは別のモジュール用です",
|
||||
"あらゆる種類のモジュール ファイル",
|
||||
"モジュール ファイルを読み取れません",
|
||||
"現在のオプションで char8_t 型がサポートされていないので、ビルトイン関数を使用できません",
|
||||
"--ms_await コマンド ライン オプションは、C++20 コルーチンが有効になっている場合は指定できません",
|
||||
null,
|
||||
"既定の集約要素の初期化における明示的なコンストラクター %nod の非標準的な使用",
|
||||
"memcpy に似た組み込み関数のソースやターゲットでオブジェクトが指定されていません",
|
||||
"memcpy に似た組み込み関数により、表現上個別の型である %t1 と %t2 のコピーが試行されます",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"モジュール %sq1 ファイル位置 %d1 (相対位置 %d2) がパーティション %sq2 に対して要求されました - これはパーティションの始点より前です",
|
||||
"モジュール %sq1 ファイル位置 %d1 (相対位置 %d2) がパーティション %sq2 に対して要求されました - これはそのパーティションの終点をオーバーフローしています",
|
||||
"モジュール %sq1 ファイル位置 %d1 (相対位置 %d2) がパーティション %sq2 に対して要求されました - これはそのパーティション要素の整列誤りです",
|
||||
"サブフィールド %sq の始点",
|
||||
"サブフィールド %sq から (ノード %d への相対位置)",
|
||||
"パーティション元 %sq 要素 %d1 (ファイル位置 %d2、相対位置 %d3)",
|
||||
"ラムダ属性はここでは非標準です",
|
||||
"識別子 %sq は、%p に表示される視覚的に類似したものと混同される可能性があります",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"%d1 個のパラメーターが IFC パラメーター定義グラフで指定されましたが、IFC 宣言では %d2 個のパラメーターが指定されました",
|
||||
"%d1 個のパラメーターが IFC パラメーター定義グラフで指定されましたが、IFC 宣言では %d2 個のパラメーターが指定されました",
|
||||
"%d1 個のパラメーターが IFC パラメーター定義グラフで指定されましたが、IFC 宣言では %d2 個のパラメーターが指定されました",
|
||||
"関数 %sq の定義の IFC 表現が見つかりません"
|
||||
"関数 %sq の定義の IFC 表現が見つかりません",
|
||||
"関数修飾子はメンバー テンプレート宣言には適用されません",
|
||||
"メンバーの選択に含まれる、入れ子になった匿名のタイプが多すぎます",
|
||||
"オペランド間に共通型がありません",
|
||||
"メンバーへのポインターが必要です",
|
||||
"フレキシブル配列メンバーは、otherwise-empty 型で宣言できません",
|
||||
"'std::source_location::__impl' が、データ メンバー '_M_function_name'、'_M_file_name'、'_M_column'、'_M_line' のみを持つクラスに定義される必要があります",
|
||||
"指定された列番号は 'std::source_location' 実装には大きすぎます",
|
||||
"指定された行番号は 'std::source_location' 実装には大きすぎます",
|
||||
"UTF-16 文字定数は複数のコード単位を占有できません。値が切り捨てられました",
|
||||
"両方の引数は同じ型である必要があります",
|
||||
"型 %t は、このビルトインの引数として無効です",
|
||||
"%nd からの呼び出し:",
|
||||
"修飾された型は匿名ビット フィールドでは非標準です",
|
||||
"ベクトル条件 (%t1) の要素型は、結果の要素型 (%t2) と同じサイズである必要があります",
|
||||
"浮動小数点ベクトル オペランド型 (%t) に一致する整数ベクトル型がありません",
|
||||
"'requires' 式のためのマングリングは、まだ実装されていません",
|
||||
"'unavailable' 属性が原因です",
|
||||
"'asm' 修飾子の複製",
|
||||
"不完全な列挙型を持つビット フィールド、または無効な基本型を持つ不透明な列挙のいずれかです",
|
||||
"IFC パーティション %sq2 へのインデックスを使用して、IFC パーティション %sq から要素を構築しようとしました",
|
||||
"パーティション %sq は、%d2 が予期されたときにエントリ サイズを %d1 として指定しました",
|
||||
"モジュール %sq1 の処理中に予期しない IFC 要件が発生しました",
|
||||
"条件が行 %d で失敗しました (%s1: %sq2)",
|
||||
"アトミック制約は、それ自体に依存します",
|
||||
"'noreturn' 関数に void 以外の戻り値の型があります",
|
||||
"パラメーター %sq (相対インデックス %d) を削除することで修正が行われています",
|
||||
"クラス外のメンバー テンプレートの定義では、既定のテンプレート引数を指定できません",
|
||||
"エンティティの再構築中に無効な IFC 識別子名 %sq が見つかりました",
|
||||
"エンティティの再構築中に %sq と命名された無効な IFC 識別子がスキップされました",
|
||||
"モジュール %sq は無効な並べ替え値です",
|
||||
"IFC モジュールから読み込まれた関数テンプレートが誤って %nd として解析されました",
|
||||
"モジュール %sq で IFC エンティティ参照を読み込めませんでした",
|
||||
"パーティション元 %sq 要素 %d1 (ファイル位置 %d2、相対位置 %d3)",
|
||||
"非単純デストラクターを持つクラス型では、チェーンされた指定子は許可されていません",
|
||||
"明示的特殊化宣言はフレンド宣言にできない場合があります",
|
||||
"std::float128_t 型はサポートされていません。代わりに std::float64_t が使用されます",
|
||||
"std::bfloat16_t 型はサポートされていません。代わりに std::float32_t が使用されます",
|
||||
"エイリアス テンプレート %no に対して演繹ガイドを宣言することはできません",
|
||||
"%n は使用できないと宣言されました",
|
||||
"%n は使用できないと宣言されました (%sq)",
|
||||
"'deprecated' 属性が原因です",
|
||||
"明示的なラムダ テンプレート パラメーターは C++20 機能です",
|
||||
"'_Noreturn' の使用は C23 で廃止されました。代わりに '[[noreturn]]' を使用してください",
|
||||
"'_Alignof' の使用は C23 で廃止されました。代わりに 'alignof' を使用してください",
|
||||
"'_Alignas' の使用は C23 で廃止されました。代わりに 'alignas' を使用してください",
|
||||
"'_Bool' の使用は C23 で廃止されました。代わりに 'bool' を使用してください",
|
||||
"'_Static_assert' の使用は C23 で廃止されました。代わりに 'static_assert' を使用してください",
|
||||
"'_Thread_local' の使用は C23 で廃止されました。代わりに 'thread_local' を使用してください",
|
||||
"モジュール ファイル %sq (Microsoft Visual Studio IFC モジュール) を使用するには、Microsoft モードを有効にする必要があります",
|
||||
"モジュール ファイル %sq を開くことができませんでした",
|
||||
"モジュール %sq のモジュール マップで見つかりました",
|
||||
"%sq のヘッダー ユニット マップで見つかりました"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"배열에 적용된 '&'는 효과가 없습니다.",
|
||||
"'%%'의 오른쪽 피연산자는 0입니다.",
|
||||
"인수가 정식 매개 변수와 호환되지 않습니다.",
|
||||
"인수가 대응하는 서식 문자열 변환과 호환되지 않습니다.",
|
||||
"인수가 해당 형식 문자열 변환과 호환되지 않습니다(형식 %t1이(가) 예상되지만 인수 형식이 %t2임).",
|
||||
"소스 파일 %sq을(를) 열 수 없습니다(검색 목록에 디렉터리 없음).",
|
||||
"캐스트 형식은 정수 계열이어야 합니다.",
|
||||
"캐스트 형식은 산술 또는 포인터여야 합니다.",
|
||||
@@ -952,7 +952,7 @@
|
||||
"'nonstd_using_decl' 옵션은 C++를 컴파일할 경우에만 사용할 수 있습니다.",
|
||||
"'main' 함수의 반환 형식은 'int'여야 합니다.",
|
||||
"비형식 템플릿 매개 변수에는 클래스 형식을 사용할 수 없습니다.",
|
||||
"클래스 외부의 클래스 템플릿의 선언에서 기본 템플릿 인수를 지정할 수 없습니다.",
|
||||
"기본 템플릿 인수는 템플릿 외부의 클래스 템플릿 멤버 정의에 지정할 수 없습니다.",
|
||||
"생성자의 함수 try 블록 처리기에는 return 문을 사용할 수 없습니다.",
|
||||
"일반 지정자와 확장 지정자를 이니셜라이저 지정에서 결합할 수 없습니다.",
|
||||
"두 번째 첨자는 첫 번째 첨자보다 작아서는 안 됩니다.",
|
||||
@@ -1644,7 +1644,7 @@
|
||||
"%t2의 선언에 액세스할 수 없기 때문에 %t1에 대한 복사 생성자 선언이 표시되지 않았습니다.",
|
||||
"%t1의 소멸자는 액세스가 불가능하며 %t2의 소멸자가 표시되지 않았기 때문에 호출되지 않습니다.",
|
||||
"파일 끝에 있는 정의 다음에 세미콜론이나 선언자가 오지 않았습니다.",
|
||||
"첫 번째 인수는 정수 포인터이거나 열거형 형식이어야 합니다.",
|
||||
"첫 번째 인수는 정수 또는 열거형 형식에 대한 포인터여야 합니다.",
|
||||
"동기화된 작업은 크기가 1, 2, 4 또는 8인 개체에만 유효합니다.",
|
||||
"불필요한 인수가 무시되었습니다.",
|
||||
"명령줄 정의에서 매크로 이름 %sq 다음에는 '='로 간주됩니다.",
|
||||
@@ -1916,13 +1916,13 @@
|
||||
"매개 변수 팩에는 기본값을 사용할 수 없습니다.",
|
||||
"C++/CLI는 Microsoft C++ 모드에서만 사용할 수 있습니다.",
|
||||
"'value__'는 열거자 상수의 이름으로 사용할 수 없습니다(이 컨텍스트에서 예약된 이름임).",
|
||||
"부울 내부 형식을 사용하는 열거형 형식에는 명시적 열거자 값이 필요합니다.",
|
||||
"부울 기본 형식이 있는 열거형 형식에는 명시적 열거자 값이 필요합니다.",
|
||||
null,
|
||||
"매개 변수 팩 %sq이(가) 참조되었지만 확장되지 않았습니다.",
|
||||
"팩 확장에는 인수 팩이 사용되지 않습니다.",
|
||||
"%sq 팩의 요소 수가 %sq2과(와) 같지 않습니다.",
|
||||
null,
|
||||
"열거형 형식에서 vector_size 특성을 사용할 수 없습니다.",
|
||||
"vector_size 속성은 열거형 형식에 허용되지 않습니다.",
|
||||
"속성은 static이면서 virtual일 수 없습니다.",
|
||||
"인덱싱된 속성은 trivial일 수 없습니다.",
|
||||
"속성 정의에는 이 선언이 표시될 수 없습니다.",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"최상위 표시 유형 지정자에는 형식 정의가 필요합니다.",
|
||||
"trivial 속성에는 참조 형식을 사용할 수 없습니다.",
|
||||
"trivial 속성에는 const 또는 volatile 형식을 사용할 수 없습니다.",
|
||||
"%nd은(는) 이전에 다른 종류의 열거형 형식으로 선언되었습니다.",
|
||||
"%nd는 이전에 다른 종류의 열거형 형식으로 선언되었습니다.",
|
||||
"람다로 캡처된 변수에는 %[managed] 클래스 형식을 사용할 수 없습니다.",
|
||||
"%[managed] 클래스에는 공변(covariant) 반환 형식을 사용한 가상 함수 재정의를 사용할 수 없습니다.",
|
||||
"핸들의 배열을 사용할 수 없습니다.",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"%nd이(가) 이전에 다른 기본 형식을 사용하여 선언되었습니다.",
|
||||
"여기에서는 'enum class' 및 'enum struct'를 사용할 수 없습니다. 대신 일반 'enum'을 사용하세요.",
|
||||
"형식이 %t인 개체의 경우 이니셜라이저에 중괄호가 한 수준만 허용됩니다.",
|
||||
"%nd을(를) 열거형 형식 이름으로 사용할 수 없습니다.",
|
||||
"%nd는 열거형 이름으로 사용할 수 없습니다.",
|
||||
null,
|
||||
"중괄호로 묶인 이니셜라이저는 'new auto'와 함께 사용할 수 없습니다.",
|
||||
"std::initializer_list의 정의에 필요한 생성자가 포함되어 있지 않습니다.",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"비클래스 엔터티의 괄호로 묶인 이니셜라이저는 중괄호로 묶인 목록이 아니라 식이어야 합니다.",
|
||||
"중괄호로 묶인 목록은 이 람다에 대한 반환 형식을 제공하지 않습니다.",
|
||||
"선언된 예외 사양이 생성된 예외 사양과 호환되지 않습니다.",
|
||||
"범위가 지정된 열거형 형식이 C++11 기능입니다.",
|
||||
"범위가 지정된 열거형 형식은 C++11 기능입니다.",
|
||||
"함수 형식의 값은 초기화할 수 있습니다.",
|
||||
"%t 개체 형식의 list-initialization은 형식이 불완전하므로 허용되지 않습니다.",
|
||||
"std::initializer_list에 소멸자가 없어야 하는데 있습니다. 라이브러리가 잘못 구성되었습니다.",
|
||||
@@ -2406,7 +2406,7 @@
|
||||
"함수를 호출하려면 상수 식에 상수 값이 있어야 합니다.",
|
||||
"'main' 함수는 constexpr로 선언할 수 없습니다.",
|
||||
null,
|
||||
"클래스 또는 열거형 형식 정의는 constexpr 함수 또는 생성자 본문에 사용할 수 없습니다.",
|
||||
"클래스 또는 열거형 형식 정의는 constexpr 함수 또는 생성자 본문에 나타날 수 없습니다.",
|
||||
"여기에는 GNU 스타일의 특성만 허용됩니다.",
|
||||
"이니셜라이저에서 형식을 추론하고 후행 반환 형식을 알리는 'auto'의 비표준 사용입니다.",
|
||||
"정규화된 void 형식의 void 매개 변수 목록 선언은 표준이 아닙니다.",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"constexpr 함수에 있는 변수의 초기화가 취소되었습니다.",
|
||||
"자리 표시자 형식은 있으나 `=`는 없이 선언된 변수의 중괄호 초기화에서는 중괄호 안에 정확히 하나의 요소가 있어야 합니다.",
|
||||
"'%s' 없음 --대상 구성이 존재함",
|
||||
"64비트 x86 구성에서 지원되지 않는 특성",
|
||||
"속성은 32비트 x86 구성에서만 지원됩니다.",
|
||||
"'%s'에 인수 필요",
|
||||
"생성자 또는 소멸자는 코루틴일 수 없습니다.",
|
||||
"%n은(는) 코루틴일 수 없습니다.",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"amp 제한 멤버 함수 %nfd에 대한 this 포인터의 %t 형식이 잘못되었습니다.",
|
||||
"amp 제한 함수 %nfd의 반환 형식 %t이(가) 잘못되었습니다.",
|
||||
"amp 제한 함수 %nfd의 매개 변수 형식 %t이(가) 잘못되었습니다.",
|
||||
null,
|
||||
"amp 제한 함수 %nfd의 구문이 잘못되었습니다.",
|
||||
"잘못된 스토리지 클래스 %s(amp 제한 함수 %nfd 내)",
|
||||
"%s은(는) amp 제한 함수 %nfd에서 사용할 수 없습니다.",
|
||||
"amp 제한 함수의 캐스트가 잘못되었습니다.",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"volatile 형식 %t은(는) __builtin_bit_cast의 constexpr 평가를 차단합니다.",
|
||||
"공용 구조체, 포인터 또는 멤버 포인터 형식 %t은(는) __builtin_bit_cast의 constexpr 평가를 차단합니다.",
|
||||
"%npTd, decl %p 사용을 통해 상속됨",
|
||||
"생성자를 상속하기 위해 %t의 하위 개체를 생성할 수 없습니다. 암시적 기본 생성자가 삭제됩니다.",
|
||||
"생성자를 상속하기 위한 %t의 하위 개체 생성을 수행할 수 없습니다. 연결된 생성자가 삭제됩니다.",
|
||||
"%n은(는) void를 반환해야 합니다.",
|
||||
"잘못된 멤버 선언 시작",
|
||||
"'auto'가 필요합니다.",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"'%s'에 대한 모듈 파일 매핑이 두 번 이상 지정되었습니다.",
|
||||
"'%s'에 대한 헤더 단위 매핑이 두 번 이상 지정되었습니다.",
|
||||
"'%s'에 대한 매핑이 지정되지 않았습니다.",
|
||||
"'%s'에 대한 모듈 파일 매핑이 잘못되었습니다.",
|
||||
null,
|
||||
"가져올 '%s' 헤더를 찾을 수 없습니다.",
|
||||
"모듈 파일 목록에 있는 두 개 이상의 파일이 '%s'과(와) 일치합니다.",
|
||||
"'%s'에 대해 찾은 모듈 파일이 다른 모듈에 대한 것입니다.",
|
||||
"모든 종류의 모듈 파일",
|
||||
"모듈 파일을 읽을 수 없음",
|
||||
"char8_t 형식이 현재 옵션에서 지원되지 않기 때문에 기본 제공 함수를 사용할 수 없습니다.",
|
||||
"C++20 코루틴을 사용하도록 설정한 경우 --ms_await 명령줄 옵션을 지정할 수 없습니다.",
|
||||
null,
|
||||
"기본 집계 요소 초기화에 명시적 생성자 %nod의 비표준 사용",
|
||||
"memcpy 유사 내장의 소스 또는 대상이 개체를 가리키지 않음",
|
||||
"memcpy 유사 내장이 대표적으로 차별화된 형식 %t1 및 %t2을(를) 복사하려고 시도함",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"%sq1 모듈 파일 위치 %d1(상대 위치 %d2)이(가) 파티션 %sq2에 대해 요청되었습니다. 이는 파티션의 시작을 선행합니다.",
|
||||
"모듈 %sq1 파일 위치 %d1(상대 위치 %d2)이(가) 파티션의 끝을 오버플로하는 파티션 %sq2에 대해 요청되었습니다.",
|
||||
"모듈 %sq1 파일 위치 %d1(상대 위치 %d2)이(가) 파티션 요소가 잘못 정렬된 파티션 %sq2에 대해 요청되었습니다.",
|
||||
"하위 필드 %sq에서",
|
||||
"하위 필드 %sq(노드 %d에 대한 상대 위치)에서",
|
||||
"파티션 %sq 요소 %d1(파일 위치 %d2, 상대 위치 %d3)에서",
|
||||
"여기서 람다 특성은 표준이 아닙니다.",
|
||||
"식별자 %sq은(는) 시각적으로 유사한 식별자와 혼동될 수 있습니다. %p",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"%d1 매개 변수는 IFC 매개 변수 정의 차트에 의해 지정되었지만 %d2 매개 변수는 IFC 선언에 의해 지정되었습니다.",
|
||||
"%d1 매개 변수는 IFC 매개 변수 정의 차트에 의해 지정되었지만 %d2 매개 변수는 IFC 선언에 의해 지정되었습니다.",
|
||||
"%d1 매개 변수는 IFC 매개 변수 정의 차트에 의해 지정되었지만 %d2 매개 변수는 IFC 선언에 의해 지정되었습니다.",
|
||||
"%sq 함수 정의의 IFC 표현이 없습니다."
|
||||
"%sq 함수 정의의 IFC 표현이 없습니다.",
|
||||
"함수 한정자는 멤버 템플릿 선언에 적용되지 않습니다.",
|
||||
"멤버 선택에 너무 많은 중첩된 익명 형식이 포함됩니다.",
|
||||
"피연산자 사이에 공통 형식이 없습니다.",
|
||||
"멤버 포인터가 필요합니다.",
|
||||
"유연한 배열 멤버는 비어 있는 형식으로 선언할 수 없습니다.",
|
||||
"예상되는 'std::source_location::__impl'이 '_M_function_name', '_M_file_name', '_M_column', '_M_line'의 데이터 멤버만을 포함하는 클래스에 정의되어야 함",
|
||||
"주어진 열 번호가 'std::source_location' 구현에 너무 큽니다.",
|
||||
"주어진 줄 번호가 'std::source_location' 구현에 너무 큽니다.",
|
||||
"UTF-16 문자 상수는 코드 단위를 두 개 이상 사용할 수 없음; 값 잘림",
|
||||
"두 인수의 형식이 같아야 함",
|
||||
"%t 형식은 이 기본 제공의 인수로 사용할 수 없음",
|
||||
"%nd에서 호출",
|
||||
"정규화된 형식이 익명 비트 필드에 대해 표준이 아닙니다.",
|
||||
"벡터 조건의 요소 유형(%t1)은 결과의 요소 유형(%t2)과 크기가 같아야 합니다.",
|
||||
"부동 소수점 벡터 피연산자 유형(%t)에 일치하는 정수 벡터 유형이 없습니다.",
|
||||
"'requires' 식에 대한 mangling이 아직 구현되지 않았습니다.",
|
||||
"'unavailable' 특성 때문에",
|
||||
"중복된 'asm' 한정자",
|
||||
"불완전한 열거형 형식이 있는 비트 필드 또는 잘못된 기본 형식이 있는 불투명 열거형",
|
||||
"IFC 파티션 %sq2에 대한 인덱스를 사용하여 IFC 파티션 %sq에서 요소를 구성하려고 했습니다.",
|
||||
"파티션 %sq는 %d2가 예상될 때 항목 크기를 %d1로 지정했습니다.",
|
||||
"모듈 %sq1을(를) 처리하는 동안 예기치 않은 IFC 요구 사항이 발생했습니다.",
|
||||
"%d행(%s1)에서 조건 실패: %sq2",
|
||||
"원자성 제약 조건은 자체에 따라 달라집니다.",
|
||||
"'noreturn' 함수에 void가 아닌 반환 형식이 있습니다.",
|
||||
"매개 변수 %sq(상대 인덱스 %d)를 삭제하여 수정했습니다.",
|
||||
"클래스 외부의 멤버 템플릿 정의에 기본 템플릿 인수를 지정할 수 없습니다.",
|
||||
"엔터티를 재구성하는 동안 %sq라는 잘못된 IFC 식별자를 발견했습니다.",
|
||||
"엔티티를 재구성하는 동안 %sq라는 잘못된 IFC 식별자를 건너뛰었습니다.",
|
||||
"모듈 %sq 잘못된 정렬 값",
|
||||
"IFC 모듈에서 로드된 함수 템플릿이 %nd(으)로 잘못 구문 분석되었습니다.",
|
||||
"모듈 %sq에서 IFC 엔터티 참조를 로드하지 못했습니다.",
|
||||
"파티션 %sq 요소 %d1(파일 위치 %d2, 상대 위치 %d3)에서",
|
||||
"비자명 소멸자가 있는 클래스 형식에는 연결된 지정자를 사용할 수 없습니다.",
|
||||
"명시적 전문화 선언은 friend 선언이 아닐 수 있습니다.",
|
||||
"std::float128_t 형식은 지원되지 않습니다. std::float64_t이(가) 대신 사용됩니다.",
|
||||
"std::bfloat16_t 형식은 지원되지 않습니다. std::float32_t이(가) 대신 사용됩니다.",
|
||||
"별칭 템플릿 %no에 대해 추론 가이드를 선언할 수 없습니다.",
|
||||
"%n이(가) 사용할 수 없음으로 선언되었습니다.",
|
||||
"%n이(가) 사용할 수 없음으로 선언되었습니다 (%sq).",
|
||||
"'deprecated' 특성 때문에",
|
||||
"명시적 람다 템플릿 매개 변수는 C++20 기능입니다.",
|
||||
"'_Noreturn'은 C23에서 더 이상 사용되지 않습니다. 대신 '[[noreturn]]'을 사용하세요.",
|
||||
"'_Alignof'는 C23에서 더 이상 사용되지 않습니다. 대신 'alignof'를 사용하세요.",
|
||||
"'_Alignas'는 C23에서 더 이상 사용되지 않습니다. 대신 'alignas'를 사용하세요.",
|
||||
"'_Bool'은 C23에서 더 이상 사용되지 않습니다. 대신 'bool'을 사용하세요.",
|
||||
"'_Static_assert'는 C23에서 더 이상 사용되지 않습니다. 대신 'static_assert'을 사용하세요.",
|
||||
"'_Thread_local'은 C23에서 더 이상 사용되지 않습니다. 대신 'thread_local'을 사용하세요.",
|
||||
"모듈 파일 %sq(Microsoft Visual Studio IFC 모듈)을 사용하려면 Microsoft 모드를 활성화해야 합니다.",
|
||||
"모듈 파일 %sq을(를) 열 수 없습니다.",
|
||||
"모듈 %sq에 대한 모듈 맵에서 찾았습니다.",
|
||||
"%sq의 헤더 단위 맵에서 찾았습니다."
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"zastosowanie operatora „&” do tablicy nie ma żadnego efektu",
|
||||
"prawy argument operacji „%%” wynosi zero",
|
||||
"argument jest niezgodny z parametrem formalnym",
|
||||
"argument jest niezgodny z odpowiadającą konwersją ciągu formatu",
|
||||
"argument jest niezgodny z odpowiednią konwersją ciągu formatu (oczekiwano typu %t1, ale argument ma typ %t2)",
|
||||
"nie można otworzyć pliku źródłowego %sq (brak katalogów na liście wyszukiwania)",
|
||||
"typ rzutowania musi być wartością całkowitą",
|
||||
"typ rzutowania musi być wartością arytmetyczną lub wskaźnikiem",
|
||||
@@ -686,7 +686,7 @@
|
||||
"wykryto podczas niejawnego generowania elementu %nt %p",
|
||||
"wykryto podczas tworzenia wystąpienia elementu %na %p",
|
||||
"wykryto podczas przetwarzania listy argumentów szablonu dla elementu %na %p",
|
||||
"wykryto podczas niejawnego definiowania elementu %na %p",
|
||||
"wykryto podczas niejawnego definiowania elementu %nt %p",
|
||||
"elementu %sq nie znaleziono na stosie wyrównania pakowania",
|
||||
"pusty stos wyrównania pakowania",
|
||||
"opcji RTTI można użyć tylko w przypadku kompilowania kodu C++",
|
||||
@@ -876,11 +876,11 @@
|
||||
"opcji „embedded_c++” można użyć tylko w przypadku kompilowania kodu C++",
|
||||
"dialekt Embedded C++ nie obsługuje szablonów",
|
||||
"dialekt Embedded C++ nie ma obsługi wyjątków",
|
||||
"dialekt Embedded C++ nie obsługuje przestrzeni nazw",
|
||||
"Język Embedded C++ nie obsługuje przestrzeni nazw",
|
||||
"dialekt Embedded C++ nie obsługuje informacji o typie w czasie wykonywania",
|
||||
"dialekt Embedded C++ nie obsługuje nowej składni operatora cast",
|
||||
"dialekt Embedded C++ nie obsługuje deklaracji using",
|
||||
"dialekt Embedded C++ nie obsługuje słowa kluczowego „mutable”",
|
||||
"Język Embedded C++ nie obsługuje słowa kluczowego \"mutable\"",
|
||||
"dialekt Embedded C++ nie obsługuje dziedziczenia wielokrotnego ani wirtualnego",
|
||||
"nieprawidłowy numer wersji Microsoft: %s",
|
||||
"reprezentacja wskaźnika do składowej %sq została już ustawiona dla elementu %n",
|
||||
@@ -952,7 +952,7 @@
|
||||
"opcji „nonstd_using_decl” można użyć tylko w przypadku kompilowania kodu C++",
|
||||
"zwracanym typem funkcji „main” musi być typ „int”",
|
||||
"parametr stałej parametryzującej szablon nie może być typu klasy",
|
||||
"nie można określić domyślnego argumentu szablonu w deklaracji składowej szablonu klasy poza jego klasą",
|
||||
"nie można określić domyślnego argumentu szablonu w definicji elementu członkowskiego szablonu klasy poza szablonem",
|
||||
"instrukcja return jest niedozwolona w procedurze obsługi bloku try konstruktora",
|
||||
"desygnatory zwykłe i rozszerzone nie mogą być łączone w wyznaczeniu inicjatora",
|
||||
"drugi indeks nie może być mniejszy niż pierwszy",
|
||||
@@ -1916,13 +1916,13 @@
|
||||
"pakiet parametrów nie może mieć wartości domyślnej",
|
||||
"kod C++/CLI może zostać włączony tylko w trybie Microsoft C++",
|
||||
"wyrażenie „value__” nie może być używane jako nazwa wartości stałej modułu wyliczającego (w tym kontekście jest to nazwa zastrzeżona)",
|
||||
"w typie wyliczenia z typem bazowym Boolean jest wymagana jawna wartość modułu wyliczającego",
|
||||
"jawna wartość modułu wyliczającego jest wymagana w typie wyliczenia z typem bazowym wartości logicznej",
|
||||
null,
|
||||
"utworzono odwołanie do pakietu parametrów %sq, ale nie został on rozwinięty",
|
||||
"rozwinięcie pakietu nie korzysta z żadnych pakietów argumentów",
|
||||
"pakiet %sq nie zawiera takiej samej liczby elementów jak %sq2",
|
||||
null,
|
||||
"atrybut vector_size nie jest dozwolony dla typu wyliczenia",
|
||||
"Atrybut vector_size nie jest dozwolony dla typu wyliczenia",
|
||||
"właściwość nie może być jednocześnie statyczna i wirtualna",
|
||||
"właściwość indeksowania nie może być prosta",
|
||||
"ta deklaracja nie może występować w definicji właściwości",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"specyfikator widoczności najwyższego poziomu wymaga definicji typu",
|
||||
"właściwość prosta nie może mieć typu referencyjnego",
|
||||
"właściwość prosta nie może być typu const ani volatile",
|
||||
"element %nd został wcześniej zadeklarowany jako inny rodzaj typu wyliczenia",
|
||||
"Element %nd został wcześniej zadeklarowany jako inny rodzaj typu wyliczenia",
|
||||
"zmienna przechwycona przez element lambda nie może mieć klasy typu %[managed]",
|
||||
"przesłanianie funkcji wirtualnej za pomocą kowariantnego typu zwracanego jest niedozwolone w klasie typu %[managed]",
|
||||
"tablica dojść jest niedozwolona",
|
||||
@@ -2216,7 +2216,7 @@
|
||||
"typ w operacji dynamic_cast nie może być typem ogólnym, który może być typem wartości",
|
||||
"nazwa zawierająca znaki uniwersalne musi wyznaczać prawidłowy punkt kodu",
|
||||
"ograniczenia ogólne nie są zgodne z ograniczeniami elementu %nd",
|
||||
"słowo kluczowe __underlying_type ma zastosowanie tylko do typów wyliczenia",
|
||||
"__underlying_type dotyczy tylko typów wyliczenia",
|
||||
"oczekiwano tylko jednego wyrażenia argumentu operacji dla tego rzutowania",
|
||||
"nie można przedstawić znaku Unicode o wartości szesnastkowej %s w domyślnej systemowej stronie kodowej",
|
||||
"niestandardowa konwersja powiązania wskaźnika do składowej ze wskaźnikiem funkcji",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"element %nd został wcześniej zadeklarowany z innym typem bazowym",
|
||||
"nie można tutaj użyć deklaracji „enum class” ani „enum struct” (zamiast tego użyj zwykłej deklaracji „enum”)",
|
||||
"tylko jeden poziom nawiasów klamrowych jest dozwolony w przypadku inicjatora dla obiektu typu %t",
|
||||
"nie można używać elementu %nd jako nazwy typu wyliczenia",
|
||||
"Nie można użyć elementu %nd jako nazwy typu wyliczenia",
|
||||
null,
|
||||
"inicjator w nawiasach klamrowych nie może być używany z obiektem „new auto”",
|
||||
"definicja obiektu std::initializer_list nie zawiera oczekiwanego konstruktora",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"inicjator w nawiasach dla jednostki bez klasy musi być wyrażeniem, a nie listą w nawiasach klamrowych",
|
||||
"lista w nawiasach klamrowych nie dostarcza zwracanego typu dla tego elementu lambda",
|
||||
"zadeklarowana specyfikacja wyjątku jest niezgodna z wygenerowaną",
|
||||
"typy wyliczeń z zakresem są funkcją języka C++11",
|
||||
"typy wyliczenia w zakresie są funkcją języka C++11",
|
||||
"typ funkcji nie może być inicjowany przez wartość",
|
||||
"inicjalizacja typu obiektu %t za pomocą listy jest niedozwolona, ponieważ typ jest niekompletny",
|
||||
"obiekt std::initializer_list ma destruktora, a nie powinien — biblioteka jest błędnie skonfigurowana",
|
||||
@@ -2406,7 +2406,7 @@
|
||||
"wywołanie funkcji musi mieć wartość stałą w wyrażeniu stałej",
|
||||
"słowo kluczowe „main” funkcji nie może być deklarowane jako constexpr",
|
||||
null,
|
||||
"definicja typu wyliczenia ani klasy nie może występować w treści funkcji ani konstruktora constexpr",
|
||||
"definicja typu wyliczenia ani klasy nie może występować w funkcji constexpr ani treści konstruktora",
|
||||
"tylko atrybuty w stylu GNU są tutaj dozwolone",
|
||||
"niestandardowe użycie słowa kluczowego „auto” w celu zarówno ustalenia typu z inicjatora, jak i zaanonsowania końcowego typu zwracanego",
|
||||
"deklarowanie listy parametrów void za pomocą kwalifikowanego typu void jest niestandardowe",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"nie zainicjowano zmiennej w funkcji constexpr",
|
||||
"Inicjowanie w nawiasach klamrowych zmiennej zadeklarowanej przy użyciu typu symbolu zastępczego bez znaku „=” wymaga dokładnie jednego elementu w nawiasach klamrowych",
|
||||
"konfiguracja opcji --target elementu „%s” nie istnieje",
|
||||
"atrybut nie jest obsługiwany w 64-bitowych konfiguracjach x86",
|
||||
"atrybut jest obsługiwany tylko w 32-bitowych konfiguracjach x86",
|
||||
"element „%s” wymaga argumentu",
|
||||
"konstruktor lub destruktor nie może być koprocedurą",
|
||||
"element %n nie może być koprocedurą",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"niedozwolony typ %t we wskaźniku this dla funkcji składowej ograniczonej przez amp %nfd",
|
||||
"niedozwolony zwracany typ %t dla funkcji z ograniczeniem amp %nfd",
|
||||
"niedozwolony typ parametru %t dla funkcji z ograniczeniem amp %nfd",
|
||||
null,
|
||||
"niedozwolona konstrukcja w funkcji z ograniczeniami amp %nfd",
|
||||
"niedozwolona klasa magazynu %s w funkcji z ograniczeniem amp %nfd",
|
||||
"element %s nie jest dozwolony w funkcji z ograniczeniem amp %nfd",
|
||||
"niedozwolone rzutowanie w funkcji z ograniczeniem amp",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"mapowanie pliku modułu dla elementu „%s” zostało określone więcej niż raz",
|
||||
"mapowanie jednostki nagłówka dla elementu „%s” zostało określone więcej niż raz",
|
||||
"nie określono mapowania dla elementu „%s”",
|
||||
"mapowanie pliku modułu dla elementu „%s” jest nieprawidłowe",
|
||||
null,
|
||||
"nie można odnaleźć nagłówka „%s” do zaimportowania",
|
||||
"więcej niż jeden plik na liście plików modułu pasuje do elementu „%s”",
|
||||
"plik modułu znaleziony dla elementu „%s” jest dla innego modułu",
|
||||
"dowolny rodzaj pliku modułu",
|
||||
"nie można odczytać pliku modułu",
|
||||
"wbudowana funkcja jest niedostępna, ponieważ typ char8_t nie jest obsługiwany z bieżącymi opcjami",
|
||||
"nie można określić opcji wiersza polecenia --ms_await, jeśli włączono koprocedury języka C++20",
|
||||
null,
|
||||
"niestandardowe użycie konstruktora jawnego %nod dla domyślnej inicjalizacji elementu agregacji",
|
||||
"element źródłowy lub docelowy funkcji wewnętrznej podobnej do memcpy nie wskazuje obiektu",
|
||||
"Funkcja wewnętrzna podobna do memcpy próbuje skopiować reprezentacyjnie odrębne typy %t1 i %t2",
|
||||
@@ -3378,7 +3378,7 @@
|
||||
"Ciąg „module” nie jest dozwolony w nazwie modułu",
|
||||
null,
|
||||
null,
|
||||
"Element %n nie jest typem wyliczenia",
|
||||
"%n nie jest typem wyliczenia",
|
||||
"moduł wyliczający %no2 powoduje konflikt z elementem %n1",
|
||||
"moduł wyliczający %no został już zadeklarowany w tym zakresie %p",
|
||||
"Specyfikacja „throw()” nie jest częścią języka C++20 i nowszych",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"zażądano modułu %sq1 pozycji pliku %d1 (względna pozycja %d2) dla partycji %sq2, która poprzedza rozpoczęcie partycji",
|
||||
"zażądano modułu %sq1 pozycji pliku %d1 (pozycja względna %d2) dla partycji %sq2, która powoduje przepełnienie końca partycji",
|
||||
"zażądano modułu %sq1 pozycji pliku %d1 (pozycja względna %d2) dla partycji %sq2, która jest nieprawidłowo wyrównana do jej elementów partycji",
|
||||
"z podpola %sq",
|
||||
"z podpola %sq (względne położenie w stosunku do węzła %d)",
|
||||
"z partycji %sq element %d1 (pozycja pliku %d2, względna pozycja %d3)",
|
||||
"atrybuty lambda są niestandardowe w tym miejscu",
|
||||
"identyfikator %sq można pomylić z widocznym wizualnie identyfikatorem %p",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"Parametry (%d1) zostały określone przez wykres definicji parametru IFC, podczas gdy parametry (%d2) zostały określone przez deklarację IFC",
|
||||
"Parametry (%d1) zostały określone przez wykres definicji parametru IFC, podczas gdy parametry (%d2) zostały określone przez deklarację IFC",
|
||||
"Parametry (%d1) zostały określone przez wykres definicji parametru IFC, podczas gdy parametry (%d2) zostały określone przez deklarację IFC",
|
||||
"Brak reprezentacji IFC definicji funkcji %sq"
|
||||
"Brak reprezentacji IFC definicji funkcji %sq",
|
||||
"modyfikator funkcji nie ma zastosowania do deklaracji szablonu elementu członkowskiego",
|
||||
"wybór elementu członkowskiego obejmuje zbyt wiele zagnieżdżonych typów anonimowych",
|
||||
"nie ma wspólnego typu między argumentami operacji",
|
||||
"oczekiwano wskaźnika do składowej",
|
||||
"elastyczna składowa tablicy nie może być zadeklarowana w typie pustym w inny sposób",
|
||||
"oczekiwano zdefiniowania elementu „std::source_location::__impl” w klasie z tylko składowymi danych „_M_function_name”, „_M_file_name”, „_M_column”, „_M_line”",
|
||||
"podany numer kolumny jest zbyt duży dla implementacji „std::source_location”",
|
||||
"podany numer wiersza jest zbyt duży dla implementacji „std::source_location”",
|
||||
"stała znaków UTF-16 nie może zajmować więcej niż jednej jednostki kodu; obcięta wartość",
|
||||
"oba argumenty muszą mieć ten sam typ",
|
||||
"typ %t jest nieprawidłowy jako argument dla tej wbudowanej",
|
||||
"wywołano z %nd:",
|
||||
"kwalifikowany typ jest niestandardowy dla anonimowych pól bitowych",
|
||||
"typ elementu warunku wektora (%t1) musi mieć taki sam rozmiar jak typ elementu wyniku (%t2)",
|
||||
"typ operandu wektora zmiennoprzecinkowego (%t) nie ma zgodnego typu wektora liczb całkowitych",
|
||||
"nie jest jeszcze zaimplementowane dekorowanie wyrażeń typu „requires”.",
|
||||
"z powodu atrybutu „unavailable”",
|
||||
"zduplikowany kwalifikator „asm”",
|
||||
"pole bitowe z niekompletnym typem wyliczeniowym lub nieprzezroczyste wyliczenie z nieprawidłowym typem podstawowym",
|
||||
"próbowano skonstruować element z partycji IFC %sq przy użyciu indeksu do partycji IFC %sq",
|
||||
"partycja %sq określiła swój rozmiar wpisu jako %d1, gdy oczekiwano wartości %d2",
|
||||
"napotkano nieoczekiwane wymaganie IFC podczas przetwarzania modułu %sq1",
|
||||
"warunek nie powiódł się w wierszu %d w %s1: %sq2",
|
||||
"niepodzielne ograniczenie zależy od samego siebie",
|
||||
"Funkcja \"noreturn\" ma zwracany typ inny niż void",
|
||||
"wprowadzono poprawkę przez usunięcie parametru %sq (względny indeks %d)",
|
||||
"nie można określić domyślnego argumentu szablonu w deklaracji szablonu składowej klasy poza jej klasą",
|
||||
"napotkano nieprawidłową nazwę identyfikatora IFC %sq podczas odbudowy jednostki",
|
||||
"podczas odbudowy jednostki pominięto nieprawidłowy identyfikator IFC o nazwie %sq",
|
||||
"nieprawidłowa wartość sortowania modułu %sq",
|
||||
"szablon funkcji załadowany z modułu IFC został niepoprawnie przeanalizowany jako %nd",
|
||||
"nie można załadować odwołania do jednostki IFC w module %sq",
|
||||
"z partycji %sq element %d1 (pozycja pliku %d2, względna pozycja %d3)",
|
||||
"desygnator łańcuchowy nie jest dozwolony dla typu klasy z destruktorem nietrywialnym",
|
||||
"jawna deklaracja specjalizacji nie może być deklaracją zaprzyjaźnioną",
|
||||
"typ std::float128_t nie jest obsługiwany; zamiast tego zostanie użyty std::float64_t",
|
||||
"Typ std::bfloat16_t nie jest obsługiwany; zamiast tego zostanie użyty std::float32_t",
|
||||
"nie można zadeklarować przewodnika wnioskowania dla szablonu aliasu %no",
|
||||
"Element %n został zadeklarowany jako niedostępny",
|
||||
"Element %n został zadeklarowany jako niedostępny (%sq)",
|
||||
"z powodu atrybutu „deprecated”",
|
||||
"jawne parametry szablonu lambda są funkcją języka C++20",
|
||||
"użycie elementu „_Noreturn” jest przestarzałe w języku C23; użyj zamiast tego „[[noreturn]]”",
|
||||
"użycie elementu „_Alignof” jest przestarzałe w C23; użyj zamiast tego elementu „alignof”",
|
||||
"użycie elementu „_Alignas” zostało uznane za przestarzałe w C23; użyj zamiast tego elementu „alignas”",
|
||||
"użycie elementu „_Bool” jest przestarzałe w języku C23; użyj zamiast tego opcji „bool”",
|
||||
"użycie elementu „_Static_assert” jest przestarzałe w języku C23; użyj zamiast tego elementu \"static_assert\"",
|
||||
"użycie elementu „_Thread_local” jest przestarzałe w języku C23; użyj zamiast tego elementu \"thread_local\"",
|
||||
"Aby można było używać pliku modułu %sq (modułu MICROSOFT Visual Studio IFC) musi być włączony tryb firmy Microsoft.",
|
||||
"nie można otworzyć pliku modułu %sq",
|
||||
"znaleziono w mapie modułu dla modułu %sq",
|
||||
"znaleziono na mapie jednostki nagłówka dla %sq"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"'&' não possui efeito quando aplicado a uma matriz",
|
||||
"o operador da direta de '%%' é zero",
|
||||
"argumento é incompatível com parâmetro formal",
|
||||
"argumento é incompatível com conversão de formato de cadeia de caracteres correspondente",
|
||||
"o argumento é incompatível com a conversão de cadeia de caracteres de formato correspondente (tipo esperado %t1, mas o argumento tem o tipo %t2)",
|
||||
"não pôde abrir o arquivo fonte %sq (nenhum diretório na lista de busca)",
|
||||
"tipo de conversão deve ser integral",
|
||||
"tipo de conversão deve ser aritmético ou ponteiro",
|
||||
@@ -952,7 +952,7 @@
|
||||
"a opção 'nonstd_using_decl' pode ser utilizada somente quando se estiver compilando C++",
|
||||
"o tipo de retorno da função 'main' deve ser 'int'",
|
||||
"um parâmetro de modelo sem tipo pode não ter tipo de classe",
|
||||
"um argumento de modelo padrão não pode ser especificado na declaração de um membro de um modelo de classe fora de sua classe",
|
||||
"um argumento de modelo padrão não pode ser especificado na definição de um membro de um modelo de classe fora do modelo",
|
||||
"uma instrução return não é permitida em um manipulador de um bloco try de função de um construtor",
|
||||
"os designadores estendidos e comuns não podem ser combinados em uma designação de inicializador",
|
||||
"a segunda subscrição não deve ser menor que a primeira",
|
||||
@@ -1644,7 +1644,7 @@
|
||||
"a declaração do construtor de cópia para %t1 foi suprimida porque a de %t2 está inacessível",
|
||||
"o destruidor para %t1 não será chamado porque está inacessível e o destruidor para %t2 foi suprimido",
|
||||
"definição no fim do arquivo não seguida por ponto e vírgula ou um declarador",
|
||||
"o primeiro argumento deve ser do tipo ponteiro para número inteiro ou enumeração",
|
||||
"o primeiro argumento deve der do tipo ponteiro para número inteiro ou enumerado",
|
||||
"as operações sincronizadas são válidas somente em objetos de tamanho 1, 2, 4 ou 8",
|
||||
"argumentos extras ignorados",
|
||||
"'=' presumido seguindo um nome de macro %sq na definição da linha de comando",
|
||||
@@ -1916,13 +1916,13 @@
|
||||
"pacotes de parâmetros não podem ter um default",
|
||||
"C++/ CLI podem ser ativados apenas no modo do Microsoft C++",
|
||||
"'value__' não pode ser usado como nome para uma constante de enumerador (é um nome reservado neste contexto)",
|
||||
"é necessário um valor explícito de enumerador em um tipo de enumerador com tipo subjacente booleano",
|
||||
"é necessário um valor explícito de enumerador em um tipo enumerado com tipo subjacente booliano",
|
||||
null,
|
||||
"o pacote de parâmetros %sq foi citado, mas não expandido",
|
||||
"o pacote de expansão não utiliza nenhum dos pacotes de argumentos",
|
||||
"o pacote %sq não tem o mesmo número de elementos de %sq2",
|
||||
null,
|
||||
"o atributo vector_size não é permitido com um tipo de enumeração",
|
||||
"o atributo vector_size não é permitido com um tipo enumerado",
|
||||
"uma propriedade não pode ser ao mesmo tempo estática e virtual",
|
||||
"uma propriedade indexada não pode ser trivial",
|
||||
"esta declaração não pode aparecer em uma definição de propriedade",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"um especificador de visibilidade de nível superior requer uma definição de tipo",
|
||||
"uma propriedade trivial não pode possuir um tipo de referência",
|
||||
"uma propriedade trivial não pode ter um tipo const ou volátil",
|
||||
"%nd foi declarado anteriormente como um tipo diferente do tipo de enumeração",
|
||||
"%nd foi declarado anteriormente como um tipo diferente do tipo enumerado",
|
||||
"uma variável capturada por um lambda não pode ter um tipo de classe %[managed]",
|
||||
"substituição de funções com tipos de saída covariantes não são permitidos em classes %[managed]",
|
||||
"matrizes de controladores não são permitidas",
|
||||
@@ -2175,7 +2175,7 @@
|
||||
"especificadores de substituição nomeados só são permitidos em classes %[managed]",
|
||||
"nenhum membro designado pelo especificador de substituição nomeado corresponde ao tipo deste membro",
|
||||
"uma declaração de construtor estático não pode incluir um especificador de substituição nomeado",
|
||||
"tipos de enumeração com escopo deve ter um nome",
|
||||
"um tipo enumerado com escopo deve ter um nome",
|
||||
"não permitida a transferência de controle para um bloco finally",
|
||||
"instrução return dentro de blocos finally não permitida",
|
||||
"o bloqueio de tentativa exige pelo menos um manipulador ou cláusula finalmente",
|
||||
@@ -2216,7 +2216,7 @@
|
||||
"o tipo em um dynamic_cast não pode ser um tipo genérico que possa ser um tipo value",
|
||||
"um nome de caractere universal deve designar um ponto de código válido",
|
||||
"restrições genéricas não correspondem às de %nd",
|
||||
"__underlying_type só se aplica a tipos de enumeração",
|
||||
"__underlying_type só se aplica a tipos enumerados",
|
||||
"espera-se apenas uma expressão de operando para essa conversão",
|
||||
"caractere Unicode com valor hexadecimal %s não representável na página de código padrão do sistema",
|
||||
"conversão não padrão de ponteiro para membro acoplado um ponteiro de função",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"%nd foi declarado anteriormente com um tipo base diferente",
|
||||
"'enum class' e 'enum struct' não podem ser usados aqui (use 'enum' simples)",
|
||||
"somente um nível de chave é permitido em um inicializador para um objeto do tipo %t",
|
||||
"%nd não pode ser usado como um nome de tipo de enumeração",
|
||||
"%nd não pode ser usado como um nome de tipo enumerado",
|
||||
null,
|
||||
"um inicializador entre chaves não pode ser usado com 'new auto'",
|
||||
"a definição de std::initializer_list não contém o construtor esperado",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"um inicializador entre parênteses para uma entidade não classe deve ser uma expressão, e não uma lista delimitada por chaves",
|
||||
"uma lista delimitada por chaves não fornece um tipo de retorno para este lambda",
|
||||
"a especificação da exceção declarada é incompatível com a gerada",
|
||||
"os tipos de enumeração com escopo são um recurso do C++11",
|
||||
"os tipos enumerados com escopo são um recurso do C++11",
|
||||
"um tipo de função não pode ser inicializado por valor",
|
||||
"a inicialização de lista de um tipo de objeto %t não é permitida porque o tipo está incompleto",
|
||||
"std::initializer_list possui um destruidor, mas não deveria -- a biblioteca está configurada incorretamente",
|
||||
@@ -2406,7 +2406,7 @@
|
||||
"a chamada de função deve ter um valor constante em uma expressão constante",
|
||||
"a função 'main' não pode ser declarada como constexpr",
|
||||
null,
|
||||
"uma definição de tipo de enumeração ou classe não pode aparecer em um corpo de construtor ou função constexpr",
|
||||
"uma definição de tipo enumerado ou classe não pode aparecer em um corpo de construtor ou função constexpr",
|
||||
"somente atributos GNU-style são permitidos aqui",
|
||||
"uso não padrão de 'auto' para deduzir o tipo a partir de um inicializador e para anunciar um tipo de retorno à direita",
|
||||
"a declaração de uma lista de parâmetros void com um tipo void qualificado não é padrão",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"a variável na função constexpr não foi inicializada",
|
||||
"inicialização entre chaves de uma variável declarada com um tipo de espaço reservado, mas sem '=', requer exatamente um elemento entre chaves",
|
||||
"nenhuma --configuração de destino '%s' existente",
|
||||
"o atributo não tem suporte em configurações x86 de 64 bits",
|
||||
"o atributo tem suporte apenas em configurações x86 de 32 bits",
|
||||
"'%s' exige um argumento",
|
||||
"um construtor ou destruidor não pode ser uma corrotina",
|
||||
"%n não pode ser um corrotina",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"tipo ilegal %t neste ponteiro para a função membro restrita por amp %nfd",
|
||||
"tipo de retorno %t ilícito para a função restrita por amp %nfd",
|
||||
"tipo de parâmetro %t ilícito para a função restrita por amp %nfd",
|
||||
null,
|
||||
"constructo ilícito na função restrita por amp %nfd",
|
||||
"classe de armazenamento %s ilícito na função restrita por amp %nfd",
|
||||
"%s não é permitido na função restrita por amp %nfd",
|
||||
"conversão ilícita na função restrita por amp",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"um tipo volátil %t impede a avaliação constexpr de __builtin_bit_cast",
|
||||
"um tipo de união, ponteiro ou ponteiro para membro %t impede a avaliação constexpr de __builtin_bit_cast",
|
||||
"%npTd, herdado por meio do uso de decl %p",
|
||||
"a construção de subobjeto de %t para construtores herdados não pode ser executada. O construtor padrão implícito foi excluído",
|
||||
"a construção de subobjeto de %t para construtores herdados não pode ser executada. O construtor associado foi excluído",
|
||||
"%n precisa retornar nulo",
|
||||
"declaração de início de membro inválida",
|
||||
"'auto' era esperado",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"o mapeamento de arquivo de módulo de '%s' foi especificado mais de uma vez",
|
||||
"o mapeamento de unidade de cabeçalho de '%s' foi especificado mais de uma vez",
|
||||
"não foi especificado nenhum mapeamento para '%s'",
|
||||
"o mapeamento de arquivo de módulo de '%s' é inválido",
|
||||
null,
|
||||
"não é possível localizar o cabeçalho '%s' a ser importado",
|
||||
"mais de um arquivo na lista de arquivos de módulo corresponde a '%s'",
|
||||
"o arquivo de módulo encontrado para '%s' é de um módulo diferente",
|
||||
"qualquer tipo de arquivo de módulo",
|
||||
"não é possível ler o arquivo de módulo",
|
||||
"a função interna não está disponível porque não há suporte para o tipo char8_t com as opções atuais",
|
||||
"a opção da linha de comando --ms_await não poderá ser especificada se as corrotinas do C++20 estiverem habilitadas",
|
||||
null,
|
||||
"o uso não padrão do construtor explícito %nod para inicialização do elemento de agregação padrão",
|
||||
"a origem ou o destino do intrínseco similar a memcpy não aponta para um objeto",
|
||||
"tentativas intrínsecas similares a memcpy de copiar tipos representacionalmente distintos %t1 e %t2",
|
||||
@@ -3378,7 +3378,7 @@
|
||||
"'module' não é permitido em um nome de módulo",
|
||||
null,
|
||||
null,
|
||||
"O %n não é um tipo de enumeração",
|
||||
"%n não é um tipo enumerado",
|
||||
"o enumerador %no2 entra em conflito com %n1",
|
||||
"o enumerador %no já foi declarado neste escopo %p",
|
||||
"a especificação 'throw()' não faz parte de C++ 20 e posteriores",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"módulo %sq1 posição de arquivo %d1 (posição relativa %d2) solicitada para a partição %sq2 - que impede o início da partição",
|
||||
"módulo %sq1 posição de arquivo %d1 (posição relativa %d2) solicitada para a partição %sq2 - que estoura o final de sua partição",
|
||||
"módulo %sq1 posição de arquivo %d1 (posição relativa %d2) solicitada para a partição %sq2 - que está desalinhada com seus elementos de partições",
|
||||
"do subcampo %sq",
|
||||
"do subcampo %sq (posição relativa ao nó %d)",
|
||||
"da partição %sq elemento %d1 (posição do arquivo %d2, posição relativa %d3)",
|
||||
"os atributos lambda não são padrão aqui",
|
||||
"O identificador %sq pode ser confundido com um visualmente semelhante ao que aparece %p",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"%d1 parâmetros foram especificados pelo gráfico de definição de parâmetro IFC, enquanto %d2 parâmetros foram especificados pela declaração IFC",
|
||||
"O parâmetro %d1 foi especificado pelo gráfico de definição de parâmetro IFC, enquanto %d2 parâmetros foram especificados pela declaração IFC",
|
||||
"%d1 parâmetros foram especificados pelo gráfico de definição de parâmetro IFC, enquanto o parâmetro %d2 foi especificado pela declaração IFC",
|
||||
"A representação IFC da definição da função %sq está ausente"
|
||||
"A representação IFC da definição da função %sq está ausente",
|
||||
"o modificador de função não se aplica à declaração de modelo do membro",
|
||||
"a seleção de membro envolve muitos tipos anônimos aninhados",
|
||||
"não há nenhum tipo comum entre os operandos",
|
||||
"esperava-se um ponteiro para membro",
|
||||
"um membro da matriz flexível não pode ser declarado em um tipo de outro modo vazio",
|
||||
"esperado que 'std::source_location::__impl' seja definido para uma classe com apenas os membros de dados '_M_function_name', '_M_file_name', '_M_column', '_M_line'",
|
||||
"o número de coluna fornecido é muito grande para a implementação 'std::source_location'",
|
||||
"o número de linha fornecido é muito grande para a implementação 'std::source_location'",
|
||||
"uma constante de caractere UTF-16 não pode ocupar mais de uma unidade de código; valor truncado",
|
||||
"ambos os argumentos devem ter o mesmo tipo",
|
||||
"o tipo %téinválido como argumento para este builtin",
|
||||
"chamado de %nd:",
|
||||
"um tipo qualificado não é padrão para campos de bits anônimos",
|
||||
"o tipo de elemento da condição de vetor (%t1) deve ter o mesmo tamanho que o tipo de elemento do resultado (%t2)",
|
||||
"o tipo de operando vetorial de ponto flutuante (%t) não tem nenhum tipo de vetor inteiro correspondente",
|
||||
"a estruturação para expressões 'requires' ainda não foi implementada",
|
||||
"devido a um atributo 'indisponível'",
|
||||
"qualificador 'asm' duplicado",
|
||||
"um campo de bits com um tipo de enumeração incompleto ou uma enumeração opaca com um tipo base inválido",
|
||||
"tentou construir um elemento da partição IFC %sq usando um índice na partição IFC %sq2",
|
||||
"a partição %sq especificou seu tamanho de entrada como %d1 quando %d2 era esperado",
|
||||
"um requisito IFC inesperado foi encontrado durante o processamento do módulo %sq1",
|
||||
"condição falhou na linha %d em %s1: %sq2",
|
||||
"restrição atômica depende de si mesma",
|
||||
"A função 'noreturn' tem um tipo de retorno não nulo",
|
||||
"foi feita uma correção eliminando o parâmetro %sq (no índice relativo %d)",
|
||||
"não é possível especificar um argumento de modelo padrão na definição do modelo de um membro fora de sua classe",
|
||||
"nome de identificador IFC inválido %sq encontrado durante a reconstrução da entidade",
|
||||
"identificador IFC inválido chamado %sq ignorado durante a reconstrução da entidade",
|
||||
"valor de classificação inválido do módulo %sq",
|
||||
"um modelo de função carregado de um módulo IFC foi analisado incorretamente como %nd",
|
||||
"falha ao carregar uma referência de entidade IFC no módulo %sq",
|
||||
"da partição %sq elemento %d1 (posição do arquivo %d2, posição relativa %d3)",
|
||||
"designadores encadeados não são permitidos para um tipo de classe com um destruidor não trivial",
|
||||
"uma declaração de especialização explícita não pode ser uma declaração de friend",
|
||||
"o tipo std::float128_t não tem suporte; em vez disso, std::float64_t será usado",
|
||||
"o tipo std::bfloat16_t não tem suporte; em vez disso, std::float32_t será usado",
|
||||
"um guia de dedução não pode ser declarado para o modelo de alias %no",
|
||||
"%n foi declarado indisponível",
|
||||
"%n foi declarado indisponível (%sq)",
|
||||
"por causa de um atributo 'obsoleto'",
|
||||
"parâmetros de modelo lambda explícitos são um recurso do C++20",
|
||||
"o uso de '_Noreturn' foi obsoleto em C23; use '[[noreturn]]' em vez disso",
|
||||
"o uso de '_Alignof' foi obsoleto em C23; use 'alignof' em vez disso",
|
||||
"o uso de '_Alignas' foi obsoleto em C23; use 'alignas' em vez disso",
|
||||
"o uso de '_Bool' foi obsoleto em C23; use 'bool' em vez disso",
|
||||
"o uso de '_Static_assert' foi obsoleto em C23; use 'static_assert' em vez disso",
|
||||
"o uso de '_Thread_local' foi obsoleto em C23; use 'thread_local' em vez disso",
|
||||
"O modo Microsoft deve estar ativado para usar o arquivo de módulo %sq (um módulo IFC do Microsoft Visual Studio)",
|
||||
"não foi possível abrir o arquivo de módulo %sq",
|
||||
"encontrado no mapa de módulo para o módulo %sq",
|
||||
"encontrado no mapa de unidade de cabeçalho para %sq"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"применение \"&\" к массиву не дало результата",
|
||||
"правый оператор %% равен нулю",
|
||||
"аргумент несовместим с формальным параметром",
|
||||
"аргумент несовместим с соответствующим преобразованием строки формата",
|
||||
"аргумент несовместим с соответствующим преобразованием строки формата (ожидаемый тип %t1, но аргумент имеет тип %t2)",
|
||||
"не удалось открыть исходный файл %sq (отсутствуют каталоги в списке поиска)",
|
||||
"тип приведения должен быть целочисленным",
|
||||
"тип приведения должен быть арифметическим или указателем",
|
||||
@@ -952,7 +952,7 @@
|
||||
"параметр nonstd_using_decl можно использовать только при компиляции C++",
|
||||
"тип возвращаемого значения функции \"main\" должен быть \"int\"",
|
||||
"нетипизированный параметр шаблона не может иметь тип класса",
|
||||
"не удается определить аргумент шаблона по умолчанию в объявлении члена шаблона класса вне соответствующего класса",
|
||||
"аргумент шаблона по умолчанию не может быть указан в определении члена шаблона класса вне шаблона",
|
||||
"Использование оператора return в обработчике блока function try конструктора недопустимо.",
|
||||
"Недопустимо сочетать обычные и расширенные указатели в указании инициализатора.",
|
||||
"второй нижний индекс не может быть меньше первого",
|
||||
@@ -1916,7 +1916,7 @@
|
||||
"у пакета параметров не может быть значения по умолчанию",
|
||||
"C++/CLI можно включить только в режиме Microsoft C++",
|
||||
"нельзя использовать \"value__\" в качестве имени константы перечислителя (в данном контексте это зарезервированное имя)",
|
||||
"в типе перечисления, базовым типом которого является логический, требуется явное значение перечислителя",
|
||||
"в типе перечисления, в основе которого лежит логический тип данных, требуется явное значение перечислителя",
|
||||
null,
|
||||
"ссылка на пакет параметров %sq присутствует, однако пакет не раскрыт",
|
||||
"при раскрытии пакетов никакие пакеты аргументов не используются",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"для спецификатора видимости верхнего уровня требуется определение типа",
|
||||
"тривиальное свойство не может относиться к ссылочному типу",
|
||||
"тривиальное свойство не может относиться к типу const или volatile",
|
||||
"переменная %nd была ранее объявлена как относящаяся к другому типу перечисления",
|
||||
"переменная %nd была ранее объявлена как другой тип перечисления",
|
||||
"полученная лямбда-выражением переменная не может относиться к типу класса %[managed]",
|
||||
"в классах %[managed] не допускается переопределение виртуальных функций с ковариантным типом возвращаемых значений",
|
||||
"использование массивов дескрипторов не допускается",
|
||||
@@ -2175,7 +2175,7 @@
|
||||
"именованный спецификатор переопределения может применяться только в классах %[managed]",
|
||||
"ни один из членов, помеченных именованным спецификатором переопределения, не соответствует типу данного члена",
|
||||
"объявление статического конструктора не может включать именованный спецификатор переопределения",
|
||||
"Тип ограниченного перечисления должен иметь имя.",
|
||||
"тип ограниченного перечисления должен иметь имя",
|
||||
"не допускается передача управления в блок finally",
|
||||
"Оператор return внутри блока finally недопустим.",
|
||||
"для блока try требуется как минимум один обработчик или одно предложение finally",
|
||||
@@ -2216,7 +2216,7 @@
|
||||
"тип в операторе dynamic_cast не может быть универсальным типом, который может быть типом значения",
|
||||
"универсальное имя символа должно обозначать допустимую точку кода",
|
||||
"универсальные ограничения не соответствуют ограничениям %nd",
|
||||
"__underlying_type применяется только к типам перечислений",
|
||||
"__базовый_тип применяется только к типам перечисления",
|
||||
"для этого приведения ожидалось только одно выражение операнда",
|
||||
"Символ Юникода с шестнадцатеричным значением %s не может быть представлен с помощью системной кодовой страницы по умолчанию",
|
||||
"Нестандартное преобразование связанного указателя на элемент в указатель на функцию",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"%nd ранее объявлено с другим базовым типом",
|
||||
"здесь нельзя использовать \"enum class\" и \"enum struct\" (используйте простое перечисление \"enum\")",
|
||||
"в инициализаторе объекта типа %t допускается использовать только один уровень фигурных скобок",
|
||||
"%nd нельзя использовать в качестве имени типа перечисления",
|
||||
"%nd не может использоваться в качестве имени типа перечисления",
|
||||
null,
|
||||
"невозможно использовать заключенный в фигурные скобки инициализатор с оператором \"new auto\"",
|
||||
"определение std::initializer_list не содержит ожидаемого конструктора",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"Инициализатор неклассовой сущности в круглых скобках должен быть выражением, а не списком в фигурных скобках.",
|
||||
"Список в фигурных скобках не предоставляет тип возвращаемого значения для этой лямбды.",
|
||||
"объявленная спецификация исключения несовместима с созданной",
|
||||
"Типы ограниченного перечисления являются возможностью С++11.",
|
||||
"типы ограниченного перечисления являются возможностью С++11",
|
||||
"тип функции не может инициализироваться значением",
|
||||
"инициализация объекта типа %t в списке не разрешена, потому что тип не завершен",
|
||||
"std::initializer_list имеет деструктор, хотя не должен — библиотека настроена неверно",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"переменная в функции constexpr не инициализирована",
|
||||
"заключенная в фигурные скобки инициализация переменной, объявленная с типом заполнителя, но без \"=\", должна содержать строго один элемент внутри фигурных скобок",
|
||||
"конфигурация \"%s\" --target не существует",
|
||||
"атрибут не поддерживается в 64-разрядных конфигурациях x86",
|
||||
"атрибут поддерживается только в 32-разрядных (x86) конфигурациях",
|
||||
"для \"%s\" требуется аргумент",
|
||||
"Конструктор или деструктор не может быть сопрограммой.",
|
||||
"%n не может быть сопрограммой.",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"недопустимый тип %t в указателе this для функции-члена %nfd с описателем ограничения amp",
|
||||
"Недопустимый тип возвращаемого значения %t для функции %nfd со спецификатором ограничения amp.",
|
||||
"Недопустимый тип параметра %t для функции %nfd со спецификатором ограничения amp.",
|
||||
null,
|
||||
"Недопустимая метка в функции %nfd со спецификатором ограничения amp.",
|
||||
"Недопустимый класс хранения %s в функции %nfd со спецификатором ограничения amp.",
|
||||
"Недопустимо использовать %s в функции %nfd со спецификатором ограничения amp.",
|
||||
"Недопустимое приведение в функции со спецификатором ограничения amp.",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"непостоянный тип %t не позволяет выполнять вычисление constexpr для __builtin_bit_cast",
|
||||
"тип %t объединения, указателя или указателя на элемент не позволяет выполнять вычисление constexpr для __builtin_bit_cast.",
|
||||
"%npTd, унаследованный с помощью decl %p",
|
||||
"невозможно выполнить конструирование подобъекта %t для наследования конструкторов — неявный конструктор по умолчанию удален.",
|
||||
"невозможно выполнить конструирование подобъекта %t для наследования конструкторов — связанный конструктор удален",
|
||||
"%n требует возврата void.",
|
||||
"недопустимое начало объявления элемента",
|
||||
"ожидается \"auto\"",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"сопоставление файла модуля для \"%s\" указано несколько раз",
|
||||
"сопоставление блока заголовка для \"%s\" указано несколько раз",
|
||||
"сопоставление для \"%s\" не указано",
|
||||
"сопоставление файла модуля для \"%s\" является недопустимым",
|
||||
null,
|
||||
"не удается найти заголовок \"%s\" для импорта",
|
||||
"несколько файлов в списке файлов модулей соответствуют \"%s\"",
|
||||
"файл модуля, обнаруженный для \"%s\", относится к другому модулю",
|
||||
"любой тип файла модуля",
|
||||
"не удалось прочитать файл модуля",
|
||||
"встроенная функция недоступна, так как тип char8_t не поддерживается с текущими параметрами.",
|
||||
"невозможно указать параметр командной строки --ms_await, если включены сопрограммы C++20.",
|
||||
null,
|
||||
"нестандартное использование явного конструктора %nod для агрегатной инициализации элементов по умолчанию.",
|
||||
"источник или назначение встроенной функции, похожей на memcpy, не указывает на объект",
|
||||
"Встроенная функция, похожая на memcpy, пытается скопировать различные с точки зрения представления типы %t1 и %t2",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"модуль %sq1, позиция файла %d1 (относительная позиция %d2) запрошена для раздела %sq2, который находится перед началом раздела",
|
||||
"модуль %sq1, позиция файла %d1 (относительная позиция %d2) для раздела %sq2, который переполняет окончание этого раздела",
|
||||
"модуль %sq1, позиция файла %d1 (относительная позиция %d2) запрошена для раздела %sq2, который не выровнен по элементам разделов",
|
||||
"из подполя %sq",
|
||||
"из подполя %sq (относительное положение к узлу %d)",
|
||||
"из раздела %sq, элемент %d1 (позиция файла %d2, относительная позиция %d3)",
|
||||
"здесь нестандартные лямбда-атрибуты",
|
||||
"идентификатор %sq можно перепутать с визуально похожим %p",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"несколько (%d1) параметров указаны в диаграмме определения параметров IFC, в то время как несколько (%d2) параметров указаны в объявлении IFC",
|
||||
"%d1 параметр указан в диаграмме определения параметров IFC, в то время как несколько (%d2) параметров указаны в объявлении IFC",
|
||||
"несколько (%d1) параметров указаны в диаграмме определения параметров IFC, в то время как %d2 параметр указан в объявлении IFC",
|
||||
"Представление IFC определения функции %sq отсутствует"
|
||||
"Представление IFC определения функции %sq отсутствует",
|
||||
"модификатор функции не применяется к объявлению шаблона элемента",
|
||||
"выбор элемента включает слишком много вложенных анонимных типов",
|
||||
"между операндами нет общего типа",
|
||||
"необходим указатель на элемент",
|
||||
"гибкий элемент массива не может быть объявлен в пустом типе",
|
||||
"ожидается, что ''std::source_location::__impl'' будет определен для класса только с элементами данных ''_M_function_name'', ''_M_file_name'', ''_M_column'', ''_M_line''",
|
||||
"заданный номер столбца слишком велик для реализации \"std::source_location\"",
|
||||
"заданный номер строки слишком велик для реализации \"std::source_location\"",
|
||||
"символьная константа UTF-16 не может занимать более одной кодовой единицы; значение усечено",
|
||||
"оба аргумента должны быть одного типа",
|
||||
"тип %t недопустим в качестве аргумента для этой встроенной функции.",
|
||||
"вызвано из %nd:",
|
||||
"нестандартный тип с квалификатором для анонимных битовых полей",
|
||||
"тип элемента векторного условия (%t1) должен иметь тот же размер, что и тип элемента результата (%t2)",
|
||||
"тип векторного операнда с плавающей запятой (%t) не имеет соответствующего целочисленного векторного типа",
|
||||
"искажение для выражений \"requires\" еще не реализовано",
|
||||
"из-за атрибута \"unavailable\"",
|
||||
"дубликат квалификатора \"asm\"",
|
||||
"битовые поля с неполным типом или непрозрачное перечисление с недопустимым базовым типом",
|
||||
"попытка создать элемент из раздела IFC %sq с использованием индекса в разделе IFC %sq2",
|
||||
"раздел %sq указал размер своей записи как %d1, в то время как ожидалось %d2",
|
||||
"При обработке модуля %sq1 было обнаружено неожиданное требование IFC",
|
||||
"сбой условия в строке %d в %s1: %sq2",
|
||||
"атомарное ограничение зависит от самого себя",
|
||||
"Функция \"noreturn\" имеет не недействительный тип возврата",
|
||||
"исправление внесено путем удаления параметра %sq (по относительному индексу %d)",
|
||||
"аргумент шаблона по умолчанию не может быть указан в определении шаблона элемента вне его класса",
|
||||
"обнаружено недопустимое имя идентификатора IFC %sq во время реконструкции сущности",
|
||||
"недопустимое имя идентификатора IFC %sq пропущено во время реконструкции сущности",
|
||||
"недопустимое значение сортировки модуля %sq",
|
||||
"шаблон функции, загруженный из модуля IFC, был неправильно проанализирован как %nd",
|
||||
"не удалось загрузить ссылку на объект IFC в модуль %sq",
|
||||
"из раздела %sq, элемент %d1 (позиция файла %d2, относительная позиция %d3)",
|
||||
"цепные обозначения не разрешены для типа класса с нетривиальным деструктором",
|
||||
"явное объявление специализации не может быть объявлением дружественной функции",
|
||||
"тип std::float128_t не поддерживается; вместо этого будет использоваться std::float64_t",
|
||||
"тип std::bfloat16_t не поддерживается; вместо этого будет использоваться std::float32_t",
|
||||
"руководство по дедукции не может быть объявлено для шаблона псевдонима %no",
|
||||
"%n объявлено недоступным",
|
||||
"%n объявлено недоступным (%sq)",
|
||||
"из-за атрибута \"deprecated\"",
|
||||
"явные параметры шаблона лямбда-выражения — это функция C++20",
|
||||
"использование \"_Noreturn\" устарело в C23; используйте вместо этого \"[[noreturn]]\"",
|
||||
"использование \"_Alignof\" устарело в C23; используйте вместо этого \"alignof\"",
|
||||
"использование \"_Alignas\" устарело в C23; используйте вместо этого \"alignas\"",
|
||||
"использование \"_Bool\" устарело в C23; используйте вместо этого \"bool\"",
|
||||
"использование \"_Static_assert\" устарело в C23; используйте вместо этого \"static_assert\"",
|
||||
"использование \"_Thread_local\" устарело в C23; используйте вместо этого \"thread_local\"",
|
||||
"Для использования файла модуля %sq должен быть включен режим Майкрософт (модуль IFC Microsoft Visual Studio)",
|
||||
"не удалось открыть файл модуля %sq",
|
||||
"найдено в сопоставлении модулей для модуля %sq",
|
||||
"найдено в сопоставлении единиц заголовка для %sq"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"bir diziye uygulanan '&' işaretinin bir etkisi yok",
|
||||
"'%%' öğesinin sağ işleneni sıfır",
|
||||
"bağımsız değişken, biçimsel parametre ile uyumlu değil",
|
||||
"bağımsız değişken, ilgili dize biçim dönüştürmesine uyumlu değil",
|
||||
"bağımsız değişken karşılık gelen biçim dizesi dönüştürmesi ile uyumsuz (beklenen tür %t1 ancak bağımsız değişkenin türü %t2)",
|
||||
"kaynak dosya %sq açılamıyor (arama listesinde dizin yok)",
|
||||
"dönüştürme türü, tamsayı türünde olmalı",
|
||||
"dönüştürme türü, aritmetik veya işaretçi türünde olmalı",
|
||||
@@ -952,7 +952,7 @@
|
||||
"'nonstd_using_decl' seçeneği yalnızca C++ derlerken kullanılabilir",
|
||||
"'main' işlevinin dönüş türü 'int' olmalı",
|
||||
"tür olmayan bir şablon parametresi, sınıf türünden olamaz",
|
||||
"varsayılan bir şablon bağımsız değişkeni, sınıfının dışındaki bir sınıf şablonu üyesinin bildiriminde belirtilemez",
|
||||
"varsayılan bir şablon bağımsız değişkeni, şablonun dışındaki bir sınıf şablonu üyesinin tanımında belirtilemez",
|
||||
"bir oluşturucunun işlev try bloğunun işleyicisinde, bir return deyimine izin verilmiyor",
|
||||
"sıradan ve genişletilmiş belirleyiciler, bir başlatıcı gösteriminde birleştirilemiyor",
|
||||
"ikinci alt indis ilkinden küçük olmamalıdır",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"Üst düzey görünürlük tanımlayıcısı bir tür tanımı gerektirir",
|
||||
"Önemsiz özellik bir başvuru türüne sahip olamaz",
|
||||
"Önemsiz özellik sabit veya geçici bir türe sahip olamaz",
|
||||
"%nd, daha önceden farklı bir sabit listesi türü olarak bildirildi",
|
||||
"%nd, daha önceden farklı sabit listesi türü olarak bildirildi",
|
||||
"Lambda tarafından yakalanan bir değişken %[managed] sınıf türüne sahip olamaz",
|
||||
"%[managed] sınıfında, kovaryant dönüş türü ile geçersiz kılan sanal işleve izin verilmez",
|
||||
"Tanıtıcı dizisine izin verilmez",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"constexpr işlevindeki değişken başlatılmadı",
|
||||
"`=` olmadan bir yer tutucu ile bildirilen değişkenin küme ayraçlarıyla başlatılması için küme ayraçlarının içinde tam bir öğe olması gerekir",
|
||||
"'%s' --target yapılandırması yok",
|
||||
"öznitelik 64 bit x86 yapılandırmalarında desteklenmez",
|
||||
"öznitelik yalnızca 32 bit x86 yapılandırmalarında desteklenir",
|
||||
"'%s' bir bağımsız değişken gerektiriyor",
|
||||
"bir oluşturucu veya yıkıcı, eş yordam olamaz",
|
||||
"%n bir eş yordam olamaz",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"this işaretçisinde amp kısıtlamalı %nfd üye işlevi için %t türü geçersiz",
|
||||
"AMP ile sınırlı %nfd işlevi için %t dönüş türü geçersiz",
|
||||
"AMP ile sınırlı %nfd işlevi için %t parametre türü geçersiz",
|
||||
null,
|
||||
"AMP ile sınırlı %nfd işlevinde geçersiz yapı",
|
||||
"%s depolama sınıfı AMP ile sınırlı %nfd işlevi için geçersiz",
|
||||
"%s kullanımına AMP ile sınırlı %nfd işlevinde izin verilmiyor",
|
||||
"AMP ile sınırlı işlevde geçersiz tür dönüştürme",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"geçici tür %t __builtin_bit_cast constexpr değerlendirmesi yapılmasını engelliyor",
|
||||
"bir %t türü birleşim, işaretçi veya üye işaretçisi __builtin_bit_cast constexpr değerlendirmesine engel oluyor",
|
||||
"%npTd, %p bildirimi kullanılarak devralındı",
|
||||
"devralma oluşturucuları için %t alt nesne oluşturma gerçekleştirilemiyor; örtük varsayılan Oluşturucu silindi",
|
||||
"devralma oluşturucuları için %t alt nesne oluşturma gerçekleştirilemiyor; ilişkili oluşturucu silindi",
|
||||
"%n void döndürmesi gerekir",
|
||||
"üye bildiriminin başlangıcı geçersiz",
|
||||
"'auto' bekleniyordu",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"'%s' için modül dosyası eşlemesi birden çok kez belirtildi",
|
||||
"'%s' için üst bilgi birimi eşlemesi birden çok kez belirtildi",
|
||||
"'%s' için eşleme belirtilmedi",
|
||||
"'%s' için modül dosyası eşlemesi geçersiz",
|
||||
null,
|
||||
"içeri aktarılacak '%s' üst bilgisi bulunamıyor",
|
||||
"modül dosyası listesinde birden fazla dosya '%s' ile eşleşiyor",
|
||||
"'%s' için bulunan modül dosyası farklı bir modüle yönelik",
|
||||
"herhangi bir türde modül dosyası",
|
||||
"modül dosyası okunamıyor",
|
||||
"char8_t türü geçerli seçeneklerle desteklenmediği için yerleşik işlev kullanılamıyor",
|
||||
"C++20 eş yordamları etkinleştirilirse --ms_await komut satırı seçeneği belirtilemez",
|
||||
null,
|
||||
"varsayılan toplama öğesi başlatma için açık oluşturucu %nod için standart olmayan kullanım",
|
||||
"memcpy benzeri iç öğenin kaynağı veya hedefi bir nesneye işaret etmiyor",
|
||||
"memcpy benzeri iç öğe, temsili olarak farklı %t1 ve %t2 türlerini kopyalamaya çalışıyor",
|
||||
@@ -3378,7 +3378,7 @@
|
||||
"Modül adında 'module' kullanılmasına izin verilmez",
|
||||
null,
|
||||
null,
|
||||
"%n sabit listesi türü değil",
|
||||
"%n bir sabit listesi türü değil",
|
||||
"%no2 numaralandırıcısı %n1 ile çakışıyor",
|
||||
"%no numaralandırıcısı bu %p kapsamında zaten bildirildi",
|
||||
"'throw ()' belirtimi C++ 20 ve üzeri sürümlerin bir parçası değil",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"%sq1 modülünün %d1 dosya konumu (%d2 göreli konumu) bölümün başlangıcından önce gelen %sq2 bölümü için istekte bulundu",
|
||||
"%sq1 modülünün %d1 dosya konumu (%d2 göreli konumu) bölümünün sonundan taşan %sq2 bölümü için istekte bulundu",
|
||||
"%sq1 modülünün %d1 dosya konumu (%d2 göreli konumu) bölüm öğeleriyle yanlış hizalanan %sq2 bölümü için istekte bulundu",
|
||||
"%sq alt alanından",
|
||||
"%sq alt alanından (%d düğümüne göreli olan konum)",
|
||||
"%sq bölümündeki %d1 öğesinden (%d2 dosya konumu, %d3 göreli konumu)",
|
||||
"lambda öznitelikleri burada standart dışı",
|
||||
"%sq tanımlayıcısı görsel olarak %p gibi görünen tanımlayıcıyla karıştırılabilir",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"%d1 parametre IFC parametre tanım grafiği tarafından belirtilirken %d2 parametre IFC bildirimi tarafından belirtildi",
|
||||
"%d1 parametre IFC parametre tanım grafiği tarafından belirtilirken %d2 parametre IFC bildirimi tarafından belirtildi",
|
||||
"%d1 parametre IFC parametre tanım grafiği tarafından belirtilirken %d2 parametre IFC bildirimi tarafından belirtildi",
|
||||
"%sq işlevine ait tanımın IFC gösterimi eksik"
|
||||
"%sq işlevine ait tanımın IFC gösterimi eksik",
|
||||
"işlev değiştirici, üye şablonu bildirimi için geçerli değil",
|
||||
"üye seçimi çok fazla iç içe anonim tür içeriyor",
|
||||
"işlenenler arasında ortak tür yok",
|
||||
"üye işaretçisi bekleniyordu",
|
||||
"esnek bir dizi üyesi diğer türlü boş olan bir türde bildirilemez",
|
||||
"'std::source_location::__impl', yalnızca '_M_function_name', '_M_file_name', '_M_column', '_M_line' veri üyelerine sahip bir sınıfa tanımlanmalıdır",
|
||||
"verilen sütun numarası 'std::source_location' uygulaması için çok büyük",
|
||||
"verilen satır numarası 'std::source_location' uygulaması için çok büyük",
|
||||
"UTF-16 karakter sabit değeri, bir kod biriminden fazla yer kaplayamaz; kesilmiş değer",
|
||||
"her iki bağımsız değişken de aynı türe sahip olmalıdır",
|
||||
"%t türü bu yerleşik için bağımsız değişken olarak geçersiz",
|
||||
"%nd kaynağından çağrı:",
|
||||
"nitelenmiş bir tür adı anonim bit alanları için standart dışı",
|
||||
"vektör koşulunun öğe türü (%t1), sonucun öğe türü (%t2) ile aynı boyuta sahip olmalıdır",
|
||||
"kayan nokta vektörü işlenen türü (%t) eşleşen bir tamsayı vektörü türü içermiyor",
|
||||
"'requires' ifadeleri için değiştirme henüz uygulanmadı",
|
||||
"'kullanılamayan' bir öznitelik nedeniyle",
|
||||
"yinelenen 'asm' niteleyicisi",
|
||||
"tamamlanmamış sabit listesi türüne sahip bir bit alanı veya geçersiz temel türe sahip opak bir sabit listesi",
|
||||
"%sq2 IFC bölümü içinde bir dizin kullanılarak %sq IFC bölümündeki bir öğe oluşturulmaya çalışıldı",
|
||||
"%sq bölümü, %d2 beklenirken girdi boyutunu %d1 olarak belirtti",
|
||||
"%sq1 modülü işlenirken beklenmeyen bir IFC gereksinimiyle karşılaşıldı",
|
||||
"koşul, %d numaralı satırda (%s1 içinde) başarısız oldu: %sq2",
|
||||
"atomik kısıtlama kendisine bağımlı",
|
||||
"'noreturn' işlevi geçersiz olmayan bir dönüş türüne sahiptir",
|
||||
"%sq parametresi kaldırılarak bir düzeltme yapıldı (%d göreli dizininde)",
|
||||
"varsayılan bir şablon bağımsız değişkeni, sınıfının dışındaki bir şablon üyesinin tanımında belirtilemez",
|
||||
"varlık yeniden oluşturma işlemi sırasında geçersiz %sq IFC tanımlayıcı adı ile karşılaşıldı",
|
||||
"varlık yeniden oluşturma işlemi sırasında geçersiz %sq IFC tanımlayıcı adı atlandı",
|
||||
"%sq modülü geçersiz sıralama değeri",
|
||||
"bir IFC modülünden yüklenen bir fonksiyon şablonu hatalı bir şekilde %nd olarak ayrıştırıldı",
|
||||
"%sq modülünde bir IFC varlık referansı yüklenemedi",
|
||||
"%sq bölümündeki %d1 öğesinden (%d2 dosya konumu, %d3 göreli konumu)",
|
||||
"zincirli belirleyicilere, önemsiz yıkıcıya sahip bir sınıf türü için izin verilmez",
|
||||
"açık bir özelleştirme bildirimi, arkadaş bildirimi olamaz",
|
||||
"std::float128_t türü desteklenmiyor; bunun yerine std::float64_t kullanılacak",
|
||||
"std::bfloat16_t türü desteklenmiyor; bunun yerine std::float32_t kullanılacak",
|
||||
"%no diğer ad şablonu için çıkarsama kılavuzu bildirilmemiş olabilir",
|
||||
"%n, kullanılamaz olarak bildirildi",
|
||||
"%n, kullanılamaz olarak bildirildi (%sq)",
|
||||
"'deprecated' özniteliği nedeniyle",
|
||||
"açık lambda şablon parametreleri bir C++20 özelliğidir",
|
||||
"'_Noreturn' kullanımı C23'te kullanımdan kaldırıldı. Bunun yerine '[[noreturn]]' kullanın",
|
||||
"'_Alignof' kullanımı C23'te kullanımdan kaldırıldı. Bunun yerine 'alignof' kullanın",
|
||||
"'_Alignas' kullanımı C23'te kullanımdan kaldırıldı. Bunun yerine 'alignas' kullanın",
|
||||
"'_Bool' kullanımı C23'te kullanımdan kaldırıldı. Bunun yerine 'bool' kullanın",
|
||||
"'_Static_assert' kullanımı C23'te kullanımdan kaldırıldı. Bunun yerine 'static_assert' kullanın",
|
||||
"'_Thread_local' kullanımı C23'te kullanımdan kaldırıldı. Bunun yerine 'thread_local' kullanın",
|
||||
"Microsoft modu, %sq modül dosyasını (Microsoft Visual Studio IFC modülü) kullanmak için etkinleştirilmelidir",
|
||||
"%sq modül dosyası açılamadı",
|
||||
"%sq modülü için modül eşlemesinde bulundu",
|
||||
"%sq için üst bilgi birimi eşlemesinde bulundu"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"应用于数组的“&”不起任何作用",
|
||||
"“%%”的右操作数为零",
|
||||
"实参与形参不兼容",
|
||||
"参数与对应的格式字符串转换不兼容",
|
||||
"参数与相应的格式字符串转换不兼容(应为类型 %t1,但参数的类型为 %t2)",
|
||||
"未能打开源文件 %sq (搜索列表中没有目录)",
|
||||
"强制转换的类型必须为整型",
|
||||
"强制转换的类型必须为算术或指针",
|
||||
@@ -952,7 +952,7 @@
|
||||
"选项“nonstd_using_decl”只能在编译 C++ 时使用",
|
||||
"函数“main”的返回类型必须是“int”",
|
||||
"非类型模板参数不能为类类型",
|
||||
"不能在类外部的类模板成员声明上指定默认模板参数",
|
||||
"不能在模板外部的类模板成员的定义上指定默认模板参数",
|
||||
"构造函数的函数 try 块的处理程序中不允许使用 return 语句",
|
||||
"初始值设定项指定中不能组合一般或扩展指示符",
|
||||
"第二个下标一定不能比第一个下标小",
|
||||
@@ -2175,7 +2175,7 @@
|
||||
"仅允许在 %[managed] 类中使用命名的重写说明符",
|
||||
"命名重写说明符指定的任何成员都不与此成员的类型相匹配",
|
||||
"静态构造函数声明不能包含命名重写说明符",
|
||||
"区分范围的枚举类型必须具有名称",
|
||||
"作用域内枚举类型必须具有名称",
|
||||
"不允许将控制传输到 finally 块",
|
||||
"不允许 finally 块内存在 return 语句",
|
||||
"try 块至少需要一个 handler 或 finally 子句",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"%nd 之前是用不同的基类型声明的",
|
||||
"此处不能使用“enum class”和“enum struct”(改用普通“enum”)",
|
||||
"在类型为 %t 的对象的初始值设定项中只允许使用一级括号",
|
||||
"%nd 不能在具有隐式返回类型",
|
||||
"%nd 不能用作枚举类型名称",
|
||||
null,
|
||||
"用大括号括起来的初始值设定项无法与“new auto”配合使用",
|
||||
"std::initializer_list 的定义未包含预期的构造函数",
|
||||
@@ -2367,7 +2367,7 @@
|
||||
"非类实体的带圆括号的初始值设定项必须为表达式,而不能是用大括号括起的列表",
|
||||
"用大括号括起的列表无法为此 lambda 提供返回类型",
|
||||
"所声明的异常规范与所生成的异常规范不兼容",
|
||||
"区分范围的枚举类型是 C++11 的一项功能",
|
||||
"范围枚举类型是 C++11 功能",
|
||||
"函数类型不能进行值初始化",
|
||||
"不允许对象类型 %t 的列表初始化,因为该类型不完整",
|
||||
"std::initializer_list 有析构函数,但实际不应有 -- 库配置有误",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"constexpr 函数中的变量未初始化",
|
||||
"使用占位符类型(但未使用 \"=\")声明的变量的大括号初始化只需要大括号里有一个元素",
|
||||
"无 \"%s\" --存在目标配置",
|
||||
"64 位 x86 配置中不支持属性",
|
||||
"属性仅在 32 位 x86 配置中受支持",
|
||||
"“%s”需要一个参数",
|
||||
"构造函数或析构函数不能是协同例程",
|
||||
"%n 不能是协同例程",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"this-pointer 中的类型 %t 对于 amp 限制的成员函数 %nfd 是非法的",
|
||||
"返回类型 %t 对于受 AMP 限制的函数 %nfd 是非法的",
|
||||
"参数类型 %t 对于受 AMP 限制的函数 %nfd 是非法的",
|
||||
null,
|
||||
"受 AMP 限制的函数 %nfd 中的非法构造",
|
||||
"存储类 %s 在受 AMP 限制的函数 %nfd 中是非法的",
|
||||
"%s 不可在受 AMP 限制的函数 %nfd 中使用",
|
||||
"受 AMP 限制的函数中的强制转换非法",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"易失类型 %t 阻止对 __builtin_bit_cast 进行 constexpr 计算",
|
||||
"联合类型、指针类型或指向成员的指针类型 %t 阻止对 __builtin_bit_cast 进行 constexpr 计算",
|
||||
"%npTd,已通过使用 decl %p 继承",
|
||||
"无法为继承构造函数执行 %t 的子对象构造 -- 已删除隐式默认构造函数",
|
||||
"无法为继承构造函数执行 %t 的子对象构造 -- 已删除关联的构造函数",
|
||||
"%n 必须返回 void",
|
||||
"成员声明的开头无效",
|
||||
"应为 \"auto\"",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"多次为“%s”指定了模块文件映射",
|
||||
"多次为“%s”指定了标头单元映射",
|
||||
"未为“%s”指定映射",
|
||||
"“%s”的模块文件映射无效",
|
||||
null,
|
||||
"找不到要导入的标头“%s”",
|
||||
"模块文件列表中有多个文件与“%s”匹配",
|
||||
"为“%s”找到的模块文件用于其他模块",
|
||||
"任何类型的模块文件",
|
||||
"无法读取模块文件",
|
||||
"内置函数不可用,因为当前选项不支持 char8_t 类型",
|
||||
"如果启用了 C++20 协同程序,则无法指定 --ms_await 命令行选项",
|
||||
null,
|
||||
"对默认聚合元素初始化使用显式构造函数 %nod 不是标准做法",
|
||||
"与 memcpy 类似的固有项的源或目标不指向对象",
|
||||
"与 memcpy 类似的固有项尝试复制在表达上不同的类型 %t1 和 %t2",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"已请求模块 %sq1 文件位置 %d1 (相对位置 %d2),针对分区 %sq2 请求 - 分区开始前",
|
||||
"已请求模块 %sq1 文件位置 %d1 (相对位置 %d2),针对分区 %sq2 请求 - 溢出其分区的末尾",
|
||||
"已请求模块 %sq1 文件位置 %d1 (相对位置 %d2),针对分区 %sq2 - 与其分区元素不一致",
|
||||
"从子字段 %sq",
|
||||
"从子域 %sq (相对于节点 %d 的位置)",
|
||||
"从分区 %sq 元素 %d1 (文件位置 %d2,相对位置 %d3)",
|
||||
"lambda 属性在此处为非标准属性",
|
||||
"标识符 %sq 可能与显示 %p 的视觉上相似的标识符混淆",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"%d1 参数由 IFC 参数定义图表指定,而 %d2 参数由 IFC 声明指定",
|
||||
"%d1 参数由 IFC 参数定义图表指定,而 %d2 参数由 IFC 声明指定",
|
||||
"%d1 参数由 IFC 参数定义图表指定,而 %d2 参数由 IFC 声明指定",
|
||||
"缺少函数 %sq 定义的 IFC 表示形式"
|
||||
"缺少函数 %sq 定义的 IFC 表示形式",
|
||||
"函数修饰符不适用于成员模板声明",
|
||||
"成员选择涉及太多嵌套的匿名类型",
|
||||
"操作数之间没有通用类型",
|
||||
"需要指向成员的指针",
|
||||
"不能在其他空类型中声明灵活数组成员",
|
||||
"应将“std::source_location::__impl”定义为仅包含数据成员“__M_function_name”、“_M_file_name”、“_M_column”、“_M_line”的类",
|
||||
"给定的列号对于“std::source_location”实现而言太大",
|
||||
"给定的行号对于“std::source_location”实现而言太大",
|
||||
"UTF-16 字符常量不能占用多个代码单元;值已截断",
|
||||
"两个参数的类型必须相同",
|
||||
"类型 %t 无效,不能用作此内置项的参数",
|
||||
"调用自 %nd:",
|
||||
"限定类型对于匿名位字段是非标准的",
|
||||
"向量条件的元素类型(%t1)的大小必须与结果的元素类型相同(%t2)",
|
||||
"浮点向量操作数类型(%t)没有匹配的整数向量类型",
|
||||
"尚未实现 “requires” 表达式的变量名压缩",
|
||||
"因为“不可用”属性",
|
||||
"重复的 \"asm\" 限定符",
|
||||
"具有不完整枚举类型的位字段或具有无效基类型的不透明枚举",
|
||||
"已尝试使用索引将一个元素从 IFC 分区 %sq 构造到 IFC 分区 %sq2",
|
||||
"分区 %sq 将其条目大小指定为 %d1,正确的大小为 %d2",
|
||||
"处理模块 %sq1 时遇到意外的 IFC 要求",
|
||||
"条件失败,行 %d,%s1: %sq2",
|
||||
"原子约束依赖于自身",
|
||||
"“noreturn”函数具有非 void 返回类型",
|
||||
"通过删除参数 %sq (在相对索引 %d 处)进行了更正",
|
||||
"不能在成员模板类之外的成员模板定义上指定默认模板参数",
|
||||
"实体重建期间遇到了无效的 IFC 标识符名称 %sq",
|
||||
"实体重建期间跳过了名为 %sq 的无效 IFC 标识符",
|
||||
"模块 %sq 排序值无效",
|
||||
"从 IFC 模块加载的函数模板被错误地分析为 %nd",
|
||||
"未能在模块 %sq 中加载 IFC 实体引用",
|
||||
"从分区 %sq 元素 %d1 (文件位置 %d2,相对位置 %d3)",
|
||||
"对于具有非平凡析构函数的类的类型,不允许使用链式指示符",
|
||||
"显式专用化声明不能是友元声明",
|
||||
"不支持 std::float128_t 类型; 将改用 std::float64_t",
|
||||
"不支持 std::bfloat16_t 类型; 将改用 std::float32_t",
|
||||
"不能为别名模板 %no 声明推导指南",
|
||||
"%n 已声明为不可用",
|
||||
"%n 已声明为不可用 (%sq)",
|
||||
"因为 'deprecated' 属性",
|
||||
"显式 Lambda 模板参数是 C++20 功能",
|
||||
"在 C23 中,已淘汰使用 '_Noreturn';请改用 '[[noreturn]]'",
|
||||
"在 C23 中,已淘汰使用 '_Alignof';请改用 'alignof'",
|
||||
"在 C23 中,已淘汰使用 '_Alignas';请改用 'alignas'",
|
||||
"在 C23 中,已淘汰使用 '_Bool';请改用 'bool'",
|
||||
"在 C23 中,已淘汰使用 '_Static_assert';请改用 'static_assert'",
|
||||
"在 C23 中,已淘汰使用 '_Thread_local';请改用 'thread_local'",
|
||||
"必须启用 Microsoft 模式才能使用模块文件 %sq (Microsoft Visual Studio IFC 模块)",
|
||||
"无法打开模块文件 %sq",
|
||||
"在模块 %sq 的模块映射中找到",
|
||||
"在 %sq 的标头单元映射中找到"
|
||||
]
|
||||
@@ -180,7 +180,7 @@
|
||||
"將 '&' 套用至陣列無效",
|
||||
"'%%' 的右運算元為零",
|
||||
"引數與型式參數不相容",
|
||||
"引數與對應的格式字串轉換不相容",
|
||||
"引數與對應的格式字串轉換不相容 (預期類型為 %t1,但引數類型是 %t2)",
|
||||
"無法開啟來源檔案 %sq (搜尋清單中沒有目錄)",
|
||||
"轉換的類型必須是整數類資料類型",
|
||||
"轉換的類型必須是算術或指標類型",
|
||||
@@ -952,7 +952,7 @@
|
||||
"'nonstd_using_decl' 選項只有在編譯 C++ 時才能使用",
|
||||
"函式 'main' 的傳回類型必須是 'int'",
|
||||
"非類型樣板參數可能沒有類別類型",
|
||||
"預設樣板引數不可在其類別以外的類別樣板成員的宣告上指定",
|
||||
"預設範本引數不可在其類別以外的類別範本成員的宣告上指定",
|
||||
"建構函式的函式 try 區塊的處理常式不能有 return 陳述式",
|
||||
"一般和擴充的指示項不能合併在初始設定指定中",
|
||||
"第二個訂閱不得小於第一個",
|
||||
@@ -1955,7 +1955,7 @@
|
||||
"最上層可見度規範需要類型定義",
|
||||
"trivial 屬性不能有參考類型",
|
||||
"trivial 屬性不能有 const 或 volatile 類型",
|
||||
"%nd 先前宣告為不同類型的列舉類型",
|
||||
"%nd 先前宣告為不同列舉類型的種類",
|
||||
"Lambda 所擷取的變數不能有 %[managed] 類別類型",
|
||||
"%[managed] 類別不能有以 covariant 傳回類型覆寫的虛擬函式",
|
||||
"不允許控制代碼陣列",
|
||||
@@ -2344,7 +2344,7 @@
|
||||
"%nd 之前是以不同的基底類型宣告",
|
||||
"這裡不能使用 'enum class' 和 'enum struct' (改成只用 'enum')",
|
||||
"在類型 %t 之物件的初始設定式上,只允許一個層級的大括號",
|
||||
"不能使用 %nd 做為列舉類型名稱",
|
||||
"不能使用 %nd 作為列舉類型名稱",
|
||||
null,
|
||||
"以大括號括住的初始設定式無法與 'new auto' 一起使用",
|
||||
"std::initializer_list 的定義不包含預期的建構函式",
|
||||
@@ -2664,7 +2664,7 @@
|
||||
"constexpr 函式中的變數未初始化",
|
||||
"已宣告為預留位置類型但沒有 '=' 且括在大括弧中的變數初始化,在大括弧內只需要一個項目。",
|
||||
"沒有任何 '%s' -- 目標組態",
|
||||
"64 位元的 x86 組態中不支援屬性",
|
||||
"屬性只在 32 位元的 x86 組態中支援",
|
||||
"'%s' 需要引數",
|
||||
"建構函式或解構函式不可為協同程式",
|
||||
"%n 不可為協同程式",
|
||||
@@ -2935,7 +2935,7 @@
|
||||
"類型 %t 在 amp 限定成員函式 %nfd 的 this 指標中不合法",
|
||||
"傳回型別 %t 在 AMP 限制涵式 %nfd 中不合法",
|
||||
"參數類型 %t 在 AMP 限制涵式 %nfd 中不合法",
|
||||
null,
|
||||
"AMP 限制涵式 %nfd 中有不合法的建構",
|
||||
"儲存類別 %s 在 AMP 限制涵式 %nfd 中不合法",
|
||||
"%s 不得出現在 AMP 限制涵式 %nfd 中",
|
||||
"AMP 限制涵式中有不合法的轉換",
|
||||
@@ -3292,7 +3292,7 @@
|
||||
"揮發性類型 %t 會防止 __builtin_bit_cast 的 constexpr 評估",
|
||||
"等位、指標或成員指標類型 %t 會防止 __builtin_bit_cast 的 constexpr 評估",
|
||||
"%npTd,透過使用宣告 %p 來繼承",
|
||||
"無法執行用於繼承建構函式的 %t 子物件建構 -- 已刪除隱含的預設建構函式",
|
||||
"無法執行用於繼承建構函式的 %t 子物件建構 -- 已刪除相關連的建構函式",
|
||||
"%n 必須傳回 void",
|
||||
"成員宣告開頭無效",
|
||||
"必須是 'auto'",
|
||||
@@ -3343,14 +3343,14 @@
|
||||
"指定了多次 '%s' 的模組檔案對應",
|
||||
"指定了多次 '%s' 的標頭單位對應",
|
||||
"未指定 '%s' 的對應",
|
||||
"'%s' 的模組檔案對應無效",
|
||||
null,
|
||||
"找不到要匯入的標頭 '%s'",
|
||||
"模組檔案清單中有多個檔案與 '%s' 相符",
|
||||
"為 '%s' 找到的模組檔案會用於其他模組",
|
||||
"任何類型的模組檔案",
|
||||
"無法讀取模組檔案",
|
||||
"因為目前的選項不支援 char8_t 類型,所以無法使用內建函式",
|
||||
"如果啟用 C++ 20 協同程式,就不能指定 --ms_await 命令列選項",
|
||||
null,
|
||||
"非標準地使用明確的建構函式 %nod 進行預設彙總元素初始化",
|
||||
"內建類 memcpy 的來源或目的地未指向物件",
|
||||
"內建類 memcpy 嘗試複製具象相異類型 %t1 與 %t2",
|
||||
@@ -3378,7 +3378,7 @@
|
||||
"模組名稱中不得包含 'module'",
|
||||
null,
|
||||
null,
|
||||
"%n 不是列舉類型",
|
||||
"%n 不是列舉類型。",
|
||||
"列舉程式 %no2 與 %n1 衝突",
|
||||
"列舉程式 %no 已於此範圍 %p 中宣告",
|
||||
"'throw()' 規格不屬於 C++20 及更新版本",
|
||||
@@ -3423,7 +3423,7 @@
|
||||
"模組 %sq1 檔案位置 %d1 (相對位置 %d2) 要求分割區 %sq2 - 在分割區開始之前",
|
||||
"模組 %sq1 檔案位置 %d1 (相對位置 %d2) 要求分割區 %sq2 - 溢出其分割區的結尾",
|
||||
"模組 %sq1 檔案位置 %d1 (相對位置 %d2) 要求分割區 %sq2 - 與其分割區元素對齊錯誤",
|
||||
"從子欄位 %sq",
|
||||
"從 subfield %sq (節點 %d 的相對位置)",
|
||||
"從分割區 %sq 元素 %d1 (檔案位置 %d2,相對位置 %d3)",
|
||||
"Lambda 屬性在此為非標準",
|
||||
"識別碼 %sq 可能會與 %p 上視覺類似的識別碼混淆",
|
||||
@@ -3445,5 +3445,57 @@
|
||||
"IFC 參數定義圖表指定了 %d1 個參數,而 IFC 宣告則指定了 %d2 個參數",
|
||||
"IFC 參數定義圖表指定了 %d1 個參數,而 IFC 宣告則指定了 %d2 個參數",
|
||||
"IFC 參數定義圖表指定了 %d1 個參數,而 IFC 宣告則指定了 %d2 個參數",
|
||||
"遺漏函數 %sq 定義的 IFC 標記法"
|
||||
"遺漏函數 %sq 定義的 IFC 標記法",
|
||||
"函數修飾詞不適用於成員範本宣告",
|
||||
"成員選取涉及太多巢狀匿名型別",
|
||||
"運算元之間沒有通用類型",
|
||||
"必須是指標對成員",
|
||||
"彈性陣列成員不能在非空白的類型中宣告",
|
||||
"必須將 'std::source_location::__impl' 定義為只有資料成員為 '_M_function_name', '_M_file_name', '_M_column', '_M_line' 的類別",
|
||||
"提供的資料行對 'std::source_location' 實作而言過大",
|
||||
"提供的行號對 'std::source_location' 實作而言過大",
|
||||
"UTF-16 字元常數不可佔用多個程式碼單位; 已截斷值",
|
||||
"兩個引數的類型必須相同",
|
||||
"類型 %t 對此內建的引數無效",
|
||||
"呼叫自 %nd:",
|
||||
"限定類型對匿名位欄位而言不是標準類型",
|
||||
"向量條件 (%t1) 的元素類型大小必須與結果的元素類型相同 (%t2)",
|
||||
"浮點向量運算元類型 (%t) 沒有相符的整數向量類型",
|
||||
"尚未實作 'requires' 運算式的重整",
|
||||
"因為 'unavailable' 屬性",
|
||||
"重复的 'asm' 限定詞",
|
||||
"具有不完整列舉類型的位欄位,或具有無效基底類型的不透明列舉",
|
||||
"已嘗試使用索引從 IFC 磁碟分割 %sq2 將元素建構到 IFC 磁碟分割 %sq",
|
||||
"磁碟分割 %sq 在需要 %d2 時將其項目大小指定為 %d1",
|
||||
"處理模組 %sq1 時發現未預期的 IFC 需求",
|
||||
"第 %d 行 (在 %s1 中) 條件失敗: %sq2",
|
||||
"不可部分完成限制式依賴其本身",
|
||||
"'noreturn' 函數具有非 void 的返回類型",
|
||||
"已置放參數 %sq (相對索引 %d) 進行修正",
|
||||
"無法在其類別外的成員範本定義上指定預設範本引數",
|
||||
"實體重建期間發現無效 IFC 識別碼名稱 %sq",
|
||||
"實體重建期間略過名稱為 %sq 的無效 IFC 識別碼",
|
||||
"模組 %sq 無效排序值",
|
||||
"從 IFC 模組載入的函數範本不正確地剖析為 %nd",
|
||||
"無法在模組 %sq 中載入 IFC 實體參考",
|
||||
"從分割區 %sq 元素 %d1 (檔案位置 %d2,相對位置 %d3)",
|
||||
"具有非屬性解構函數的類別類型不允許連結指定元",
|
||||
"明確的特殊化宣告不能是 friend 宣告",
|
||||
"不支援 std::float128_t 類型,將改用 std::float64_t",
|
||||
"不支援 std::bfloat16_t 類型,將改用 std::float32_t",
|
||||
"別名範本不可宣告扣除指南 %no",
|
||||
"已宣告 %n 無法使用",
|
||||
"已宣告 %n 無法使用 (%sq)",
|
||||
"因為 'deprecated' 屬性",
|
||||
"明確的 lambda 範本參數是 C++20 功能",
|
||||
"'_Noreturn' 的使用已在 C23 中過時; 請改用 '[[noreturn]]'",
|
||||
"'_Alignof' 的使用已在 C23 中過時; 請改用 'alignof'",
|
||||
"'_Alignas' 的使用已在 C23 中過時; 請改用 'alignas'",
|
||||
"'_Bool' 的使用已在 C23 中過時; 請改用 'bool'",
|
||||
"'_Static_assert' 的使用已在 C23 中過時; 請改用 'static_assert'",
|
||||
"'_Thread_local' 的使用已在 C23 中過時; 請改用 'thread_local'",
|
||||
"必須啟用 Microsoft 模式,才能使用模組檔案 %sq (Microsoft Visual Studio IFC 模組)",
|
||||
"無法開啟模組檔案 %sq",
|
||||
"在模組對應中找到模組 %sq",
|
||||
"在標頭單元對應中找到 %sq"
|
||||
]
|
||||
@@ -4,11 +4,11 @@
|
||||
"--microsoft",
|
||||
"--microsoft_bugs",
|
||||
"--microsoft_version",
|
||||
"1929",
|
||||
"1935",
|
||||
"--pack_alignment",
|
||||
"8",
|
||||
"-D_MSC_VER=1929",
|
||||
"-D_MSC_FULL_VER=192929917",
|
||||
"-D_MSC_VER=1935",
|
||||
"-D_MSC_FULL_VER=193532215",
|
||||
"-D_MSC_BUILD=0",
|
||||
"-D_M_ARM=7"
|
||||
],
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
"--microsoft",
|
||||
"--microsoft_bugs",
|
||||
"--microsoft_version",
|
||||
"1929",
|
||||
"1935",
|
||||
"--pack_alignment",
|
||||
"8",
|
||||
"-D_CPPUNWIND=1",
|
||||
"-D_MSC_VER=1929",
|
||||
"-D_MSC_FULL_VER=192929917",
|
||||
"-D_MSC_VER=1935",
|
||||
"-D_MSC_FULL_VER=193532215",
|
||||
"-D_MSC_BUILD=0",
|
||||
"-D_M_ARM64=1"
|
||||
],
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
"--microsoft",
|
||||
"--microsoft_bugs",
|
||||
"--microsoft_version",
|
||||
"1929",
|
||||
"1935",
|
||||
"--pack_alignment",
|
||||
"8",
|
||||
"-D_CPPUNWIND=1",
|
||||
"-D_MSC_VER=1929",
|
||||
"-D_MSC_FULL_VER=192929917",
|
||||
"-D_MSC_VER=1935",
|
||||
"-D_MSC_FULL_VER=193532215",
|
||||
"-D_MSC_BUILD=0",
|
||||
"-D_M_X64=100",
|
||||
"-D_M_AMD64=100"
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
"--microsoft",
|
||||
"--microsoft_bugs",
|
||||
"--microsoft_version",
|
||||
"1929",
|
||||
"1935",
|
||||
"--pack_alignment",
|
||||
"8",
|
||||
"-D_MSC_VER=1929",
|
||||
"-D_MSC_FULL_VER=192929917",
|
||||
"-D_MSC_VER=1935",
|
||||
"-D_MSC_FULL_VER=193532215",
|
||||
"-D_MSC_BUILD=0",
|
||||
"-D_M_IX86=600",
|
||||
"-D_M_IX86_FP=2"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
"type": "string"
|
||||
},
|
||||
"compilerArgs": {
|
||||
"markdownDescription": "Compiler arguments to modify the includes or defines used, e.g. `-nostdinc++`, `-m32`, etc.",
|
||||
"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
|
||||
"markdownDescription": "Compiler arguments to modify the includes or defines used, e.g. `-nostdinc++`, `-m32`, etc. Arguments that take additional space-delimited arguments should be entered as separate arguments in the array, e.g. for `--sysroot <arg>` use `\"--sysroot\", \"<arg>\"`.",
|
||||
"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered, except potentially the `arg` text which is a placeholder and not literal text, i.e. an abbreviation for `argument`.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
@@ -36,10 +36,12 @@
|
||||
"c99",
|
||||
"c11",
|
||||
"c17",
|
||||
"c23",
|
||||
"gnu89",
|
||||
"gnu99",
|
||||
"gnu11",
|
||||
"gnu17",
|
||||
"gnu23",
|
||||
"${default}"
|
||||
]
|
||||
},
|
||||
@@ -53,12 +55,14 @@
|
||||
"c++14",
|
||||
"c++17",
|
||||
"c++20",
|
||||
"c++23",
|
||||
"gnu++98",
|
||||
"gnu++03",
|
||||
"gnu++11",
|
||||
"gnu++14",
|
||||
"gnu++17",
|
||||
"gnu++20",
|
||||
"gnu++23",
|
||||
"${default}"
|
||||
]
|
||||
},
|
||||
@@ -76,7 +80,7 @@
|
||||
}
|
||||
},
|
||||
"macFrameworkPath": {
|
||||
"description": "A list of paths for the Intellisense engine to use while searching for included headers from Mac frameworks. Only supported on Mac configuration.",
|
||||
"description": "A list of paths for the IntelliSense engine to use while searching for included headers from Mac frameworks. Only supported on Mac configuration.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
|
||||
+22
-21
@@ -1,24 +1,25 @@
|
||||
{
|
||||
"Registrations": [
|
||||
{
|
||||
"Component": {
|
||||
"Type": "git",
|
||||
"Git": {
|
||||
"RepositoryUrl": "https://github.com/llvm/llvm-project",
|
||||
"CommitHash": "0d44201451f03ba907cdb268ddddfc3fa38a0ebd"
|
||||
},
|
||||
"DevelopmentDependency": true
|
||||
}
|
||||
"$schema": "https://json.schemastore.org/component-detection-manifest.json",
|
||||
"Registrations": [
|
||||
{
|
||||
"Component": {
|
||||
"Type": "git",
|
||||
"Git": {
|
||||
"RepositoryUrl": "https://github.com/llvm/llvm-project",
|
||||
"CommitHash": "0d44201451f03ba907cdb268ddddfc3fa38a0ebd"
|
||||
},
|
||||
{
|
||||
"Component": {
|
||||
"Type": "git",
|
||||
"Git": {
|
||||
"RepositoryUrl": "https://github.com/lldb-tools/lldb-mi",
|
||||
"CommitHash": "2388bd74133bc21eac59b2e2bf97f2a30770a315"
|
||||
}
|
||||
}
|
||||
"DevelopmentDependency": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"Component": {
|
||||
"Type": "git",
|
||||
"Git": {
|
||||
"RepositoryUrl": "https://github.com/lldb-tools/lldb-mi",
|
||||
"CommitHash": "2388bd74133bc21eac59b2e2bf97f2a30770a315"
|
||||
}
|
||||
],
|
||||
"Version": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"Version": 1
|
||||
}
|
||||
|
||||
@@ -72,6 +72,10 @@ gulp.task('lint', function () {
|
||||
.pipe(eslint.failAfterError());
|
||||
});
|
||||
|
||||
gulp.task('copy-walkthrough-media', function () {
|
||||
return gulp.src('walkthrough/images/**/*')
|
||||
.pipe(gulp.dest('dist/walkthrough/images'));
|
||||
});
|
||||
|
||||
// ****************************
|
||||
// Command: translations-export
|
||||
@@ -94,11 +98,11 @@ function removePathPrefix(path, prefix) {
|
||||
}
|
||||
let ch = prefix.charAt(prefix.length - 1);
|
||||
if (ch === '/' || ch === '\\') {
|
||||
return path.substr(prefix.length);
|
||||
return path.substring(prefix.length);
|
||||
}
|
||||
ch = path.charAt(prefix.length);
|
||||
if (ch === '/' || ch === '\\') {
|
||||
return path.substr(prefix.length + 1);
|
||||
return path.substring(prefix.length + 1);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
@@ -378,7 +382,7 @@ const generateLocalizedWalkthroughHtmlFiles = () => {
|
||||
return es.through(function (file) {
|
||||
let relativePath = removePathPrefix(file.path, file.cwd);
|
||||
languages.map((language) => {
|
||||
let newPath = relativePath.substr(0, relativePath.lastIndexOf(".")) + `.nls.${language.id}.md`;
|
||||
let newPath = relativePath.substring(0, relativePath.lastIndexOf(".")) + `.nls.${language.id}.md`;
|
||||
let newContent = generateLocalizedHtmlFilesImpl(file, relativePath, language, true);
|
||||
this.queue(new vinyl({
|
||||
path: newPath,
|
||||
@@ -386,7 +390,7 @@ const generateLocalizedWalkthroughHtmlFiles = () => {
|
||||
}));
|
||||
});
|
||||
// Put the original in an 'en' file.
|
||||
let newPath = relativePath.substr(0, relativePath.lastIndexOf(".")) + ".nls.en.md";
|
||||
let newPath = relativePath.substring(0, relativePath.lastIndexOf(".")) + ".nls.en.md";
|
||||
this.queue(new vinyl({
|
||||
path: newPath,
|
||||
contents: file.contents
|
||||
|
||||
@@ -16,6 +16,6 @@
|
||||
"reinstall.extension.text5": "在 Windows 上:",
|
||||
"reinstall.extension.text6": "在 Linux 上:",
|
||||
"reinstall.extension.text7": "然后通过 VS Code 中的市场 UI 重新安装。",
|
||||
"reinstall.extension.text8": "如果 VS Code 无法部署扩展的正确版本,则可以 {0} 并使用 VS Code 中市场 UI 内 “...” 菜单下的 `从 VSIX... 安装` 选项安装系统的正确 VSIX。",
|
||||
"reinstall.extension.text8": "如果 VS Code 无法部署扩展的正确版本,则可以 {0} 并使用 VS Code 中市场 UI 内 \"...\" 菜单下的 \"从 VSIX... 安装\" 选项安装系统的正确 VSIX。",
|
||||
"download.vsix.link.title": "已从 VS Code 市场网站下载"
|
||||
}
|
||||
@@ -6,12 +6,12 @@
|
||||
{
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.name": "配置标识符。 `Mac`、`Linux` 和 `Win32` 是将在这些平台上自动选择的配置的特殊标识符,但标识符可以为任何内容。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerPath": "正在使用的编译器的完整路径(例如 `/usr/bin/gcc`),以启用更准确的 IntelliSense。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "用于修改使用的包含或定义的编译器参数,例如 `-nostdinc++`、`-m32` 等。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "用于修改所使用的包含或定义的编译器参数,例如 `-nostdinc++`、`-m32` 等。采用其他空格分隔参数的参数应在数组中作为单独的参数输入,例如,对于 `--sysroot <arg>` 使用 `\"--sysroot\", \"<arg>\"`。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "用于 IntelliSense 的 C 语言标准的版本。注意: GNU 标准仅用于查询设置编译器以获取 GNU 定义,并且 IntelliSense 将模拟等效的 C 标准版本。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "用于 IntelliSense 的 C++ 语言标准的版本。注意: GNU 标准仅用于查询设置用来获取 GNU 定义的编译器,并且 IntelliSense 将模拟等效的 C++ 标准版本。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "工作区的 `compile_commands.json` 文件的完整路径。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "搜索包含的标头时,IntelliSense 引擎要使用的路径列表。在这些路径上进行搜索为非递归搜索。指定 `**` 以指示递归搜索。例如,`${workspaceFolder}/**` 将搜索所有子目录,而 `${workspaceFolder}` 则不会。通常,此操作不应包含系统包含项;请改为设置 `C_Cpp.default.compilerPath`。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Intellisense 引擎在 Mac 框架中搜索包含的标头时要使用的路径的列表。仅在 Mac 配置中受支持。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "IntelliSense 引擎在 Mac 框架中搜索包含的标头时要使用的路径的列表。仅在 Mac 配置中受支持。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "要在 Windows 上使用的 Windows SDK 包含路径的版本,例如 `10.0.17134.0`。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.dotConfig": "Kconfig 系统创建的 .config 文件的路径。Kconfig 系统生成包含所有定义的文件以生成项目。使用 Kconfig 系统的项目示例包括 Linux 内核和 NuttX RTOS。",
|
||||
"c_cpp_properties.schema.json.definitions.configurations.items.properties.defines": "分析文件时要使用的 IntelliSense 引擎的预处理器定义列表。(可选)使用 `=` 设置值,例如 `VERSION=1`。",
|
||||
|
||||
@@ -4,11 +4,21 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"c_cpp.subheaders.intelliSense.title": "IntelliSense",
|
||||
"c_cpp.subheaders.formatting.title": "格式设置",
|
||||
"c_cpp.subheaders.codeDocumentation.title": "代码文档",
|
||||
"c_cpp.subheaders.codeAnalysis.title": "代码分析",
|
||||
"c_cpp.subheaders.debugging.title": "调试",
|
||||
"c_cpp.subheaders.resourceManagement.title": "资源管理",
|
||||
"c_cpp.subheaders.miscellaneous.title": "杂项",
|
||||
"c_cpp.capabilities.untrustedWorkspaces.description": "多个设置可能导致执行工作区本地进程,例如,C_Cpp.clang_format_path、C_Cpp.codeAnalysis.clangTidy.path、C_Cpp.addNodeAddonIncludePaths、C_Cpp.default.compilerPath、C_Cpp.default.configurationProvider 和 C_Cpp.default.compileCommands,以及 c_cpp_properties.json 中的等效属性。",
|
||||
"c_cpp.command.configurationSelect.title": "选择配置...",
|
||||
"c_cpp.command.configurationProviderSelect.title": "更改配置提供程序...",
|
||||
"c_cpp.command.configurationEditJSON.title": "编辑配置(JSON)",
|
||||
"c_cpp.command.configurationEditUI.title": "编辑配置(UI)",
|
||||
"c_cpp.command.selectDefaultCompiler.title": "选择默认编译器...",
|
||||
"c_cpp.command.selectIntelliSenseConfiguration.title": "选择 IntelliSense 配置...",
|
||||
"c_cpp.command.rescanCompilers.title": "重新扫描编译器",
|
||||
"c_cpp.command.switchHeaderSource.title": "切换标头/源",
|
||||
"c_cpp.command.enableErrorSquiggles.title": "启用错误波形曲线",
|
||||
"c_cpp.command.disableErrorSquiggles.title": "禁用错误波形曲线",
|
||||
@@ -26,12 +36,23 @@
|
||||
"c_cpp.command.generateEditorConfig.title": "从 VC 格式设置生成 EditorConfig 内容",
|
||||
"c_cpp.command.GoToNextDirectiveInGroup.title": "转到条件组中的下一个预处理器指令",
|
||||
"c_cpp.command.GoToPrevDirectiveInGroup.title": "转到条件组中的上一个预处理器指令",
|
||||
"c_cpp.command.CreateDeclarationOrDefinition.title": "创建声明/定义",
|
||||
"c_cpp.command.RunCodeAnalysisOnActiveFile.title": "在活动文件上运行 Code Analysis",
|
||||
"c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "在打开的文件上运行 Code Analysis",
|
||||
"c_cpp.command.RunCodeAnalysisOnAllFiles.title": "在所有文件上运行 Code Analysis",
|
||||
"c_cpp.command.ClearCodeAnalysisSquiggles.title": "清除 Code Analysis 波形曲线",
|
||||
"c_cpp.command.RemoveAllCodeAnalysisProblems.title": "清除所有代码分析问题",
|
||||
"c_cpp.command.BuildAndDebugFile.title": "调试 C/C++ 文件",
|
||||
"c_cpp.command.BuildAndRunFile.title": "运行 C/C++ 文件",
|
||||
"c_cpp.command.AddDebugConfiguration.title": "添加调试配置",
|
||||
"c_cpp.command.GenerateDoxygenComment.title": "生成 Doxygen 注释",
|
||||
"c_cpp.command.addSshTarget.title": "添加 SSH 目标",
|
||||
"c_cpp.command.removeSshTarget.title": "移除 SSH 目标",
|
||||
"c_cpp.command.setActiveSshTarget.title": "将此 SSH 目标设置为活动目标",
|
||||
"c_cpp.command.selectActiveSshTarget.title": "选择活动 SSH 目标",
|
||||
"c_cpp.command.selectSshTarget.title": "选择 SSH 目标",
|
||||
"c_cpp.command.activeSshTarget.title": "获取活动 SSH 目标",
|
||||
"c_cpp.command.refreshCppSshTargetsView.title": "刷新",
|
||||
"c_cpp.command.sshTerminal.title": "在新终端中连接到此 SSH 目标",
|
||||
"c_cpp.configuration.maxConcurrentThreads.markdownDescription": "用于语言服务处理的最大并发线程数。该值是一个提示,且不能始终使用。默认值 `null` (空)使用可用的逻辑处理器数。",
|
||||
"c_cpp.configuration.maxCachedProcesses.markdownDescription": "用于语言服务处理的最大缓存进程数。默认值 `null` (空)使用可用逻辑处理器数的两倍。",
|
||||
"c_cpp.configuration.maxMemory.markdownDescription": "可用于语言服务处理的最大内存(以 MB 为单位)。超过此内存使用量后,将缓存且并发运行较少的进程。默认值 `null` (空)使用系统的空闲内存。",
|
||||
@@ -43,16 +64,25 @@
|
||||
"c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "用于代码分析的最大并发线程数。默认值 `null` (空)使用从 `#C_Cpp.maxConcurrentThreads#` 继承的值的一半。",
|
||||
"c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "超过此内存使用量(以 MB 为单位)后,将并发运行更少的代码分析进程。默认值 `null` (空)使用从 `#C_Cpp.maxMemory#` 继承的值。",
|
||||
"c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "控制在 `#files.autoSave#` 为 `afterDelay` 且 `#C_Cpp.codeAnalysis.runAutomatically#` 为 `true` 时从编辑触发保存后,代码分析开始处理之前的延迟(以毫秒为单位)。",
|
||||
"c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "配置 glob 模式已排除用于代码分析的文件夹和文件。始终排除不在工作区文件夹下的文件。从 `#files.exclude#` 和 `#C_Cpp.files.exclude#` 继承值。详细了解 glob 模式 [此处](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。",
|
||||
"c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "配置 glob 模式以排除用于代码分析的文件夹和文件。始终排除不在工作区文件夹下的文件。从 `#files.exclude#` 和 `#C_Cpp.files.exclude#` 继承值。详细了解 glob 模式 [此处](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。",
|
||||
"c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "要与文件路径匹配的 glob 模式。设置为 `true` 或 `false` 以启用或禁用模式。",
|
||||
"c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "对匹配文件同辈进行其他检查。将 `$(basename)` 用作匹配文件名变量。",
|
||||
"c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "如果为 `true`,则代码分析将在文件打开或保存后自动在文件上运行。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "如果为 `true`,则在 `#C_Cpp.codeAnalysis.runAutomatically#` 为 `true` (默认值)时,将启用并自动运行使用 `clang-tidy` 的代码分析。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "如果为 `true`,'禁用'代码操作将在可用时显示(下次运行代码分析时)。使用'禁用'代码操作时,它会将警告代码添加到 `C_Cpp.codeAnalysis.clangTidy.checks.disabled` 设置。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "如果为 `true`,“显示文档”代码操作将在可用时显示(下次运行代码分析时)。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "控制哪些“清除”代码分析问题代码操作选项可用。更改设置以显示更多选项可能需要重新运行代码分析。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description": "不显示“清除”代码操作。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "仅显示“全部清除”代码操作(如果只有一种类型,则显示“清除所有<type>”,如果只有一个问题,则显示“清除此项”)。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "如果存在多个问题类型,显示“全部清除”代码操作和“清除所有 <type>”代码操作(或如果<type>只有一个问题,显示“清除此项”)",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "如果有多个问题类型,显示“全部清除”,如果有多个 <type> 问题,显示“清除所有 <type>”以及显示“清除此项”代码操作",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "如果为 `true`,则在“修复”代码操作更改的行上运行格式设置。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "如果为 `true`,则在 `#C_Cpp.codeAnalysis.runAutomatically#` 为 `true` (默认值)时,将启用使用 `clang-tidy` 的代码分析,并在文件打开或保存后运行它。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 可执行文件的完整路径。如果未指定,并且 `clang-tidy` 在环境路径中可用,则使用该路径。如果在环境路径中找不到,则将使用与扩展捆绑的 `clang-tidy`。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "指定 YAML/JSON 格式的 `clang-tidy` 配置: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{键: x, 值: y}]}`。当值为空时,`clang-tidy` 将尝试为其父目录中的每个源文件查找名为 `.clang-tidy` 的文件。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "指定 YAML/JSON 格式的 `clang-tidy` 配置,以在未设置 `#C_Cpp.codeAnalysis.clangTidy.config#`,并且未找到 `.clang-tidy` 文件: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{键: x, 值: y}]}` 时将其用作回退。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "与要从中输出诊断的标头名称匹配的 POSIX 扩展正则表达式 (ERE)。始终显示来自每个翻译单元的主文件的诊断。支持 `${workspaceFolder}` 变量(如果不存在 `.clang-tidy` 文件,则该变量将用作默认回退值)。如果此选项不是 `null` (空),则将替代 `.clang-tidy` 文件中的 `HeaderFilterRegex` 选项(如果有)。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription": "要传递给 `clang-tidy` 的其他命令行参数。这些优先于等效的 `C_Cpp.codeAnalysis.clangTidy.*` 设置。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "如果设置了 `true` 和 `compileCommands`,则 `-p=<build-path>` 参数将传递给 `clang-tidy`,而不是在 `--` 之后传递生成参数。如果未设置环境变量以便可以找到系统包含项,则此操作可能不起作用。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "已启用的 `clang-tidy` 检查列表。这些值将追加到 `.clang-tidy` 文件中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有)。除非显式禁用,否则始终使用默认检查 `clang-analyzer-*`。",
|
||||
"c_cpp.configuration.codeAnalysis.clangTidy.checks.disabled.markdownDescription": "已禁用的 `clang-tidy` 检查列表。该值将追加到 `.clang-tidy` 文件中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有)。",
|
||||
"c_cpp.configuration.formatting.description": "配置格式设置引擎。",
|
||||
@@ -146,7 +176,7 @@
|
||||
"c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "任何在一行中输入左大括号和右大括号的代码都会保留在一行上,不考虑任何 `C_Cpp.vcFormat.newLine.*` 设置的值。",
|
||||
"c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "代码块始终基于 `C_Cpp.vcFormat.newLine.*` 设置的值进行格式化。",
|
||||
"c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` 可执行文件的完整路径。如果未指定,则 `clang-format` 在使用的环境路径中可用。如果在环境路径中找不到,则将使用与扩展捆绑的 `clang-format`。",
|
||||
"c_cpp.configuration.clang_format_style.markdownDescription": "编码样式目前支持: `Visual Studio`、`LLVM`、 `Google`、`Chromium`、`Mozilla`、`WebKit`、 `Microsoft`、`GNU`。使用 `file` 从当前目录或父目录中的 `.clang-format` 文件加载样式。使用 `{键: 值, ...}` 以设置特定参数。例如,`Visual Studio` 样式类似于: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。",
|
||||
"c_cpp.configuration.clang_format_style.markdownDescription": "编码样式目前支持: `Visual Studio`、`LLVM`、 `Google`、`Chromium`、`Mozilla`、`WebKit`、 `Microsoft`、`GNU`。使用 `file` 从当前目录或父目录中的 `.clang-format` 文件加载样式,或使用 `file:<路径>/.clang-format` 引用特定路径。使用 `{键: 值, ...}` 设置特定参数。例如,`Visual Studio` 样式类似于: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。",
|
||||
"c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "用作回退的预定义样式的名称,以防使用样式 `file` 调用 `clang-format` 但找不到 `.clang-format` 文件。可能的值为 `Visual Studio`、`LLVM`、 `Google`、`Chromium`、`Mozilla`、`WebKit`、 `Microsoft`、`GNU`、`none`,或使用 `{键: 值, ...}` 以设置特定参数。例如,`Visual Studio` 样式类似于: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。",
|
||||
"c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "如果设置,则替换由 `SortIncludes` 参数确定的包含排序行为。",
|
||||
"c_cpp.configuration.intelliSenseEngine.description": "控制 IntelliSense 提供程序。",
|
||||
@@ -154,7 +184,7 @@
|
||||
"c_cpp.configuration.intelliSenseEngine.tagParser.description": "提供非上下文感知的“模糊”结果。",
|
||||
"c_cpp.configuration.intelliSenseEngine.disabled.description": "关闭 C/C++ 语言服务功能。",
|
||||
"c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "控制 IntelliSense 引擎是否将自动切换为包含 `#include` 错误的翻译单元的标记分析器。",
|
||||
"c_cpp.configuration.autocomplete.markdownDescription": "控制自动完成提供程序。如果“已禁用”,且你想要基于字词的补全,则还需要设置 `\"[cpp]\": {\"editor.wordBasedSuggestions\": true}`(对 `c` 和 `cuda-cpp` 语言同样执行此操作)。",
|
||||
"c_cpp.configuration.autocomplete.markdownDescription": "控制自动完成提供程序。如果 `disabled`,且你想要基于字词的补全,则还需要设置 `\"[cpp]\": {\"editor.wordBasedSuggestions\": true}`(对 `c` 和 `cuda-cpp` 语言同样执行此操作)。",
|
||||
"c_cpp.configuration.autocomplete.default.description": "使用活动的 IntelliSense 引擎。",
|
||||
"c_cpp.configuration.autocomplete.disabled.description": "使用 Visual Studio Code 提供的基于字词的补全。",
|
||||
"c_cpp.configuration.errorSquiggles.description": "控制是否将 IntelliSense 引擎检测到的可疑编译错误报告回编辑器。还控制是否报告代码分析警告(如果找不到包含)。标记分析器引擎将忽略此设置。",
|
||||
@@ -162,6 +192,13 @@
|
||||
"c_cpp.configuration.inactiveRegionOpacity.markdownDescription": "控制非活动预处理器块的不透明度。在 `0.1` 和 `1.0` 之间进行缩放。仅当启用非活动区域暗化时,此设置才适用。",
|
||||
"c_cpp.configuration.inactiveRegionForegroundColor.description": "控制非活动预处理程序块的字体颜色。输入的格式为十六进制颜色代码或有效的主题颜色。如果未设置,则默认为编辑器的语法颜色方案。此设置仅在启用非活动区域变暗时适用。",
|
||||
"c_cpp.configuration.inactiveRegionBackgroundColor.description": "控制非活动预处理程序块的背景颜色。输入的格式为十六进制颜色代码或有效的主题颜色。如果未设置,则默认为透明。此设置仅在启用了非活动区域变暗时适用。",
|
||||
"c_cpp.configuration.inlayHints.autoDeclarationTypes.enabled.markdownDescription": "在声明中使用 `auto` 时显示推导类型的内嵌提示:\n```cpp \n\n auto index /* : int */ = 0;\n```",
|
||||
"c_cpp.configuration.inlayHints.autoDeclarationTypes.showOnLeft.markdownDescription": "在标识符左侧声明中使用 `auto` 时显示推导类型的内嵌提示:\n```cpp \n\n auto /* int */ index = 0;\n```",
|
||||
"c_cpp.configuration.inlayHints.parameterNames.enabled.markdownDescription": "显示参数名称的内嵌提示:\n```cpp \n\n int a = getArea(/* width: */ x, /* height: */ y);\n```",
|
||||
"c_cpp.configuration.inlayHints.parameterNames.hideLeadingUnderscores.markdownDescription": "在参数名称提示中隐藏开头的 `_`。",
|
||||
"c_cpp.configuration.inlayHints.parameterNames.suppressWhenArgumentContainsName.markdownDescription": "当参数文本或内联注释包含参数名称时,抑制参数名称提示:\n```cpp \n\n int a = getArea(width, /* height: */ y);\n```",
|
||||
"c_cpp.configuration.inlayHints.referenceOperator.enabled.markdownDescription": "显示非常量引用传递的参数的内嵌提示引用运算符 `&`:\n```cpp \n\n swap(/* &first: */ str1, /* &last: */ str2);\n```",
|
||||
"c_cpp.configuration.inlayHints.referenceOperator.showSpace.markdownDescription": "控制在 `&` 后是否显示非常量引用传递的参数的空格:\n```cpp \n\n swap(/* & first: */ str1, /* & last: */ str2);\n```",
|
||||
"c_cpp.configuration.loggingLevel.markdownDescription": "输出面板中日志记录的详细程度。从最不详细到最详细的级别顺序为: `None` < `Error` < `Warning` < `Information` < `Debug`。",
|
||||
"c_cpp.configuration.autoAddFileAssociations.markdownDescription": "控制当文件为 C/C++ 文件中导航操作的目标时,其是否自动添加到 `#files.associations#`。",
|
||||
"c_cpp.configuration.workspaceParsingPriority.markdownDescription": "控制分析非活动工作区文件是否使用睡眠以避免使用 100% CPU。值 `highest`/`high`/`medium`/`low` 对应于约 100/75/50/25% 的 CPU 使用率。",
|
||||
@@ -171,6 +208,9 @@
|
||||
"c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "将针对每个遇到的文件和文件夹评估排除筛选器。",
|
||||
"c_cpp.configuration.preferredPathSeparator.markdownDescription": "用作 `#include` 自动完成结果的路径分隔符的字符。",
|
||||
"c_cpp.configuration.simplifyStructuredComments.markdownDescription": "如果为 `true`,则悬停和自动完成的工具提示将仅显示结构化注释的某些标签。否则,将显示所有注释。",
|
||||
"c_cpp.configuration.doxygen.generateOnType.description": "控制在键入所选注释样式后是否自动插入 Doxygen 注释。",
|
||||
"c_cpp.configuration.doxygen.generatedStyle.description": "用作 Doxygen 注释起始行的字符串。",
|
||||
"c_cpp.configuration.doxygen.sectionTags.description": "启用“简化结构化注释”设置后,选择希望在工具提示区域中悬停时显示的 Doxygen 节标记。 ",
|
||||
"c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "开始多行或单行注释块的模式。多行注释块的延续模式默认为 ` * `,或单行注释块默认为此字符串。",
|
||||
"c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "开启一个多行或单行注释块的模式。",
|
||||
"c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "在多行或单行注释块内按下 Enter 键时要插入到下一行的文本。",
|
||||
@@ -204,19 +244,25 @@
|
||||
"c_cpp.configuration.default.dotConfig.markdownDescription": "未指定 `dotConfig` 时要在配置中使用的值,或 `dotConfig` 中存在 `${default}` 时要插入的值。",
|
||||
"c_cpp.configuration.experimentalFeatures.description": "控制“实验性”功能是否可用。",
|
||||
"c_cpp.configuration.suggestSnippets.markdownDescription": "如果为 `true`,则由语言服务器提供片段。",
|
||||
"c_cpp.configuration.enhancedColorization.markdownDescription": "如果启用,则根据 IntelliSense 对代码进行着色。仅当 `#C_Cpp.intelliSenseEngine#` 设置为 `Default` 时,此设置才适用。",
|
||||
"c_cpp.configuration.caseSensitiveFileSupport.markdownDescription": "如果设置为 `default`,则假定工作区的文件系统在 Windows 上不区分大小写,在 macOS 或 Linux 上区分大小写。如果设置为 `enabled`,则假定工作区的文件系统在 Windows 上区分大小写。",
|
||||
"c_cpp.configuration.enhancedColorization.markdownDescription": "如果启用,则根据 IntelliSense 对代码进行着色。仅当 `#C_Cpp.intelliSenseEngine#` 设置为 `default` 时,此设置才适用。",
|
||||
"c_cpp.configuration.codeFolding.description": "如果启用,则由语言服务器提供代码折叠范围。",
|
||||
"c_cpp.configuration.hover.description": "如果禁用,则语言服务器不再提供悬停详细信息。",
|
||||
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "为 [vcpkg 依存关系管理器](https://aka.ms/vcpkg/) 启用集成服务。",
|
||||
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "当来自 `nan` 和 `node-addon-api` 的包含路径为依赖项时,请将其添加。",
|
||||
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "如果为 `true`,则“重命名符号”将需要有效的 C/C++ 标识符。",
|
||||
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "如果为 `true`,则自动完成将在函数调用后自动添加 `(` ,在这种情况下,也可以添加 `(` ,具体取决于 `#editor.autoClosingBrackets#` 设置的值。",
|
||||
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "如果为 `true`,则自动完成将在函数调用后自动添加 `(` ,在这种情况下,也可以添加 `)` ,具体取决于 `#editor.autoClosingBrackets#` 设置的值。",
|
||||
"c_cpp.configuration.filesExclude.markdownDescription": "为排除文件夹(以及文件 - 如果更改了 `#C_Cpp.exclusionPolicy#`)配置 glob 模式。这些特定于 C/C++ 扩展,并且是 `#files.exclude#` 的补充,但与 `#files.exclude#` 不同,它们也适用于当前工作区文件夹之外的路径,并且不会从资源管理器视图中删除。[此处](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。",
|
||||
"c_cpp.configuration.filesExcludeBoolean.markdownDescription": "要与文件路径匹配的 glob 模式。设置为 `true` 或 `false` 以启用或禁用模式。",
|
||||
"c_cpp.configuration.filesExcludeWhen.markdownDescription": "对匹配文件同辈进行其他检查。将 `$(basename)` 用作匹配文件名变量。",
|
||||
"c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "如果为 `true`,则调试程序 shell 命令替换将使用过时的反引号 ``(`)``。",
|
||||
"c_cpp.contributes.views.cppReferencesView.title": "C/C++: 其他引用结果。",
|
||||
"c_cpp.configuration.legacyCompilerArgsBehavior.markdownDescription": "启用 v1.10.0 以前的行为,以了解在编译器参数设置中如何处理 shell 转义。从 v1.10.0 开始,参数数组在默认情况下不再需要或支持 shell 转义。",
|
||||
"c_cpp.configuration.legacyCompilerArgsBehavior.deprecationMessage": "此设置是临时的,用于支持转换为 v1.10.0 中更正后的行为。",
|
||||
"c_cpp.configuration.sshTargetsView.description": "控制 SSH 目标视图是否可见。默认情况下,在调用 SSH 命令时启用视图。",
|
||||
"c_cpp.contributes.views.cppReferencesView.title": "C/C++: 其他引用结果",
|
||||
"c_cpp.contributes.views.sshTargetsView.title": "Cpptools: SSH 目标",
|
||||
"c_cpp.contributes.viewsWelcome.contents": "要了解有关 launch.json 的信息,请参阅 [配置 C/C++ 调试](https://code.visualstudio.com/docs/cpp/launch-json-reference)。",
|
||||
"c_cpp.configuration.debugShortcut.description": "在 C++ 文件的编辑器标题栏中显示“运行和调试播放”按钮",
|
||||
"c_cpp.configuration.debugShortcut.description": "显示 C++ 文件编辑器标题栏中的“运行和调试”播放按钮和“添加调试配置”齿轮。",
|
||||
"c_cpp.debuggers.pipeTransport.description": "如果存在,这会指示调试程序使用其他可执行文件作为管道来连接到远程计算机,此管道将在 VS Code 和已启用 MI 的调试程序后端可执行文件(如 gdb)之间中继标准输入/输入。",
|
||||
"c_cpp.debuggers.pipeTransport.default.pipeProgram": "输入管道程序名称的完全限定的路径,例如 '/usr/bin/ssh'。",
|
||||
"c_cpp.debuggers.pipeTransport.default.debuggerPath": "目标计算机上调试程序的完整路径,例如 /usr/bin/gdb。",
|
||||
@@ -259,6 +305,7 @@
|
||||
"c_cpp.debuggers.miDebuggerPath.description": "MI 调试程序(如 gdb)的路径。如果未指定,将首先在路径中搜索调试程序。",
|
||||
"c_cpp.debuggers.miDebuggerArgs.description": "MI 调试程序(如 gdb)的其他参数。",
|
||||
"c_cpp.debuggers.miDebuggerServerAddress.description": "要连接到的 MI 调试程序服务器的网络地址(示例: localhost:1234)。",
|
||||
"c_cpp.debuggers.useExtendedRemote.description": "使用目标扩展远程模式连接到 MI 调试器服务器。",
|
||||
"c_cpp.debuggers.stopAtEntry.description": "可选参数。如果为 true,则调试程序应在目标的入口点处停止。如果传递了 processId,则不起任何作用。",
|
||||
"c_cpp.debuggers.debugServerPath.description": "到要启动的调试服务器的可选完整路径。默认值为 null。该路径与 “miDebugServerAddress” 或带有运行 “-target-select remote <server:port>” 的 “customSetupCommand” 的自有服务器配合使用。",
|
||||
"c_cpp.debuggers.debugServerArgs.description": "可选调试服务器参数。默认为 null。",
|
||||
@@ -288,6 +335,37 @@
|
||||
"c_cpp.debuggers.hardwareBreakpoints.description": "对远程目标的硬件断点行为的显式控制。",
|
||||
"c_cpp.debuggers.hardwareBreakpoints.require.description": "如果为 true,请始终使用硬件断点。默认值为 false。",
|
||||
"c_cpp.debuggers.hardwareBreakpoints.limit.description": "要使用的可用硬件断点数量的可选限制。仅在“需要”为 true 且“限制”大于 0 时强制使用。默认值为 0。",
|
||||
"c_cpp.debuggers.variables.description": "此启动配置中递归替换的变量。每个变量都可以引用其他变量。",
|
||||
"c_cpp.debuggers.variables.properties.description": "此启动配置中递归替换的变量。该值可以引用其他变量。",
|
||||
"c_cpp.debuggers.host.description": "主机信息。",
|
||||
"c_cpp.debuggers.host.user.description": "登录到主机的用户。",
|
||||
"c_cpp.debuggers.host.hostName.description": "主机名。",
|
||||
"c_cpp.debuggers.host.port.description": "主机上的 SSH 端口。默认值为 22。",
|
||||
"c_cpp.debuggers.host.jumpHost.description": "首先连接到跳转主机以连接到目标主机。",
|
||||
"c_cpp.debuggers.host.localForward.description": "将本地(客户端)主机上给定 TCP 端口或 Unix 套接字的连接转发到远程端上的给定主机和端口或 Unix 套接字",
|
||||
"c_cpp.debuggers.host.localForward.bindAddress.description": "本地地址",
|
||||
"c_cpp.debuggers.host.localForward.port.description": "本地端口",
|
||||
"c_cpp.debuggers.host.localForward.host.description": "主机名",
|
||||
"c_cpp.debuggers.host.localForward.hostPort.description": "主机端口",
|
||||
"c_cpp.debuggers.host.localForward.localSocket.description": "本地套接字",
|
||||
"c_cpp.debuggers.host.localForward.remoteSocket.description": "远程套接字",
|
||||
"c_cpp.debuggers.deploySteps.description": "部署应用程序所需的步骤。顺序很重要。",
|
||||
"c_cpp.debuggers.deploySteps.copyFile.description": "使用 SCP 或 rsync 复制文件。",
|
||||
"c_cpp.debuggers.deploySteps.copyFile.files.description": "要复制的文件。支持路径模式。",
|
||||
"c_cpp.debuggers.deploySteps.copyFile.targetDir.description": "目标目录。",
|
||||
"c_cpp.debuggers.deploySteps.copyFile.recursive.description": "如果为 true,则以递归方式复制文件夹。",
|
||||
"c_cpp.debuggers.deploySteps.copyFile.scpPath.description": "SCP 的可选完整路径。假定 SCP 位于 PATH 上(如果未指定)",
|
||||
"c_cpp.debuggers.deploySteps.copyFile.rsyncPath.description": "rsync 的可选完整路径。假定 rsync 在 PATH 上(如果未指定)",
|
||||
"c_cpp.debuggers.deploySteps.debug": "如果为 true,则在不调试的情况下启动时跳过。如果为 false,则在开始调试时跳过。如果未定义,则从不跳过。",
|
||||
"c_cpp.debuggers.deploySteps.ssh.description": "SSH 命令步骤。",
|
||||
"c_cpp.debuggers.deploySteps.ssh.command.description": "要通过 SSH 执行的命令。SSH 命令中 \"-c\" 后面的命令。",
|
||||
"c_cpp.debuggers.deploySteps.ssh.sshPath.description": "SSH 的可选完整路径。假定 SSH 位于 PATH 上(如果未指定)",
|
||||
"c_cpp.debuggers.deploySteps.continueOn.description": "输出中的可选完成模式。在输出中看到此模式时,无论此步骤是否返回,都继续执行部署过程。",
|
||||
"c_cpp.debuggers.deploySteps.shell.description": "shell 命令步骤。",
|
||||
"c_cpp.debuggers.deploySteps.shell.command.description": "要执行的 shell 命令。",
|
||||
"c_cpp.debuggers.vsCodeCommand.description": "要调用的 VS Code 命令。可以是 VS Code 或活动扩展中的命令。",
|
||||
"c_cpp.debuggers.vsCodeCommand.command.description": "要调用的 VS Code 命令。",
|
||||
"c_cpp.debuggers.vsCodeCommand.args.description": "VS Code 命令的参数。",
|
||||
"c_cpp.taskDefinitions.name.description": "任务名称。",
|
||||
"c_cpp.taskDefinitions.command.description": "执行编译的编译器或脚本的路径。",
|
||||
"c_cpp.taskDefinitions.args.description": "其他要传递给编译器或编译脚本的参数。",
|
||||
@@ -298,6 +376,7 @@
|
||||
"c_cpp.debuggers.sourceFileMap.sourceFileMapEntry.editorPath.description": "编辑器将使用的源树的路径。",
|
||||
"c_cpp.debuggers.sourceFileMap.sourceFileMapEntry.useForBreakpoints.description": "如果此条目仅用于堆栈帧位置映射,则为 False。如果在指定断点位置时也需要使用此条目,则为 True。",
|
||||
"c_cpp.debuggers.symbolOptions.description": "用于控制如何找到和加载符号(.pdb 文件)的选项。",
|
||||
"c_cpp.debuggers.unknownBreakpointHandling.description": "控制在命中时如何处理(通常通过原始 GDB 命令)外部设置的断点。\n允许的值为 \"throw\" (好像应用程序抛出了异常)和 \"stop\" (只会暂停调试会话)。默认值为 \"throw\"。",
|
||||
"c_cpp.debuggers.VSSymbolOptions.description": "提供用于找到符号并将其加载到调试适配器的配置。",
|
||||
"c_cpp.debuggers.VSSymbolOptions.searchPaths.description": "在其中搜索 .pdb 文件的符号服务器 URL (例如 http://MyExampleSymbolServer)或目录(例如 /build/symbols)的数组。除了默认位置,还将搜索这些目录 - 在模块以及 pdb 最初放置到的路径的旁边。",
|
||||
"c_cpp.debuggers.VSSymbolOptions.searchMicrosoftSymbolServer.description": "如果为 \"true\",则 Microsoft 符号服务器(https://msdl.microsoft.com/download/symbols)会添加到符号搜索路径。如果未指定,此选项会默认为 \"false\"。",
|
||||
@@ -318,10 +397,37 @@
|
||||
"c_cpp.semanticTokenTypes.templateType.description": "C++ 模板类型的样式。",
|
||||
"c_cpp.semanticTokenTypes.operatorOverload.description": "C++ 重载运算符的样式。",
|
||||
"c_cpp.semanticTokenTypes.memberOperatorOverload.description": "C++ 重载运算符成员函数的样式。",
|
||||
"c_cpp.semanticTokenTypes.newOperator.description": "C++ `新` 或 `删除` 运算符的样式。",
|
||||
"c_cpp.semanticTokenTypes.newOperator.description": "C++ `new` 或 `delete` 运算符的样式。",
|
||||
"c_cpp.semanticTokenTypes.customLiteral.description": "C++ 用户定义文本的样式。",
|
||||
"c_cpp.semanticTokenTypes.numberLiteral.description": "C++ 用户定义文本数字的样式。",
|
||||
"c_cpp.semanticTokenTypes.stringLiteral.description": "C++ 用户定义文本字符串的样式。",
|
||||
"c_cpp.semanticTokenModifiers.global.description": "用于全局符号的样式。",
|
||||
"c_cpp.semanticTokenModifiers.local.description": "用于本地符号的样式。"
|
||||
"c_cpp.semanticTokenModifiers.local.description": "用于本地符号的样式。",
|
||||
"c_cpp.debuggers.logging.natvisDiagnostics.description": "可选标志,用于确定是否应将诊断 natvis 消息记录到调试控制台。默认为 None。",
|
||||
"c_cpp.debuggers.logging.category.verbose.description": "开发期间用于交互式调查的日志。这些日志应主要包含可用于调试的信息,并且不具有长期价值。",
|
||||
"c_cpp.debuggers.logging.category.warning.description": "突出显示应用程序流中的异常或意外事件,但不会导致应用程序执行停止的日志。",
|
||||
"c_cpp.debuggers.logging.category.error.description": "在当前执行流因失败而停止时突出显示的日志。这些应指示当前活动中的失败,而不是应用程序范围的失败。",
|
||||
"c_cpp.debuggers.logging.category.none.description": "不用于写入日志消息。指定事件日志类别不应写入任何消息。",
|
||||
"c_cpp.walkthrough.title": "C++ 开发入门",
|
||||
"c_cpp.walkthrough.description": "深入了解 VS Code 丰富的 C++ 开发体验。",
|
||||
"c_cpp.walkthrough.set.up.title": "设置 C++ 环境",
|
||||
"c_cpp.walkthrough.activating.description": "激活 C++ 扩展以确定是否已设置 C++ 环境。\n正在激活扩展...",
|
||||
"c_cpp.walkthrough.no.compilers.description": "无法在计算机上找到 C++ 编译器,这是使用 C++ 扩展所必需的。请按照右侧的说明安装一个编译器,然后单击下面的“查找我的新编译器”。\n[查找我的新编译器](command:C_Cpp.RescanCompilers?%7B%22sender%22%3A%22walkthrough%22%7D)",
|
||||
"c_cpp.walkthrough.compilers.found.description": "C++ 扩展需要与 C++ 编译器一起使用。通过单击下面的按钮从计算机上已有的编译器中选择一个。\n[选择我的默认编译器](command:C_Cpp.SelectDefaultCompiler?%7B%22sender%22%3A%22walkthrough%22%7D)",
|
||||
"c_cpp.walkthrough.compilers.found.altText": "显示在用户计算机上找到的选定默认编译器快捷检查和编译器列表的图像,其中一个已选定。",
|
||||
"c_cpp.walkthrough.create.cpp.file.title": "创建 C++ 文件",
|
||||
"c_cpp.walkthrough.create.cpp.file.description": "[打开](command:toSide:workbench.action.files.openFile)或[创建](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)一个 C++ 文件。请确保将其保存为 \".cpp\" 扩展名,例如 \"helloworld.cpp\"。\n[创建 C++ 文件](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)",
|
||||
"c_cpp.walkthrough.create.cpp.file.altText": "使用 C++ 项目打开 C++ 文件或文件夹。",
|
||||
"c_cpp.walkthrough.command.prompt.title": "从开发人员命令提示启动",
|
||||
"c_cpp.walkthrough.command.prompt.description": "使用 Microsoft Visual Studio C++ 编译器时,C++ 扩展需要从开发人员命令提示符中启动 VS Code。请按照右侧的说明重新启动。\n[重新加载窗口](command:workbench.action.reloadWindow)",
|
||||
"c_cpp.walkthrough.run.debug.title": "运行并调试 C++ 文件",
|
||||
"c_cpp.walkthrough.run.debug.mac.description": "打开你的 C++ 文件,在编辑器右上角点击播放按钮,或者在文件上按 F5。选择“clang++ - 构建和调试活动文件”以使用调试器运行。",
|
||||
"c_cpp.walkthrough.run.debug.linux.description": "打开 C++ 文件,在编辑器右上角点击播放按钮,或者在文件上按 F5。选择“g++ - 构建和调试活动文件”以使用调试器运行。",
|
||||
"c_cpp.walkthrough.run.debug.windows.description": "打开你的 C++ 文件,然后在编辑器右上角点击播放按钮,或者当你在该文件上时按下 F5。选择“cl.exe - 构建和调试活动文件”以使用调试器运行。",
|
||||
"c_cpp.walkthrough.run.debug.windows.altText": "显示 C++ 文件中的断点、f5 按钮和右上角的运行符号的图像",
|
||||
"c_cpp.walkthrough.customize.debugging.title": "自定义调试",
|
||||
"c_cpp.walkthrough.customize.debugging.mac.description": "可以通过在播放按钮右侧选择“添加调试配置”来自定义调试配置(例如,在运行时传递参数给程序)。自定义调试配置将保存在项目的 launch.json 文件中。\n[了解更多](https://code.visualstudio.com/docs/cpp/config-linux#_debug-helloworldcpp)",
|
||||
"c_cpp.walkthrough.customize.debugging.linux.description": "可以通过在播放按钮右侧选择“添加调试配置”来自定义调试配置(例如,在运行时传递参数给程序)。自定义调试配置将保存在项目的 launch.json 文件中。\n[了解更多](https://code.visualstudio.com/docs/cpp/config-msvc#_debug-helloworldcpp)",
|
||||
"c_cpp.walkthrough.customize.debugging.windows.description": "可以通过在播放按钮右侧选择“添加调试配置”来自定义调试配置(例如,在运行时传递参数给程序)。自定义的调试配置将保存在项目的 launch.json 文件中。\n[了解更多](https://code.visualstudio.com/docs/cpp/config-clang-mac#_debug-helloworldcpp)",
|
||||
"c_cpp.walkthrough.customize.debugging.altText": "显示下拉列表中“添加调试配置”的图像"
|
||||
}
|
||||
@@ -4,9 +4,12 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"no.pipetransport": "所选的调试配置不包含 {0}",
|
||||
"debugger.path.and.server.address.required": "调试配置中的 {0} 需要 {1} 和 {2}",
|
||||
"no.pipetransport.useextendedremote": "所选的调试配置不包含 {0} 或 {1}",
|
||||
"select.process.attach": "选择要附加到的进程",
|
||||
"process.not.selected": "未选择进程。",
|
||||
"pipe.failed": "管道传输未能获取 OS 和进程。",
|
||||
"no.process.list": "传输附加无法获取进程列表。"
|
||||
"no.process.list": "传输附加无法获取进程列表。",
|
||||
"failed.to.make.gdb.connection": "无法建立 GDB 连接:“{0}”。",
|
||||
"failed.to.parse.processes": "无法分析进程:“{0}”。"
|
||||
}
|
||||
@@ -6,12 +6,16 @@
|
||||
{
|
||||
"default.configuration.menuitem": "默认配置",
|
||||
"select.configuration": "选择配置",
|
||||
"debugger.deprecated.config": "密钥“{0}”已弃用。请改用“{1}”。",
|
||||
"debugger.not.available": "类型为“{0}”的调试程序仅在 Windows 上可用。在当前 OS 平台上使用类型“{1}”。",
|
||||
"debugger.deprecated.config": "密钥“{0}”已弃用。请改用“{1}”。",
|
||||
"lldb.framework.install.xcode": "详细信息",
|
||||
"lldb.framework.not.found": "找不到用于 lldb-mi 的 \"LLDB.framework\"。请安装 XCode 或 XCode 命令行工具。",
|
||||
"debugger.launchConfig": "启动配置:",
|
||||
"vs.code.1.69+.required": "\"deploySteps\" 需要 VS Code 1.69+。",
|
||||
"running.deploy.steps": "正在运行部署步骤...",
|
||||
"compiler.path.not.exists": "找不到 {0}。将忽略 {1} 任务。",
|
||||
"pre.Launch.Task": "preLaunchTask: {0}",
|
||||
"debugger.path.not.exists": "找不到 {0} 调试器。将忽略 {1} 的调试配置。",
|
||||
"build.and.debug.active.file": "生成和调试活动文件",
|
||||
"cl.exe.not.available": "仅当从 VS 开发人员命令提示符处运行 VS Code 时,{0} 生成和调试才可用。",
|
||||
"lldb.find.failed": "缺少 lldb-mi 可执行文件的依赖项“{0}”。",
|
||||
@@ -23,9 +27,18 @@
|
||||
"replacing.editorPath": "正在将 {0}“{1}”替换为“{2}”。",
|
||||
"resolving.variables.in.sourcefilemap": "正在解析 {0} 中的变量...",
|
||||
"open.envfile": "打开 {0}",
|
||||
"recently.used.task": "最近使用的任务",
|
||||
"configured.task": "已配置的任务",
|
||||
"detected.task": "检测到的任务",
|
||||
"cannot.build.non.cpp": "无法生成和调试,因为活动文件不是 C 或 C++ 源文件。",
|
||||
"no.compiler.found": "未找到编译程序",
|
||||
"select.debug.configuration": "选择调试配置",
|
||||
"command.args.must.be.array": "命令部署步骤中的 \"args\" 必须为数组。",
|
||||
"missing.properties.copyFile": "{0} 步骤中需要 \"host\"、\"files\" 和 \"targetDir\"。",
|
||||
"incorrect.files.type.copyFile": "“files” 必须为 {0} 步骤中的字符串或字符串数组。",
|
||||
"missing.properties.ssh": "SSH 步骤需要 \"host\" 和 \"command\"。",
|
||||
"missing.properties.shell": "shell 步骤需要 \"command\"。",
|
||||
"deploy.step.type.not.supported": "不支持部署步骤类型 {0}。",
|
||||
"unexpected.os": "意外的 OS 类型",
|
||||
"path.to.pipe.program": "管道程序的完整路径,如 {0}",
|
||||
"enable.pretty.printing": "为 {0} 启用整齐打印",
|
||||
|
||||
@@ -4,10 +4,15 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"build.and.debug.active.file": "生成和调试活动文件",
|
||||
"single_file_mode_not_available": "此命令不能用于单文件模式。",
|
||||
"cannot.build.non.cpp": "无法生成和调试,因为活动文件不是 C 或 C++ 源文件。",
|
||||
"no.compiler.found": "未找到编译程序",
|
||||
"select.configuration": "选择配置",
|
||||
"cl.exe.not.available": "仅当从 VS 开发人员命令提示符处运行 VS Code 时,{0} 生成和调试才可用。"
|
||||
"add.debug.configuration.not.available.for.single.file": "添加调试配置不适用于单个文件。",
|
||||
"cannot.modify.config.file": "由于分析失败“{0}”,无法修改 SSH 配置文件。",
|
||||
"no.valid.ssh.config.file": "找不到有效的 SSH 配置文件。",
|
||||
"enter.ssh.target.name": "输入 SSH 目标名称",
|
||||
"ssh.target.name.place.holder": "示例: `mySSHTarget`",
|
||||
"enter.ssh.connection.command": "输入 SSH 连接命令",
|
||||
"ssh.connection.command.place.holder": "示例: `ssh [email protected] -A`",
|
||||
"select.ssh.config.file": "选择 SSH 配置文件",
|
||||
"yes": "是",
|
||||
"no": "否",
|
||||
"ssh.target.delete.confirmation": "是否确实要永久删除“{0}”?"
|
||||
}
|
||||
@@ -4,5 +4,9 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"os.not.supported": "不支持操作系统“{0}”。"
|
||||
"os.not.supported": "不支持操作系统“{0}”。",
|
||||
"timeout.processList.spawn": "“{0}”在 {1} 秒后超时。",
|
||||
"cancel.processList.spawn": "已取消“{0}”。",
|
||||
"error.processList.spawn": "“{0}”已退出,代码为“{1}”。",
|
||||
"failed.processList.spawn": "未能生成“{0}”。"
|
||||
}
|
||||
@@ -4,18 +4,28 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"c.cpp.debug.protocol": "C/C++ 调试协议",
|
||||
"c.cpp.warnings": "C/C++ 配置警告",
|
||||
"unable.to.start": "无法启动 C/C++ 语言服务器。IntelliSense 功能将被禁用。错误: {0}",
|
||||
"check.permissions": "EPERM: 检查“{0}”的权限",
|
||||
"select.compiler": "选择要为 IntelliSense 配置的编译器",
|
||||
"configure.intelliSense.forFolder": "你希望如何为“{0}”文件夹配置 IntelliSense?",
|
||||
"configure.intelliSense.thisFolder": "你希望如何为此文件夹配置 IntelliSense?",
|
||||
"found.string": "在 {0} 找到",
|
||||
"use.compiler": "使用 {0}",
|
||||
"configuration.providers": "配置提供程序",
|
||||
"compilers": "编译器",
|
||||
"setCompiler.message": "未配置编译器。除非设置自己的配置,否则 IntelliSense 可能无法正常工作。",
|
||||
"selectIntelliSenseConfiguration.string": "选择 IntelliSense 配置...",
|
||||
"use.provider": "使用 {0}",
|
||||
"use.compileCommands": "使用 {0}",
|
||||
"selectAnotherCompiler.string": "在我的计算机上选择另一个编译器...",
|
||||
"installCompiler.string": "帮助我安装编译器",
|
||||
"noConfig.string": "请勿适用编译器进行配置(不推荐)",
|
||||
"selectCompiler.string": "选择编译器",
|
||||
"confirmCompiler.string": "是",
|
||||
"selectCompiler.message": "已找到编译器 {0}。是否要使用此编译器配置 IntelliSense?",
|
||||
"server.crashed.restart": "语言服务器崩溃。正在重新启动...",
|
||||
"server.crashed2": "在过去 3 分钟内,语言服务器崩溃了 5 次。它不会重新启动。",
|
||||
"loggingLevel.changed": "{0} 已更改为: {1}",
|
||||
"provider.configure.folder": "{0} 想要为“{1}”文件夹配置 IntelliSense。",
|
||||
"provider.configure.this.folder": "{0} 想要为此文件夹配置 IntelliSense。",
|
||||
"allow.button": "允许",
|
||||
"dont.allow.button": "不允许",
|
||||
"ask.me.later.button": "稍后询问我",
|
||||
"c.cpp.diagnostics": "C/C++ 诊断",
|
||||
"dismiss.button": "消除",
|
||||
"diable.warnings.button": "禁用警告",
|
||||
"unable.to.provide.configuration": "{0} 无法为“{1}”提供 IntelliSense 配置信息。将改为使用“{2}”配置中的设置。",
|
||||
@@ -28,6 +38,11 @@
|
||||
"dont.show.again": "不再显示",
|
||||
"update.your.intellisense.settings": "更新 IntelliSense 设置或使用 Vcpkg 来安装用于帮助查找缺少的标头的库。",
|
||||
"configure.your.intellisense.settings": "配置 IntelliSense 设置以帮助查找缺少的标头。",
|
||||
"provider.configure.folder": "{0} 想要为“{1}”文件夹配置 IntelliSense。",
|
||||
"provider.configure.this.folder": "{0} 想要为此文件夹配置 IntelliSense。",
|
||||
"allow.button": "允许",
|
||||
"dont.allow.button": "不允许",
|
||||
"ask.me.later.button": "稍后询问我",
|
||||
"a.compile.commands.file": "compile_commands.json 文件",
|
||||
"auto-configure.intellisense.folder": "是否要使用 {0} 为“{1}”文件夹自动配置 IntelliSense?",
|
||||
"auto-configure.intellisense.this.folder": "是否要使用 {0} 为此文件夹自动配置 IntelliSense?",
|
||||
@@ -35,6 +50,5 @@
|
||||
"no.button": "否",
|
||||
"configurations.received": "已收到自定义配置:",
|
||||
"browse.configuration.received": "已收到自定义浏览配置: {0}",
|
||||
"no.compilers.found": "系统上未找到任何 C++ 编译器。对于你的平台,建议使用编辑器中的说明安装 {0}。",
|
||||
"compilers.found": "在你的系统上找到了以下 C++ 编译器。请在项目的 IntelliSense 配置中选择编译器。"
|
||||
"fallback.clipboard": "已复制声明/定义。"
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"fix_all_code_analysis_problems": "修复所有代码分析问题",
|
||||
"clear_all_code_analysis_problems": "清除所有代码分析问题",
|
||||
"fix_all_type_problems": "修复所有 {0} 问题",
|
||||
"disable_all_type_problems": "禁用所有 {0} 问题",
|
||||
"clear_all_type_problems": "清除所有{0}问题",
|
||||
"clear_this_problem": "清除此 {0} 问题",
|
||||
"fix_this_problem": "修复此 {0} 问题",
|
||||
"show_documentation_for": "显示 {0} 文档"
|
||||
}
|
||||
@@ -6,13 +6,11 @@
|
||||
{
|
||||
"learn.how.to.install.a.library": "了解如何使用 vcpkg 为此标头安装库",
|
||||
"copy.vcpkg.command": "将用于安装“{0}”的 vcpkg 命令复制到剪贴板",
|
||||
"more.info.button": "详细信息",
|
||||
"ignore.button": "忽略",
|
||||
"vsix.platform.incompatible": "已安装的 C/C++ 扩展与系统不匹配。",
|
||||
"vsix.platform.mismatching": "已安装的 C/C++ 扩展与系统兼容,但与系统不匹配。",
|
||||
"on.disabled.command": "当 `C_Cpp.intelliSenseEngine` 设置为 `disabled` 时,无法执行与 IntelliSense 相关的命令。",
|
||||
"client.not.found": "未找到客户端",
|
||||
"configuration.select.first": "首先打开一个文件夹以选择配置",
|
||||
"configuration.provider.select.first": "首先打开一个文件夹以选择配置提供程序",
|
||||
"configuration.select.first": "首先打开一个文件夹以选择配置。",
|
||||
"configuration.provider.select.first": "首先打开一个文件夹以选择配置提供程序。",
|
||||
"edit.configurations.open.first": "首先打开一个文件夹以编辑配置",
|
||||
"code.action.aborted": "无法应用代码分析修复程序,因为文档已更改。",
|
||||
"add.includepath.open.first": "首先打开一个要添加到 {0} 的文件夹"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"c.cpp.symbolscope.separator": "{0},{1}"
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
"find.all.references": "查找所有引用",
|
||||
"peek.references": "速览引用",
|
||||
"rename": "重命名",
|
||||
"call.hierarchy": "调用层次结构",
|
||||
"confirmed.reference.upper": "已确认引用",
|
||||
"confirmation.in.progress.upper": "正在进行确认",
|
||||
"comment.reference.upper": "注释引用",
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"editorconfig.default.behavior": "代码格式设置使用 .editorconfig 中的设置,而不是 .clang-format 中的设置。有关详细信息,请参阅文档了解 'C_Cpp.formatting' 设置的 'Default' 值。"
|
||||
"editorconfig.default.behavior": "代码格式设置使用 .editorconfig 中的设置,而不是 .clang-format 中的设置。有关详细信息,请参阅文档以了解 'C_Cpp.formatting' 设置的 'default' 值。"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"c.cpp.configurations": "C/C++ 配置"
|
||||
}
|
||||
@@ -4,18 +4,42 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"running.tagparser.text": "分析工作区",
|
||||
"paused.tagparser.text": "分析工作区: 已暂停",
|
||||
"complete.tagparser.text": "分析完毕",
|
||||
"initializing.tagparser.text": "正在初始化工作区",
|
||||
"indexing.tagparser.text": "正在索引工作区",
|
||||
"rescan.tagparse.text": "重新扫描工作区",
|
||||
"c.cpp.parsing.open.files.tooltip": "正在分析打开的文件",
|
||||
"click.to.preview": "单击以预览结果",
|
||||
"updating.intellisense.tooltip": "正在更新 IntelliSense",
|
||||
"updating.intellisense.text": "IntelliSense: 正在更新",
|
||||
"idle.intellisense.text": "IntelliSense: 就绪",
|
||||
"absent.intellisense.text": "IntelliSense: 未配置",
|
||||
"running.analysis.text": "Code Analysis: 正在运行",
|
||||
"paused.analysis.text": "Code Analysis: 已暂停",
|
||||
"mode.analysis.prefix": "Code Analysis 模式:",
|
||||
"c.cpp.configureIntelliSenseStatus.text": "配置 IntelliSense",
|
||||
"c.cpp.configureIntelliSenseStatus.cppText": "C/C++ 配置 IntelliSense",
|
||||
"select.command": "选择命令...",
|
||||
"select.code.analysis.command": "选择代码分析命令...",
|
||||
"c.cpp.configuration.tooltip": "C/C++ 配置",
|
||||
"c.cpp.references.statusbar": "C/C++ 引用状态",
|
||||
"c.cpp.intellisense.statusbar": "C/C++ IntelliSense 状态",
|
||||
"c.cpp.tagparser.statusbar": "C/C++ 标记分析器状态",
|
||||
"discovering.files.tooltip": "正在发现文件",
|
||||
"running.analysis.tooltip": "正在运行 {0}",
|
||||
"code.analysis.paused.tooltip": "已暂停 {0}",
|
||||
"running.analysis.processed.tooltip": "正在运行 {0}: {1} / {2} ({3}%)",
|
||||
"cpptools.status.intellisense": "C/C++ IntelliSense 状态",
|
||||
"cpptools.status.tagparser": "C/C++ 标记分析器状态",
|
||||
"cpptools.detail.tagparser": "正在初始化...",
|
||||
"cpptools.status.codeanalysis": "C/C++ Code Analysis 状态",
|
||||
"c.cpp.codeanalysis.statusbar.runNow": "立即运行",
|
||||
"tagparser.pause.text": "暂停",
|
||||
"tagparser.resume.text": "继续",
|
||||
"intellisense.select.text": "选择编译器",
|
||||
"rescan.intellisense.text": "重新扫描",
|
||||
"rescan.intellisense.tooltip": "重新扫描 IntelliSense",
|
||||
"mode.codeanalysis.status.automatic": "自动",
|
||||
"mode.codeanalysis.status.manual": "手动",
|
||||
"c.cpp.codeanalysis.statusbar.showCodeAnalysisOptions": "选项",
|
||||
"startup.codeanalysis.status": "正在启动...",
|
||||
"c.cpp.codeanalysis.statusbar.showRunNowOptions": "立即运行",
|
||||
"running.analysis.processed.tooltip": "正在运行: {0}/{1} ({2}%)",
|
||||
"select.a.configuration": "选择配置...",
|
||||
"edit.configuration.ui": "编辑配置(UI)",
|
||||
"edit.configuration.json": "编辑配置(JSON)",
|
||||
@@ -27,7 +51,11 @@
|
||||
"select.workspace": "选择工作区文件夹…",
|
||||
"resume.parsing": "恢复工作区分析",
|
||||
"pause.parsing": "暂停工作区分析",
|
||||
"cancel.analysis": "取消 {0}",
|
||||
"resume.analysis": "恢复 {0}",
|
||||
"pause.analysis": "暂停 {0}"
|
||||
"cancel.analysis": "取消",
|
||||
"resume.analysis": "继续",
|
||||
"pause.analysis": "暂停",
|
||||
"another.analysis": "启动另一个...",
|
||||
"active.analysis": "在活动文件上运行 Code Analysis",
|
||||
"all.analysis": "在所有文件上运行 Code Analysis",
|
||||
"open.analysis": "在打开的文件上运行 Code Analysis"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"running.tagparser.text": "分析工作区",
|
||||
"paused.tagparser.text": "分析工作区: 已暂停",
|
||||
"complete.tagparser.text": "分析完毕",
|
||||
"initializing.tagparser.text": "正在初始化工作区",
|
||||
"indexing.tagparser.text": "正在索引工作区",
|
||||
"rescan.tagparse.text": "重新扫描工作区",
|
||||
"c.cpp.parsing.open.files.tooltip": "正在分析打开的文件",
|
||||
"click.to.preview": "单击以预览结果",
|
||||
"updating.intellisense.text": "IntelliSense: 正在更新",
|
||||
"idle.intellisense.text": "IntelliSense: 就绪",
|
||||
"absent.intellisense.text": "IntelliSense: 未配置",
|
||||
"running.analysis.text": "Code Analysis: 正在运行",
|
||||
"paused.analysis.text": "Code Analysis: 已暂停",
|
||||
"mode.analysis.prefix": "Code Analysis 模式:",
|
||||
"c.cpp.configureIntelliSenseStatus.text": "配置 IntelliSense",
|
||||
"c.cpp.configureIntelliSenseStatus.cppText": "C/C++ 配置 IntelliSense",
|
||||
"select.command": "选择命令...",
|
||||
"select.code.analysis.command": "选择代码分析命令...",
|
||||
"c.cpp.configuration.tooltip": "C/C++ 配置",
|
||||
"c.cpp.references.statusbar": "C/C++ 引用状态",
|
||||
"cpptools.status.intellisense": "C/C++ IntelliSense 状态",
|
||||
"cpptools.status.tagparser": "C/C++ 标记分析器状态",
|
||||
"cpptools.detail.tagparser": "正在初始化...",
|
||||
"cpptools.status.codeanalysis": "C/C++ Code Analysis 状态",
|
||||
"c.cpp.codeanalysis.statusbar.runNow": "立即运行",
|
||||
"tagparser.pause.text": "暂停",
|
||||
"tagparser.resume.text": "继续",
|
||||
"intellisense.select.text": "选择编译器",
|
||||
"rescan.intellisense.text": "重新扫描",
|
||||
"rescan.intellisense.tooltip": "重新扫描 IntelliSense",
|
||||
"mode.codeanalysis.status.automatic": "自动",
|
||||
"mode.codeanalysis.status.manual": "手动",
|
||||
"c.cpp.codeanalysis.statusbar.showCodeAnalysisOptions": "选项",
|
||||
"startup.codeanalysis.status": "正在启动...",
|
||||
"c.cpp.codeanalysis.statusbar.showRunNowOptions": "立即运行",
|
||||
"running.analysis.processed.tooltip": "正在运行: {0}/{1} ({2}%)",
|
||||
"select.a.configuration": "选择配置...",
|
||||
"edit.configuration.ui": "编辑配置(UI)",
|
||||
"edit.configuration.json": "编辑配置(JSON)",
|
||||
"select.configuration.provider": "选择配置提供程序...",
|
||||
"active": "活动",
|
||||
"none": "无",
|
||||
"disable.configuration.provider": "禁用活动配置提供程序(如果适用)。",
|
||||
"select.compile.commands": "选择 compile_commands.json...",
|
||||
"select.workspace": "选择工作区文件夹…",
|
||||
"resume.parsing": "恢复工作区分析",
|
||||
"pause.parsing": "暂停工作区分析",
|
||||
"cancel.analysis": "取消",
|
||||
"resume.analysis": "继续",
|
||||
"pause.analysis": "暂停",
|
||||
"another.analysis": "启动另一个...",
|
||||
"active.analysis": "在活动文件上运行 Code Analysis",
|
||||
"all.analysis": "在所有文件上运行 Code Analysis",
|
||||
"open.analysis": "在打开的文件上运行 Code Analysis"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"no.ssh.targets": "无 SSH 目标",
|
||||
"active.ssh.target.selection.cancelled": "已取消活动 SSH 目标选择。",
|
||||
"add.new.ssh.target": "{0} 添加新的 SSH 目标...",
|
||||
"select.ssh.target": "选择 SSH 目标"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"ssh.target.active.description": "[活动]"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"failed.to.connect": "未能连接到 {0}"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"local.forward.local.conflict": "在 localForwards 中,不能同时使用 \"bindAddress\" 或 \"port\" 指定 \"localSocket\"",
|
||||
"local.forward.local.missing": "localForwards 中需要 \"port\" 或 \"localSocket\"",
|
||||
"local.forward.remote.conflict": "在 localForwards 中,不能同时使用 \"host\" 或 \"hostPort\" 指定 \"remoteSocket\"",
|
||||
"local.forward.remote.missing": "localForwards 中需要 \"host\" 和 \"hostPort\" 或 \"remoteSocket\""
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"ssh.canceled": "已取消 SSH 命令",
|
||||
"ssh.passphrase.input.box": "输入 ssh 密钥的密码{0}",
|
||||
"ssh.enter.password.for.user": "输入用户 \"{0}\" 的密码",
|
||||
"ssh_message_enterPassword": "输入密码",
|
||||
"ssh.continue.confirmation.placeholder": "您确定要继续吗?",
|
||||
"ssh.host.key.confirmation.title": "\"{0}\" 具有指纹 \"{1}\"。",
|
||||
"continue": "继续",
|
||||
"cancel": "取消",
|
||||
"ssh.terminal.command.canceled": "已取消 \"{0}\" 终端命令。",
|
||||
"ssh.terminal.command.done": "已完成 \"{0}\" 终端命令。",
|
||||
"ssh.continuing.command.canceled": "已取消任务 \"{0}\",但基础命令可能不会终止。请手动进行检查。",
|
||||
"ssh.process.failed": "\"{0}\" 进程失败: {1}",
|
||||
"ssh.wrote.data.to.terminal": "\"{0}\" 已将数据写入终端: \"{1}\"。"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
// Do not edit this file. It is machine generated.
|
||||
{
|
||||
"failed.to.parse.SSH.config": "无法分析 SSH 配置文件 {0}: {1}",
|
||||
"failed.to.read.file": "未能读取文件 {0}。",
|
||||
"failed.to.write.file": "无法写入文件 {0}。"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user