Compare commits

...
Author SHA1 Message Date
garrett serack 3364cab2af Merge 2023-10-17 08:44:44 -07:00
garrett serack ae3f635cb6 checkpoint before pulling from main 2023-10-04 08:52:23 -07:00
garrett serack d8557a59cf Checkpoint - it's kinda working again 2023-10-03 09:44:11 -07:00
Sean McManus 847ea0b73c Fix prepublish. (#11469) 2023-09-29 17:41:31 -07:00
Michelle Matias 68c7be9d9e Fix loading UI (#11486) 2023-09-29 13:06:38 -07:00
Michelle Matias 1bde544458 Add Include Header setting for refactoring actions (#11449) 2023-09-27 10:51:53 -07:00
Sean McManus f62cad6a2f Fix Initializing in the status bar instead of Indexing. (#11471) 2023-09-26 16:37:57 -07:00
Garrett Serack eec372a186 force module to node16 for ts-node (#11468) 2023-09-26 11:40:51 -07:00
Michelle Matias b98bb40a89 Update language server loc strings (#11445) 2023-09-25 17:29:54 -07:00
Colen Garoutte-Carson 4d1a2a0e90 Change how logging level is passed to native process (#11438) 2023-09-18 13:57:25 -07:00
Michelle Matias dec50598bc Remove obsolete experimental configuration code (#11427) 2023-09-14 17:12:03 -07:00
browntarik c5c64ad831 Update localized intellisense crash string (#11356)
* update localized intellisense crash string

* resolve string

* update hint

* resolve loc string

* resolve string locs

* resolve spelling error
2023-09-13 14:45:35 -07:00
Bob Brown 27153190e2 Compiler acquisition (#11286) 2023-09-13 11:54:29 -07:00
Sean McManus 2cc55ea6eb Add keyboard support for Inline Macro. (#11261)
* Add keyboard support for Inline Macro.
* Enable inline macro without hover.
* Standardize localize string naming.
* Fix spelling errors involving strings types.
2023-09-11 09:56:16 -07:00
Garrett Serack 121a657acb make translations export work correctly in CI (#11415) 2023-09-08 07:53:49 -07:00
dependabot[bot] 6a54986b3f Bump mongodb from 4.8.1 to 4.17.0 in /.github/actions (#11413)
Bumps [mongodb](https://github.com/mongodb/node-mongodb-native) from 4.8.1 to 4.17.0.
- [Release notes](https://github.com/mongodb/node-mongodb-native/releases)
- [Changelog](https://github.com/mongodb/node-mongodb-native/blob/v4.17.0/HISTORY.md)
- [Commits](https://github.com/mongodb/node-mongodb-native/compare/v4.8.1...v4.17.0)

---
updated-dependencies:
- dependency-name: mongodb
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-07 09:52:11 -07:00
garrett serack 92595d8b04 merged from upstream 2023-09-06 07:50:26 -07:00
Garrett Serack b4a70dfc0a Make yarn tasks imply yarn install where appropriate (#11394)
* made sure that yarn install gets called before compile

* Add some nice messages

* better detection

* cleaned up more

* more tweaks

* remove old checks

* let unit tests run without binaries

* turn off scenario tests until binaries can be installed

* add another rule
2023-09-06 07:47:36 -07:00
browntarik efa5c2244b Rework Database Storage Path Logic (#11309)
* Fix typo (#11275)

* rework database logic

* resolve PR

* fix lint issues

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* update names

* resolve PR

* resolve PR

* fix lint error

* resolve PR

* resolve PR
2023-09-05 13:35:11 -07:00
garrett serack 8483206530 added support for compilecommands and providers 2023-09-05 09:15:41 -07:00
garrett serack 28b25b63cf Merge branch 'main' of https://github.com/microsoft/vscode-cpptools into garretts/toolset-detection 2023-08-31 14:17:10 -07:00
garrett serack 1566f46b94 chkpoin 2023-08-31 14:16:33 -07:00
Sean McManus 4199155228 Update TPN. (#11393) 2023-08-31 12:56:15 -07:00
Garrett Serack d949d93924 Apply strict eslint rule (#11389) 2023-08-31 09:26:55 -07:00
garrett serack 497c3bac14 Merge branch 'main' of https://github.com/microsoft/vscode-cpptools into garretts/toolset-detection 2023-08-30 13:13:20 -07:00
Marcin Strzyz 44e2a0ec4c added enforcement of no array constructor. (#11385) 2023-08-30 13:12:41 -07:00
Marcin Strzyz 0cd369c603 Incremental. (#11383) 2023-08-30 13:04:01 -07:00
garrett serack 2c14fa5c79 reset and merged from main 2023-08-30 10:20:23 -07:00
Marcin Strzyz 76fce67276 Added typing guards. (#11382) 2023-08-29 18:05:33 -07:00
Marcin Strzyz f3e0f0bb05 Added enforcement. (#11381) 2023-08-29 16:54:14 -07:00
Garrett Serack 628301be37 Test restructuring and cleanup (#11262)
* updated files

* queue and ready are now separate

* checkpoint

* found it! fixed missing call

* cleaned up and refactored a bit

* cleanup

* whoops. make sure linter runs!

* Make the queue itself static

* addressed formatting issues, added more rules to eslint

* more formatting, made ready Promise/void

* checkpoint

* checkpoint

* checkpoint

* checkpoint (linting)

* checkpoint

* checkpoint

* checkpoint

* checkpoint

* renamed path to filepath.

* checkpoint

* checkpoint

* so close...

* checkpoint again

* before making doc

* checkpoint

* checkpoint

* Checkpoint

* renamed awaiters

* eslint

* fix format on generated native strings

* add dummy pretest task back in for the moment

* change unit test runing

* posix calc test failure

* make signal dispose better

* add 	est regen script

* missed file

* checkpoint

* Improve scripts a bit

* remove hooks for now

* remove unused script

* remove unused script

* filter out files

* ensure that eslint works for scripts too

* fix build oses to specific version

* cleanups and tweaking

* adjusted for cosmetic feedback

* more

* add eslint rule to fix space before/after semicolon

* remove tba/tbd

* cleanup

* Added space-infix-ops rule

* cleanup

* resolve comments

* resolve comments

* add simple debug task

* spelling fixes

* cleanup more

* More changes. yay

* remove the extra whitespace from before comments

* add eslint rule to ensure that there are never extra spaces

* adding another eslint rule to ensure that there isn't spacing around unary operators, which we all know is dangerous. Or weird. I forget which

* added a space between vs and code because a space is the desired format

* removed all mentions of transpiler which was removed

* removed an extra comma

* removed a trailing slash

* removed useless lines

* missed as file

* reconfigure no-extra-parens rule

* added note about yarn install

* whatever

* more fun

* FIx it so that it webpacks correctly

* remove refernces to attic

* restore line to correct check

* fix whitespace

* added blank yarn install

* removed
2023-08-29 16:08:07 -07:00
browntarik 6efaafef60 place markdownInComments setting under code doc (#11380) 2023-08-29 14:53:18 -07:00
Michelle Matias f387815749 Fix tag parse language status item UI (#11354) 2023-08-25 15:50:03 -07:00
Michelle Matias c873aa18bd 1.17.5 changelog (#11363) 2023-08-25 13:50:14 -07:00
Colen Garoutte-Carson 78a8ff3bb3 Disable AutoPCH early on platforms that don't support it (#11362) 2023-08-24 18:29:52 -07:00
Michelle Matias 3033657a19 Reset FAR UI if no results returned (#11359) 2023-08-23 18:03:44 -07:00
Sean McManus ac118f453b Fix formatting for IntelliSense loc strings. (#11348)
* Fix formatting for loc strings.
2023-08-22 15:04:23 -07:00
Sean McManus 9e10a71ffb Update changelog and version for 1.17.4 (#11340)
* Update changelog and version for 1.17.4
* Add a missed entry.
2023-08-21 11:08:15 -07:00
Sean McManus 4525bd0ed5 Fix crash called by missing IntelliSense loc strings. (#11339) 2023-08-21 10:40:35 -07:00
Garrett Serack 89d0a7a01f Enqueue the call to sendDidOpen (#11337)
* enqueue the call to sendDidOpen
2023-08-21 10:32:47 -07:00
Colen Garoutte-Carson 27cd52a1b9 Replace use of yauzl with node-stream-zip (#11304) 2023-08-17 18:42:56 -07:00
Colen Garoutte-Carson e020a75bb7 Merge branch 'release' into main 2023-08-16 17:55:19 -07:00
Colen Garoutte-Carson c8a7776222 Update version and changelog for 1.17.3 (#11330) 2023-08-16 17:50:39 -07:00
Bob Brown 3934ef89ea Fix bug introduced by #11175 (#11329) 2023-08-16 16:46:17 -07:00
Michelle Matias d60499f793 Merge pull request #11319 from microsoft/mimatias/r-17
1.17.2 release merge
2023-08-14 12:54:16 -07:00
Michelle Matias 9b359ff73b Merge branch 'main' into mimatias/r-17 2023-08-14 12:45:28 -07:00
Michelle Matias fc9c45c34f 1.17.2 changelog (#11317) 2023-08-14 12:23:09 -07:00
Bob Brown 212fff2828 log machine id mappings for VS to VS Code (#11308)
* log machine id mappings for VS to VS Code

* update comment

* in case execChildProcess throws
2023-08-11 16:13:33 -07:00
browntarik 44e3bbe773 Update Changelog (#11302) 2023-08-08 17:35:02 -07:00
Bob Brown 90f922d651 default to c++14 on mac for build and run active file (#11300) 2023-08-08 14:52:42 -07:00
Colen Garoutte-Carson 408051429d Fix issue with currently selected compiler being listed last in task list (#11299) 2023-08-07 16:28:58 -07:00
Bob Brown ae904ec330 Fix the build getting stuck when /link /out: is used to specify the program name (#11281)
* Also make sure the mkdir command works
2023-08-03 13:13:03 -07:00
[email protected] 3bde088a06 [Auto] Localization - Translated Strings (#11118) 2023-08-03 12:08:50 -07:00
browntarik 9d28ba1e06 Prevent vcpkg code action from appearing in all unrelated code action menus (#11280)
* prevent vcpkg code action from appearing

* resolve PR

* resolve PR
2023-08-02 14:11:42 -07:00
melody 514e60863d Fix typo (#11275) 2023-08-01 15:05:50 -07:00
Michelle Matias 98af6a4888 Show relative path for call hierarchy item if available (#11265) 2023-07-31 18:00:59 -07:00
Michelle Matias b740f603ec Use selectionRange for call hierarchy request input (#11264) 2023-07-31 17:12:19 -07:00
Sean McManus 6b2099471d Clean up the command palette. (#11259)
* Clean up the command palette.
2023-07-28 14:45:31 -07:00
Sean McManus c76105e28e Add vscode.d.ts to .eslintignore. (#11258)
* Add vscode.d.ts to .eslintignore.
2023-07-28 09:03:18 -07:00
Michelle Matias 70ff2a296a Update compilerPath if c_cpp_properties.json exists (#11257) 2023-07-27 12:51:31 -07:00
Michelle Matias c3e3bd306f "Select IntelliSense Configuration" updates compilerPath in c_cpp_properties.json (#11255) 2023-07-27 11:40:04 -07:00
Sean McManus 4f805c4263 Update changelog (again) for 1.17.0 (#11251)
* Update changelog.
2023-07-26 16:26:40 -07:00
Michał Mąka a7870fc1b2 Added support for Toybox to remote process picker (#11175)
* Added separate remote process command for ToyBox
2023-07-26 16:08:07 -07:00
Michelle Matias d48fd4343b fix merge (#11249) 2023-07-26 14:11:18 -07:00
Michelle Matias 9ce7b5a87c update change log (#11240) 2023-07-24 16:35:29 -07:00
Michelle Matias 460aee5971 'Create Declaration / Definition' command via 'Quick Fix...' hover (#11239) 2023-07-24 15:49:19 -07:00
Sean McManus 0e309a7e7f Fix config provider ordering. (#11237) 2023-07-24 11:48:18 -07:00
Sean McManus 27f9fafc73 Fix console logging. (#11233) 2023-07-24 10:38:26 -07:00
Sean McManus 72ea4d5eb9 Update ThirdPartyNotices.txt. (#11232) 2023-07-21 13:52:52 -07:00
Michelle Matias 3c63457e38 changelog 17 (#11227) 2023-07-21 13:19:32 -07:00
Garrett Serack 477eb06f2b Fix out-of-order message handling (#11212) 2023-07-21 12:44:14 -07:00
dependabot[bot] 62b27eadce Bump word-wrap from 1.2.3 to 1.2.4 in /.github/actions (#11213) 2023-07-18 15:25:09 -07:00
browntarik 668499169e Add Setting to Enable Markdown Comment Formatting (#11177)
* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR
2023-07-18 14:34:25 -07:00
Bob Brown 2133b871be Remove walkthrough experiment and update the Help links to point to it (#11191) 2023-07-18 15:46:52 +00:00
Bob Brown d6370f3dcf compliance: update dependencies to remove usage of fsevents 1.2.7 (#11206) 2023-07-17 12:54:43 -07:00
Sean McManus 4589c6a731 Update IntelliSense loc strings. (#11193) 2023-07-14 15:50:57 -07:00
Sean McManus c4ea718dd5 Update ThirdPartyNotices.txt again. (#11184) 2023-07-11 17:58:15 -07:00
dependabot[bot] f26308c09f Bump semver from 5.7.1 to 5.7.2 in /.github/actions (#11183) 2023-07-11 16:44:36 -07:00
Sean McManus 420b479896 Update package.json/yarn.lock (#11181)
* Update yarn.lock.
* Clean up old/unneeded resolutions.
2023-07-11 16:34:49 -07:00
Colen Garoutte-Carson 2dfbeb16b2 Add license for SoftFloat to ThirdPartyNotices.txt (#11168) 2023-07-07 11:24:36 -07:00
Sean McManus f293e59478 Update IntelliSense loc strings. (#11166) 2023-07-06 18:55:15 -07:00
browntarik b747b98cde resolve paths with /, /*, /** and \\** (#11136)
* resolve paths with '/', '/*', '/**' and '\\**'

* resolve multiple path parsing

* create generalized approach for wildcard support

* Add windows conditional for backslashes

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve variables for globs

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR
2023-07-06 16:25:22 -07:00
Sean McManus 094596961a Update ThirdPartyNotices.txt (#11144) 2023-06-30 11:38:36 -07:00
Garrett Serack 503f95b085 Modernize packages, code patterns (#11085)
Modernize packages, code patterns
2023-06-29 13:18:48 -07:00
3612c02d07 Add wildcard support for includeDir (#10388)
For example, using the following tree:

  rootUri
  - sources
    - main
      - main.c
    - vendor
      - khash.h
  - headers
    - C001
      - a.h
    - C002
      - b.h

The following directory paths works:

- `sources/**`  for plain old recursive path
- `headers/C*/` dynamic path
- `missing/`    reported as "not found"
- `missing/*`   expanded as empty result (silent fail)

Note: bakslash paths need to be slash-converted to avoid be considered as "Dynamic"

Co-authored-by: Sean McManus <[email protected]>
Co-authored-by: browntarik <[email protected]>
2023-06-27 09:53:35 -07:00
Michelle Matias 93cc277311 Merge pull request #11126 from microsoft/mimatias/patch
1.16.3 changelog (#11125)
2023-06-23 17:07:38 -07:00
Michelle Matias 9d84cad54b 1.16.3 changelog (#11125) 2023-06-23 17:03:09 -07:00
Michelle Matias ddbc92a990 1.16.3 changelog (#11125) 2023-06-23 16:55:56 -07:00
Colen Garoutte-Carson ce587c6f06 Fix possible race condition that could lead to multiple didOpen's (#11120) 2023-06-22 19:26:13 -07:00
Michelle Matias 82671ea293 Merge pull request #11114 from microsoft/mimatias/1_16 2023-06-21 15:21:22 -07:00
Michelle Matias 605015c8af Merge branch 'main' into mimatias/1_16 2023-06-21 15:07:50 -07:00
Michelle Matias baa93534f0 update log (#11115) 2023-06-21 15:05:31 -07:00
Michelle Matias e5f74bc638 Merge branch 'main' into mimatias/1_16 2023-06-21 13:31:08 -07:00
[email protected] 68777f9873 [Auto] Localization - Translated Strings (#10992) 2023-06-21 13:28:59 -07:00
browntarik 4037db9783 remove extra adjustments to textEdit for CDD (#11110)
* remove extra adjustments to textEdit

* combine conditionals
2023-06-21 12:23:02 -07:00
Michelle Matias 67565fe0a7 Merge branch 'main' into mimatias/1_16 2023-06-21 11:02:35 -07:00
Michelle Matias a67c6610a7 1.16.2 changelog (#11111) 2023-06-21 10:57:55 -07:00
browntarik 4f5ec73173 Add configuration telemetry (#11093) 2023-06-19 16:44:44 -07:00
Bob Brown 79f4e8ded0 Update LICENSE.md (#11102) 2023-06-16 12:05:56 -07:00
Michelle Matias 7544de0b47 1.16.1 changelog (#11094) 2023-06-15 17:34:45 -07:00
Michelle Matias 491456e8de Fix references cancellation and preview (#11056) 2023-06-15 17:02:46 -07:00
Caio Hamamura 5b51db1999 configurationProvider.ts: default cppvsdbg integratedTerminal (#11035) 2023-06-15 16:41:32 -07:00
Chang-Yen Tseng 46eaddc411 include miDebuggerArgs in attach option (#11066) 2023-06-15 16:35:31 -07:00
Michelle Matias 71c6cb6c6c add file path to call hierarchy details (#11095) 2023-06-15 15:04:44 -07:00
Colen Garoutte-Carson 0452f0aad9 Remove line preventing Don't Show Again (#11076) 2023-06-12 14:54:29 -07:00
Sean McManus 478ccb6abd Update vscode/dts (#11047)
* Update vscode/dts
2023-06-05 15:40:29 -07:00
browntarik 7504532e58 Removed LanguageStatus experiment code and merged ui.ts and ui_new.ts (#11030)
* merge ui and ui_new, finsih status experiment

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR
2023-06-02 05:56:18 -07:00
Sean McManus 9621430533 Make sure empty non-enum string settings are equivalent to undefined. (#11031)
* Make sure empty non-enum string settings are equivalent to undefined.
* Check for null. Remove null default for "string" setting.
2023-05-31 17:42:33 -07:00
Sean McManus 3ef10f294e Stop using vcFormat for non-formatting editorconfig settings. (#11015) 2023-05-31 13:57:31 -07:00
Sean McManus e394edb630 Fix Other References not getting cleared for Call Hierarchy. (#10989) 2023-05-22 17:53:00 -07:00
Sean McManus 0c9d89787c Remove a fix. (#10903) 2023-04-28 18:20:34 -07:00
Sean McManus dc7651af75 Merge pull request #10898 from microsoft/seanmcm/1_15_4_release
Merge for 1.15.4
2023-04-27 15:27:40 -07:00
Sean McManus 9215fbe9b0 Merge branch 'main' into seanmcm/1_15_4_release 2023-04-27 14:29:27 -07:00
Sean McManus a395b8492a Merge pull request #10821 from microsoft/seanmcm/1_15_3_preliminary
Preliminary merge for 1.15.3
2023-04-13 11:21:55 -07:00
Sean McManus 17e337c874 Merge branch 'main' into seanmcm/1_15_3_preliminary 2023-04-13 10:35:11 -07:00
Michelle Matias 6f4403cf05 1.14.5 patch (#10724) 2023-03-22 02:51:27 -07:00
Sean McManus ec47886d72 Merge pull request #10609 from microsoft/main
Merge for 1.14.4 (2nd time)
2023-02-27 17:51:11 -08:00
415 changed files with 82827 additions and 60859 deletions
+3287 -125
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -32,7 +32,7 @@
"eslint-plugin-prettier": "^4.2.1",
"husky": "^8.0.1",
"mocha": "^10.0.0",
"mongodb": "^4.8.1",
"mongodb": "^4.17.0",
"nock": "^13.2.9",
"prettier": "2.7.1",
"ts-node": "^10.9.1",
+50 -47
View File
@@ -1,47 +1,50 @@
name: CI (Linux)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Dependencies
run: yarn install
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Compile Test Sources
run: yarn run pretest
working-directory: Extension
- name: Run unit tests
uses: GabrielBB/[email protected]
with:
run: yarn run unitTests
working-directory: Extension
# - name: Run languageServer integration tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn run integrationTests
# working-directory: Extension
name: CI (Linux)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Dependencies
run: yarn install
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Run unit tests
run: yarn test
working-directory: Extension
# # NOTE : We can't run the test that require the native binary files
# # yet -- there will be an update soon that allows the tester to
# # acquire them on-the-fly
# - name: Run simple vscode unit tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn test --scenario=SingleRootProject
# working-directory: Extension
# - name: Run languageServer integration tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn run integrationTests
# working-directory: Extension
+50 -47
View File
@@ -1,47 +1,50 @@
name: CI (Mac)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Dependencies
run: yarn install --network-timeout 100000
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Compile Test Sources
run: yarn run pretest
working-directory: Extension
- name: Run unit tests
uses: GabrielBB/[email protected]
with:
run: yarn run unitTests
working-directory: Extension
# - name: Run languageServer integration tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn run integrationTests
# working-directory: Extension
name: CI (Mac)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: macos-12
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Dependencies
run: yarn install --network-timeout 100000
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Run unit tests
run: yarn test
working-directory: Extension
# # NOTE : We can't run the test that require the native binary files
# # yet -- there will be an update soon that allows the tester to
# # acquire them on-the-fly
# - name: Run simple vscode unit tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn test --scenario=SingleRootProject
# working-directory: Extension
# - name: Run languageServer integration tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn run integrationTests
# working-directory: Extension
+46 -43
View File
@@ -1,43 +1,46 @@
name: CI (Windows)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Dependencies
run: yarn install
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Compile Test Sources
run: yarn run pretest
working-directory: Extension
- name: Run unit tests
run: yarn run unitTests
working-directory: Extension
# - name: Run languageServer integration tests
# run: yarn run integrationTests
# working-directory: Extension
name: CI (Windows)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: windows-2022
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install Dependencies
run: yarn install
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Run unit tests
run: yarn test
working-directory: Extension
# # NOTE : We can't run the test that require the native binary files
# # yet -- there will be an update soon that allows the tester to
# # acquire them on-the-fly
# - name: Run simple vscode unit tests
# run: yarn test --scenario=SingleRootProject
# working-directory: Extension
# - name: Run languageServer integration tests
# run: yarn run integrationTests
# working-directory: Extension
+3 -3
View File
@@ -1,4 +1,4 @@
*.js
test/**/index.ts
test/**/runTest.ts
tools/prepublish.js
dist/
vscode*.d.ts
+62 -50
View File
@@ -1,4 +1,9 @@
module.exports = {
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/strict",
],
"env": {
"browser": true,
"es6": true,
@@ -6,17 +11,31 @@ module.exports = {
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "tsconfig.json",
"sourceType": "module"
"project": ["tsconfig.json", ".scripts/tsconfig.json"],
"ecmaVersion": 2022,
"sourceType": "module",
"warnOnUnsupportedTypeScriptVersion": false,
},
"plugins": [
"@typescript-eslint",
"@typescript-eslint/tslint",
"eslint-plugin-jsdoc",
"@typescript-eslint/eslint-plugin-tslint",
"@typescript-eslint/eslint-plugin",
"eslint-plugin-import",
"eslint-plugin-header",
"etc"
],
"rules": {
"indent": [
"warn",
4,
{
"SwitchCase": 1,
"ObjectExpression": "first"
}
],
"@typescript-eslint/indent": [
"error", 4
],
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
@@ -41,6 +60,17 @@ module.exports = {
}
}
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extraneous-class": "off",
"no-case-declarations": "off",
"no-useless-escape": "off",
"no-floating-decimal": "error",
"keyword-spacing": ["error", { "before": true, "overrides": { "this": { "before": false } } }],
"arrow-spacing": ["error", { "before": true, "after": true }],
"semi-spacing": ["error", { "before": false, "after": true }],
"no-extra-parens": ["error", "all", { "nestedBinaryExpressions": false, "ternaryOperandBinaryExpressions": false }],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-misused-promises": "error",
@@ -54,11 +84,20 @@ module.exports = {
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/semi": "error",
"etc/no-commented-out-code": "error",
"@typescript-eslint/triple-slash-reference": "error",
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/unified-signatures": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/method-signature-style": ["error", "method"],
"@typescript-eslint/space-infix-ops": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" }],
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
"arrow-body-style": "error",
"comma-dangle": "error",
"comma-spacing": "off",
"@typescript-eslint/comma-spacing": "error",
"constructor-super": "error",
"curly": "error",
"eol-last": "error",
@@ -80,17 +119,19 @@ module.exports = {
"no-fallthrough": "error",
"no-invalid-this": "error",
"no-irregular-whitespace": "error",
"rest-spread-spacing": ["error", "never"],
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1, "maxBOF": 0 }],
"no-new-wrappers": "error",
"no-redeclare": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-trailing-spaces": "error",
"no-multi-spaces": "error",
"no-undef-init": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"space-before-blocks": "error",
"no-var": "error",
"one-var": [
"error",
@@ -103,54 +144,25 @@ module.exports = {
"never"
],
"spaced-comment": [
"error",
"always"
"off",
"always",
{ "line": { "exceptions": ["/"] } } // triple slash directives
],
"use-isnan": "error",
"valid-typeof": "error",
"yoda": "error",
"@typescript-eslint/tslint/config": [
"error",
{
"rules": {
"encoding": true,
"file-header": [
true,
".*"
],
"import-spacing": true,
"match-default-export-name": true,
"no-boolean-literal-compare": true,
"no-mergeable-namespace": true,
"no-reference-import": true,
"no-unnecessary-callback-wrapper": true,
"number-literal-format": true,
"one-line": [
true,
"check-catch",
"check-finally",
"check-else",
"check-open-brace",
"check-whitespace"
],
"prefer-method-signature": true,
"prefer-while": true,
"typedef": [
true,
"variable-declaration",
"call-signature",
"variable-declaration-ignore-function"
],
"whitespace": [
true,
"check-branch",
"check-operator",
"check-separator",
"check-preblock",
"check-type"
]
}
}
]
"space-infix-ops": "error",
"header/header": [
"warn",
"block",
[
" --------------------------------------------------------------------------------------------",
" * Copyright (c) Microsoft Corporation. All Rights Reserved.",
" * See 'LICENSE' in the project root for license information.",
" * ------------------------------------------------------------------------------------------ "
],
],
}
};
+2
View File
@@ -13,6 +13,7 @@ bin/cpptools*
bin/*.dll
bin/.vs
bin/LICENSE.txt
bin/rg*
# ignore lock files
install.lock
@@ -34,3 +35,4 @@ localized_string_ids.h
src/nativeStrings.ts
vscode*.d.ts
.scripts/_*
+60
View File
@@ -0,0 +1,60 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { parse } from 'semver';
import { $root, $switches, cyan, glob, green, note, updateFiles } from './common';
import { extensionsDir, installExtension, uninstallExtension } from './vscode';
export async function install(version: string) {
if (!version || parse(version)) {
note(`Attempting to install binaries from published vsix (${version ? version : $switches.includes('--pre-release') ? 'latest pre-release' : 'latest'})`);
}
// install it in the isolated vscodearea
note("Temporarily installing vscode-cpptools extension");
const { id, ver } = await installExtension('ms-vscode.cpptools', version);
// grab the binaries out
let files = [] as string[];
files.push(...await glob(`${extensionsDir}/${id}-${ver}*/bin/cpptools*`));
files.push(...await glob(`${extensionsDir}/${id}-${ver}*/bin/*.dll`));
files.push(...await glob(`${extensionsDir}/${id}-${ver}*/bin/*.exe`));
files.push(...await glob(`${extensionsDir}/${id}-${ver}*/LLVM/**`));
files.push(...await glob(`${extensionsDir}/${id}-${ver}*/debugAdapters/**`));
files = [...new Set(files)];
const extensionFolder = files[0].replace(/.bin.cpptools.*$/g, '');
note(`Copying files from vscode-cpptools extension ${ver} in '${extensionFolder}'`);
await updateFiles(files, $root, extensionFolder);
// remove the extension fromthe isolated vscode
note("Removing temporary vscode-cpptools extension");
await uninstallExtension('ms-vscode.cpptools');
}
export async function installbuild() {
//*
// cpptools-srv.exe
// cpptools-vcpkgsrv.exe
// cpptools.exe
// vcpkgsrvtest.exe
// xobjgen.exe
// search relative for the vcpkgsrv
//
// (grep --iglob **/vcpkgsrv/cpptools-vcpkgsrv.exe --max-depth 5 --ignore-case --files ../../ | Resolve-Path).Path
// base folder:
// ((grep --iglob **/vcpkgsrv/cpptools-vcpkgsrv.exe --max-depth 7 --ignore-case --files ../../) -replace "designtime.*",'' | Resolve-Path).Path
// typical locations for binaries
// ../../build/debug
//
}
export async function main() {
console.log(`use ${green(`yarn binary install ${cyan('[version] [--pre-release]')}`)}`);
}
+64
View File
@@ -0,0 +1,64 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { error } from 'node:console';
import { resolve, sep } from 'node:path';
import { filepath } from '../src/Utility/Filesystem/filepath';
import { verbose } from '../src/Utility/Text/streams';
import { $root, Git, brightGreen, cyan, getModifiedIgnoredFiles, rimraf } from './common';
// notes:
// list all gitignore'd files that are modified: `git clean -Xd -n`
// list all untracked and ignored files that are modified/created: `git clean -Xd -n`
export async function main() {
await rimraf(resolve($root, 'dist'));
}
export async function all() {
await rimraf(...(await getModifiedIgnoredFiles()).filter(each => !each.includes('node_modules')));
}
export async function reset() {
verbose(`Resetting all .gitignored files in extension`);
await rimraf(...await getModifiedIgnoredFiles());
}
async function details(files: string[]) {
let all = await Promise.all(files.filter(each => each).map(async (each) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [filename, stats ] = await filepath.stats(each);
return {
filename: stats.isDirectory() ? cyan(`${each}${sep}**`) : brightGreen(`${each}`),
date: stats.mtime.toLocaleDateString().replace(/\b(\d)\//g, '0$1\/'),
time: stats.mtime.toLocaleTimeString().replace(/^(\d)\:/g, '0$1:'),
modified: stats.mtime
};
}));
all = all.sort((a, b) => a.modified.getTime() - b.modified.getTime());
// print a formatted table so the date and time are aligned
const max = all.reduce((max, each) => Math.max(max, each.filename.length), 0);
all.forEach(each => console.log(` ${each.filename.padEnd(max)} [${each.date} ${each.time}]`));
console.log('');
}
export async function show(opt?: string) {
switch (opt?.toLowerCase()) {
case 'new':
console.log(cyan('\n\nNew files:'));
const r = await Git('ls-files', '--others', '--exclude-standard', '-z');
return details(r.stdio.all().map(each => resolve(each.trim().replace(/\0/g, ''))));
case undefined:
case '':
case 'ignored':
case 'untracked':
console.log(cyan('\n\nUntracked+Ignored files:'));
return details(await getModifiedIgnoredFiles());
default:
return error(`Unknown option '${opt}'`);
}
}
+40
View File
@@ -0,0 +1,40 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { spawnSync } from 'child_process';
import { verbose } from '../src/Utility/Text/streams';
import { $args, $root, $scenario, assertAnyFile, brightGreen, gray, green, pwd } from './common';
import { resolve } from 'path';
import { getTestInfo } from '../test/common/selectTests';
import { environment, install, options } from "./vscode";
export { install, reset } from './vscode';
export async function main() {
let ti = await getTestInfo($scenario);
if (!ti) {
// try using the first arg as a scenario name or location
ti = await getTestInfo($args[0], $args[0] ? resolve(pwd, $args[0]) : undefined);
if (ti) {
$args[0] = ti.workspace;
}
} else {
// we found it
$args.unshift(ti.workspace);
}
await assertAnyFile('dist/src/main.js', `The extension entry point '${$root}/dist/src/main.js is missing. You should run ${brightGreen("yarn compile")}\n\n`);
const { cli, args } = await install();
// example of installing an extension into code
//verbose(`Installing release version of 'ms-vscode.cpptools'`);
//spawnSync(cli, [...args, '--install-extension', 'ms-vscode.cpptools'], { encoding: 'utf-8', stdio: 'ignore' })
verbose(green('Launch VSCode'));
const ARGS = [...args, ...options.launchArgs.filter(each => !each.startsWith('--extensions-dir=') && !each.startsWith('--user-data-dir=')), `--extensionDevelopmentPath=${$root}`, ...$args ];
verbose(gray(`${cli}\n ${ [...ARGS ].join('\n ')}`));
spawnSync(cli, ARGS, { encoding: 'utf-8', stdio: 'ignore', env:environment()});
}
+399
View File
@@ -0,0 +1,399 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { Command, CommandFunction } from '../src/Utility/Process/program';
import { ok } from 'assert';
import { CommentJSONValue, parse, stringify } from 'comment-json';
import { mkdir as md, readFile, rm, writeFile } from 'fs/promises';
import { IOptions, glob as globSync } from 'glob';
import { dirname, resolve } from 'path';
import { chdir, cwd, env } from 'process';
import { setImmediate } from 'timers/promises';
import { promisify } from 'util';
import { filepath } from '../src/Utility/Filesystem/filepath';
import { is } from '../src/Utility/System/guards';
import { verbose } from '../src/Utility/Text/streams';
export const $root = resolve(`${__dirname}/..`);
export let $cmd = 'main';
export let $scenario = '';
// loop through the args and pick out --scenario=... and remove it from the $args and set $scenario
process.argv.slice(2).filter(each => !(each.startsWith('--scenario=') && ($scenario = each.substring('--scenario='.length))));
export const $args = process.argv.slice(2).filter(each => !each.startsWith('--'));
export const $switches = process.argv.slice(2).filter(each => each.startsWith('--'));
/** enqueue the call to the callback function to happen on the next available tick, and return a promise to the result */
export function then<T>(callback: () => Promise<T> | T): Promise<T> {
return setImmediate().then(callback);
}
export const pwd = env.INIT_CWD ?? cwd();
verbose(yellow(`pwd: ${pwd}`));
// ensure we're in the extension folder.
chdir($root);
// dump unhandled async errors to the console and exit.
process.on('unhandledRejection', (reason: any, _promise) => {
error(`${reason?.stack?.split(/\r?\n/).filter(l => !l.includes('node:internal') && !l.includes('node_modules')).join('\n')}`);
process.exit(1);
});
const git = new Command('git');
export const Git = async (...args: Parameters<Awaited<CommandFunction>>) => (await git)(...args);
export const GitClean = async (...args: Parameters<Awaited<CommandFunction>>) => (await new Command(await git, 'clean'))(...args);
export async function getModifiedIgnoredFiles() {
const {code, error, stdio } = await GitClean('-Xd', '-n');
if (code) {
throw new Error(`\n${error.all().join('\n')}`);
}
// return the full path of files that would be removed.
return Promise.all(stdio.filter("Would remove").map((s) => filepath.exists(s.replace(/^Would remove /, ''), $root)).filter(p => p));
}
export async function rimraf(...paths: string[]) {
const all = [];
for (const each of paths) {
if (!each) {
continue;
}
if (await filepath.isFolder(each)) {
verbose(`Removing folder ${red(each)}`);
all.push(rm(each, {recursive: true, force: true}));
continue;
}
verbose(`Removing file ${red(each)}`);
all.push(rm(each, {force: true}));
}
await Promise.all(all);
}
export async function mkdir(filePath: string) {
const [fullPath, info] = await filepath.stats(filePath, $root);
if (info) {
if (info.isDirectory()) {
return fullPath;
}
throw new Error(`Cannot create directory '${filePath}' because there is a file there.`);
}
await md(fullPath, { recursive: true });
return fullPath;
}
export const glob: (pattern: string, options?: IOptions) => Promise<string[]> = promisify(globSync);
export async function write(filePath: string, data: Buffer | string) {
await mkdir(dirname(filePath));
if (await filepath.isFile(filePath)) {
const content = await readFile(filePath);
if (is.string(data)) {
// if we're passed a text file, we should match the line endings of the existing file.
const textContent = content.toString();
// normalize the line endings to the same as the current file.
data = textContent.indexOf('\r\n') > -1 ? data.replace(/\r\n|\n/g, '\r\n') : data.replace(/\r\n|\n/g, '\n');
// if the text content is a match, we don't have to change anything
if (textContent === data) {
verbose(`Text file at '${filePath}' is up to date.`);
return;
}
} else {
// if the binary content is a match, we don't have to change anything
if (content.equals(data)) {
verbose(`File at '${filePath}' is up to date.`);
return;
}
}
}
verbose(`Writing file '${filePath}'`);
await writeFile(filePath, data);
}
export async function updateFiles(files: string[], dest: string | Promise<string>, prefix?: string) {
const target = is.promise(dest) ? await dest : dest;
await Promise.all(files.map(async (each) => {
const sourceFile = await filepath.isFile(each, $root);
if (sourceFile) {
const targetFile = prefix ? resolve(target, each.replace(prefix, '.')) : resolve(target, each);
try {
await write(targetFile, await readFile(sourceFile));
} catch (e) {
verbose(`Error during update of '${targetFile}' ${e} `);
}
}
}));
}
export async function go() {
if (require.main) {
// loop through the args and pick out the first non --arg and remove it from the $args and set $cmd
for (let i = 0; i < $args.length; i++) {
const each = $args[i];
if (require.main.exports[each]) {
$cmd = each;
$args.splice(i, 1);
break;
}
}
verbose(`${yellow("Running task:")} ${green($cmd)} ${green($args.join(' '))}`);
require.main.exports[$cmd](...$args);
}
}
void then(go);
export async function read(filename: string) {
const content = await readFile(filename);
ok(content, `File '${filename}' has no content`);
return content.toString();
}
export async function readJson(filename: string, fallback = {}): Promise<CommentJSONValue> {
try {
return parse(await read(filename));
} catch {
return fallback as CommentJSONValue;
}
}
export async function writeJson(filename: string, object: CommentJSONValue) {
await write(filename, stringify(object, null, 4));
}
export function error(text: string) {
console.error(`\n${red('ERROR')}: ${text}`);
return true;
}
export function warn(text: string) {
console.error(`\n${yellow('WARNING')}: ${text}`);
return true;
}
export function note(text: string) {
console.error(`\n${cyan('NOTE')}: ${text}`);
}
export function underline(text: string) {
return `\u001b[4m${text}\u001b[0m`;
}
export function bold(text: string) {
return `\u001b[1m${text}\u001b[0m`;
}
export function dim(text: string) {
return `\u001b[2m${text}\u001b[0m`;
}
export function brightGreen(text: string) {
return `\u001b[38;2;19;161;14m${text}\u001b[0m`;
}
export function green(text: string) {
return `\u001b[38;2;78;154;6m${text}\u001b[0m`;
}
export function brightWhite(text: string) {
return `\u001b[38;2;238;238;236m${text}\u001b[0m`;
}
export function gray(text: string) {
return `\u001b[38;2;117;113;94m${text}\u001b[0m`;
}
export function yellow(text: string) {
return `\u001b[38;2;252;233;79m${text}\u001b[0m`;
}
export function red(text: string) {
return `\u001b[38;2;197;15;31m${text}\u001b[0m`;
}
export function cyan(text: string) {
return `\u001b[38;2;0;174;239m${text}\u001b[0m`;
}
export const hr = "===============================================================================";
export function heading(text: string, level = 1) {
switch (level) {
case 1:
return `${underline(bold(text))}`;
case 2:
return `${brightGreen(text)}`;
case 3:
return `${green(text)}`;
}
return `${bold(text)}\n`;
}
export function optional(text: string) {
return gray(text);
}
export function cmdSwitch(text: string) {
return optional(`--${text}`);
}
export function command(text: string) {
return brightWhite(bold(text));
}
export function hint(text: string) {
return green(dim(text));
}
export function count(num: number) {
return gray(`${num}`);
}
export function position(text: string) {
return gray(`${text}`);
}
export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string> {
oneOrMoreFolders = is.array(oneOrMoreFolders) ? oneOrMoreFolders : [oneOrMoreFolders];
for (const each of oneOrMoreFolders) {
const result = await filepath.isFolder(each, $root);
if (result) {
verbose(`Folder ${brightGreen(each)} exists.`);
return result;
}
}
if (errorMessage) {
if (!$switches.includes('--quiet')) {
error(errorMessage);
}
process.exit(1);
}
}
export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string> {
oneOrMoreFiles = is.array(oneOrMoreFiles) ? oneOrMoreFiles : [oneOrMoreFiles];
for (const each of oneOrMoreFiles) {
const result = await filepath.isFile(each, $root);
if (result) {
verbose(`Folder ${brightGreen(each)} exists.`);
return result;
}
}
if (errorMessage) {
if (!$switches.includes('--quiet')) {
error(errorMessage);
}
process.exit(1);
}
}
const quiet = process.argv.includes('--quiet');
export async function checkPrep() {
let failing = false;
failing = !await assertAnyFolder('dist/test') && (quiet || warn(`The compiled test files are not in place.`)) || failing;
failing = !await assertAnyFolder('dist/walkthrough') && (quiet || warn(`The walkthrough files are not in place.`)) || failing;
failing = !await assertAnyFolder('dist/html') && (quiet || warn(`The html files are not in place.`)) || failing;
failing = !await assertAnyFolder('dist/schema') && (quiet || warn(`The schema files are not in place.`)) || failing;
failing = !await assertAnyFile('dist/nls.metadata.json') && (quiet || warn(`The extension translation file '${$root}/dist/nls.metadata.json is missing.`)) || failing;
failing = await checkDTS() || failing;
if (!failing) {
verbose('Prep files appear to be in place.');
}
return failing;
}
export async function checkCompiled() {
let failing = false;
failing = await checkDTS() || failing;
failing = !await assertAnyFile('dist/src/main.js') && (quiet || warn(`The extension entry point '${$root}/dist/src/main.js is missing.`)) || failing;
if (!failing) {
verbose('Compiled files appear to be in place.');
}
return failing;
}
export async function checkDTS() {
let failing = false;
failing = !await assertAnyFile('vscode.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.d.ts is missing.`)) || failing;
failing = !await assertAnyFile('vscode.proposed.terminalDataWriteEvent.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.terminalDataWriteEvent.d.ts is missing.`)) || failing;
if (!failing) {
verbose('VSCode d.ts files appear to be in place.');
}
return failing;
}
export async function checkBinaries() {
let failing = false;
failing = !await assertAnyFile(['bin/cpptools.exe', 'bin/cpptools']) && (quiet || warn(`The native binary files are not present. You should either build or install the native binaries\n\n.`)) || failing;
if (!failing) {
verbose('Native binary files appear to be in place.');
}
return failing;
}
const sowrite = process.stdout.write.bind(process.stdout) as (...args: unknown[]) => boolean;
const sewrite = process.stderr.write.bind(process.stderr) as (...args: unknown[]) => boolean;
const filters = [
/^\[(.*)\].*/,
/^Unexpected token A/,
/Cannot register 'cmake.cmakePath'/,
/\[DEP0005\] DeprecationWarning/,
/--trace-deprecation/,
/Iconv-lite warning/,
/^Found existing install/
];
// remove unwanted messages from stdio
function filterStdio() {
process.stdout.write = function (...args: unknown[]) {
if (typeof args[0] === 'string') {
const text = args[0];
if (filters.some(each => text.match(each))) {
return true;
}
}
if (args[0] instanceof Buffer) {
const text = args[0].toString();
if (filters.some(each => text.match(each))) {
return true;
}
}
return sowrite(...args);
};
process.stderr.write = function (...args: unknown[]) {
if (typeof args[0] === 'string') {
const text = args[0];
if (filters.some(each => text.match(each))) {
return true;
}
}
if (args[0] instanceof Buffer) {
const text = args[0].toString();
if (filters.some(each => text.match(each))) {
return true;
}
}
return sewrite(...args);
};
}
filterStdio();
+28
View File
@@ -0,0 +1,28 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { watch as watchFiles } from 'fs/promises';
import { filepath } from '../src/Utility/Filesystem/filepath';
import { verbose } from '../src/Utility/Text/streams';
import { $root, glob, mkdir, updateFiles } from './common';
export async function main() {
verbose(`Copying walkthrough media to extension/dist folder`);
await updateFiles(await glob('walkthrough/images/**/*'), mkdir('dist'));
}
export async function watch() {
const source = await filepath.isFolder('walkthrough/images', $root);
if (source) {
verbose(`Watching ${source} folder for changes.`);
console.log('Press Ctrl+C to exit.');
// eslint-disable-next-line @typescript-eslint/no-unused-vars
for await (const event of watchFiles(source, {recursive: true })) {
await main();
}
}
}
+134
View File
@@ -0,0 +1,134 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { parse } from 'comment-json';
import { resolve } from 'path';
import { read, write } from './common';
// ****************************
// Command: generate-native-strings
// The following is used to generate nativeStrings.ts and localized_string_ids.h from ./src/nativeStrings.json
// If adding localized strings to the native side, start by adding it to nativeStrings.json and use this to generate the others.
// ****************************
export async function main() {
const $root = resolve(`${__dirname}/..`);
const stringTable = parse(await read(`${$root}/src/nativeStrings.json`)) as any;
let nativeEnumContent = "";
let nativeStringTableContent = "";
let typeScriptSwitchContent = "";
let stringIndex = 1;
for (const property in stringTable) {
let stringValue = stringTable[property];
let hintValue;
if (typeof stringValue !== "string") {
hintValue = stringValue.hint;
stringValue = stringValue.text;
}
// Add to native enum
nativeEnumContent += ` ${property} = ${stringIndex},\n`;
// Add to native string table
nativeStringTableContent += ` ${JSON.stringify(stringValue)},\n`;
// Add to TypeScript switch
// Skip empty strings, which can be used to prevent enum/index reordering
if (stringValue !== "") {
// It's possible that a translation may skip "{#}" entries, so check for up to 50 of them.
let numArgs = 0;
for (let i = 0; i < 50; i++) {
if (stringValue.includes(`{${i}}`)) {
numArgs = i + 1;
}
}
typeScriptSwitchContent += ` case ${stringIndex}:\n`;
if (numArgs !== 0) {
typeScriptSwitchContent += ` if (stringArgs) {\n`;
if (hintValue) {
typeScriptSwitchContent += ` message = localize({ key: ${JSON.stringify(property)}, comment: [${JSON.stringify(hintValue)}] }, ${JSON.stringify(stringValue)}`;
} else {
typeScriptSwitchContent += ` message = localize(${JSON.stringify(property)}, ${JSON.stringify(stringValue)}`;
}
for (let i = 0; i < numArgs; i++) {
typeScriptSwitchContent += `, stringArgs[${i}]`;
}
typeScriptSwitchContent += `);\n break;\n }\n`;
}
if (hintValue) {
typeScriptSwitchContent += ` message = localize({ key: ${JSON.stringify(property)}, comment: [${JSON.stringify(hintValue)}] }, ${JSON.stringify(stringValue)}`;
} else {
typeScriptSwitchContent += ` message = localize(${JSON.stringify(property)}, ${JSON.stringify(stringValue)}`;
}
typeScriptSwitchContent += `);\n break;\n`;
}
++stringIndex;
}
// --------------------------------------------------------------------------------------------
// Generate the TypeScript file
// --------------------------------------------------------------------------------------------
const typeScriptContent = `/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
// ****** This file is generated from nativeStrings.json. Do not edit this file directly. ******
'use strict';
import * as nls from 'vscode-nls';
nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })();
const localize: nls.LocalizeFunc = nls.loadMessageBundle();
export const localizedStringCount: number = ${stringIndex};
export function lookupString(stringId: number, stringArgs?: string[]): string {
let message: string = "";
switch (stringId) {
case 0:
// Special case for blank string
break;
${typeScriptSwitchContent}
default:
console.assert(\"Unrecognized string ID\");
break;
}
return message;
}
`;
// If the file isn't there, or the contents are different, write it out
await write(`${$root}/src/nativeStrings.ts`, typeScriptContent);
// --------------------------------------------------------------------------------------------
// Generate the native string header file
// --------------------------------------------------------------------------------------------
const nativeContents = `/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
// ****** This file is generated from nativeStrings.json. Do not edit this file directly. ******
#pragma once
// NOLINTBEGIN(modernize-raw-string-literal)
enum class localized_string_id : unsigned int
{
blank = 0,
${nativeEnumContent}};
inline static const char *localizable_strings[] = {
"",
${nativeStringTableContent}};
// NOLINTEND(modernize-raw-string-literal)
`;
// If the file isn't there, or the contents are different, write it out
await write(`${$root}/localized_string_ids.h`, nativeContents);
}
@@ -1,10 +1,12 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import * as fs from 'fs';
import * as os from 'os';
/* eslint-disable no-prototype-builtins */
import { resolve } from 'path';
import { $root, read, write } from './common';
function appendFieldsToObject(reference: any, obj: any): any {
// Make sure it is an object type
@@ -54,7 +56,7 @@ function updateDefaults(object: any, defaults: any): any {
function refReplace(definitions: any, ref: any): any {
// $ref is formatted as "#/definitions/ObjectName"
const referenceStringArray: string[] = ref['$ref'].split('/');
const referenceStringArray: string[] = ref.$ref.split('/');
// Getting "ObjectName"
const referenceName: string = referenceStringArray[referenceStringArray.length - 1];
@@ -69,7 +71,7 @@ function refReplace(definitions: any, ref: any): any {
ref = appendFieldsToObject(reference, ref);
// Remove $ref field
delete ref['$ref'];
delete ref.$ref;
return ref;
}
@@ -114,10 +116,10 @@ function mergeReferences(baseDefinitions: any, additionalDefinitions: any): void
}
}
function generateOptionsSchema(): void {
const packageJSON: any = JSON.parse(fs.readFileSync('package.json').toString());
const schemaJSON: any = JSON.parse(fs.readFileSync('tools/OptionsSchema.json').toString());
const symbolSettingsJSON: any = JSON.parse(fs.readFileSync('tools/VSSymbolSettings.json').toString());
export async function main() {
const packageJSON: any = JSON.parse(await read(resolve($root, 'package.json')));
const schemaJSON: any = JSON.parse(await read(resolve($root, 'tools/OptionsSchema.json')));
const symbolSettingsJSON: any = JSON.parse(await read(resolve($root, 'tools/VSSymbolSettings.json')));
mergeReferences(schemaJSON.definitions, symbolSettingsJSON.definitions);
@@ -132,16 +134,11 @@ function generateOptionsSchema(): void {
packageJSON.contributes.debuggers[1].configurationAttributes.launch = schemaJSON.definitions.CppvsdbgLaunchOptions;
packageJSON.contributes.debuggers[1].configurationAttributes.attach = schemaJSON.definitions.CppvsdbgAttachOptions;
let content: string = JSON.stringify(packageJSON, null, 2);
if (os.platform() === 'win32') {
content = content.replace(/\n/gm, "\r\n");
}
let content: string = JSON.stringify(packageJSON, null, 4);
// We use '\u200b' (unicode zero-length space character) to break VS Code's URL detection regex for URLs that are examples. This process will
// convert that from the readable espace sequence, to just an invisible character. Convert it back to the visible espace sequence.
content = content.replace(/\u200b/gm, "\\u200b");
content = content.replace(/\u200b/gm, "\\u200b") + "\n";
fs.writeFileSync('package.json', content);
await write('package.json', content);
}
generateOptionsSchema();
+95
View File
@@ -0,0 +1,95 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import * as fs from "fs";
import * as path from 'path';
import { parseString } from 'xml2js';
import { mkdir, write } from './common';
export async function main() {
const localizeRepoPath = process.argv[2];
const cpptoolsRepoPath = process.argv[3];
if (!localizeRepoPath || !cpptoolsRepoPath) {
console.error(`ERROR: Usage: ${path.parse(process.argv[0]).base} ${path.parse(process.argv[1]).base} <Localize repo path> <vscode-cpptools repo path>`);
return;
}
console.log("Importing EDGE strings from Localize repo: " + localizeRepoPath);
console.log("Writing to cpptools repo: " + cpptoolsRepoPath);
if (!fs.existsSync(path.join(localizeRepoPath, ".git"))) {
console.error("ERROR: Localize repo submodule is not initialized in Localize repo");
return;
}
const languages = [
{ id: "zh-tw", folderName: "cht", transifexId: "zh-hant" },
{ id: "zh-cn", folderName: "chs", transifexId: "zh-hans" },
{ id: "fr", folderName: "fra" },
{ id: "de", folderName: "deu" },
{ id: "it", folderName: "ita" },
{ id: "es", folderName: "esn" },
{ id: "ja", folderName: "jpn" },
{ id: "ko", folderName: "kor" },
{ id: "ru", folderName: "rus" },
{ id: "bg", folderName: "bul" }, // VS Code supports Bulgarian, but VS is not currently localized for those languages.
{ id: "hu", folderName: "hun" }, // VS Code supports Hungarian, but VS is not currently localized for those languages.
{ id: "pt-br", folderName: "ptb", transifexId: "pt-BR" },
{ id: "tr", folderName: "trk" },
{ id: "cs", folderName: "csy" },
{ id: "pl", folderName: "plk" }
];
const locFolderNames = fs.readdirSync(localizeRepoPath).filter(f => fs.lstatSync(path.join(localizeRepoPath, f)).isDirectory());
for (const locFolderName of locFolderNames) {
const lclPath = path.join(localizeRepoPath, locFolderName, "vc/vc/cpfeui.dll.lcl");
const languageInfo = languages.find(l => l.folderName === locFolderName);
if (!languageInfo) {
return;
}
const languageId = languageInfo.id;
const outputLanguageFolder = path.join(cpptoolsRepoPath, "Extension/bin/messages", languageId);
const outputPath = path.join(outputLanguageFolder, "messages.json");
const sourceContent = fs.readFileSync(lclPath, 'utf-8');
// Scan once, just to determine how many there are the size of the array we need
let highestValue = 0;
parseString(sourceContent, function (err, result) {
result.LCX.Item.forEach((item) => {
if (item.$.ItemId === ";String Table") {
item.Item.forEach((subItem) => {
const itemId = parseInt(subItem.$.ItemId, 10);
if (subItem.Str[0].Tgt) {
if (highestValue < itemId) {
highestValue = itemId;
}
}
});
}
});
});
const resultArray = new Array(highestValue);
parseString(sourceContent, function (err, result) {
result.LCX.Item.forEach((item) => {
if (item.$.ItemId === ";String Table") {
item.Item.forEach((subItem) => {
const itemId = parseInt(subItem.$.ItemId, 10);
if (subItem.Str[0].Tgt) {
resultArray[itemId] = subItem.Str[0].Tgt[0].Val[0].replace(/\]5D;/g, "]");
if (highestValue < itemId) {
highestValue = itemId;
}
}
});
}
});
});
await mkdir(outputLanguageFolder);
await write(outputPath, JSON.stringify(resultArray, null, 4) + "\n");
}
}
+17
View File
@@ -0,0 +1,17 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { gray, green, readJson } from './common';
export async function main() {
const pkg = await readJson('package.json') as Record<string, any>;
if (pkg.scripts) {
console.log(green('\n\nAvailable script commands:\n'));
for (const key of Object.keys(pkg.scripts)) {
console.log(green(`yarn ${key} - ${gray(pkg.scripts[key])}`));
}
console.log('');
}
}
+185
View File
@@ -0,0 +1,185 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { runTests } from '@vscode/test-electron';
import { spawnSync } from 'child_process';
import { CommentArray, CommentObject } from 'comment-json';
import { readdir } from 'fs/promises';
import { resolve } from 'path';
import { env } from 'process';
import { returns } from '../src/Utility/Async/returns';
import { filepath } from '../src/Utility/Filesystem/filepath';
import { is } from '../src/Utility/System/guards';
import { verbose } from '../src/Utility/Text/streams';
import { getTestInfo } from '../test/common/selectTests';
import { $args, $root, $scenario, assertAnyFile, assertAnyFolder, brightGreen, checkBinaries, cmdSwitch, cyan, error, gray, green, readJson, red, writeJson } from './common';
import { install, isolated, options } from './vscode';
export { install, reset } from './vscode';
async function unitTests() {
await assertAnyFolder('dist/test/unit', `The folder '${$root}/dist/test/unit is missing. You should run ${brightGreen("yarn compile")}\n\n`);
const mocha = await assertAnyFile(["node_modules/.bin/mocha.cmd", "node_modules/.bin/mocha"], `Can't find the mocha testrunner. You might need to run ${brightGreen("yarn install")}\n\n`);
const result = spawnSync(mocha, [`${$root}/dist/test/unit/**/*.test.js`, '--timeout', '30000'], { stdio:'inherit'});
verbose(`\n${green("NOTE:")} If you want to run a scenario test (end-to-end) use ${cmdSwitch('scenario=<NAME>')} \n\n`);
return result.status;
}
async function scenarioTests(assets: string, name: string, workspace: string) {
if (await checkBinaries()) {
process.exit(1);
}
return runTests({
...options,
extensionDevelopmentPath: $root,
extensionTestsPath: resolve($root, 'dist/test/common/selectTests'),
launchArgs: workspace ? [...options.launchArgs, workspace] : options.launchArgs,
extensionTestsEnv: {
SCENARIO: assets,
DONT_PROMPT_WSL_INSTALL:"1"
}
});
}
export async function main() {
await assertAnyFolder('dist/test/', `The folder '${$root}/dist/test is missing. You should run ${brightGreen("yarn compile")}\n\n`);
const arg = $args.find(each => !each.startsWith("--"));
const specifiedScenario = $scenario || env.SCENARIO || await getScenarioFolder(arg);
const testInfo = await getTestInfo(specifiedScenario);
if (!testInfo) {
if (arg) {
return error(`Could not find scenario ${arg}`);
}
// lets just run the unit tests
process.exit(await unitTests());
}
// at this point, we're going to run some vscode tests
if (!await filepath.isFolder(isolated)) {
await install();
}
process.exit(await scenarioTests(testInfo.assets, testInfo.name, testInfo.workspace));
}
export async function all() {
if (await checkBinaries()) {
process.exit(1);
}
const finished: string[] = [];
if (await unitTests() !== 0) {
console.log(`${cyan(" UNIT TESTS: ")}${red("failed")}`);
process.exit(1);
}
finished.push(`${cyan(" UNIT TESTS: ")}${green("success")}`);
// at this point, we're going to run some vscode tests
if (!await filepath.isFolder(isolated)) {
await install();
}
try {
const scenarios = await getScenarioNames();
for (const each of scenarios) {
if (await filepath.isFolder(`${$root}/test/scenarios/${each}/tests`)) {
const ti = await getTestInfo(each);
if (ti) {
console.log(`\n\nRunning scenario ${each}`);
const result = await scenarioTests(ti.assets, ti.name, ti.workspace);
if (result) {
console.log(finished.join('\n'));
console.log(` ${cyan(`${ti.name} Tests:`)}${red("failed")}`);
process.exit(result);
}
finished.push(` ${cyan(`${ti.name} Tests:`)}${green("success")}`);
}
}
}
} catch (e) {
error(e);
} finally {
console.log(finished.join('\n'));
}
}
interface Input {
id: string;
type: string;
description: string;
options: CommentArray<{label: string; value: string}>;
}
export async function getScenarioNames() {
return (await readdir(`${$root}/test/scenarios`).catch(returns.none)).filter(each => each !== 'Debugger');
}
export async function getScenarioFolder(scenarioName: string) {
return scenarioName ? resolve(`${$root}/test/scenarios/${(await getScenarioNames()).find(each => each.toLowerCase() === scenarioName.toLowerCase())}`) : undefined;
}
export async function list() {
console.log(`\n${cyan("Scenarios: ")}\n`);
const names = await getScenarioNames();
const max = names.reduce((max, each) => Math.max(max, each), 0);
for (const each of names) {
console.log(` ${green(each.padEnd(max))}: ${gray(await getScenarioFolder(each))}`);
}
}
export async function regen() {
// update the .vscode/launch.json file with the scenarios
const scenarios = await getScenarioNames();
const launch = await readJson(`${$root}/.vscode/launch.json`) as CommentObject;
if (!is.object(launch)) {
return error(`The file ${$root}/.vscode/launch.json is not valid json`);
}
if (!is.array(launch.inputs)) {
return error(`The file ${$root}/.vscode/launch.json is missing the 'inputs' array`);
}
const inputs = launch.inputs as unknown as CommentArray<Input>;
const pickScenario = inputs.find(each => each.id === 'pickScenario');
if (!pickScenario) {
return error(`The file ${$root}/.vscode/launch.json is missing the 'pickScenario' input`);
}
const pickWorkspace = inputs.find(each => each.id === 'pickWorkspace');
if (!pickWorkspace) {
return error(`The file ${$root}/.vscode/launch.json is missing the 'pickWorkspace' input`);
}
for (const scenarioFolder of scenarios) {
const prefix = $root.replace(/\\/g, '/');
if (await filepath.isFolder(`${$root}/test/scenarios/${scenarioFolder}/tests`)) {
const testInfo = await getTestInfo(scenarioFolder);
if (testInfo) {
const label = `${scenarioFolder} `;
const value = testInfo.workspace.replace(/\\/g, '/').replace(prefix, '${workspaceFolder}');
const scenario = pickScenario.options.find(s => s.label === label);
if (!scenario) {
console.log(`Adding scenario ${green(scenarioFolder)} to pickScenario`);
pickScenario.options.push({ label, value });
} else {
verbose(`Skipping scenario ${scenarioFolder} because it already exists`);
}
const wrkspace = pickWorkspace.options.find(s => s.label === label);
if (!wrkspace) {
console.log(`Adding workspace ${green(scenarioFolder)} to pickWorkspace`);
pickWorkspace.options.push({ label, value });
} else {
verbose(`Skipping workspace ${scenarioFolder} because it already exists`);
}
} else {
verbose(`Skipping scenario ${scenarioFolder} because it doesn't look like there are any tests. (maybe try and run ${brightGreen("yarn compile")})`);
}
}
}
await writeJson(`${$root}/.vscode/launch.json`, launch);
}
+12
View File
@@ -0,0 +1,12 @@
{
"compilerOptions": {
"target": "ES2022",
"module": "Node16",
"moduleResolution": "node16",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"esModuleInterop": true
}
}
+52
View File
@@ -0,0 +1,52 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { checkBinaries, checkCompiled, checkDTS, checkPrep, error, green } from './common';
const quiet = process.argv.includes('--quiet');
export async function main() {
let failing = await checkPrep() && (quiet || error(`Files are not up to date. Run ${green('yarn prep')} to fix it.`));
failing = (await checkCompiled() && (quiet || error(`Compiled files are not present. Run ${green('yarn compile')} to fix it.`))) || failing;
failing = (await checkBinaries() && (quiet || error(`The native binary files are not present. You should either build or install the native binaries\n\n.`))) || failing;
if (failing) {
process.exit(1);
}
}
export async function compiled() {
let failing = false;
failing = (await checkCompiled() && (quiet || error(`Compiled files are not present. Run ${green('yarn compile')} to fix it.`))) || failing;
if (failing) {
process.exit(1);
}
}
export async function binaries() {
let failing = false;
failing = (await checkBinaries() && (quiet || error(`The native binary files are not present. You should either build or install the native binaries\n\n.`))) || failing;
if (failing) {
process.exit(1);
}
}
export async function prep() {
let failing = false;
failing = (await checkPrep() && (quiet || error(`Files are not up to date. Run ${green('yarn prep')} to fix it.`))) || failing;
if (failing) {
process.exit(1);
}
}
export async function dts() {
let failing = false;
failing = (await checkDTS() && (quiet || error(`VSCode import files are not present. Run ${green('yarn prep')} to fix it.`))) || failing;
if (failing) {
process.exit(1);
}
}
+115
View File
@@ -0,0 +1,115 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
/* eslint-disable @typescript-eslint/no-dynamic-delete */
import { downloadAndUnzipVSCode, resolveCliArgsFromVSCodeExecutablePath } from '@vscode/test-electron';
import { fail } from 'assert';
import { spawnSync } from 'child_process';
import { createHash } from 'crypto';
import { tmpdir } from 'os';
import { resolve } from 'path';
import { verbose } from '../src/Utility/Text/streams';
import { $switches, error, mkdir, readJson, rimraf, write } from './common';
export const isolated = resolve(tmpdir(), '.vscode-test', createHash('sha256').update(__dirname).digest('hex').substring(0, 6));
export const extensionsDir = resolve(isolated, 'extensions');
export const userDir = resolve(isolated, 'user-data');
export const settings = resolve(userDir, "User", 'settings.json');
export const options = {
cachePath: `${isolated}/cache`,
launchArgs: ['--no-sandbox', '--disable-updates', '--skip-welcome', '--skip-release-notes', `--extensions-dir=${extensionsDir}`, `--user-data-dir=${userDir}`, '--disable-workspace-trust']
};
export async function install() {
try {
// Create a new isolated directory for VS Code instance in the test folder, and make it specific to the extension folder so we can avoid collisions.
// keeping this out of the Extension folder means we're not worried about VS Code getting weird with locking files and such.
verbose(`Isolated VSCode test folder: ${isolated}`);
await mkdir(isolated);
const vscodeExecutablePath = await downloadAndUnzipVSCode(options);
const [cli, ...args] = resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath).filter(each => !each.startsWith('--extensions-dir=') && !each.startsWith('--user-data-dir='));
args.push(`--extensions-dir=${extensionsDir}`, `--user-data-dir=${userDir}`);
// install the appropriate extensions
// spawnSync(cli, [...args, '--install-extension', 'ms-vscode.cpptools'], { encoding: 'utf-8', stdio: 'ignore' });
// spawnSync(cli, [...args, '--install-extension', 'twxs.cmake'], { encoding: 'utf-8', stdio: 'ignore' });
// spawnSync(cli, [...args, '--install-extension', 'ms-vscode.cmake-tools'], { encoding: 'utf-8', stdio: 'ignore' });
const settingsJson = await readJson(settings, {});
if (!settingsJson["workbench.colorTheme"]) {
settingsJson["workbench.colorTheme"] = "Tomorrow Night Blue";
}
settingsJson["git.openRepositoryInParentFolders"] = "never";
await write(settings, JSON.stringify(settingsJson, null, 4));
return {
cli, args
};
} catch (err: unknown) {
console.log(err);
}
}
export async function installExtension(name: string, version?: string) {
// eslint-disable-next-line prefer-const
let {cli, args} = await install();
args = [...args, '--install-extension', version ? `${name}@${version}` : name ];
if ($switches.includes('--pre-release')) {
args.push('--pre-release');
}
verbose({cli, args});
const result = spawnSync(cli, args, { encoding: 'utf-8', stdio: 'pipe', env:environment()});
verbose(result.stdout);
if (!result.status){
for (const line of result.output){
const [,id, ver] = /Extension '(.*)' v(.*?)\s/g.exec(line) ?? [];
if (id) {
return {id, ver};
}
}
}
error(result.stderr);
fail('Failed to install extension');
}
export async function uninstallExtension(name: string) {
// eslint-disable-next-line prefer-const
let {cli, args} = await install();
args = [...args, '--uninstall-extension', name];
const result = spawnSync(cli, args, { encoding: 'utf-8', stdio: 'pipe', env:environment()});
if (!result.status){
for (const line of result.output){
const [,id, ver] = /Extension '(.*)' v(.*?)\s/g.exec(line) ?? [];
if (id) {
return {id, ver};
break;
}
}
}
}
export async function extensions() {
// eslint-disable-next-line prefer-const, @typescript-eslint/no-unused-vars
let {cli, args} = await install();
}
/** returns a copy of the environment, with tweaks to ensure isolated instance works correctly in WSL and remote dev situations */
export function environment() {
const env = { ...process.env, DONT_PROMPT_WSL_INSTALL:"1" }; // this lets you run the native VSCODE instance, even if you're working in WSL
Object.keys(env).map(each => each.includes('VSCODE') && delete env[each]); // prevent VSCode remoting from hijacking the launching of the isolated vscode
return env;
}
export async function reset() {
verbose(`Removing VSCode test folder: ${isolated}`);
await rimraf(isolated);
}
+145 -126
View File
@@ -1,128 +1,147 @@
// A launch configuration that compiles the extension and then opens it inside a new window
{
"version": "0.1.0",
"configurations": [
{
"name": "Launch Extension (development)",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
],
"preLaunchTask": "Compile Dev",
},
{
"name": "Launch Extension (production)",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
],
"preLaunchTask": "TypeScript Compile",
},
{
"name": "Launch Extension (do not build)",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
]
},
{
"name": "Launch Extension (watch, development)",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
],
"preLaunchTask": "Compile Dev Watch",
},
{
"name": "Launch Extension (watch, production)",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
],
"preLaunchTask": "TypeScript Compile Watch",
},
{
"name": "Launch Unit Tests",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test/unitTests/index"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/out/test/**/*.js"
],
"preLaunchTask": "Pretest"
},
{
"name": "Launch Integration Tests",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"${workspaceFolder}/test/integrationTests/testAssets/SimpleCppProject/simpleCppProject.code-workspace",
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test/integrationTests/languageServer/index"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/out/test/**/*.js"
],
"preLaunchTask": "Pretest",
},
{
"name": "Launch E2E IntelliSense features tests",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"C:/git/Vcls-vscode-test/MultirootDeadlockTest/test.code-workspace",
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test/integrationTests/IntelliSenseFeatures/index"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/out/test/**/*.js"
],
"preLaunchTask": "Pretest"
},
{
"name": "Node Attach",
"type": "node",
"request": "attach",
"port": 5858
},
]
}
"version": "0.1.0",
"configurations": [
{
// debugs the extension
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"--no-sandbox",
"--disable-updates",
"--skip-welcome",
"--skip-release-notes",
"--disable-workspace-trust",
"--disable-extensions",
"--extensionDevelopmentPath=${workspaceFolder}",
],
"env": {
//"VSCODE_CPP_DEBUG_VSCODE": "c:\\work\\vs\\src\\vc\\.vscode\\launch.json"
},
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/dist/**"
],
// you can use a watch task as a prelaunch task and it works like you'd want it to.
"preLaunchTask": "watch"
},
{
// debugs the extension (selecting the workspace)
"name": "Run Extension-Select Workspace",
"type": "extensionHost",
"request": "launch",
"args": [
"--no-sandbox",
"--disable-updates",
"--skip-welcome",
"--skip-release-notes",
"--disable-workspace-trust",
"--extensionDevelopmentPath=${workspaceFolder}",
"${input:pickWorkspace}"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/dist/**"
],
// you can use a watch task as a prelaunch task and it works like you'd want it to.
"preLaunchTask": "watch"
},
{
// debug scenario tests (selecting the workspace)
"name": "VSCode Tests",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"env": {
"SCENARIO": "${input:pickScenario}"
},
"args": [
"--no-sandbox",
"--disable-updates",
"--skip-welcome",
"--skip-release-notes",
"--disable-extensions",
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/dist/test/common/selectTests",
"--scenario=${input:pickScenario}",
"${input:pickScenario}"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/dist/**"
],
// you can use a watch task as a prelaunch task and it works like you'd want it to.
"preLaunchTask": "watch"
},
{
// used for debugging unit tests
"name": "MochaTest",
"type": "node",
"request": "attach",
"port": 9229,
"continueOnAttach": true,
"autoAttachChildProcesses": false,
"skipFiles": [
"<node_internals>/**"
],
"outFiles": [
"${workspaceFolder}/dist/**",
"!**/node_modules/**"
]
}
],
"inputs": [
{
"type": "pickString",
"id": "pickScenario",
"description": "Select which scenario to debug VSCode tests.",
"options": [
{
"label": "MultirootDeadlockTest ",
"value": "${workspaceFolder}/test/scenarios/MultirootDeadlockTest/assets/test.code-workspace"
},
{
"label": "SimpleCppProject ",
"value": "${workspaceFolder}/test/scenarios/SimpleCppProject/assets/simpleCppProject.code-workspace"
},
{
"label": "SingleRootProject ",
"value": "${workspaceFolder}/test/scenarios/SingleRootProject/assets/"
},
{
"label": "CompilerDetection ",
"value": "${workspaceFolder}/test/scenarios/CompilerDetection/assets"
}
]
},
{
"type": "pickString",
"id": "pickWorkspace",
"description": "Select which workspace scenario to debug VSCode.",
"default": "-n",
"options": [
{
"label": "(Debug with new window) ",
"value": "-n"
},
{
"label": "MultirootDeadlockTest ",
"value": "${workspaceFolder}/test/scenarios/MultirootDeadlockTest/assets/test.code-workspace"
},
{
"label": "SimpleCppProject ",
"value": "${workspaceFolder}/test/scenarios/SimpleCppProject/assets/simpleCppProject.code-workspace"
},
{
"label": "SingleRootProject ",
"value": "${workspaceFolder}/test/scenarios/SingleRootProject/assets/"
},
{
"label": "CompilerDetection ",
"value": "${workspaceFolder}/test/scenarios/CompilerDetection/assets"
}
]
}
]
}
+83 -8
View File
@@ -1,10 +1,85 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.exclude": {
"out": false // set this to true to hide the "out" folder with the compiled JS files
},
"search.exclude": {
"out": true // set this to false to include "out" folder in search results
},
"typescript.tsdk": "./node_modules/typescript/lib" // we want to use the TS server from our node_modules folder to control its version
}
"window.title": "CppTools <Typescript> ${separator}${activeEditorShort}${separator}${dirty}",
"workbench.colorTheme": "Hacker",
"files.exclude": {
"out": false // set this to true to hide the "out" folder with the compiled JS files
},
"search.exclude": {
"out": true // set this to false to include "out" folder in search results
},
"files.associations": {
"**/bin/definitions/**/*.json": "jsonl",
},
"typescript.tsdk": "./node_modules/typescript/lib", // we want to use the TS server from our node_modules folder to control its version
// if you install the mocha test explorer extension, you can run the unit tests from the test explorer UI
"testExplorer.useNativeTesting": true,
"mochaExplorer.files": "./**/unit/**/*.test.js",
"mochaExplorer.watch": "./**/unit/**/*.test.js",
"mochaExplorer.ignore": [
"**/*skip*",
"**/dist/test/**/*.d.ts",
"**/node_modules/**"
],
"mochaExplorer.debuggerConfig": "MochaTest",
"mochaExplorer.logpanel": true,
"mochaExplorer.timeout": 500000,
"mochaExplorer.require": [
"source-map-support/register"
],
"mochaExplorer.monkeyPatch": true,
"[json]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "vscode.json-language-features",
"editor.tabSize": 4,
"files.insertFinalNewline": true
},
"[jsonc]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "vscode.json-language-features",
"editor.tabSize": 4,
"files.insertFinalNewline": true
},
"[typescript]": {
"editor.tabSize": 4,
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.formatOnSave": true,
"files.insertFinalNewline": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.organizeImports": true
},
},
"eslint.format.enable": true,
"[javascript]": {
"editor.tabSize": 4,
},
"markdown.extension.list.indentationSize": "inherit",
"markdown.extension.toc.levels": "2..6",
"[markdown]": {
"editor.tabSize": 4,
},
"eslint.workingDirectories": [
{
"changeProcessCWD": true,
"directory": "./",
},
{
"changeProcessCWD": true,
"directory": "./.scripts",
}
],
"[jsonl]": {
"editor.tabSize": 2,
},
"workbench.colorCustomizations": {
"[Hacker]": {
"sideBar.background": "#050a0a",
"menu.background": "#050a0a",
"editorWidget.background": "#050a0a",
"terminal.background": "#030303",
"activityBar.background": "#050a0a",
"activityBarBadge.foreground": "#eaeaea",
}
},
}
+10 -153
View File
@@ -4,168 +4,25 @@
"version": "2.0.0",
"tasks": [
{
"label": "TypeScript Compile",
"label": "compile",
"type": "npm",
"script": "compile",
"problemMatcher": "$tsc",
"group": {
"kind": "build",
"isDefault": true
},
"isBackground": false,
"type": "shell",
"presentation": {
"echo": true,
"reveal": "silent",
"focus": false,
"panel": "shared"
},
"command": "yarn",
"args": [
"run",
"compile"
]
}
},
{
"label": "TypeScript Lint",
"group": "build",
"isBackground": false,
"type": "shell",
"command": "yarn",
"args": [
"run",
"lint"
],
"problemMatcher": {
"fileLocation": "absolute",
"source": "lint",
"pattern": [
{
"regexp": "(ERROR:) ([a-zA-Z/:\\-\\.]*)\\[(\\d+), (\\d+)\\]: (.*)",
"severity": 1,
"file": 2,
"line": 3,
"column": 4,
"message": 5
}
]
},
"dependsOn": [
"Compile Dev"
]
},
{
"label": "Compile Dev",
"group": "build",
"isBackground": false,
"type": "shell",
"command": "yarn",
"args": [
"run",
"compile-dev"
]
},
{
"label": "Pretest",
"group": "build",
"isBackground": false,
"type": "shell",
"command": "yarn",
"args": [
"run",
"pretest"
],
"dependsOn": [
"Compile Dev"
]
},
{
"label": "TypeScript Compile Watch",
"label": "watch",
"type": "npm",
"script": "watch",
"group": {
"kind": "build",
"isDefault": true
},
"isBackground": true,
"type": "shell",
"presentation": {
"echo": true,
"reveal": "silent",
"focus": false,
"panel": "shared"
},
"command": "yarn",
"args": [
"run",
"compile-watch"
],
"problemMatcher": [
{
"owner": "typescript",
"source": "ts",
"applyTo": "closedDocuments",
"fileLocation": "absolute",
"severity": "error",
"pattern": [
{
"regexp": "\\[tsl\\] ERROR in (.*)?\\((\\d+),(\\d+)\\)",
"file": 1,
"line": 2,
"column": 3
},
{
"regexp": "\\s*TS\\d+:\\s*(.*)",
"message": 1
}
],
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "asset"
},
"endsPattern": {
"regexp": "webpack (.*?) compiled (.*?) ms"
}
}
}
]
},
{
"label": "Compile Dev Watch",
"group": "build",
"isBackground": true,
"type": "shell",
"command": "yarn",
"args": [
"run",
"compile-dev-watch"
],
"problemMatcher": [
{
"owner": "typescript",
"source": "ts",
"applyTo": "closedDocuments",
"fileLocation": "absolute",
"severity": "error",
"pattern": [
{
"regexp": "\\[tsl\\] ERROR in (.*)?\\((\\d+),(\\d+)\\)",
"file": 1,
"line": 2,
"column": 3
},
{
"regexp": "\\s*TS\\d+:\\s*(.*)",
"message": 1
}
],
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "asset"
},
"endsPattern": {
"regexp": "webpack (.*?) compiled (.*?) ms"
}
}
}
]
"problemMatcher": "$tsc-watch"
}
]
}
}
+54 -47
View File
@@ -1,47 +1,54 @@
# ignore vscode settings for extension development
.vscode/**
# ignore binaries
obj/**
# ignore source files
tools/**
notices/**
test/**
src/**
# ignore .js files that are webpacked or only used for development
out/src/**
out/tools/**
# ignore ts files in ui
ui/*.ts
# ignore Azure-Pipelines files
jobs/**
cgmanifest.json
# ignore development files
tsconfig.json
test.tsconfig.json
tslint.json
.eslintrc.js
webpack.config.js
tscCompileList.txt
gulpfile.js
.gitattributes
.gitignore
CMakeLists.txt
debugAdapters/install.lock*
typings/**
**/*.map
import_edge_strings.js
localized_string_ids.h
translations_auto_pr.js
# ignore i18n language files
i18n/**
# ignore node_modules
node_modules/
# ignore vscode settings for extension development
.vscode/**
# ignore binaries
obj/**
# ignore source files
tools/**
notices/**
test/**
src/**
# ignore .js files that are webpacked or only used for development
out/src/**
out/tools/**
# don't include the local code and tests compiled files
dist/test/**
# no project scripts
.scripts/**
# ignore ts files in ui
ui/*.ts
# ignore Azure-Pipelines files
jobs/**
cgmanifest.json
# ignore development files
tsconfig.json
test.tsconfig.json
ui.tsconfig.json
tslint.json
.eslintrc.js
webpack.config.js
tscCompileList.txt
gulpfile.js
.gitattributes
.gitignore
CMakeLists.txt
debugAdapters/install.lock*
typings/**
**/*.map
import_edge_strings.js
localized_string_ids.h
translations_auto_pr.js
# ignore i18n language files
i18n/**
# ignore node_modules
node_modules/
+7
View File
@@ -0,0 +1,7 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
ignore-engines true
disable-self-update-check true
--run.silent true
+83 -6
View File
@@ -1,6 +1,69 @@
# C/C++ for Visual Studio Code Changelog
## Version 1.16.0: May 22, 2023
## Version 1.17.5: August 28, 2023
### Bug Fixes
* Fix a language server crash for platforms that don't support the IntelliSense cache (AutoPCH). [#10789](https://github.com/microsoft/vscode-cpptools/issues/10789)
* Fix markdown in comments when inline/block code is used. [#11322](https://github.com/microsoft/vscode-cpptools/issues/11322)
* Fix Find All References and Call Hierarchy for C files when the cursor is at the end of a symbol. [#11338](https://github.com/microsoft/vscode-cpptools/issues/11338)
* Fix usage of the `/Zc:alignedNew-` MSVC compiler option. [#11350](https://github.com/microsoft/vscode-cpptools/issues/11350)
## Version 1.17.4: August 21, 2023
### Bug Fixes
* Fix crash recovery for the main extension process. [#11335](https://github.com/microsoft/vscode-cpptools/issues/11335)
* Fix an IntelliSense process crash when certain error messages occur with a language pack enabled. [#11336](https://github.com/microsoft/vscode-cpptools/issues/11336)
## Version 1.17.3: August 16, 2023
### Bug Fix
* Fix a regression with attaching the debugger to processes on Linux and macOS. [#11328](https://github.com/microsoft/vscode-cpptools/issues/11328)
## Version 1.17.2: August 14, 2023
### Enhancements
* Enable a subset of markdown to render in hover by default and a `C_Cpp.markdownInComments` setting. [#6020](https://github.com/microsoft/vscode-cpptools/issues/6020), [#10461](https://github.com/microsoft/vscode-cpptools/issues/10461)
* Add support for gcc 13 features. [#11038](https://github.com/microsoft/vscode-cpptools/issues/11038)
* Add default compiler detection of additional compilers in MSYS environments. [#11211](https://github.com/microsoft/vscode-cpptools/issues/11211)
* Use musl for building Linux binaries of the extension.
* Add support for additional compiler wrappers: gomacc, distcc, buildcache, and icecc.
### Bug Fixes
* Fix a couple bugs with documentation comments. [#5241](https://github.com/microsoft/vscode-cpptools/issues/5241)
* Added `__float128` support in gcc IntelliSense mode. [#9558](https://github.com/microsoft/vscode-cpptools/issues/9558)
* Fix an issue where the debugger would get stuck while using cl.exe options. [#10231](https://github.com/microsoft/vscode-cpptools/issues/10231)
* Fix C/C++ commands showing in the Command Palette with non-C/C++ files. [#10421](https://github.com/microsoft/vscode-cpptools/issues/10421)
* Fix the 'Select IntelliSense Configuration' command to also update an existing `compilerPath` in c_cpp_properties.json. [#10808](https://github.com/microsoft/vscode-cpptools/issues/10808)
* Update clang-format (and clang-tidy) to 16.0.6 to fix a bug. [#11027](https://github.com/microsoft/vscode-cpptools/issues/11027)
* Fix `#include` completion leaving an extra `>`. [#11042](https://github.com/microsoft/vscode-cpptools/issues/11042)
* Fix an issue with matching of glob patterns containing path delimiters. [#11132](https://github.com/microsoft/vscode-cpptools/issues/11132)
* Fix Create Declaration/Definition via `Quick Fix…` from hover tooltip. [#11157](https://github.com/microsoft/vscode-cpptools/issues/11157)
* Fix issues with compiler querying of clang-cl. [#11207](https://github.com/microsoft/vscode-cpptools/issues/11207)
* Fix `files.encoding` setting on startup. [#11210](https://github.com/microsoft/vscode-cpptools/issues/11210)
* Fix a crash related to directories with a very large number of files. [#11226](https://github.com/microsoft/vscode-cpptools/issues/11226)
* Fix the parameter format of call hierarchy items. [#11247](https://github.com/microsoft/vscode-cpptools/issues/11247)
* Remove the vcpkg code action from the missing includes code action list. [#11252](https://github.com/microsoft/vscode-cpptools/issues/11252)
* Fix the file path info of call hierarchy items to display the relative path to a workspace folder. [#11254](https://github.com/microsoft/vscode-cpptools/issues/11254)
* Fix colorization for macro expansions in macro arguments. [#11256](https://github.com/microsoft/vscode-cpptools/issues/11256)
* Fix a crash for CUDA projects with '>' in the command line. [#11289](https://github.com/microsoft/vscode-cpptools/issues/11289)
* Increase the default standard for the 'Build and Debug Active File' feature to c++14 on macOS. [#11292](https://github.com/microsoft/vscode-cpptools/issues/11292)
* Fix an issue with the compiler currently configured for use with IntelliSense being listed last in the task creation popup. [PR #11299](https://github.com/microsoft/vscode-cpptools/pull/11299)
* Fix an IPCH issue on Linux due to the Position Independent Executable (PIE) option not being set since 1.17.0.
* Fix Rank > 1 Display Strings for Natvis. [PR MIEngine#1406](https://github.com/microsoft/MIEngine/pull/1406)
* Fix some crashes identified by crash telemetry.
* Fix an issue that could cause zombie processes on Linux/Mac.
* Address some issues with glibc version compatibility. Native binaries for cpptools and the bundled clang-tidy/clang-format are now built with musl and fully statically linked.
* Fix the wrong compiler being set as default when configured to use `compile_commands.json` and overriding the compiler used there with an explicit `compilerPath`.
### Thank You to the Contributors
* [@gareth-rees (Gareth Rees)](https://github.com/gareth-rees): Always use `--simple-values` in newer versions of GDB. [PR MIEngine#1400](https://github.com/microsoft/MIEngine/pull/1400)
* [@iAbadia (Iñaki)](https://github.com/iAbadia): Align use of 'sendInvalidate' request arguments. [PR MIEngine#1402](https://github.com/microsoft/MIEngine/pull/1402)
* [@intel-rganesh (Rakesh Ganesh)](https://github.com/intel-rganesh): Introduce `--thread` and `--frame options`. [PR MIEngine#1401](https://github.com/microsoft/MIEngine/pull/1401)
* [@michalmaka (Michał Mąka)](https://github.com/michalmaka): Add support for Toybox to the remote process picker. [PR #11175](https://github.com/microsoft/vscode-cpptools/pull/11175)
* [@sbobko (Sergey Bobko)](https://github.com/sbobko): Add 'sendInvalidate' request. [PR MIEngine#1367](https://github.com/microsoft/MIEngine/pull/1367)
* [@yne (Rémy F.)](https://github.com/yne): Add wildcard support for `includePath`. [PR #10388](https://github.com/microsoft/vscode-cpptools/pull/10388)
## Version 1.16.3: June 23, 2023
### Bug Fix
* Fix "cout is ambiguous" error. [#11122](https://github.com/microsoft/vscode-cpptools/issues/11122)
## 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)
@@ -8,9 +71,15 @@
### 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)
### 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)
@@ -21,6 +90,14 @@
* 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.
@@ -587,7 +664,7 @@
* Add auto-detection of clang compilers on Windows (and different versions of cl.exe). [#6718](https://github.com/microsoft/vscode-cpptools/issues/6718)
* Stop adding .cu files to `files.associations` (switch to using setTextDocumentLanguage). [#7359](https://github.com/microsoft/vscode-cpptools/issues/7359)
* Add "Symbol Options" for CppVsdbg to configure symbol settings [PR #7680](https://github.com/microsoft/vscode-cpptools/pull/7680)
* Update CppVsdbg to use newer CppEE and msdia.
* Update CppVsdbg to use newer CppEE and msdia.
### Bug Fixes
* Fix switch header/source not checking `files.exclude`. [#4429](https://github.com/microsoft/vscode-cpptools/issues/4429)
@@ -633,7 +710,7 @@
* 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)
* [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)
* 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)
* Add support for loading Concord extensions to the cppvsdbg debug adapter (see [documentation](https://github.com/microsoft/ConcordExtensibilitySamples/wiki/Support-for-VS-Code-cppvsdbg-Scenarios) for more information)
@@ -866,7 +943,7 @@
* YuTengjing (@tjx666) [PR #6344](https://github.com/microsoft/vscode-cpptools/pull/6344)
* Enable support for specifying a compiler by only the filename if it's in the environment path. [#6179](https://github.com/microsoft/vscode-cpptools/issues/6179)
* Restart the IntelliSense process if its memory usage exceeds the `C_Cpp.intelliSenseMemoryLimit` setting. [#6230](https://github.com/microsoft/vscode-cpptools/issues/6230)
* [cppdbg] Stepping out of a function will display '$ReturnValue'.
* [cppdbg] Stepping out of a function will display '$ReturnValue'.
* @Trass3r [PR MIEngine#1036](https://github.com/microsoft/MIEngine/pull/1036)
* [cppdbg] Support composite expressions in natvis ArrayItems
* @Trass3r [PR MIEngine#1044](https://github.com/microsoft/MIEngine/pull/1044)
@@ -1247,7 +1324,7 @@
* Add a code action for resolving missing includes via the `vcpkg` dependency manager. [PR #3791](https://github.com/microsoft/vscode-cpptools/pull/3791)
### Enhancements
* Added support for compile commands:
* Added support for compile commands:
* `-iquote`. [#2088](https://github.com/microsoft/vscode-cpptools/issues/2088)
* `-imacros`. [#2417](https://github.com/microsoft/vscode-cpptools/issues/2417)
* `-idirafter`(`--include-directory-after` & `--include-directory-after=`). [#3713](https://github.com/microsoft/vscode-cpptools/issues/3713)
@@ -2024,4 +2101,4 @@
## Version 0.5.0: April 14, 2016
* Usability and correctness bug fixes.
* Simplify installation experience.
* Usability and correctness bug fixes.
* Usability and correctness bug fixes.
+301 -316
View File
@@ -336,7 +336,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------
anymatch 3.1.2 - ISC
anymatch 3.1.3 - ISC
https://github.com/micromatch/anymatch
Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com)
@@ -417,7 +417,7 @@ the licensed code:
---------------------------------------------------------
glob 7.1.6 - ISC
glob 7.2.3 - ISC
https://github.com/isaacs/node-glob#readme
Copyright (c) Isaac Z. Schlueter and Contributors
@@ -628,6 +628,32 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
minimatch 5.1.6 - ISC
https://github.com/isaacs/minimatch#readme
Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors
The ISC License
Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@@ -710,7 +736,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---------------------------------------------------------
semver 5.7.1 - ISC
semver 5.7.2 - ISC
https://github.com/npm/node-semver#readme
Copyright Isaac Z.
@@ -738,7 +764,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---------------------------------------------------------
semver 7.3.7 - ISC
semver 7.5.4 - ISC
https://github.com/npm/node-semver#readme
Copyright Isaac Z. Schlueter
@@ -895,7 +921,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---------------------------------------------------------
@microsoft/1ds-core-js 3.2.3 - MIT
@microsoft/1ds-core-js 3.2.12 - MIT
https://github.com/microsoft/ApplicationInsights-JS#readme
copyright Microsoft 2018
@@ -903,11 +929,10 @@ copyright Microsoft 2019
Copyright (c) Microsoft Corporation
copyright Microsoft 2019 Simplified
Copyright (c) Microsoft and contributors
copyright Microsoft 2018 import AppInsightsCore as InternalCore
Copyright (c) Microsoft Corporation.
The MIT License (MIT)
MIT License
Copyright (c) Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -919,7 +944,7 @@ furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
@@ -931,7 +956,7 @@ SOFTWARE.
---------------------------------------------------------
@microsoft/1ds-post-js 3.2.3 - MIT
@microsoft/1ds-post-js 3.2.12 - MIT
https://github.com/microsoft/ApplicationInsights-JS#readme
copyright Microsoft 2018
@@ -940,12 +965,11 @@ copyright Microsoft 2018-2020
copyright Microsoft 2022 Simple
Copyright (c) Microsoft Corporation
Copyright (c) Microsoft and contributors
copyright Microsoft 2018-2020 import IExtendedAppInsightsCore, SendRequestReason, EventSendType
copyright Microsoft 2018-2020 import IPerfManagerProvider, IValueSanitizer, FieldValueSanitizerType, FieldValueSanitizerFunc, SendRequestReason, EventSendType
copyright Microsoft 2018-2020 import EventSendType, FieldValueSanitizerFunc, FieldValueSanitizerType, IPerfManagerProvider, IValueSanitizer, SendRequestReason
Copyright (c) Microsoft Corporation.
The MIT License (MIT)
MIT License
Copyright (c) Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -957,7 +981,7 @@ furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
@@ -969,134 +993,100 @@ SOFTWARE.
---------------------------------------------------------
@microsoft/applicationinsights-core-js 2.8.4 - MIT
@microsoft/applicationinsights-core-js 2.8.14 - MIT
https://github.com/microsoft/ApplicationInsights-JS#readme
Copyright (c) Microsoft Corporation
Copyright (c) Microsoft and contributors
MIT License
The MIT License (MIT)
Copyright (c) Microsoft Corporation. All rights reserved.
Copyright (c) Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@microsoft/applicationinsights-shims 2.0.1 - MIT
@microsoft/applicationinsights-shims 2.0.2 - MIT
https://github.com/microsoft/ApplicationInsights-JS/tree/master/tools/shims
Copyright (c) Microsoft Corporation.
Copyright (c) Microsoft and contributors.
Copyright (c) Microsoft Corporation
Copyright (c) Microsoft and contributors
MIT License
The MIT License (MIT)
Copyright (c) Microsoft Corporation. All rights reserved.
Copyright (c) Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@microsoft/dynamicproto-js 1.1.6 - MIT
@microsoft/dynamicproto-js 1.1.9 - MIT
https://github.com/microsoft/DynamicProto-JS#readme
(c) James Halliday
Copyright (c) Microsoft Corporation
Copyright (c) 2012 Maximilian Antoni
Copyright (c) 2013 Maximilian Antoni
Copyright (c) 2020 Oliver Nightingale
Copyright (c) 2020 Oliver Nightingale A
Copyright (c) 2020 Oliver Nightingale An
Copyright (c) Microsoft and contributors
Copyright (c) 2010-2013 Christian Johansen
Copyright (c) 2010-2014 Christian Johansen
Copyright (c) 2011 Sven Fuchs, Christian Johansen
Copyright Joyent, Inc. and other Node contributors
Copyright jQuery Foundation and other contributors
Copyright 2013 jQuery Foundation, Inc. and other contributors
Copyright (c) 2010-2014, Christian Johansen, [email protected]
Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
Copyright 2006 Google Inc. https://code.google.com/p/google-diff-match-patch
MIT License
Copyright (c) Microsoft Corporation.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE
---------------------------------------------------------
---------------------------------------------------------
@types/lodash 4.14.192 - MIT
https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash
The MIT License (MIT)
Copyright (c) Microsoft Corporation
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Copyright (c) <year> <copyright holders>
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
@@ -1132,6 +1122,26 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@xmldom/xmldom 0.8.8 - MIT
https://github.com/xmldom/xmldom
Copyright 2012 - 2017 jindw <[email protected]> and other contributors
Copyright 2019 - present Christopher J. Brody and other contributors
Copyright 2019 - present Christopher J. Brody and other contributors, as listed in: https://github.com/xmldom/xmldom/graphs/contributors
Copyright 2012 - 2017 @jindw <[email protected]> and other contributors, as listed in: https://github.com/jindw/xmldom/graphs/contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@@ -1167,7 +1177,7 @@ THE SOFTWARE.
---------------------------------------------------------
axios 0.22.0 - MIT
axios 0.26.1 - MIT
https://axios-http.com/
Copyright (c) 2014-present Matt Zabriskie
@@ -1197,7 +1207,7 @@ THE SOFTWARE.
---------------------------------------------------------
balanced-match 1.0.0 - MIT
balanced-match 1.0.2 - MIT
https://github.com/juliangruber/balanced-match
Copyright (c) 2013 Julian Gruber <[email protected]>
@@ -1344,6 +1354,38 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
brace-expansion 2.0.1 - MIT
https://github.com/juliangruber/brace-expansion
Copyright (c) 2013 Julian Gruber <[email protected]>
MIT License
Copyright (c) 2013 Julian Gruber <[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@@ -1377,36 +1419,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
buffer-crc32 0.2.13 - MIT
https://github.com/brianloveswords/buffer-crc32
Copyright (c) 2013 Brian J. Brennan
The MIT License
Copyright (c) 2013 Brian J. Brennan
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@@ -1477,10 +1489,10 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
comment-json 4.1.1 - MIT
comment-json 4.2.3 - MIT
https://github.com/kaelzhang/node-comment-json#readme
Copyright (c) 2013
Copyright (c) 2013 kaelzhang
Copyright (c) 2013 kaelzhang <>, contributors
http://kael.me/
@@ -1537,7 +1549,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
core-util-is 1.0.2 - MIT
core-util-is 1.0.3 - MIT
https://github.com/isaacs/core-util-is#readme
Copyright Joyent, Inc. and other Node contributors
@@ -1635,38 +1647,6 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
fd-slicer 1.1.0 - MIT
https://github.com/andrewrk/node-fd-slicer#readme
Copyright (c) 2014 Andrew Kelley
Copyright (c) 2014 Andrew Kelley
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@@ -1704,7 +1684,7 @@ THE SOFTWARE.
---------------------------------------------------------
follow-redirects 1.14.8 - MIT
follow-redirects 1.15.2 - MIT
https://github.com/follow-redirects/follow-redirects
Copyright 2014-present Olivier Lalonde <[email protected]> , James Talmage <[email protected]> , Ruben Verborgh
@@ -1841,7 +1821,7 @@ THE SOFTWARE.
---------------------------------------------------------
is-glob 4.0.1 - MIT
is-glob 4.0.3 - MIT
https://github.com/micromatch/is-glob
Copyright (c) 2014-2017, Jon Schlinkert
@@ -1907,9 +1887,11 @@ THE SOFTWARE.
---------------------------------------------------------
json5 1.0.2 - MIT
json5 2.2.3 - MIT
http://json5.org/
(c) 2019 Denis Pushkarev
copyright (c) 2019 Denis Pushkarev
Copyright (c) 2012-2018 Aseem Kishore, and others
MIT License
@@ -1972,67 +1954,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
lodash 4.17.21 - MIT
https://lodash.com/
Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/lodash/lodash
The following license applies to all parts of this software except as
documented below:
====
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
====
Copyright and related rights for sample code are waived via CC0. Sample
code is defined as all source code displayed within the prose of the
documentation.
CC0: http://creativecommons.org/publicdomain/zero/1.0/
====
Files located in the node_modules and vendor directories are externally
maintained libraries used by this software which have their own
licenses; we recommend you read them, as their terms may differ from the
terms above.
---------------------------------------------------------
---------------------------------------------------------
minimist 1.2.7 - MIT
minimist 1.2.8 - MIT
https://github.com/minimistjs/minimist
@@ -2060,7 +1982,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
mkdirp 0.5.5 - MIT
mkdirp 0.5.6 - MIT
https://github.com/substack/node-mkdirp#readme
Copyright 2010 James Halliday ([email protected])
@@ -2088,6 +2010,37 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
nanoid 3.3.6 - MIT
https://github.com/ai/nanoid#readme
Copyright 2017 Andrey Sitnik <[email protected]>
The MIT License (MIT)
Copyright 2017 Andrey Sitnik <[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@@ -2118,6 +2071,63 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
node-stream-zip 1.15.0 - MIT
https://github.com/antelle/node-stream-zip
Copyright (c) 2021 Antelle https://github.com/antelle
(c) 2020 Antelle https://github.com/antelle/node-stream-zip/blob/master/LICENSE
Copyright (c) 2012 Another-D-Mention Software and other contributors, http://www.another-d-mention.ro
Portions copyright https://github.com/cthackers/adm-zip https://raw.githubusercontent.com/cthackers/adm-zip/master/LICENSE
Copyright (c) 2021 Antelle https://github.com/antelle
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
== dependency license: adm-zip ==
Copyright (c) 2012 Another-D-Mention Software and other contributors,
http://www.another-d-mention.ro/
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@@ -2188,45 +2198,11 @@ THE SOFTWARE.
---------------------------------------------------------
pend 1.2.0 - MIT
Copyright (c) 2014 Andrew Kelley
The MIT License (Expat)
Copyright (c) 2014 Andrew Kelley
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
picomatch 2.2.2 - MIT
picomatch 2.3.1 - MIT
https://github.com/micromatch/picomatch
Copyright (c) 2017-present, Jon Schlinkert.
Copyright (c) 2017-present, Jon Schlinkert (https://github.com/jonschlinkert).
Copyright (c) 2017-present, Jon Schlinkert
Copyright (c) 2017-present, Jon Schlinkert (https://github.com/jonschlinkert)
The MIT License (MIT)
@@ -2255,7 +2231,7 @@ THE SOFTWARE.
---------------------------------------------------------
plist 3.0.5 - MIT
plist 3.1.0 - MIT
https://github.com/TooTallNate/node-plist#readme
Copyright (c) 2010-2017 Nathan Rajlich <[email protected]>
@@ -2387,8 +2363,8 @@ THE SOFTWARE.
---------------------------------------------------------
shell-quote 1.7.3 - MIT
https://github.com/substack/node-shell-quote
shell-quote 1.8.1 - MIT
https://github.com/ljharb/shell-quote
Copyright (c) 2013 James Halliday ([email protected])
@@ -2421,7 +2397,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
ssh-config 4.1.6 - MIT
ssh-config 4.2.1 - MIT
https://github.com/cyjake/ssh-config#readme
Copyright (c) 2017 Chen Yangjian
@@ -2542,7 +2518,7 @@ THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
---------------------------------------------------------
vscode-jsonrpc 8.1.0-next.5 - MIT
vscode-jsonrpc 8.1.0 - MIT
https://github.com/Microsoft/vscode-languageserver-node#readme
Copyright (c) Microsoft Corporation
@@ -2564,7 +2540,7 @@ THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
---------------------------------------------------------
vscode-languageclient 8.1.0-next.4 - MIT
vscode-languageclient 8.1.0 - MIT
https://github.com/Microsoft/vscode-languageserver-node#readme
Copyright (c) Microsoft Corporation
@@ -2586,7 +2562,7 @@ THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
---------------------------------------------------------
vscode-languageserver-protocol 3.17.3-next.4 - MIT
vscode-languageserver-protocol 3.17.3 - MIT
https://github.com/Microsoft/vscode-languageserver-node#readme
Copyright (c) Microsoft Corporation
@@ -2609,7 +2585,7 @@ THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
---------------------------------------------------------
vscode-languageserver-types 3.17.3-next.1 - MIT
vscode-languageserver-types 3.17.3 - MIT
https://github.com/Microsoft/vscode-languageserver-node#readme
Copyright (c) Microsoft Corporation
@@ -2631,10 +2607,10 @@ THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
---------------------------------------------------------
vscode-nls 5.0.0 - MIT
vscode-nls 5.2.0 - MIT
https://github.com/Microsoft/vscode-nls#readme
Copyright (c) Microsoft Corporation.
Copyright (c) Microsoft Corporation
The MIT License (MIT)
@@ -2659,7 +2635,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
---------------------------------------------------------
xmlbuilder 9.0.7 - MIT
xmlbuilder 15.1.1 - MIT
http://github.com/oozcitak/xmlbuilder-js
Copyright (c) 2013 Ozgur Ozcitak
@@ -2687,38 +2663,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
yauzl 2.10.0 - MIT
https://github.com/thejoshwolfe/yauzl
Copyright (c) 2014 Josh Wolfe
The MIT License (MIT)
Copyright (c) 2014 Josh Wolfe
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---------------------------------------------------------
-------------------------------------------------------------------
@@ -2741,6 +2685,7 @@ The notices below are from non-npm sources.
- Mono (https://github.com/mono/mono)
- SQLite (https://www.sqlite.org/)
Includes:functions (from fossil) (https://fossil-scm.org)
- SoftFloat (http://www.jhauser.us/arithmetic/SoftFloat.html)
%% ANTLR NOTICES AND INFORMATION BEGIN HERE
=========================================
@@ -3683,3 +3628,43 @@ as representing official policies, either expressed or implied, of anybody
else.
=========================================
END OF SQLite NOTICES AND INFORMATION
%% SoftFloat NOTICES AND INFORMATION BEGIN HERE
=========================================
License for Berkeley SoftFloat Release 3e
John R. Hauser
2018 January 20
The following applies to the whole of SoftFloat Release 3e as well as to
each source file individually.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions, and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================
END OF SoftFloat NOTICES AND INFORMATION
@@ -0,0 +1,20 @@
{
// common query file for gcc-style compilers
"analysis": {
/*
"query": {
"-E -dM -v ${tmp:c}": {
"macro": "^#define (\\S*) ?(.*)?$", // match defines in output
"includePaths": "#include <...> search starts here:\n((?: [^\n]*\n)*)*", // match the lines for include folders
"target": "^Target: (.*)", // get the target
"cStandard": "^#define __STDC_VERSION__\\s*(.*)",
"cppStandard": "^#define __cplusplus\\s*(.*)",
},
"--version": {
"version": "^clang version (\\d+[.]\\d+[.]\\d+)(?:-\\S*)?$"
}
}
}*/
// how do we specify args to trim off if the discovery is handled/initiated by someone else
}
}
@@ -0,0 +1,86 @@
{
"intellisense": {
"hostArchitecture": "${host:arch}",
},
"conditions": {
// example using a conditional to set the target platform based on the host platform
"${host:os} === 'linux'": { "intellisense.platform": "linux" },
"${host:os} === 'win32'": { "intellisense.platform": "windows" },
"${host:os} === 'darwin'": { "intellisense.platform": "macos" }
},
"analysis": {
// there are a lot of things that can be inferred from the macros that are defined by the compiler
// if they are specified, let's use them.
"expressions: PRIORITY=90 # things inferred from macros": {
/* if this is truthy */ /* then apply this to the intellisense configuration */
"${macro:_X86_}": { "architecture": "x86", "bits" : 32 },
"${macro:_x86_64_}": { "architecture": "x64", "bits" : 64 },
"${macro:__aarch64__}": { "architecture": "arm64", "bits" : 64 },
"${macro:__arm__}": { "architecture": "arm", "bits" : 32 },
"${macro:__AVR__}": { "architecture": "avr", "bits": 16 },
"${macro:winnt}": { "platform": "windows" },
"${macro:_WIN32}": { "platform": "windows" },
"${macro:_WIN64}": { "platform": "windows", "bits": 64, "architecture": "x64" },
"${macro:__linux__}": { "platform": "linux" },
"${macro:__APPLE__}": { "platform": "macos" },
"${macro:__INTPTR_WIDTH__}": { "bits": "${macro:.__INTPTR_WIDTH__}" },
"!${sizes.char} && ${macro:__CHAR_SIZE__}" : { "sizes.char": "${macro:__CHAR_SIZE__}" },
"!${sizes.short} && ${macro:__SIZEOF_SHORT__}": { "sizes.short": "${macro:__SIZEOF_SHORT__}"},
"!${sizes.short} && ${macro:__SHORT_SIZE__}": { "sizes.short": "${macro:__SHORT_SIZE__}"},
"!${sizes.int} && ${macro:__SIZEOF_INT__}": { "sizes.int": "${macro:__SIZEOF_INT__}"},
"!${sizes.int} && ${macro:__INT_SIZE__}": { "sizes.int": "${macro:__INT_SIZE__}"},
"!${sizes.long} && ${macro:__SIZEOF_LONG__}" : { "sizes.long": "${macro:__SIZEOF_LONG__}" },
"!${sizes.long} && ${macro:__LONG_SIZE__}" : { "sizes.long": "${macro:__LONG_SIZE__}" },
"!${sizes.longDouble} && ${macro:__SIZEOF_LONG_DOUBLE__}" : { "sizes.longDouble": "${macro:__SIZEOF_LONG_DOUBLE__}" },
"!${sizes.longDouble} && ${macro:__LONG_DOUBLE_SIZE__}" : { "sizes.longDouble": "${macro:__LONG_DOUBLE_SIZE__}" },
"!${sizes.float} && ${macro:__SIZEOF_FLOAT__}": { "sizes.float": "${macro:__SIZEOF_FLOAT__}"},
"!${sizes.float} && ${macro:__FLOAT_SIZE__}": { "sizes.float": "${macro:__FLOAT_SIZE__}"},
"!${sizes.double} && ${macro:__SIZEOF_DOUBLE__}": { "sizes.double": "${macro:__SIZEOF_DOUBLE__}"},
"!${sizes.double} && ${macro:__DOUBLE_SIZE__}": { "sizes.double": "${macro:__DOUBLE_SIZE__}"},
"!${sizes.pointer} && ${macro:__SIZEOF_POINTER__}": { "sizes.pointer": "${macro:__SIZEOF_POINTER__}"},
"!${sizes.pointer} && ${macro:__DEF_PTR_SIZE__}": { "sizes.pointer": "${macro:__DEF_PTR_SIZE__}"},
"!${sizes.digitsInLongMantissa} && ${macro:__LDBL_MANT_DIG__}": { "sizes.digitsInLongMantissa": "${macro:__LDBL_MANT_DIG__}"},
"!${types.wcharT} && ${macro:__WCHAR_TYPE__}": { "types.wcharT":"${macro:__WCHAR_TYPE__}"},
"!${types.wcharT} && ${macro:__WCHAR_T_TYPE__}": { "types.wcharT":"${macro:__WCHAR_T_TYPE__}"},
"!${types.sizeT} && ${macro:__SIZE_TYPE__}": { "types.sizeT":"${macro:__SIZE_TYPE__}"},
"!${types.sizeT} && ${macro:__SIZE_T_TYPE__}": { "types.sizeT":"${macro:__SIZE_T_TYPE__}"},
"!${types.ptrDiffT} && ${macro:__PTRDIFF_TYPE__}": { "types.ptrDiffT":"${macro:__PTRDIFF_TYPE__}"},
"!${types.ptrDiffT} && ${macro:__PTRDIFF_T_TYPE__}": { "types.ptrDiffT":"${macro:__PTRDIFF_T_TYPE__}"},
},
// when setting priority, it forces it to be higher or lower depending on the value.
// higher numbers mean that the block is applied later, lower numbers mean that the block is applied earlier
// the default number is the order in which it is loaded
"expressions: PRIORITY=100": {
"!${sizes.long}" : { "sizes.long": "${platform} === 'windows' ? 4 : ${bits} === 64 ? 8: 4" },
"!${sizes.longDouble}": { "sizes.longDouble": "${platform} === 'windows' || ${architecture} === 'arm' || (${architecture} === 'arm64' && ${platform} === 'macos' ) ? 8 : 16" },
"!${sizes.char}": { "sizes.char": 1},
"!${sizes.short}": { "sizes.short": 2},
"!${sizes.int}": { "sizes.int": 4},
"!${sizes.float}": { "sizes.float": 4},
"!${sizes.double}": { "sizes.double": 8},
"!${sizes.pointer}": { "sizes.pointer": "${bits} === 64 ? 8: 4" },
"!${sizes.digitsInLongMantissa}": { "sizes.digitsInLongMantissa": "${platform} === 'windows' || ${architecture} === 'arm' || (${architecture} === 'arm64' && ${platform} === 'macos' ) ? 53 : 64" },
"!${sizes.alignmentOfLongDouble}": { "sizes.alignmentOfLongDouble": "${platform} === 'windows' || ${architecture} === 'arm' || (${architecture} === 'arm64' && ${platform} === 'macos' ) ? 8 : 16" },
"!${sizes.defaultNewAlignment}": { "sizes.defaultNewAlignment": "${bits} === 64 ? 16 : 8" },
}
}
}
+121
View File
@@ -0,0 +1,121 @@
{
"analysis": { // affects
"queries: ONCE": { // we never need to do this more than once
// gets the version of the compiler by executing it with --version
"-dumpversion": {
"(?<version>.*)" : {"version": "${version}"}, // parse the version from the output
},
},
"tasks: ": [
// tasks are one-off, built-in functionality that can be executed during analysis
],
"commandLineArguments: C #" :{
"-std=(?<std>.+)" : { "standard":"${std}" },
"-ansi" : { "standard":"c90" },
},
"commandLineArguments: CPP # " :{
"-std=(?<std>.+)" : { "standard":"${std}" },
},
"commandLineArguments: PRIORITY=-10 # drop these (maybe we don't even care to do this?...)": {
"-o;.+": { }, // output file
"-c;.+": { }, // input file
"-param;${keyEqualsValue}": { }, // compiler parameter
"-aux-info;.+": { }, // aux info
"-MF;.+": { }, // output file for dependencies
"-MT;.+": { }, // target for dependencies
"-MQ;.+": { }, // target for dependencies
"-T;.+": { }, // link script
"-Xlinker;.+": { }, // pass to linker
"-Wl,.+": { }, // pass to linker
"-z;.+": { }, // pass to linker
"-Xpreprocessor;.+": { }, // pass to preprocessor
"-Xassembler;.+": { }, // pass to assembler
"-Wa,.+": { }, // pass to assembler,
"-fmacro-prefix-map=.*": { }, // macro prefix map
"-fdebug-prefix-map=.*": { }, // debug prefix map
},
"commandLineArguments: # " :{
"-B(?<prefix>.+)": { "queryArgument": "-B${prefix}" }, // binary prefix
"-fms-extensions" : { "parserArgument": "--ms_extensions" },
"-fno-ms-extensions" : { "remove:parserArgument": "--ms_extensions" },
"-m(?<arch>.+)": { "queryArgument" : "-m${arch}" },
"-I-": { "splitDir": true},
"-I(?<path>.+)": { "path.include": "${path}", "queryArgument": "-I${path}" },
"-I;(?<path>.+)": { "path.include": "${path}", "queryArgument": "-I${path}"},
"-isystem;(?<path>.+)": { "path.systemInclude": "${path}", "queryArgument": ["-isystem","${path}"] },
"-idirafter;(?<path>.+)": { "path.afterInclude": "${path}", "queryArgument": ["-idirafter","${path}"] },
"-iprefix;(?<path>.+)": { "prefixPath": "${path}", "queryArgument": ["-iprefix","${path}"] },
"-iwithprefix;(?<path>.+)": { "path.afterInclude": "${prefixPath}${path}", "queryArgument": ["-iwithprefix","${path}"] },
"-iwithprefixbefore;(?<path>.+)": { "path.include": "${prefixPath}${path}", "queryArgument": ["-iwithprefixbefore","${path}"] },
"-iquote;(?<path>.+)": { "path.quoteInclude": "${path}", "queryArgument": ["-iquote","${path}"] },
"-isysroot;(?<path>.+)": { "sysroot": "${path}" },
"-imultilib;(?<path>.+)": { "path.multilibpaths": "${path}" },
"-F(?<path>.+)": { "path.framework": "${path}" },
"-D${keyEqualsValue}" : { "macro": { "${key}": "${value}" } , "queryArgument": ["-D", "${key}=${value}"]},
"-D${keyNoValue}" : { "macro": { "${key}": 1 }, "queryArgument": ["-D", "${key}"]},
"-D;${keyEqualsValue}" : { "macro": { "${key}": "${value}" }, "queryArgument": ["-D", "${key}=${value}"]},
"-D;${keyNoValue}" : { "macro": { "${key}": 1 }, "queryArgument": ["-D", "${key}"]},
"-U${keyNoValue}" : { "macro": { "${key}": null }, "queryArgument": ["-U", "${key}"]},
"-U$;{keyNoValue}" : { "macro": { "${key}": null}, "queryArgument": ["-U", "${key}"]},
"-include;(?<path>.+)": { "path.forcedIncludeFile": "${path}" }, // forced include
"-fexperimental-library": { "macro": {"__has_feature(experimental_library)": 1 }},
"-undef": { "queryArgument": "-undef" },
"-x;(?<language>.+)": { "language": "${language}" }
},
"expressions: # environment variables" : {
"${env:CPATH}": { "path.include": "${env:CPATH}" },
"${language}=== 'c' && ${env:C_INCLUDE_PATH}": { "path.systemInclude": "${env:C_INCLUDE_PATH}" },
"${language}=== 'cpp' && ${env:CPLUS_INCLUDE_PATH}":{ "path.systemInclude": "${env:CPLUS_INCLUDE_PATH}" },
"${language}=== 'objc' && ${env:OBJC_INCLUDE_PATH}":{ "path.systemInclude": "${env:OBJC_INCLUDE_PATH}" },
},
// before the sizes are set, we need to query the compiler with the right args to get the macros again
// (so we can let things like -m32 or -m64 or -mthumb or other arch changes affect the macros )
"queries:":{
// ==== COMMAND LINE IS THE KEY ====
"-E -dM -v ${queryArgument} ${tmp:c}": {
/* regex on output */ /* apply this to the intellisense config*/
"^#define (?<key>\\S*) ?(?<value>.*)?$": { "macro":{ "${key}": "${value}" } },
"#include <...> search starts here:\n(?<path>(?: [^\n]*\n)*)*": { "path.builtInInclude": "${path}" },
"#include \"...\" search starts here:\n(?<path>(?: [^\n]*\n)*)*": { "path.quoteInclude": "${path}" },
"^COLLECT_GCC_OPTIONS=(?<opts>.*)": { "gcc.options" : "${opts}" },
"^Target: (?<target>.*)": { "gcc.target": "${target}" },
"^COMPILER_PATH=(?<cp>.*)": { "gcc.compiler.paths": "${cp}" },
"^LIBRARY_PATH=(?<lp>.*)": { "gcc.library.paths": "${lp}" },
"^#define __STDC_VERSION__\\s*(?<ver>.*)": { "cStandard": "${ver}" },
"^#define __cplusplus\\s*(?<ver>.*)": { "cppStandard": "${ver}" },
}
},
"expressions: ONCE # get parts of gcc version" : {
"${macro:__GNUC__}" : {
"MAJOR": "${macro:__GNUC__} >= 10 ? ${macro:__GNUC__} : '0'+${macro:__GNUC__}",
"MINOR": "${macro:__GNUC_MINOR__} >= 10 ? ${macro:__GNUC_MINOR__} : '0'+${macro:__GNUC_MINOR__}",
"PATCH": "${macro:__GNUC_PATCHLEVEL__} >= 10 ? ${macro:__GNUC_PATCHLEVEL__} : '0'+${macro:__GNUC_PATCHLEVEL__}"
}
},
"expressions: ONCE # gnu_version" : {
"${macro:__GNUC__}" : {
"parserArgument": [ "--gcc", "--gnu_version=${MAJOR}${MINOR}${PATCH}" ]
}
},
}
// how do we specify args to trim off if the discovery is handled/initiated by someone else
}
+170
View File
@@ -0,0 +1,170 @@
{
"analysis": {
// analysis steps are applied in order
"tasks: # handle environment variables" : [
"inline-environment-variables", // takes the $env:CL and $env:_CL_ variables and adds them to the command line
"inline-response-file", // takes the @file response file and adds it to the command line
"consume-lib-path", // adds $env:LIB to the lib paths
"remove-linker-arguments", // removes linker arguments from the command line
],
"expressions: #environment variables": {
"${env:INCLUDE}": { "path.environmentInclude": "${env:INCLUDE}" },
},
"commandLineArguments: # detect target language": { // looks thru args to find things that set certain states (ie, /Tc, /Tp for language selection )
"${-/}T[cC]" : { "language": "c",},
"${-/}T[pP]" : { "language": "c++" },
},
"commandLineArguments: NO_CONSUME # telemetry check for CLR usage": {
// don"t consume the parameter
"${-/}clr.*" : {"telemetry:cliDetected": {"cliDetection": true} },
"${-/}ZW.*" : {"telemetry:cxDetected": {"cxDetection": true} }
},
"commandLineArguments: # process most args": {
"${-/}I(?<path>.+)" : { "path.include": "${path}" },
"${-/}I;(?<path>.+)" : { "path.include": "${path}" },
"${-/}FI(?<path>.+)" : { "path.forcedIncludeFile": "${path}" }, // should we be validating the path exists against system and user include folders? -- cl_compiler_info.cpp@191
"${-/}FI;(?<path>.+)" : { "path.forcedIncludeFile": "${path}" },
"-include;(?<path>.+)" : { "path.forcedIncludeFile": "${path}" }, // This support for passing "-include" to cl.exe can be removed in the future, when Unreal Engine is updated to no longer pass it to cl.exe.
"${-/}external:I(?<path>.+)" : { "path.externalInclude": "${path}" },
"${-/}external:I;(?<path>.+)" : { "path.externalInclude": "${path}" },
"${-/}D;${keyEqualsValue}" : { "macro": { "${key}": "${value}" } },
"${-/}D;${keyNoValue}" : { "macro": { "${key}": 1 } },
"${-/}D${keyEqualsValue}" : { "macro": { "${key}": "${value}" } },
"${-/}D${keyNoValue}" : { "macro": { "${key}": 1 } },
"${-/}Zl" : { "macro": { "_VC_NODEFAULTLIB": 1 } },
"${-/}Zp(?<alignment>1|2|4|8|16)" : { "parserArgument": [ "--pack_alignment", "${alignment}" ] },
"${-/}Zp(?<alignment>.+)": { "warning": "unknown pack alignment ${alignment}", "parserArgument": [ "--pack_alignment", 1 ] },
"${-/}fp:except": { "macro": { "_M_FP_EXCEPT": 1} },
"${-/}fp:except-": { "macro": { "_M_FP_EXCEPT": null} },
"${-/}fp:fast": { "macro": { "_M_FP_FAST": 1} },
"${-/}fp:precise": { "macro": { "_M_FP_PRECISE": 1} },
"${-/}fp:strict": { "macro": { "_M_FP_STRICT": 1, "_M_FP_EXCEPT":1} },
"${-/}GR": { "parserArgument": "--rtti" },
"${-/}GR-": { "parserArgument": "--no_rtti" },
"${-/}headerUnit;(?<hu>.+)": { "parserArgument": ["--ms_header_unit","${hu}"] },
"${-/}headerUnit(?<hu>.+)": { "parserArgument": ["--ms_header_unit","${hu}"] },
"${-/}ifcSearchDir;(?<md>.+)": { "parserArgument": ["--modules_directory","${md}"] },
"${-/}ifcSearchDir(?<md>.+)": { "parserArgument": ["--modules_directory","${md}"] },
"${-/}J": { "parserArgument": "--unsiged_chars" , "macro": { "_CHAR_UNSIGNED": 1 } },
"${-/}LD": { "macro": { "_MT":1 } },
"${-/}MT": { "macro": { "_MT":1 } },
"${-/}LDd": { "macro": { "_MT":1, "_DEBUG":1 } },
"${-/}MTd": { "macro": { "_MT":1, "_DEBUG":1 } },
"${-/}MD": { "macro": { "_MT":1, "_DLL":1 } },
"${-/}MDd": { "macro": { "_MT":1, "_DLL":1, "_DEBUG":1 } },
"${-/}openmp": { "macro": { "_OPENMP":"200203" } },
"${-/}openmp:experimental": { "macro": { "_OPENMP":"2019" } },
"${-/}openmp:llvm": { "macro": { "_OPENMP":"200203", "_OPENMP_LLVM_RUNTIME":1 } },
"${-/}permissive": { "parserArgument": "--ms_permissive" },
"${-/}permissive-": { "parserArgument": "--no_ms_permissive" },
"${-/}reference;(?<path>.+)": { "parserArgument": ["--ms_mod_file_map","${path}"] },
"${-/}reference(?<path>.+)": { "parserArgument": ["--ms_mod_file_map","${path}"] },
"${-/}showIncludes": { "parserArgument": "--trace_includes" },
"${-/}stdIfcDir;(?<path>.+)": { "parserArgument": ["--std_modules_directory","${path}"] },
"${-/}stdIfcDir(?<path>.+)": { "parserArgument": ["--std_modules_directory","${path}"] },
"${-/}volatile:iso": { "macro": { "_VOLATILE_ISO":1 } },
"${-/}Za": { "parserArgument": "--alternative_tokens" },
"${-/}Zc:__cplusplus": { "parserArgument": "--ms_cplusplus_std_value" },
"${-/}Zc:__cplusplus-": { "parserArgument": "--no_ms_cplusplus_std_value" },
"${-/}Zc:char8_t": { "parserArgument": "--char8_t" },
"${-/}Zc:char8_t-": { "parserArgument": "--no_char8_t" },
"${-/}Zc:forScope": { "parserArgument": "--new_for_init" },
"${-/}Zc:forScope-": { "parserArgument": "--old_for_init" },
"${-/}Zc:wchar_t": { "parserArgument": "--wchar_t_keyword" },
"${-/}Zc:wchar_t-": { "parserArgument": "--no_wchar_t_keyword" },
"${-/}Zc:auto-": { "parserArgument": "--no_auto_type" },
"${-/}Zc:trigraphs": { "parserArgument": "--trigraphs" },
"${-/}Zc:trigraphs-": { "parserArgument": "--no_trigraphs" },
"${-/}Zc:rvalueCast": { "parserArgument": "--ms_rvalue_cast" },
"${-/}Zc:rvalueCast-": { "parserArgument": "--no_ms_rvalue_cast" },
"${-/}Zc:strictStrings": { "parserArgument": "--no_deprecated_string_conv" },
"${-/}Zc:strictStrings-": { "parserArgument": "--deprecated_string_conv" },
"${-/}Zc:noexceptTypes": { "parserArgument": "--exc_spec_in_func_type" },
"${-/}Zc:noexceptTypes-": { "parserArgument": "--no_exc_spec_in_func_type" },
"${-/}Zc:alignedNew": { "parserArgument": "--overaligned_allocation" },
"${-/}Zc:alignedNew-": { "parserArgument": "--no_overaligned_allocation" },
"${-/}Zc:referenceBinding": { "parserArgument": "--no_nonconst_ref_anachronism" },
"${-/}Zc:referenceBinding-": { "parserArgument": "--nonconst_ref_anachronism" },
"${-/}Zc:ternary": { "parserArgument": "--ms_strict_ternary" },
"${-/}Zc:ternary-": { "parserArgument": "--no_ms_strict_ternary", "remove:parserArgument": "--ms_strict_ternary" },
"${-/}Zc:twoPhase": { "parserArgument": "--no_dep_name" },
},
"commandLineArguments:CPP": {
"${-/}await": { "parserArgument": "--ms_await" },
"${-/}experimental:module" : { "parserArgument": "--modules" },
"${-/}experimental:preprocessor" : { "parserArgument": "--ms_std_preprocessor" },
"${-/}Zc:preprocessor" : { "parserArgument": "--ms_std_preprocessor" },
"${-/}experimental:preprocessor-" : { "parserArgument": "--no_ms_std_preprocessor" },
"${-/}Zc:preprocessor-" : { "parserArgument": "--no_ms_std_preprocessor" },
"${-/}std:(?<std>.+)" : { "standard":"${std}" },
"${-/}kernel": { "macro": { "_KERNEL_MODE": 1 }, "parserArgument": ["--no_exceptions","no_rtti"] },
},
"commandLineArguments: # CPP-CLI ??? todo - come back to this (cl_compiler_info.cpp@485 to )": {
// *** This section would not apply to ARM complier? <#if !VSCODE_ARM> -- see cl_compiler_info.cpp@485 --
// *** which I think may be a mistake, since being applied to ARM64 as a host isn"t right, we"re talking about a target?
// cpp/cli
"${-/}clr:initialAppDomain": { "macro": { "_CPPUNWIND":1 }},
"${-/}clr:netcore": { "parserArgument": ["--cppcli_netcore","--no_using_framework_directory", "--cppcli"],"macro":{"D_CLR_NETCORE":1, "_MANAGED":1, "_M_CEE_":"001"} },
"${-/}clr:newSyntax": { "parserArgument": "--cppcli", "macro": {"_CPPUNWIND":1, "_M_CEE_PURE":"001", "_MANAGED":1, "_M_CEE_":"001" }},
"${-/}clr:noAssembly": { "parserArgument": "--cppcli", "macro": { "_MANAGED":1, "_M_CEE_":"001" }},
"${-/}clr:nostdlib": { "parserArgument": ["--no_using_framework_directory"] },
"${-/}clr:nostdimport": { "parserArgument": ["--no_stdlib"] },
"${-/}clr": { "parserArgument": "--cppcli", "macro": { "_MANAGED":1, "_M_CEE_":"001", "_CPPUNWIND":1, }},
"${-/}clr:pure": { "parserArgument": "--cppcli", "macro": { "_MANAGED":1, "_M_CEE_":"001", "_CPPUNWIND":1, }},
"${-/}clr:safe": { "parserArgument": "--cppcli", "macro": { "_MANAGED":1, "_M_CEE_":"001", "_CPPUNWIND":1, "_M_CEE_PURE":"001", "_M_CEE_SAFE":"001" }},
"${-/}zw": { "parserArgument": "--cppcx" },
"${-/}zw:nostdlib": { "parserArgument": "--cppcx"},
},
"commandLineArguments:C" : {
"${-/}kernel": { "macro": { "_KERNEL_MODE": 1 } },
"${-/}std:(?<std>.+)" : { "cStandard":"${std}" },
},
"query" : {
"-E /Zc:preprocessor ${queryArgument} /PD ${tmp.c}": {
"^#define (?<key>\\S*) ?(?<value>.*)?$": { "macro":{ "${key}": "${value}" } },
}
},
"expressions: PRIORITY=85" : {
"${bits} === 64" : {
"parserArgument": [
"-D_MSC_EXTENSIONS",
"--microsoft",
"--microsoft_bugs",
"--microsoft_version", "1935",
"--pack_alignment", "8",
"-D_CPPUNWIND=1",
"-D_MSC_VER=1935",
"-D_MSC_FULL_VER=193532215",
"-D_MSC_BUILD=0",
"-D_M_X64=100",
"-D_M_AMD64=100"
]
}
},
"task:post-process": [
// see cl_compiler_info.cpp@617 - process zw directories
"zwCommandLineSwitch",
"experimentalModuleNegative",
],
}
}
@@ -0,0 +1,18 @@
{
"name": "GNU C++ [ARM]",
"import": "common/gcc.json",
"discover": {
"binary": "arm-none-eabi-g++",
"locations": [ "c:/nxp/", "c:/st/" ],
"match": {
"^(?<ver>\\d+[.]\\d+[.]\\d+)(?:-\\S*)?$" : { "version": "${ver}" }
}
},
"intellisense": {
"compiler": "gcc",
"architecture": "arm",
"bits": 32,
"platform": "none"
}
}
@@ -0,0 +1,17 @@
{
"name": "GNU C [ARM]",
"import": "common/gcc.json",
"discover": {
"binary": "arm-none-eabi-gcc",
"locations": [ "c:/nxp/", "c:/st/" ],
"match": {
"^(?<ver>\\d+[.]\\d+[.]\\d+)(?:-\\S*)?$" : { "version": "${ver}" }
}
},
"intellisense": {
"compiler": "gcc",
"architecture": "arm",
"bits": 32,
"platform": "none"
}
}
@@ -0,0 +1,23 @@
{
"name": "GNU C++ [AVR/Arduino]",
"import": [
"common/gcc.json",
"common/defaults.json"
],
"discover": {
"binary": "avr-g++",
"locations": [ "${env:home}/appdata/local" ],
"match": {
"^(?<ver>\\d+[.]\\d+[.]\\d+)(?:-\\S*)?$" : { "version": "${ver}" }
}
},
"intellisense": {
"compiler": "gcc",
"architecture": "avr",
"platform": "none"
},
"conditions": {
"${host:os} === 'win32'": { "discover.locations": "${env:home}/appdata/local", }
}
}
@@ -0,0 +1,18 @@
{
"name": "Clang C++",
"import": [
"common/defaults.json",
"common/clang.json",
],
"discover": {
"binary": "clang++",
"match": {
"^clang (?<ver>\\d+[.]\\d+[.]\\d+)(?:-\\S*)?$": { "version": "${ver}" }
}
},
"intellisense": {
"compiler": "clang",
"architecture": "x64",
"bits": 64,
}
}
@@ -0,0 +1,18 @@
{
"name": "GNU C++ [x64]",
"import": [
"common/gcc.json",
"common/defaults.json"
],
"discover": {
"binary": "g++",
"match": {
"^(?<ver>\\d+[.]\\d+[.]\\d+)(?:-\\S*)?$" : { "version": "${ver}" }
}
},
"intellisense": {
"compiler": "gcc",
"architecture": "x64",
"bits": 64,
}
}
@@ -0,0 +1,18 @@
{
"name": "GNU C [x64]",
"import": [
"common/gcc.json",
"common/defaults.json"
],
"discover": {
"binary": "gcc",
"match": {
"^(?<ver>\\d+[.]\\d+[.]\\d+)(?:-\\S*)?$" : { "version": "${ver}" }
}
},
"intellisense": {
"compiler": "gcc",
"architecture": "x64",
"bits": 64,
}
}
@@ -0,0 +1,33 @@
{
"name": "IAR C/C++ [ARM]",
"import": [
"common/defaults.json"
],
"discover": {
"binary": "iccarm",
"match": {
"^(?<ver>\\d{1,2}[.]\\d+[.]\\d+[.]\\d+)(?:/\\S*)?$": { "version": "${ver}" }
},
"expression: FOLDER" : {
"${binary}/../../" : { "IARPath" : "${binary}/../../" }
}
},
"intellisense": {
"compiler": "iar", // this just gets us the 'base' that EDG will think it is
"architecture": "arm", // we can have a common file that remaps this to something else if needed
"bits": 32, // another hint for later.
"platform": "none", // bare-metal target. (can be remaped to windows/macos/linux if needed to make EDG happy)
"path.systemInclude": [ // we can't get the include path from the compiler, so we had to explicity state it
"${IARPath}inc/cpp" // include folder for c++ headers in IAR
]
},
"analysis": {
"queries": {
"${tmp.c} --c++ --predef_macros ${tmp.stdout} --output ${tmp.o}": {
"^#define (?<key>\\S*) ?(?<value>.*)?$" : { "macro": { "${key}": "${value}" } },
"^#define __STDC_VERSION__\\s*(?<ver>.*)": { "cStandard": "${ver}" },
"^#define __cplusplus\\s*(?<ver>.*)": { "cppStandard": "${ver}" }
}
}
}
}
@@ -0,0 +1,79 @@
{
"name": "Microsoft Visual C++",
"import": [
"common/msvc.json",
"common/defaults.json"
],
"discover": {
"binary": "cl",
// Add the default paths.include for the WindowsSDK
"expression: FOLDER, OPTIONAL": {
"${KitsRoot10}/Include/${SDKVer}/um" : { "path.builtInInclude": "${KitsRoot10}/Include/${SDKVer}/um" },
"${KitsRoot10}/Include/${SDKVer}/ucrt" : { "path.builtInInclude": "${KitsRoot10}/Include/${SDKVer}/ucrt" },
"${KitsRoot10}/Include/${SDKVer}/shared" : { "path.builtInInclude": "${KitsRoot10}/Include/${SDKVer}/shared" },
"${KitsRoot10}/Include/${SDKVer}/winrt" : { "path.builtInInclude": "${KitsRoot10}/Include/${SDKVer}/winrt" },
"${KitsRoot10}/Include/${SDKVer}/cppwinrt" : { "path.builtInInclude": "${KitsRoot10}/Include/${SDKVer}/cppwinrt" }
},
// get the compiler version from the binary itself
"match: # detect the compiler version from the binary": {
"^(?<ver>\\d+[.]\\d+[.]\\d+)[.].*$" : { "version": "${ver}" }
},
// get the host architecture based on the string we can find inside the binary
"match: ONEOF # detect the host architecture from the binary" : {
"\\\\amd64\\\\": { "hostArchitecture": "x64" ,"bits": 64, "architecture": "x64"},
"\\\\i386\\\\" : { "hostArchitecture": "x86" , "bits": 32, "architecture": "x86" },
"\\\\arm64\\\\": { "hostArchitecture": "arm64" , "bits": 64, "architecture": "arm64" },
"\\\\x86_amd64\\\\": { "hostArchitecture": "x86" ,"bits": 64, "architecture": "x64"},
"\\\\x86_arm64\\\\": { "hostArchitecture": "x86", "bits": 64, "architecture": "arm64" },
"\\\\x86_arm\\\\": { "hostArchitecture": "x86", "bits": 32, "architecture": "arm" },
"\\\\amd64_x86\\\\": { "hostArchitecture": "x64" , "bits": 32, "architecture": "x86" },
"\\\\amd64_arm\\\\": { "hostArchitecture": "x64" , "bits": 32, "architecture": "arm"},
"\\\\amd64_arm64\\\\": { "hostArchitecture": "x64", "bits": 64, "architecture": "arm64" },
"\\\\arm64_amd64\\\\": { "hostArchitecture": "arm64" ,"bits": 64, "architecture": "x64"},
"\\\\arm64_x86\\\\": { "hostArchitecture": "arm64", "bits": 32, "architecture": "x86" },
"\\\\arm64_arm\\\\": { "hostArchitecture": "arm64" , "bits": 32, "architecture": "arm"},
},
// add the default paths.include for the Visual C++ compiler
"expression: ONEOF,FOLDER # find the base include folder": {
"${binary}/../include": { "path.builtInInclude": "${binary}/../include"},
"${binary}/../../include": { "path.builtInInclude": "${binary}/../../include"},
"${binary}/../../../include": { "path.builtInInclude": "${binary}/../../../include"},
"${binary}/../../../../include": { "path.builtInInclude": "${binary}/../../../../include" }
},
// add the atlmfc paths.include for the Visual C++ compiler
"expression: ONEOF,OPTIONAL,FOLDER # find the optional atlmfc include folder": {
"${binary}/../atlmfc/include": { "path.builtInInclude": "${binary}/../atlmfc/include" },
"${binary}/../../atlmfc/include": { "path.builtInInclude": "${binary}/../../atlmfc/include" },
"${binary}/../../../atlmfc/include": { "path.builtInInclude": "${binary}/../../../atlmfc/include" },
"${binary}/../../../../atlmfc/include": { "path.builtInInclude": "${binary}/../../../../atlmfc/include" }
}
},
"intellisense": {
// get the location of the SDK root from the registry
"KitsRoot10": "${HKLM:SOFTWARE/WOW6432Node/Microsoft/Windows Kits/Installed Roots;KitsRoot10}",
"KitsRoot81": "${HKLM:SOFTWARE/WOW6432Node/Microsoft/Windows Kits/Installed Roots;KitsRoot81}",
// set the default SDK version (todo: this should be able to be pulled in from the user's config)
"SDKVer": "10.0.22000.0",
"parserArgument": [
"--no_warnings",
"--rtti",
"--wchar_t_keyword",
"--edge",
"--exceptions",
"--error_limit", "25000",
"-D_EDG_COMPILER",
"-D_USE_DECLSPECS_FOR_SAL=1"
]
}
}
@@ -0,0 +1,22 @@
{
"name": "GNU C++ [xtensa-esp32]",
"import": [
"common/gcc.json",
"common/defaults.json"
],
"discover": {
"binary": "xtensa-esp32-elf-g++",
"locations": [ "${env:IDF_TOOLS_PATH}" ],
"match": {
"^(?<ver>\\d+[.]\\d+[.]\\d+)(?:-\\S*)?$" : { "version": "${ver}" }
}
},
"intellisense": {
"compiler": "gcc",
"architecture": "xtensa",
"bits": 32,
"platform": "none",
"parserArgument": [],
}
}
@@ -0,0 +1,22 @@
{
"name": "GNU C [xtensa-esp32]",
"import": [
"common/gcc.json",
"common/defaults.json"
],
"discover": {
"binary": "xtensa-esp32-elf-gcc",
"locations": [ "${env:IDF_TOOLS_PATH}" ],
"match": {
"^(?<ver>\\d+[.]\\d+[.]\\d+)(?:-\\S*)?$" : { "version": "${ver}" }
}
},
"intellisense": {
"compiler": "gcc",
"architecture": "xtensa",
"bits": 32,
"platform": "none",
"parserArgument": ["--c", "--c${cStandard}" ]
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+19 -156
View File
@@ -6,7 +6,7 @@
'use strict';
const gulp = require('gulp');
const eslint = require('gulp-eslint');
const fs = require('fs');
const nls = require('vscode-nls-dev');
const path = require('path');
@@ -58,24 +58,6 @@ const languages = [
{ id: "pl", folderName: "plk" }
];
/// Misc Tasks
const allTypeScript = [
'src/**/*.ts',
'!**/*.d.ts',
'!**/typings**'
];
gulp.task('lint', function () {
return gulp.src(allTypeScript)
.pipe(eslint({ configFile: ".eslintrc.js" }))
.pipe(eslint.format())
.pipe(eslint.failAfterError());
});
gulp.task('copy-walkthrough-media', function () {
return gulp.src('walkthrough/images/**/*')
.pipe(gulp.dest('dist/walkthrough/images'));
});
// ****************************
// Command: translations-export
@@ -248,25 +230,25 @@ gulp.task("translations-export", (done) => {
// Merge files from all source streams
es.merge(jsStream, htmlStream, jsonSchemaStream)
// Filter down to only the files we need
.pipe(filter(['**/*.nls.json', '**/*.nls.metadata.json']))
// Filter down to only the files we need
.pipe(filter(['**/*.nls.json', '**/*.nls.metadata.json']))
// Consoldate them into nls.metadata.json, which the xlf is built from.
.pipe(nls.bundleMetaDataFiles('ms-vscode.cpptools', '.'))
// Consoldate them into nls.metadata.json, which the xlf is built from.
.pipe(nls.bundleMetaDataFiles('ms-vscode.cpptools', '.'))
// filter down to just the resulting metadata files
.pipe(filter(['**/nls.metadata.header.json', '**/nls.metadata.json']))
// filter down to just the resulting metadata files
.pipe(filter(['**/nls.metadata.header.json', '**/nls.metadata.json']))
// Add package.nls.json, used to localized package.json
.pipe(gulp.src(["package.nls.json"]))
// Add package.nls.json, used to localized package.json
.pipe(gulp.src(["package.nls.json"]))
// package.nls.json and nls.metadata.json are used to generate the xlf file
// Does not re-queue any files to the stream. Outputs only the XLF file
.pipe(nls.createXlfFiles(translationProjectName, translationExtensionName))
.pipe(gulp.dest(path.join("..", `${translationProjectName}-localization-export`)))
.pipe(es.wait(() => {
done();
}));
// package.nls.json and nls.metadata.json are used to generate the xlf file
// Does not re-queue any files to the stream. Outputs only the XLF file
.pipe(nls.createXlfFiles(translationProjectName, translationExtensionName))
.pipe(gulp.dest(path.join("..", `${translationProjectName}-localization-export`)))
.pipe(es.wait(() => {
done();
}));
});
@@ -290,9 +272,9 @@ gulp.task("translations-import", (done) => {
.pipe(nls.prepareJsonFiles())
.pipe(gulp.dest(path.join("./i18n", language.folderName)));
}))
.pipe(es.wait(() => {
done();
}));
.pipe(es.wait(() => {
done();
}));
});
// ****************************
@@ -462,122 +444,3 @@ const generateJsonSchemaLoc = () => {
gulp.task('translations-generate', gulp.series(generateSrcLocBundle, generateAdditionalLocFiles, generateHtmlLoc, generateWalkthroughHtmlLoc, generateJsonSchemaLoc));
// ****************************
// Command: generate-native-strings
// The following is used to generate nativeStrings.ts and localized_string_ids.h from ./src/nativeStrings.json
// If adding localized strings to the native side, start by adding it to nativeStrings.json and use this to generate the others.
// ****************************
// A gulp task to parse ./src/nativeStrings.json and generate nativeStrings.ts, and localized_string_ids.h
gulp.task("generate-native-strings", (done) => {
const stringTable = jsonc.parse(fs.readFileSync('./src/nativeStrings.json').toString());
let nativeEnumContent = ""
let nativeStringTableContent = "";
let typeScriptSwitchContent = "";
let stringIndex = 1;
for (let property in stringTable) {
let stringValue = stringTable[property];
let hintValue;
if (typeof stringValue !== "string") {
hintValue = stringValue.hint;
stringValue = stringValue.text;
}
// Add to native enum
nativeEnumContent += ` ${property} = ${stringIndex},\n`;
// Add to native string table
nativeStringTableContent += ` ${JSON.stringify(stringValue)},\n`;
// Add to TypeScript switch
// Skip empty strings, which can be used to prevent enum/index reordering
if (stringValue != "") {
// It's possible that a translation may skip "{#}" entries, so check for up to 50 of them.
let numArgs = 0;
for (let i = 0; i < 50; i++) {
if (stringValue.includes(`{${i}}`)) {
numArgs = i + 1;
}
}
typeScriptSwitchContent += ` case ${stringIndex}:\n`;
if (numArgs != 0) {
typeScriptSwitchContent += ` if (stringArgs) {\n`;
if (hintValue) {
typeScriptSwitchContent += ` message = localize({ key: ${JSON.stringify(property)}, comment: [${JSON.stringify(hintValue)}] }, ${JSON.stringify(stringValue)}`;
} else {
typeScriptSwitchContent += ` message = localize(${JSON.stringify(property)}, ${JSON.stringify(stringValue)}`;
}
for (let i = 0; i < numArgs; i++) {
typeScriptSwitchContent += `, stringArgs[${i}]`;
}
typeScriptSwitchContent += `);\n break;\n }\n`;
}
if (hintValue) {
typeScriptSwitchContent += ` message = localize({ key: ${JSON.stringify(property)}, comment: [${JSON.stringify(hintValue)}] }, ${JSON.stringify(stringValue)}`;
} else {
typeScriptSwitchContent += ` message = localize(${JSON.stringify(property)}, ${JSON.stringify(stringValue)}`;
}
typeScriptSwitchContent += `);\n break;\n`;
}
++stringIndex;
};
let typeScriptContent = `/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
// ****** This file is generated from nativeStrings.json. Do not edit this file directly. ******
'use strict';
import * as nls from 'vscode-nls';
nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })();
const localize: nls.LocalizeFunc = nls.loadMessageBundle();
export const localizedStringCount: number = ${stringIndex};
export function lookupString(stringId: number, stringArgs?: string[]): string {
let message: string = "";
switch (stringId) {
case 0:
// Special case for blank string
break;
${typeScriptSwitchContent}
default:
console.assert(\"Unrecognized string ID\");
break;
}
return message;
}
`;
console.log("Writing file: ./src/nativeStrings.ts");
fs.writeFileSync("./src/nativeStrings.ts", typeScriptContent, 'utf8');
let nativeContents = `/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
// ****** This file is generated from nativeStrings.json. Do not edit this file directly. ******
#pragma once
// NOLINTBEGIN(modernize-raw-string-literal)
enum class localized_string_id : unsigned int
{
blank = 0,
${nativeEnumContent}};
inline static const char *localizable_strings[] = {
"",
${nativeStringTableContent}};
// NOLINTEND(modernize-raw-string-literal)
`;
console.log("Writing file: localized_string_ids.h -- If changed, copy to VS repo: src/vc/designtime/vscode/Common/generated/");
fs.writeFileSync("localized_string_ids.h", nativeContents, 'utf8');
done();
});
+4
View File
@@ -247,6 +247,10 @@
"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.markdownInComments.description": "选择 Markdown 是否在悬停工具提示中可用。默认情况下,仅一部分 markdown 将应用于悬停工具提示中的注释。",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "启用悬停工具提示中的所有 Markdown 功能,但包含“_”和“*”字符的功能除外。",
"c_cpp.configuration.markdownInComments.enabled.description": "在悬停工具提示中启用所有 Markdown 功能。",
"c_cpp.configuration.markdownInComments.disabled.description": "禁用悬停工具提示中的所有 Markdown 功能。",
"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` 的包含路径为依赖项时,请将其添加。",
@@ -4,8 +4,6 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "无法启动 C/C++ 语言服务器。IntelliSense 功能将被禁用。错误: {0}",
"check.permissions": "EPERM: 检查“{0}”的权限",
"select.compiler": "选择要为 IntelliSense 配置的编译器",
"configure.intelliSense.forFolder": "你希望如何为“{0}”文件夹配置 IntelliSense?",
"configure.intelliSense.thisFolder": "你希望如何为此文件夹配置 IntelliSense?",
@@ -23,6 +21,8 @@
"selectCompiler.string": "选择编译器",
"confirmCompiler.string": "是",
"selectCompiler.message": "已找到编译器 {0}。是否要使用此编译器配置 IntelliSense?",
"check.permissions": "EPERM: 检查“{0}”的权限",
"unable.to.start": "无法启动 C/C++ 语言服务器。IntelliSense 功能将被禁用。错误: {0}",
"server.crashed.restart": "语言服务器崩溃。正在重新启动...",
"server.crashed2": "在过去 3 分钟内,语言服务器崩溃了 5 次。它不会重新启动。",
"loggingLevel.changed": "{0} 已更改为: {1}",
@@ -11,6 +11,5 @@
"configuration.select.first": "首先打开一个文件夹以选择配置。",
"configuration.provider.select.first": "首先打开一个文件夹以选择配置提供程序。",
"edit.configurations.open.first": "首先打开一个文件夹以编辑配置",
"code.action.aborted": "无法应用代码分析修复程序,因为文档已更改。",
"add.includepath.open.first": "首先打开一个要添加到 {0} 的文件夹"
"code.action.aborted": "无法应用代码分析修复程序,因为文档已更改。"
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// 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)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "禁用活动配置提供程序(如果适用)。",
"select.compile.commands": "选择 compile_commands.json...",
"select.workspace": "选择工作区文件夹…",
"select.command": "选择命令...",
"select.code.analysis.command": "选择代码分析命令...",
"resume.parsing": "恢复工作区分析",
"pause.parsing": "暂停工作区分析",
"cancel.analysis": "取消",
"resume.analysis": "继续",
"pause.analysis": "暂停",
"another.analysis": "启动另一个..."
"another.analysis": "启动另一个...",
"active.analysis": "在活动文件上运行 Code Analysis",
"all.analysis": "在所有文件上运行 Code Analysis",
"open.analysis": "在打开的文件上运行 Code Analysis"
}
+4
View File
@@ -247,6 +247,10 @@
"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.markdownInComments.description": "選取是否可在暫留工具提示中使用 Markdown。根據預設,只會將 Markdown 子集套用至暫留工具提示中的註解。",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "啟用暫留工具提示中的所有 Markdown 功能,但包含 '_' 和 '*' 字元的功能除外。",
"c_cpp.configuration.markdownInComments.enabled.description": "啟用暫留工具提示中的所有 Markdown 功能。",
"c_cpp.configuration.markdownInComments.disabled.description": "停用暫留工具提示中的所有 Markdown 功能。",
"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` 為相依性時,從中新增 include 路徑。",
@@ -4,11 +4,9 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "無法啟動 C/C + + 語言伺服器。將停用 IntelliSense 功能。錯誤: {0}",
"check.permissions": "EPERM: 檢查 '{0}' 的權限",
"select.compiler": "選取要設定 IntelliSense 的編譯器",
"configure.intelliSense.forFolder": "想如何為 '{0}' 資料夾設定 IntelliSense。",
"configure.intelliSense.thisFolder": "如何為此資料夾設定 IntelliSense",
"configure.intelliSense.thisFolder": "如何為此資料夾設定 IntelliSense?",
"found.string": "在 {0} 找到",
"use.compiler": "使用 {0}",
"configuration.providers": "設定提供者",
@@ -23,6 +21,8 @@
"selectCompiler.string": "選取編譯器",
"confirmCompiler.string": "是",
"selectCompiler.message": "找到編譯器 {0}。您要使用此編譯器來設定 IntelliSense 嗎?",
"check.permissions": "EPERM: 檢查 '{0}' 的權限",
"unable.to.start": "無法啟動 C/C + + 語言伺服器。將停用 IntelliSense 功能。錯誤: {0}",
"server.crashed.restart": "語言伺服器當機。正在重新啟動...",
"server.crashed2": "語言伺服器在過去 3 分鐘內發生 5 次故障。將不會重新啟動。",
"loggingLevel.changed": "{0} 已變更為: {1}",
@@ -11,6 +11,5 @@
"configuration.select.first": "先開啟資料夾以選取設定。",
"configuration.provider.select.first": "先開啟資料夾以選取設定提供者。",
"edit.configurations.open.first": "先開啟資料夾以編輯組態",
"code.action.aborted": "無法套用程式碼分析修正,因為文件已變更。",
"add.includepath.open.first": "先開啟資料夾以新增至 {0}"
"code.action.aborted": "無法套用程式碼分析修正,因為文件已變更。"
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"c.cpp.parsing.open.files.tooltip": "正在剖析開啟的檔案",
"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)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "如果適用,停用現有組態提供者。",
"select.compile.commands": "選取 compile_commands.json...",
"select.workspace": "選取工作區資料夾...",
"select.command": "選取命令...",
"select.code.analysis.command": "選取程式碼分析命令...",
"resume.parsing": "繼續工作區剖析",
"pause.parsing": "暫停工作區剖析",
"cancel.analysis": "取消",
"resume.analysis": "繼續",
"pause.analysis": "暫停",
"another.analysis": "啟動另一個..."
"another.analysis": "啟動另一個...",
"active.analysis": "在使用中檔案上執行程式碼分析",
"all.analysis": "在所有檔案上執行程式碼分析",
"open.analysis": "在開啟檔案上執行程式碼分析"
}
@@ -65,4 +65,4 @@
"limit.symbols.checkbox": "若為 {0} (或已選取),標籤剖析器只會剖析 {1} 中原始程式檔直接或間接包含的程式碼檔。若為 {2} (或未選取),標籤剖析器會剖析在 {3} 清單中的指定路徑找到的所有程式碼檔。",
"database.filename": "瀏覽: 資料庫檔案名稱",
"database.filename.description": "產生符號資料庫路徑。這會指示延伸模組將標籤剖析器的符號資料庫儲存在工作區預設儲存位置以外的某處。如果指定了相對路徑,就會是相對於工作區預設儲存位置 (非工作區資料夾本身) 的路徑。{0} 變數可用於指定相對於工作區資料夾的路徑 (例如 {1})。"
}
}
+5 -1
View File
@@ -247,6 +247,10 @@
"c_cpp.configuration.caseSensitiveFileSupport.markdownDescription": "Když se nastaví na `default`, předpokládá se, že systém souborů pracovního prostoru ve Windows nerozlišuje velká a malá písmena a v macOS nebo Linuxu rozlišuje malá a velká písmena. Když se tato možnost nastaví na `enabled`, předpokládá se, že systém souborů pracovního prostoru ve Windows rozlišuje velká a malá písmena.",
"c_cpp.configuration.enhancedColorization.markdownDescription": "Když se tato možnost povolí, kód se bude obarvovat podle IntelliSense. Toto nastavení se použije jen v případě, že možnost `#C_Cpp.intelliSenseEngine#` je nastavená na `default`.",
"c_cpp.configuration.codeFolding.description": "Když se tato možnost povolí, rozsahy sbalování kódu bude poskytovat jazykový server.",
"c_cpp.configuration.markdownInComments.description": "Vyberte, jestli bude markdown k dispozici v popisu při najetí myší. Ve výchozím nastavení se u komentářů v popisu přechodu použije jenom podmnožina markdownu.",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "Povolte všechny funkce Markdownu v popisku s výjimkou těch, které obsahují znaky „_“ a „*“.",
"c_cpp.configuration.markdownInComments.enabled.description": "Umožňuje povolit všechny funkce Markdownu v popisu při najetí myší.",
"c_cpp.configuration.markdownInComments.disabled.description": "Umožňuje zakázat všechny funkce Markdownu v popisu při najetí myší.",
"c_cpp.configuration.hover.description": "Pokud je tato možnost zakázaná, podrobnosti o najetí myší už nebude poskytovat jazykový server.",
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Povolte integrační služby pro [správce závislostí vcpkg](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Pokud existují závislosti, přidejte cesty pro zahrnuté soubory z `nan` a `node-addon-api`.",
@@ -430,4 +434,4 @@
"c_cpp.walkthrough.customize.debugging.linux.description": "Konfiguraci ladění (např. za účelem předání argumentů do vašeho programu za běhu) můžete přizpůsobit výběrem možnosti Přidat konfiguraci ladění napravo od tlačítka Přehrát. Vlastní konfigurace ladění se uloží do souboru launch.json vašeho projektu. \n[Další informace](https://code.visualstudio.com/docs/cpp/config-msvc#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.windows.description": "Konfiguraci ladění (např. za účelem předání argumentů do vašeho programu za běhu) můžete přizpůsobit výběrem možnosti Přidat konfiguraci ladění napravo od tlačítka Přehrát. Vlastní konfigurace ladění se uloží do souboru launch.json vašeho projektu. \n[Další informace](https://code.visualstudio.com/docs/cpp/config-clang-mac#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.altText": "Obrázek znázorňující přidání konfigurace ladění v rozevíracím seznamu"
}
}
@@ -4,11 +4,9 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "Nepovedlo se spustit jazykový server C/C++. Funkce IntelliSense se zakážou. Chyba: {0}",
"check.permissions": "EPERM: Zkontrolujte oprávnění pro {0}.",
"select.compiler": "Vyberte kompilátor, který se má nakonfigurovat pro IntelliSense.",
"configure.intelliSense.forFolder": "Jak chcete nakonfigurovat IntelliSense pro složku {0}?",
"configure.intelliSense.thisFolder": "Jak chcete nakonfigurovat IntelliSense pro tuto složku?",
"configure.intelliSense.thisFolder": "Jak chcete pro tuto složku nakonfigurovat IntelliSense?",
"found.string": "Nalezeno v: {0}",
"use.compiler": "Použít {0}",
"configuration.providers": "poskytovatelé konfigurace",
@@ -23,6 +21,8 @@
"selectCompiler.string": "Vybrat kompilátor",
"confirmCompiler.string": "Ano",
"selectCompiler.message": "Byl nalezen {0} kompilátoru. Chcete nakonfigurovat IntelliSense s tímto kompilátorem?",
"check.permissions": "EPERM: Zkontrolujte oprávnění pro {0}.",
"unable.to.start": "Nepovedlo se spustit jazykový server C/C++. Funkce IntelliSense se zakážou. Chyba: {0}",
"server.crashed.restart": "Došlo k chybovému ukončení jazykového serveru. Restartuje se…",
"server.crashed2": "Jazykový server se 5krát za poslední 3 minuty chybově ukončil. Nebude se restartovat.",
"loggingLevel.changed": "{0} se změnila na: {1}",
@@ -11,6 +11,5 @@
"configuration.select.first": "Pokud chcete vybrat konfiguraci, otevřete nejdříve složku.",
"configuration.provider.select.first": "Pokud chcete vybrat poskytovatele konfigurace, otevřete nejdříve složku.",
"edit.configurations.open.first": "Pokud chcete upravit konfigurace, otevřete nejdříve složku.",
"code.action.aborted": "Opravu analýzy kódu nelze použít, protože dokument byl změněn.",
"add.includepath.open.first": "Nejdříve otevřete složku, která se má přidat do {0}."
"code.action.aborted": "Opravu analýzy kódu nelze použít, protože dokument byl změněn."
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"c.cpp.parsing.open.files.tooltip": "Analýza otevřených souborů.",
"running.tagparser.text": "Parsování pracovního prostoru",
"paused.tagparser.text": "Pracovní prostor analýzy: Pozastaveno",
"complete.tagparser.text": "Analýza byla dokončena.",
"initializing.tagparser.text": "Inicializuje se pracovní prostor",
"indexing.tagparser.text": "Pracovní prostor indexování",
"rescan.tagparse.text": "Znovu prohledat pracovní prostor",
"c.cpp.parsing.open.files.tooltip": "Analýza otevřených souborů",
"click.to.preview": "kliknutím si můžete zobrazit náhled výsledků",
"updating.intellisense.tooltip": "Aktualizuje se IntelliSense.",
"updating.intellisense.text": "IntelliSense: Aktualizace",
"idle.intellisense.text": "IntelliSense: Připraveno",
"absent.intellisense.text": "IntelliSense: Nenakonfigurováno",
"running.analysis.text": "Code Analysis: Spuštěno",
"paused.analysis.text": "Code Analysis: Pozastaveno",
"mode.analysis.prefix": "Režim Code Analysis: ",
"c.cpp.configureIntelliSenseStatus.text": "Konfigurovat IntelliSense",
"c.cpp.configureIntelliSenseStatus.cppText": "Konfigurovat IntelliSense v C/C++",
"select.command": "Vyberte příkaz…",
"select.code.analysis.command": "Vyberte příkaz pro analýzu kódu…",
"c.cpp.configuration.tooltip": "Konfigurace C/C++",
"c.cpp.references.statusbar": "Stav odkazů jazyka C/C++",
"c.cpp.intellisense.statusbar": "C/C++ IntelliSense Status",
"c.cpp.tagparser.statusbar": "Stav analyzátoru značky jazyka C/C++",
"discovering.files.tooltip": "Zjišťují se soubory.",
"running.analysis.tooltip": "Probíhá {0}",
"code.analysis.paused.tooltip": "{0} pozastaveno",
"running.analysis.processed.tooltip": "Spuštěno {0}: {1} / {2} ({3}%)",
"cpptools.status.intellisense": "C/C++ IntelliSense Status",
"cpptools.status.tagparser": "Stav analyzátoru značky jazyka C/C++",
"cpptools.detail.tagparser": "Probíhá inicializace...",
"cpptools.status.codeanalysis": "Stav Code Analysis C/C++",
"c.cpp.codeanalysis.statusbar.runNow": "Spustit",
"tagparser.pause.text": "Pozastavit",
"tagparser.resume.text": "Pokračovat",
"intellisense.select.text": "Vyberte kompilátor.",
"rescan.intellisense.text": "Prohledat znovu",
"rescan.intellisense.tooltip": "Znovu prohledat IntelliSense",
"mode.codeanalysis.status.automatic": "Automaticky",
"mode.codeanalysis.status.manual": "Ručně",
"c.cpp.codeanalysis.statusbar.showCodeAnalysisOptions": "Možnosti",
"startup.codeanalysis.status": "Spouštění...",
"c.cpp.codeanalysis.statusbar.showRunNowOptions": "Spustit",
"running.analysis.processed.tooltip": "Spuštěno: {0} / {1} ({2} %)",
"select.a.configuration": "Vybrat konfiguraci...",
"edit.configuration.ui": "Upravit konfigurace (uživatelské rozhraní)",
"edit.configuration.json": "Upravit konfigurace (JSON)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "Zakažte aktivního poskytovatele konfigurací, pokud je to možné.",
"select.compile.commands": "Vyberte soubor compile_commands.json...",
"select.workspace": "Vyberte složku pracovního prostoru...",
"select.command": "Vyberte příkaz…",
"select.code.analysis.command": "Vyberte příkaz pro analýzu kódu…",
"resume.parsing": "Pokračovat v analýze pracovního prostoru",
"pause.parsing": "Pozastavit analýzu pracovního prostoru",
"cancel.analysis": "Zrušit",
"resume.analysis": "Pokračovat",
"pause.analysis": "Pozastavit",
"another.analysis": "Spustit další…"
"another.analysis": "Spustit další…",
"active.analysis": "Spustit Code Analysis u aktivního souboru",
"all.analysis": "Spustit Code Analysis u všech souborů",
"open.analysis": "Spustit Code Analysis při otevírání souborů"
}
+5 -1
View File
@@ -247,6 +247,10 @@
"c_cpp.configuration.caseSensitiveFileSupport.markdownDescription": "Wenn diese Einstellung auf `default` festgelegt ist, wird davon ausgegangen, dass für das Dateisystem des Arbeitsbereichs unter Windows die Groß-/Kleinschreibung nicht berücksichtigt und unter macOS oder Linux berücksichtigt wird. Wenn diese Einstellung auf `enabled` festgelegt ist, wird davon ausgegangen, dass für das Dateisystem des Arbeitsbereichs unter Windows die Groß-/Kleinschreibung beachtet wird.",
"c_cpp.configuration.enhancedColorization.markdownDescription": "Wenn diese Option aktiviert ist, wird der Code basierend auf IntelliSense eingefärbt. Diese Einstellung gilt nur, wenn `#C_Cpp.intelliSenseEngine#` auf `default` festgelegt ist.",
"c_cpp.configuration.codeFolding.description": "Wenn diese Option aktiviert ist, werden Codefaltbereiche vom Sprachserver bereitgestellt.",
"c_cpp.configuration.markdownInComments.description": "Wählen Sie aus, ob Markdown in der QuickInfo zum Daraufzeigen verfügbar sein soll. Standardmäßig wird nur eine Teilmenge des Markdowns auf Kommentare in der QuickInfo zum Daraufzeigen angewendet.",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "Aktivieren Sie alle Markdownfeatures in der QuickInfo, mit Ausnahme derjenigen, die die Zeichen \"_\" und \"*\" enthalten.",
"c_cpp.configuration.markdownInComments.enabled.description": "Aktivieren Sie alle Markdownfeatures in der QuickInfo zum Daraufzeigen.",
"c_cpp.configuration.markdownInComments.disabled.description": "Deaktivieren Sie alle Markdownfeatures in der QuickInfo zum Daraufzeigen.",
"c_cpp.configuration.hover.description": "Wenn diese Option deaktiviert ist, werden die Hoverdetails nicht mehr vom Sprachserver bereitgestellt.",
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Hiermit aktivieren Sie Integrationsdienste für den [vcpkg-Abhängigkeitsmanager](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Fügen Sie Includepfade aus `nan` und `node-addon-api` hinzu, wenn es sich um Abhängigkeiten handelt.",
@@ -430,4 +434,4 @@
"c_cpp.walkthrough.customize.debugging.linux.description": "Sie können Ihre Debugkonfiguration anpassen (z. B. um Argumente zur Laufzeit an Ihr Programm zu übergeben), indem Sie rechts neben der Wiedergabeschaltfläche \"Debugkonfiguration hinzufügen\" auswählen. Die benutzerdefinierte Debugkonfiguration wird in der Datei \"launch.json\" Ihres Projekts gespeichert. \n[Weitere Informationen](https://code.visualstudio.com/docs/cpp/config-msvc#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.windows.description": "Sie können Ihre Debugkonfiguration anpassen (z. B. um Argumente zur Laufzeit an Ihr Programm zu übergeben), indem Sie rechts neben der Wiedergabeschaltfläche \"Debugkonfiguration hinzufügen\" auswählen. Die benutzerdefinierte Debugkonfiguration wird in der Datei \"launch.json\" Ihres Projekts gespeichert. \n[Weitere Informationen](https://code.visualstudio.com/docs/cpp/config-clang-mac#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.altText": "Bild, das \"Debugkonfiguration hinzufügen\" in der Dropdownliste anzeigt"
}
}
@@ -4,8 +4,6 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "Der C/C++-Sprachserver kann nicht gestartet werden. IntelliSense-Features werden deaktiviert. Fehler: {0}",
"check.permissions": "EPERM: Berechtigungen für \"{0}\" überprüfen",
"select.compiler": "Wählen Sie einen Compiler aus, der für IntelliSense konfiguriert werden soll.",
"configure.intelliSense.forFolder": "Wie möchten Sie IntelliSense für den Ordner \"{0}\" konfigurieren?",
"configure.intelliSense.thisFolder": "Wie möchten Sie IntelliSense für diesen Ordner konfigurieren?",
@@ -23,6 +21,8 @@
"selectCompiler.string": "Compiler auswählen",
"confirmCompiler.string": "Ja",
"selectCompiler.message": "Der Compiler {0} wurde gefunden. Möchten Sie IntelliSense mit diesem Compiler konfigurieren?",
"check.permissions": "EPERM: Berechtigungen für \"{0}\" überprüfen",
"unable.to.start": "Der C/C++-Sprachserver kann nicht gestartet werden. IntelliSense-Features werden deaktiviert. Fehler: {0}",
"server.crashed.restart": "Der Sprach-Server ist abgestürzt. Neustart wird ausgeführt ...",
"server.crashed2": "Der Sprachserver ist in den letzten 3 Minuten 5-mal abgestürzt. Er wird nicht neu gestartet.",
"loggingLevel.changed": "{0} wurde geändert in {1}",
@@ -11,6 +11,5 @@
"configuration.select.first": "Öffnen Sie zum Auswählen einer Konfiguration zuerst einen Ordner.",
"configuration.provider.select.first": "Öffnen Sie zum Auswählen eines Konfigurationsanbieters zuerst einen Ordner.",
"edit.configurations.open.first": "Zum Bearbeiten von Konfigurationen zuerst einen Ordner öffnen",
"code.action.aborted": "Der Codeanalysepatch konnte nicht angewendet werden, da sich das Dokument geändert hat.",
"add.includepath.open.first": "Zuerst einen Ordner öffnen, der \"{0}\" hinzugefügt werden soll"
"code.action.aborted": "Der Codeanalysepatch konnte nicht angewendet werden, da sich das Dokument geändert hat."
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"c.cpp.parsing.open.files.tooltip": "Offene Dateien werden analysiert",
"running.tagparser.text": "Parsing-Arbeitsbereich",
"paused.tagparser.text": "Parsing-Arbeitsbereich: Angehalten",
"complete.tagparser.text": "Parsing abgeschlossen",
"initializing.tagparser.text": "Arbeitsbereich wird initialisiert",
"indexing.tagparser.text": "Arbeitsbereich für die Indizierung",
"rescan.tagparse.text": "Arbeitsbereich neu einlesen",
"c.cpp.parsing.open.files.tooltip": "Offene Dateien werden geparst",
"click.to.preview": "Klicken Sie, um eine Vorschau der Ergebnisse anzuzeigen.",
"updating.intellisense.tooltip": "IntelliSense wird aktualisiert",
"updating.intellisense.text": "IntelliSense: Aktualisieren",
"idle.intellisense.text": "IntelliSense: Bereit",
"absent.intellisense.text": "IntelliSense: Nicht konfiguriert",
"running.analysis.text": "Code Analysis: Wird ausgeführt",
"paused.analysis.text": "Code Analysis: Angehalten",
"mode.analysis.prefix": "Code Analysis-Modus: ",
"c.cpp.configureIntelliSenseStatus.text": "IntelliSense konfigurieren",
"c.cpp.configureIntelliSenseStatus.cppText": "IntelliSense in C/C++ konfigurieren",
"select.command": "Befehl auswählen...",
"select.code.analysis.command": "Codeanalysebefehl auswählen...",
"c.cpp.configuration.tooltip": "C/C++-Konfiguration",
"c.cpp.references.statusbar": "C/C++-Verweisstatus",
"c.cpp.intellisense.statusbar": "Status von C/C++-IntelliSense",
"c.cpp.tagparser.statusbar": "Status des C/C++-Tagparsers",
"discovering.files.tooltip": "Dateien werden ermittelt",
"running.analysis.tooltip": "\"{0}\" wird ausgeführt",
"code.analysis.paused.tooltip": "{0} angehalten",
"running.analysis.processed.tooltip": "Ausführen von {0}: {1} / {2} ({3}%)",
"cpptools.status.intellisense": "Status von C/C++-IntelliSense",
"cpptools.status.tagparser": "Status des C/C++-Tagparsers",
"cpptools.detail.tagparser": "Wird initialisiert...",
"cpptools.status.codeanalysis": "C/C++-Code Analysis-Status",
"c.cpp.codeanalysis.statusbar.runNow": "Jetzt ausführen",
"tagparser.pause.text": "Anhalten",
"tagparser.resume.text": "Fortsetzen",
"intellisense.select.text": "Compiler auswählen",
"rescan.intellisense.text": "Neu einlesen",
"rescan.intellisense.tooltip": "IntelliSense neu einlesen",
"mode.codeanalysis.status.automatic": "Automatisch",
"mode.codeanalysis.status.manual": "Manuell",
"c.cpp.codeanalysis.statusbar.showCodeAnalysisOptions": "Optionen",
"startup.codeanalysis.status": "Wird gestartet...",
"c.cpp.codeanalysis.statusbar.showRunNowOptions": "Jetzt ausführen",
"running.analysis.processed.tooltip": "Wird ausgeführt: {0} / {1} ({2}%)",
"select.a.configuration": "Konfiguration auswählen...",
"edit.configuration.ui": "Konfigurationen bearbeiten (Benutzeroberfläche)",
"edit.configuration.json": "Konfigurationen bearbeiten (JSON)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "Deaktivieren Sie den aktiven Konfigurationsanbieter, falls zutreffend.",
"select.compile.commands": "compile_commands.json-Datei auswählen...",
"select.workspace": "Arbeitsbereichsordner auswählen...",
"select.command": "Befehl auswählen...",
"select.code.analysis.command": "Codeanalysebefehl auswählen...",
"resume.parsing": "Arbeitsbereichsanalyse fortsetzen",
"pause.parsing": "Arbeitsbereichsanalyse anhalten",
"cancel.analysis": "Abbrechen",
"resume.analysis": "Fortsetzen",
"pause.analysis": "Anhalten",
"another.analysis": "Starten Sie eine weitere..."
"another.analysis": "Starten Sie eine weitere...",
"active.analysis": "Code Analysis auf \"Aktive Dateien\" ausführen",
"all.analysis": "Code Analysis auf \"Alle Dateien\" ausführen",
"open.analysis": "Code Analysis auf \"Dateien öffnen\" ausführen"
}
@@ -18,4 +18,4 @@
"reinstall.extension.text7": "A continuación, reinstale mediante la interfaz de usuario de Marketplace en VS Code.",
"reinstall.extension.text8": "Si VS Code no puede implementar la versión correcta de la extensión, el VSIX correcto para el sistema se puede {0} e instalar mediante la opción 'Instalar desde VSIX...', en el menú '...' en la interfaz de usuario de Marketplace en VS Code.",
"download.vsix.link.title": "descargado del sitio web del Marketplace VS Code"
}
}
+4
View File
@@ -247,6 +247,10 @@
"c_cpp.configuration.caseSensitiveFileSupport.markdownDescription": "Si se establece en `default`, el sistema de archivos del área de trabajo no distingue mayúsculas de minúsculas en Windows y distingue mayúsculas de minúsculas en macOS o Linux. Si se establece en `enabled`, el sistema de archivos del área de trabajo distingue mayúsculas de minúsculas en Windows.",
"c_cpp.configuration.enhancedColorization.markdownDescription": "Si se habilita esta opción, el código se colorea de acuerdo con IntelliSense. Esta configuración solo se aplica si `#C_Cpp.intelliSenseEngine#` se establece en `default`.",
"c_cpp.configuration.codeFolding.description": "Si está habilitada, el servidor de lenguaje proporciona intervalos de plegado de código.",
"c_cpp.configuration.markdownInComments.description": "Seleccione si Markdown estará disponible en la información sobre herramientas que aparece al mantener el puntero. De manera predeterminada, solo se aplicará un subconjunto de Markdown a los comentarios de la información sobre herramientas que aparece al mantener el puntero.",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "Habilita todas las características de Markdown en la información sobre herramientas que aparece al mantener el puntero, excepto las que incluyen los caracteres \"_\" y \"*\".",
"c_cpp.configuration.markdownInComments.enabled.description": "Habilite todas las características de Markdown en la información sobre herramientas que aparece al mantener el puntero.",
"c_cpp.configuration.markdownInComments.disabled.description": "Deshabilite todas las características de Markdown en la información sobre herramientas que aparece al mantener el puntero.",
"c_cpp.configuration.hover.description": "Si se deshabilita, el servidor de lenguaje ya no proporciona detalles al mantener el puntero.",
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Habilita los servicios de integración para el [administrador de dependencias de vcpkgs](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Agrega rutas de acceso de inclusión de `nan` y `node-addon-api` cuando sean dependencias.",
@@ -4,11 +4,9 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "No se puede iniciar el servidor de lenguaje de C/C++. Las características de IntelliSense se deshabilitarán. Error: {0}",
"check.permissions": "EPERM: Compruebe los permisos de \"{0}\"",
"select.compiler": "Selecciona un compilador para configurarlo para IntelliSense",
"configure.intelliSense.forFolder": "¿Cómo deseas configurar IntelliSense para la carpeta \"{0}\"?",
"configure.intelliSense.thisFolder": "¿Cómo deseas configurar IntelliSense para esta carpeta?",
"configure.intelliSense.thisFolder": "¿Cómo desea configurar IntelliSense para esta carpeta?",
"found.string": "Encontrado en {0}",
"use.compiler": "Uso {0}",
"configuration.providers": "proveedores de configuración",
@@ -23,6 +21,8 @@
"selectCompiler.string": "Selecciona un compilador",
"confirmCompiler.string": "Sí",
"selectCompiler.message": "Se encontró el compilador {0}. ¿Desea configurar IntelliSense con este compilador?",
"check.permissions": "EPERM: Compruebe los permisos de \"{0}\"",
"unable.to.start": "No se puede iniciar el servidor de lenguaje de C/C++. Las características de IntelliSense se deshabilitarán. Error: {0}",
"server.crashed.restart": "El servidor de lenguaje se bloqueó. Se está reiniciando...",
"server.crashed2": "El servidor de lenguaje se ha bloqueado cinco veces en los tres últimos minutos. No se reiniciará.",
"loggingLevel.changed": "{0} se cambió a: {1}",
@@ -11,6 +11,5 @@
"configuration.select.first": "Abre primero una carpeta para seleccionar una configuración.",
"configuration.provider.select.first": "Abre primero una carpeta para seleccionar un proveedor de configuración.",
"edit.configurations.open.first": "Abra una carpeta primero para editar las configuraciones",
"code.action.aborted": "No se pudo aplicar la corrección de análisis de código porque el documento ha cambiado.",
"add.includepath.open.first": "Abra primero una carpeta para agregarla a {0}"
"code.action.aborted": "No se pudo aplicar la corrección de análisis de código porque el documento ha cambiado."
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"running.tagparser.text": "Analizar área de trabajo",
"paused.tagparser.text": "Área de trabajo de análisis: en pausa",
"complete.tagparser.text": "Análisis finalizado",
"initializing.tagparser.text": "Inicializando área de trabajo",
"indexing.tagparser.text": "Área de trabajo de indexación",
"rescan.tagparse.text": "Volver a examinar el área de trabajo",
"c.cpp.parsing.open.files.tooltip": "Analizando archivos abiertos",
"click.to.preview": "hacer clic para obtener una vista previa de los resultados",
"updating.intellisense.tooltip": "Actualizando IntelliSense...",
"updating.intellisense.text": "IntelliSense: actualización",
"idle.intellisense.text": "IntelliSense: listo",
"absent.intellisense.text": "IntelliSense: no configurado",
"running.analysis.text": "Code Analysis: en ejecución",
"paused.analysis.text": "Code Analysis: en pausa",
"mode.analysis.prefix": "Modo de Code Analysis: ",
"c.cpp.configureIntelliSenseStatus.text": "Configurar IntelliSense",
"c.cpp.configureIntelliSenseStatus.cppText": "Configuración de IntelliSense en C/C++",
"select.command": "Seleccione un comando...",
"select.code.analysis.command": "Seleccione un comando de análisis de código...",
"c.cpp.configuration.tooltip": "Configuración de C/C++",
"c.cpp.references.statusbar": "Estado de referencias de C/C++",
"c.cpp.intellisense.statusbar": "Estado de IntelliSense de C/C++",
"c.cpp.tagparser.statusbar": "Estado del analizador de etiquetas de C/C++",
"discovering.files.tooltip": "Detectando archivos",
"running.analysis.tooltip": "Ejecutando {0}",
"code.analysis.paused.tooltip": "{0} en pausa",
"running.analysis.processed.tooltip": "{0} en ejecución: {1} / {2} ({3}%)",
"cpptools.status.intellisense": "Estado de IntelliSense de C/C++",
"cpptools.status.tagparser": "Estado del analizador de etiquetas de C/C++",
"cpptools.detail.tagparser": "Inicializando...",
"cpptools.status.codeanalysis": "Estado de Code Analysis de C/C++",
"c.cpp.codeanalysis.statusbar.runNow": "Ejecutar ahora",
"tagparser.pause.text": "Pausa",
"tagparser.resume.text": "Reanudar",
"intellisense.select.text": "Seleccione un compilador",
"rescan.intellisense.text": "Volver a examinar",
"rescan.intellisense.tooltip": "Volver a examinar IntelliSense",
"mode.codeanalysis.status.automatic": "Automático",
"mode.codeanalysis.status.manual": "Manual",
"c.cpp.codeanalysis.statusbar.showCodeAnalysisOptions": "Opciones",
"startup.codeanalysis.status": "Iniciando...",
"c.cpp.codeanalysis.statusbar.showRunNowOptions": "Ejecutar ahora",
"running.analysis.processed.tooltip": "En ejecución: {0} / {1} ({2}%)",
"select.a.configuration": "Seleccione una configuración...",
"edit.configuration.ui": "Editar configuraciones (interfaz de usuario)",
"edit.configuration.json": "Editar configuraciones (JSON)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "Deshabilite el proveedor de configuración activo, si procede.",
"select.compile.commands": "Seleccione un archivo compile_commands.json...",
"select.workspace": "Seleccione una carpeta del área de trabajo...",
"select.command": "Seleccione un comando...",
"select.code.analysis.command": "Seleccione un comando de análisis de código...",
"resume.parsing": "Reanudar el análisis de área de trabajo",
"pause.parsing": "Pausar el análisis de área de trabajo",
"cancel.analysis": "Cancelar",
"resume.analysis": "Reanudar",
"pause.analysis": "Pausa",
"another.analysis": "Iniciar otro..."
"another.analysis": "Iniciar otro...",
"active.analysis": "Ejecutar Code Analysis en el archivo activo",
"all.analysis": "Ejecutar análisis de código en todos los archivos",
"open.analysis": "Ejecutar análisis de código en archivos abiertos"
}
@@ -18,4 +18,4 @@
"reinstall.extension.text7": "Réinstallez ensuite via linterface utilisateur de la Place de marché dans VS Code.",
"reinstall.extension.text8": "Si la version correcte de lextension ne peut pas être déployée par VS Code, le VSIX approprié pour votre système peut être {0} et installé à laide de loption 'Installer à partir de VSIX...' sous le menu '...' de linterface utilisateur de la Place de marché dans VS Code.",
"download.vsix.link.title": "téléchargé à partir du site web de la place de marché VS Code"
}
}
+5 -1
View File
@@ -247,6 +247,10 @@
"c_cpp.configuration.caseSensitiveFileSupport.markdownDescription": "Si la valeur est définie sur `default`, le système de fichiers de lespace de travail est supposé ne pas respecter la casse sur Windows et respecter la casse sur macOS ou Linux. Si la valeur est `enabled`, le système de fichiers de lespace de travail est supposé respecter la casse sur Windows.",
"c_cpp.configuration.enhancedColorization.markdownDescription": "Si cette option est activée, le code est colorisé en fonction d'IntelliSense. Ce paramètre s'applique uniquement si `#C_Cpp.intelliSenseEngine#` est défini sur `default`.",
"c_cpp.configuration.codeFolding.description": "Si cette fonctionnalité est activée, les plages de pliage de code sont fournies par le serveur de langage.",
"c_cpp.configuration.markdownInComments.description": "Indiquez si Markdown sera disponible dans linfo-bulle de pointage. Par défaut, seul un sous-ensemble de Markdown est appliqué aux commentaires dans linfo-bulle de pointage.",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "Activez toutes les fonctionnalités Markdown dans linfo-bulle de pointage, à lexception de celles qui incluent les caractères « _ » et « * ».",
"c_cpp.configuration.markdownInComments.enabled.description": "Activez toutes les fonctionnalités Markdown dans linfo-bulle de pointage.",
"c_cpp.configuration.markdownInComments.disabled.description": "Désactivez toutes les fonctionnalités Markdown dans linfo-bulle de pointage.",
"c_cpp.configuration.hover.description": "Si cette option est désactivée, les détails du pointage ne sont plus fournis par le serveur de langage.",
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Activez les services d'intégration pour le [gestionnaire de dépendances vcpkg](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Ajouter les chemins d'inclusion de `nan` et `node-addon-api` quand ils sont des dépendances.",
@@ -430,4 +434,4 @@
"c_cpp.walkthrough.customize.debugging.linux.description": "Vous pouvez personnaliser votre configuration de débogage (par exemple, pour passer des arguments à votre programme au moment de lexécution) en sélectionnant « Ajouter une configuration de débogage » à droite du bouton de lecture. La configuration de débogage personnalisée est enregistrée dans le fichier launch.json de votre projet. \n[En savoir plus](https://code.visualstudio.com/docs/cpp/config-msvc#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.windows.description": "Vous pouvez personnaliser votre configuration de débogage (par exemple, pour passer des arguments à votre programme au moment de lexécution) en sélectionnant « Ajouter une configuration de débogage » à droite du bouton de lecture. La configuration de débogage personnalisée est enregistrée dans le fichier launch.json de votre projet. \n[En savoir plus](https://code.visualstudio.com/docs/cpp/config-clang-mac#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.altText": "Image qui montre Ajouter une configuration de débogage dans la liste déroulante"
}
}
@@ -4,11 +4,9 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "Impossible de démarrer le serveur de langage C/C++. Les fonctionnalités IntelliSense sont désactivées. Erreur : {0}",
"check.permissions": "EPERM : Vérifier les autorisations de '{0}'",
"select.compiler": "Sélectionner un compilateur à configurer pour IntelliSense",
"configure.intelliSense.forFolder": "Comment voulez-vous configurer IntelliSense pour le dossier «{0}» ?",
"configure.intelliSense.thisFolder": "Comment voulez-vous configurer IntelliSense pour ce dossier ?",
"configure.intelliSense.thisFolder": "Comment voulez-vous configurer IntelliSense pour ce dossier ?",
"found.string": "Trouvé sur {0}",
"use.compiler": "Utiliser {0}",
"configuration.providers": "fournisseurs de configuration",
@@ -23,6 +21,8 @@
"selectCompiler.string": "Sélectionner un compilateur",
"confirmCompiler.string": "Oui",
"selectCompiler.message": "Le compilateur {0} a été trouvé. Voulez-vous configurer IntelliSense avec ce compilateur ?",
"check.permissions": "EPERM : Vérifier les autorisations de '{0}'",
"unable.to.start": "Impossible de démarrer le serveur de langage C/C++. Les fonctionnalités IntelliSense sont désactivées. Erreur : {0}",
"server.crashed.restart": "Le serveur de langue sest arrêté. Redémarrage...",
"server.crashed2": "Le serveur de langage s'est bloqué 5 fois au cours des 3 dernières minutes. Il n'est pas redémarré.",
"loggingLevel.changed": "{0} a été changé en : {1}",
@@ -11,6 +11,5 @@
"configuration.select.first": "Commencer par ouvrir un dossier pour sélectionner une configuration",
"configuration.provider.select.first": "Commencer par ouvrir un dossier pour sélectionner un fournisseur de configuration",
"edit.configurations.open.first": "Commencer par ouvrir un dossier pour modifier des configurations",
"code.action.aborted": "Impossible dappliquer le correctif danalyse du code, car le document a changé.",
"add.includepath.open.first": "Commencer par ouvrir un dossier à ajouter à {0}"
"code.action.aborted": "Impossible dappliquer le correctif danalyse du code, car le document a changé."
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"running.tagparser.text": "Analyse de lespace de travail",
"paused.tagparser.text": "Analyse de lespace de travail : suspendu",
"complete.tagparser.text": "Analyse terminée",
"initializing.tagparser.text": "Initialisation de lespace de travail",
"indexing.tagparser.text": "Indexation de lespace de travail",
"rescan.tagparse.text": "Réanalyser l'espace de travail",
"c.cpp.parsing.open.files.tooltip": "Analyse des fichiers ouverts",
"click.to.preview": "cliquez pour voir un aperçu des résultats",
"updating.intellisense.tooltip": "Mise à jour d'IntelliSense",
"updating.intellisense.text": "IntelliSense : mise à jour",
"idle.intellisense.text": "IntelliSense : prêt",
"absent.intellisense.text": "IntelliSense : non configuré",
"running.analysis.text": "Code Analysis : en cours dexécution",
"paused.analysis.text": "Code Analysis : suspendu",
"mode.analysis.prefix": "Mode Code Analysis : ",
"c.cpp.configureIntelliSenseStatus.text": "Configurer IntelliSense",
"c.cpp.configureIntelliSenseStatus.cppText": "Configuration dIntelliSense en C/C++",
"select.command": "Sélectionner une commande...",
"select.code.analysis.command": "Sélectionner une commande danalyse du code...",
"c.cpp.configuration.tooltip": "Configuration C/C++",
"c.cpp.references.statusbar": "État des références C/C++",
"c.cpp.intellisense.statusbar": "État IntelliSense C/C++",
"c.cpp.tagparser.statusbar": "État de lanalyseur de balises C/C++",
"discovering.files.tooltip": "Détection de fichiers",
"running.analysis.tooltip": "Exécution de {0}",
"code.analysis.paused.tooltip": "{0} en pause",
"running.analysis.processed.tooltip": "En cours d'exécution {0}: {1} / {2} ({3}%)",
"cpptools.status.intellisense": "État IntelliSense C/C++",
"cpptools.status.tagparser": "État de lanalyseur de balises C/C++",
"cpptools.detail.tagparser": "Initialisation en cours...",
"cpptools.status.codeanalysis": "État du Code Analysis C/C++",
"c.cpp.codeanalysis.statusbar.runNow": "Exécuter maintenant",
"tagparser.pause.text": "Pause",
"tagparser.resume.text": "Reprendre",
"intellisense.select.text": "Sélectionnez un compilateur",
"rescan.intellisense.text": "Relancer l'analyse",
"rescan.intellisense.tooltip": "Relancer l'analyse IntelliSense",
"mode.codeanalysis.status.automatic": "Automatique",
"mode.codeanalysis.status.manual": "Manuel",
"c.cpp.codeanalysis.statusbar.showCodeAnalysisOptions": "Options",
"startup.codeanalysis.status": "Démarrage en cours...",
"c.cpp.codeanalysis.statusbar.showRunNowOptions": "Exécuter maintenant",
"running.analysis.processed.tooltip": "En cours dexécution : {0}/{1} ({2} %)",
"select.a.configuration": "Sélectionner une configuration...",
"edit.configuration.ui": "Modifier les configurations (IU)",
"edit.configuration.json": "Modifier les configurations (JSON)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "Désactivez le fournisseur de configuration actif, le cas échéant.",
"select.compile.commands": "Sélectionner un fichier compile_commands.json...",
"select.workspace": "Sélectionner un dossier d'espace de travail...",
"select.command": "Sélectionner une commande...",
"select.code.analysis.command": "Sélectionner une commande danalyse du code...",
"resume.parsing": "Reprendre lanalyse de lespace de travail",
"pause.parsing": "Suspendre lanalyse de lespace de travail",
"cancel.analysis": "Annuler",
"resume.analysis": "Reprendre",
"pause.analysis": "Suspendre",
"another.analysis": "Démarrer une autre..."
"another.analysis": "Démarrer une autre...",
"active.analysis": "Exécuter Code Analysis sur le fichier actif",
"all.analysis": "Exécuter une analyse de code sur Tous les fichiers",
"open.analysis": "Exécuter une analyse de code sur Ouvrir les fichiers"
}
+5 -1
View File
@@ -247,6 +247,10 @@
"c_cpp.configuration.caseSensitiveFileSupport.markdownDescription": "Se impostato su `default`, si presuppone che il file system dell'area di lavoro non faccia distinzione tra maiuscole e minuscole in Windows ma faccia distinzione tra maiuscole e minuscole in macOS o Linux. Se impostato su `enabled`, si presuppone che il file system dell'area di lavoro faccia distinzione tra maiuscole e minuscole in Windows.",
"c_cpp.configuration.enhancedColorization.markdownDescription": "Se questa opzione è abilitata, il codice viene colorato in base a IntelliSense. Questa impostazione si applica solo se `#C_Cpp.intelliSenseEngine#` è impostato su `default`.",
"c_cpp.configuration.codeFolding.description": "Se è abilitata, gli intervalli di riduzione del codice vengono fornite dal server di linguaggio.",
"c_cpp.configuration.markdownInComments.description": "Seleziona se markdown sarà disponibile nella descrizione comando al passaggio del mouse. Per impostazione predefinita, solo un subset di markdown verrà applicato ai commenti nella descrizione comando al passaggio del mouse.",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "Abilita tutte le funzionalità markdown nella descrizione comando al passaggio del mouse, ad eccezione di quelle che includono i caratteri '_' e '*'.",
"c_cpp.configuration.markdownInComments.enabled.description": "Abilita tutte le funzionalità markdown nella descrizione comando al passaggio del mouse.",
"c_cpp.configuration.markdownInComments.disabled.description": "Disabilita tutte le funzionalità markdown nella descrizione comando al passaggio del mouse.",
"c_cpp.configuration.hover.description": "Se questa opzione è disabilitata, i dettagli al passaggio del mouse non vengono più forniti dal server di linguaggio.",
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Abilita i servizi di integrazione per l'[utilità di gestione dipendenze di vcpkg](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Aggiungere percorsi di inclusione da `nan` e `node-addon-api` quando sono dipendenze.",
@@ -430,4 +434,4 @@
"c_cpp.walkthrough.customize.debugging.linux.description": "È possibile personalizzare la configurazione di debug, ad esempio per passare argomenti al programma in fase di esecuzione, selezionando \"Aggiungi configurazione di debug\" a destra del pulsante Riproduci. La configurazione di debug personalizzata viene salvata nel file launch.json del progetto. \n[Altre informazioni](https://code.visualstudio.com/docs/cpp/config-msvc#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.windows.description": "È possibile personalizzare la configurazione di debug, ad esempio per passare argomenti al programma in fase di esecuzione, selezionando \"Aggiungi configurazione di debug\" a destra del pulsante Riproduci. La configurazione di debug personalizzata viene salvata nel file launch.json del progetto. \n[Altre informazioni](https://code.visualstudio.com/docs/cpp/config-clang-mac#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.altText": "Immagine che mostra l'aggiunta della configurazione di debug nell'elenco a discesa"
}
}
@@ -4,11 +4,9 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "Non è possibile avviare il server di linguaggio C/C++. Le funzionalità IntelliSense verranno disabilitate. Errore: {0}",
"check.permissions": "EPERM: verificare le autorizzazioni per '{0}'",
"select.compiler": "Seleziona un compilatore da configurare per IntelliSense",
"configure.intelliSense.forFolder": "Come si desidera configurare IntelliSense per la cartella '{0}'?",
"configure.intelliSense.thisFolder": "Come si desidera configurare IntelliSense per questa cartella?",
"configure.intelliSense.thisFolder": "Come desideri configurare IntelliSense per questa cartella?",
"found.string": "Trovato in {0}",
"use.compiler": "Usa {0}",
"configuration.providers": "Provider di configurazione",
@@ -23,6 +21,8 @@
"selectCompiler.string": "Seleziona compilatore",
"confirmCompiler.string": "Sì",
"selectCompiler.message": "È stato trovato il {0} del compilatore. Configurare IntelliSense con questo compilatore?",
"check.permissions": "EPERM: verificare le autorizzazioni per '{0}'",
"unable.to.start": "Non è possibile avviare il server di linguaggio C/C++. Le funzionalità IntelliSense verranno disabilitate. Errore: {0}",
"server.crashed.restart": "Si è verificato un arresto anomalo del server di linguaggio. Riavvio...",
"server.crashed2": "Si sono verificati cinque arresti anomali del server di linguaggio negli ultimi tre minuti. Non verrà riavviato.",
"loggingLevel.changed": "{0} è stato modificato in: {1}",
@@ -11,6 +11,5 @@
"configuration.select.first": "Apri prima una cartella per selezionare una configurazione.",
"configuration.provider.select.first": "Apri prima una cartella per selezionare un provider di configurazione.",
"edit.configurations.open.first": "Aprire prima una cartella per modificare le configurazioni",
"code.action.aborted": "Impossibile applicare la correzione di Code Analysis perché il documento è stato modificato.",
"add.includepath.open.first": "Aprire prima una cartella da aggiungere a {0}"
"code.action.aborted": "Impossibile applicare la correzione di Code Analysis perché il documento è stato modificato."
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"running.tagparser.text": "Analisi area di lavoro",
"paused.tagparser.text": "Analisi area di lavoro: Sospesa",
"complete.tagparser.text": "Analisi completata",
"initializing.tagparser.text": "Inizializzazione dell'area di lavoro",
"indexing.tagparser.text": "Area di lavoro di indicizzazione",
"rescan.tagparse.text": "Ripeti analisi area di lavoro",
"c.cpp.parsing.open.files.tooltip": "Analisi dei file aperti",
"click.to.preview": "fare clic per visualizzare l'anteprima dei risultati",
"updating.intellisense.tooltip": "Aggiornamento di IntelliSense",
"updating.intellisense.text": "IntelliSense: aggiornamento",
"idle.intellisense.text": "IntelliSense: Pronto",
"absent.intellisense.text": "IntelliSense: Non configurato",
"running.analysis.text": "Code Analysis: In esecuzione",
"paused.analysis.text": "Code Analysis: Sospeso",
"mode.analysis.prefix": "Modalità Code Analysis: ",
"c.cpp.configureIntelliSenseStatus.text": "Configura IntelliSense",
"c.cpp.configureIntelliSenseStatus.cppText": "C/C++ - Configura IntelliSense",
"select.command": "Seleziona un comando...",
"select.code.analysis.command": "Selezionare un comando di Code Analysis...",
"c.cpp.configuration.tooltip": "Configurazione C/C++",
"c.cpp.references.statusbar": "Stato riferimenti C/C++",
"c.cpp.intellisense.statusbar": "Stato IntelliSense C/C++",
"c.cpp.tagparser.statusbar": "Stato del parser del tag C/C++",
"discovering.files.tooltip": "Individuazione dei file",
"running.analysis.tooltip": "{0} in esecuzione",
"code.analysis.paused.tooltip": "{0} in pausa",
"running.analysis.processed.tooltip": "In esecuzione {0}: {1} / {2} ({3}%)",
"cpptools.status.intellisense": "Stato IntelliSense C/C++",
"cpptools.status.tagparser": "Stato del parser del tag C/C++",
"cpptools.detail.tagparser": "Inizializzazione...",
"cpptools.status.codeanalysis": "Stato Code Analysis C/C++",
"c.cpp.codeanalysis.statusbar.runNow": "Esegui",
"tagparser.pause.text": "Sospendi",
"tagparser.resume.text": "Riprendi",
"intellisense.select.text": "Seleziona un compilatore",
"rescan.intellisense.text": "Ripeti analisi",
"rescan.intellisense.tooltip": "Ripeti analisi di IntelliSense",
"mode.codeanalysis.status.automatic": "Automatico",
"mode.codeanalysis.status.manual": "Manuale",
"c.cpp.codeanalysis.statusbar.showCodeAnalysisOptions": "Opzioni",
"startup.codeanalysis.status": "Avvio...",
"c.cpp.codeanalysis.statusbar.showRunNowOptions": "Esegui",
"running.analysis.processed.tooltip": "In esecuzione: {0} / {1} ({2}%)",
"select.a.configuration": "Seleziona una configurazione...",
"edit.configuration.ui": "Modifica configurazioni (interfaccia utente)",
"edit.configuration.json": "Modifica configurazioni (JSON)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "Disabilita il provider di configurazione attivo, se applicabile.",
"select.compile.commands": "Seleziona un file compile_commands.json...",
"select.workspace": "Seleziona una cartella dell'area di lavoro...",
"select.command": "Seleziona un comando...",
"select.code.analysis.command": "Selezionare un comando di Code Analysis...",
"resume.parsing": "Riprendi analisi area di lavoro",
"pause.parsing": "Sospendi analisi area di lavoro",
"cancel.analysis": "Annulla",
"resume.analysis": "Riprendi",
"pause.analysis": "Sospendi",
"another.analysis": "Avvia un'altra..."
"another.analysis": "Avvia un'altra...",
"active.analysis": "Esegui analisi del codice su File attivo",
"all.analysis": "Esegui analisi del codice su Tutti i file",
"open.analysis": "Esegui analisi del codice su Apri file"
}
+4
View File
@@ -247,6 +247,10 @@
"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.markdownInComments.description": "ホバー ツールヒントでマークダウンを使用可能にするかどうかを選択します。既定では、ホバー ツールヒントのコメントにはマークダウン機能の一部のみが適用されます。",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "ホバー ツールヒントのすべてのマークダウン機能を有効にします ('_' 文字と '*' 文字が含まれるものを除く)。",
"c_cpp.configuration.markdownInComments.enabled.description": "ホバー ツールヒントですべてのマークダウン機能を有効にします。",
"c_cpp.configuration.markdownInComments.disabled.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` のインクルード パスを追加してください。",
@@ -4,8 +4,6 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "C/C++ 言語サーバーを起動できません。IntelliSense 機能は無効になります。エラー: {0}",
"check.permissions": "EPERM: '{0}' のアクセス許可を確認してください",
"select.compiler": "IntelliSense 用に構成するコンパイラを選択する",
"configure.intelliSense.forFolder": "'{0}' フォルダーの IntelliSense をどのように構成しますか?",
"configure.intelliSense.thisFolder": "このフォルダーの IntelliSense をどのように構成しますか?",
@@ -23,6 +21,8 @@
"selectCompiler.string": "コンパイラを選択する",
"confirmCompiler.string": "はい",
"selectCompiler.message": "コンパイラ {0} が見つかりました。このコンパイラで IntelliSense を構成しますか?",
"check.permissions": "EPERM: '{0}' のアクセス許可を確認してください",
"unable.to.start": "C/C++ 言語サーバーを起動できません。IntelliSense 機能は無効になります。エラー: {0}",
"server.crashed.restart": "言語サーバーがクラッシュしました。再起動しています...",
"server.crashed2": "言語サーバーが過去 3 分間に 5 回クラッシュしました。再起動されません。",
"loggingLevel.changed": "{0} が次に変更されました: {1}",
@@ -11,6 +11,5 @@
"configuration.select.first": "構成を選択するには、まずフォルダーを開いてください。",
"configuration.provider.select.first": "構成プロバイダーを選択するには、まずフォルダーを開いてください。",
"edit.configurations.open.first": "構成を編集するには、まずフォルダーを開いてください",
"code.action.aborted": "ドキュメントが変更されたため、コード分析修正プログラムを適用できませんでした。",
"add.includepath.open.first": "{0} に追加するには、まずフォルダーを開いてください"
"code.action.aborted": "ドキュメントが変更されたため、コード分析修正プログラムを適用できませんでした。"
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// 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)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "該当する場合は、アクティブな構成プロバイダーを無効にします。",
"select.compile.commands": "compile_commands.json を選択してください...",
"select.workspace": "ワークスペース フォルダーを選択します...",
"select.command": "コマンドを選択する...",
"select.code.analysis.command": "コード分析コマンドを選択...",
"resume.parsing": "ワークスペースの解析の再開",
"pause.parsing": "ワークスペースの解析の一時停止",
"cancel.analysis": "キャンセル",
"resume.analysis": "再開",
"pause.analysis": "一時停止",
"another.analysis": "別のファイルを開始..."
"another.analysis": "別のファイルを開始...",
"active.analysis": "アクティブ ファイルで Code Analysis を実行する",
"all.analysis": "すべてのファイルで Code Analysis を実行する",
"open.analysis": "開いているファイルで Code Analysis を実行する"
}
+4
View File
@@ -247,6 +247,10 @@
"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.markdownInComments.description": "가리키기 도구 설명에서 Markdown을 사용할 수 있는지 여부를 선택합니다. 기본값으로, Markdown의 하위 집합만 가리키기 도구 설명의 주석에 적용됩니다.",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "가리키기 도구 설명에서 '_' 및 '*' 문자를 포함하는 기능을 제외한 모든 Markdown 기능을 활성화합니다.",
"c_cpp.configuration.markdownInComments.enabled.description": "가리키기 도구 설명에서 모든 Markdown 기능을 활성화합니다.",
"c_cpp.configuration.markdownInComments.disabled.description": "가리키기 도구 설명에서 모든 Markdown 기능을 비활성화합니다.",
"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`가 종속성일 때 해당 포함 경로를 추가합니다.",
@@ -4,11 +4,9 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "C/C++ 언어 서버를 시작할 수 없습니다. IntelliSense 기능을 사용할 수 없습니다. 오류: {0}",
"check.permissions": "EPERM: '{0}'에 대한 사용 권한 확인",
"select.compiler": "IntelliSense에 구성할 컴파일러 선택",
"configure.intelliSense.forFolder": "'{0}' 폴더에 대해 IntelliSense를 어떻게 구성하시겠습니까?",
"configure.intelliSense.thisFolder": "IntelliSense 이 폴더를 어떻게 구성하시겠습니까?",
"configure.intelliSense.thisFolder": "이 폴더에 IntelliSense를 어떻게 구성하려고 하나요?",
"found.string": "{0}에서 찾음",
"use.compiler": "{0} 사용",
"configuration.providers": "구성 공급자",
@@ -23,6 +21,8 @@
"selectCompiler.string": "컴파일러 선택",
"confirmCompiler.string": "예",
"selectCompiler.message": "{0} 컴파일러를 발견했습니다. 이 컴파일러를 사용하여 IntelliSense를 구성할까요?",
"check.permissions": "EPERM: '{0}'에 대한 사용 권한 확인",
"unable.to.start": "C/C++ 언어 서버를 시작할 수 없습니다. IntelliSense 기능을 사용할 수 없습니다. 오류: {0}",
"server.crashed.restart": "언어 서버가 중단되었습니다. 다시 시작하는 중입니다...",
"server.crashed2": "지난 3분 동안 언어 서버에서 크래시가 5회 발생했습니다. 다시 시작되지 않습니다.",
"loggingLevel.changed": "{0}이(가) {1}(으)로 변경되었습니다.",
@@ -11,6 +11,5 @@
"configuration.select.first": "먼저 구성을 선택할 폴더를 엽니다.",
"configuration.provider.select.first": "먼저 구성 공급자를 선택할 폴더를 엽니다.",
"edit.configurations.open.first": "먼저 구성을 편집할 폴더 열기",
"code.action.aborted": "문서가 변경되어 코드 분석 수정 사항을 적용할 수 없습니다.",
"add.includepath.open.first": "먼저 {0}에 추가할 폴더 열기"
"code.action.aborted": "문서가 변경되어 코드 분석 수정 사항을 적용할 수 없습니다."
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// 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)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "해당하는 경우 활성 구성 공급자를 사용하지 않도록 설정합니다.",
"select.compile.commands": "compile_commands.json 선택...",
"select.workspace": "작업 영역 폴더 선택...",
"select.command": "명령 선택...",
"select.code.analysis.command": "코드 분석 명령 선택...",
"resume.parsing": "작업 영역 구문 분석 다시 시작",
"pause.parsing": "작업 영역 구문 분석 일시 중지",
"cancel.analysis": "취소",
"resume.analysis": "다시 시작",
"pause.analysis": "일시 중지",
"another.analysis": "다른 시작..."
"another.analysis": "다른 시작...",
"active.analysis": "활성 파일에서 코드 분석 실행",
"all.analysis": "모든 파일에 대한 코드 분석 실행",
"open.analysis": "열린 파일에서 코드 분석 실행"
}
+5 -1
View File
@@ -247,6 +247,10 @@
"c_cpp.configuration.caseSensitiveFileSupport.markdownDescription": "W przypadku ustawienia wartości `default` przyjmuje się, że system plików obszaru roboczego w systemie Windows nie uwzględnia wielkości liter, a w systemie macOS lub Linux wielkość liter jest uwzględniana. W przypadku ustawienia wartości `enabled` przyjmuje się, że system plików obszaru roboczego uwzględnia wielkość liter w systemie Windows.",
"c_cpp.configuration.enhancedColorization.markdownDescription": "Jeśli ta opcja jest włączona, kod jest kolorowany na podstawie funkcji IntelliSense. To ustawienie ma zastosowanie tylko wtedy, gdy właściwość `#C_Cpp.intelliSenseEngine#` ma wartość `default`.",
"c_cpp.configuration.codeFolding.description": "Jeśli ta opcja jest włączona, zakresy składania kodu są dostarczane przez serwer języka.",
"c_cpp.configuration.markdownInComments.description": "Wybierz, czy język Markdown będzie dostępny w etykietce narzędzia aktywowania. Domyślnie tylko podzbiór języka Markdown będzie stosowany do komentarzy w etykietce narzędzia aktywowania.",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "Włącz wszystkie funkcje języka Markdown w etykietce narzędzia aktywowania z wyjątkiem tych, które zawierają znaki „_” i „*”.",
"c_cpp.configuration.markdownInComments.enabled.description": "Włącz wszystkie funkcje języka Markdown w etykietce narzędzia aktywowania.",
"c_cpp.configuration.markdownInComments.disabled.description": "Wyłącz wszystkie funkcje języka Markdown w etykietce narzędzia aktywowania.",
"c_cpp.configuration.hover.description": "W przypadku wyłączenia szczegóły dotyczące umieszczania wskaźnika myszy nie będą już udostępniane przez serwer języka.",
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Włącz usługi integracji dla elementu [vcpkg dependency manager](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Dodaj ścieżki dołączania z plików `nan` i `node-addon-api`, jeśli są one zależnościami.",
@@ -430,4 +434,4 @@
"c_cpp.walkthrough.customize.debugging.linux.description": "Możesz dostosować konfigurację debugowania (np. aby przekazywać argumenty do programu w czasie uruchamiania), wybierając pozycję „Dodaj konfigurację debugowania” po prawej stronie przycisku odtwarzania. Niestandardowa konfiguracja debugowania jest zapisywana w pliku projektu launch.json. \n[Dowiedz się więcej](https://code.visualstudio.com/docs/cpp/config-msvc#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.windows.description": "Możesz dostosować konfigurację debugowania (np. aby przekazywać argumenty do programu w czasie uruchamiania), wybierając pozycję „Dodaj konfigurację debugowania” po prawej stronie przycisku odtwarzania. Niestandardowa konfiguracja debugowania jest zapisywana w pliku projektu launch.json. \n[Dowiedz się więcej](https://code.visualstudio.com/docs/cpp/config-clang-mac#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.altText": "Obraz przedstawiający pozycję „Dodaj konfigurację debugowania” na liście rozwijanej"
}
}
@@ -4,8 +4,6 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"unable.to.start": "Nie można uruchomić serwera języka C/C++. Funkcje IntelliSense zostaną wyłączone. Błąd: {0}",
"check.permissions": "EPERM: sprawdź uprawnienia dla elementu „{0}”",
"select.compiler": "Wybierz kompilator do skonfigurowania dla funkcji IntelliSense",
"configure.intelliSense.forFolder": "Jak chcesz skonfigurować funkcję IntelliSense dla folderu „{0}”?",
"configure.intelliSense.thisFolder": "Jak chcesz skonfigurować funkcję IntelliSense dla tego folderu?",
@@ -23,6 +21,8 @@
"selectCompiler.string": "Wybierz kompilator",
"confirmCompiler.string": "Tak",
"selectCompiler.message": "Znaleziono kompilator {0}. Czy chcesz skonfigurować funkcję IntelliSense za pomocą tego kompilatora?",
"check.permissions": "EPERM: sprawdź uprawnienia dla elementu „{0}”",
"unable.to.start": "Nie można uruchomić serwera języka C/C++. Funkcje IntelliSense zostaną wyłączone. Błąd: {0}",
"server.crashed.restart": "Wystąpiła awaria serwera języka. Trwa ponowne uruchamianie...",
"server.crashed2": "W ciągu ostatnich 3 minut awaria serwera języka wystąpiła 5 razy. Nie zostanie on ponownie uruchomiony.",
"loggingLevel.changed": "Poziom {0} zmienił się na: {1}",
@@ -11,6 +11,5 @@
"configuration.select.first": "Najpierw otwórz folder, aby wybrać konfigurację.",
"configuration.provider.select.first": "Najpierw otwórz folder, aby wybrać dostawcę konfiguracji.",
"edit.configurations.open.first": "Otwórz najpierw folder, aby edytować konfiguracje",
"code.action.aborted": "Nie można rozwiązać problemu z analizą kodu, ponieważ dokument został zmieniony.",
"add.includepath.open.first": "Otwórz najpierw folder, aby dodać go do {0}"
"code.action.aborted": "Nie można rozwiązać problemu z analizą kodu, ponieważ dokument został zmieniony."
}
@@ -4,21 +4,40 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"running.tagparser.text": "Analizowanie obszaru roboczego",
"paused.tagparser.text": "Analizowanie obszaru roboczego: wstrzymane",
"complete.tagparser.text": "Analizowanie zakończone",
"initializing.tagparser.text": "Inicjowanie obszaru roboczego",
"indexing.tagparser.text": "Indeksowanie obszaru roboczego",
"rescan.tagparse.text": "Ponowne skanowanie obszaru roboczego",
"c.cpp.parsing.open.files.tooltip": "Analizowanie otwartych plików",
"click.to.preview": "kliknij, aby wyświetlić podgląd wyników",
"updating.intellisense.tooltip": "Aktualizowanie funkcji IntelliSense",
"updating.intellisense.text": "IntelliSense: aktualizowanie",
"idle.intellisense.text": "IntelliSense: gotowe",
"absent.intellisense.text": "IntelliSense: nieskonfigurowane",
"running.analysis.text": "Analiza kodu: uruchamianie",
"paused.analysis.text": "Analiza kodu: wstrzymano",
"mode.analysis.prefix": "Tryb analizy kodu: ",
"c.cpp.configureIntelliSenseStatus.text": "Konfigurowanie funkcji IntelliSense",
"c.cpp.configureIntelliSenseStatus.cppText": "Konfigurowanie funkcji IntelliSense (C/C++)",
"select.command": "Wybierz polecenie...",
"select.code.analysis.command": "Wybierz polecenie analizy kodu...",
"c.cpp.configuration.tooltip": "Konfiguracja języka C/C++",
"c.cpp.references.statusbar": "Stan odwołań języka C/C++",
"c.cpp.intellisense.statusbar": "Stan funkcji IntelliSense języka C/C++",
"c.cpp.tagparser.statusbar": "Stan parsera tagów języka C/C++",
"discovering.files.tooltip": "Odnajdowanie plików",
"running.analysis.tooltip": "Wykonywanie {0}",
"code.analysis.paused.tooltip": "{0} wstrzymana",
"running.analysis.processed.tooltip": "Uruchamianie {0}: {1} / {2} ({3}%)",
"cpptools.status.intellisense": "Stan funkcji IntelliSense języka C/C++",
"cpptools.status.tagparser": "Stan parsera tagów języka C/C++",
"cpptools.detail.tagparser": "Trwa inicjowanie...",
"cpptools.status.codeanalysis": "Stan analizy kodu C/C++",
"c.cpp.codeanalysis.statusbar.runNow": "Uruchom teraz",
"tagparser.pause.text": "Wstrzymaj",
"tagparser.resume.text": "Wznów",
"intellisense.select.text": "Wybierz kompilator",
"rescan.intellisense.text": "Skanuj ponownie",
"rescan.intellisense.tooltip": "Ponowne skanowanie funkcji IntelliSense",
"mode.codeanalysis.status.automatic": "Automatycznie",
"mode.codeanalysis.status.manual": "Ręczny",
"c.cpp.codeanalysis.statusbar.showCodeAnalysisOptions": "Opcje",
"startup.codeanalysis.status": "Trwa uruchamianie...",
"c.cpp.codeanalysis.statusbar.showRunNowOptions": "Uruchom teraz",
"running.analysis.processed.tooltip": "Uruchomione: {0} / {1} ({2}%)",
"select.a.configuration": "Wybierz konfigurację...",
"edit.configuration.ui": "Edytowanie konfiguracji (interfejs użytkownika)",
"edit.configuration.json": "Edytowanie konfiguracji (JSON)",
@@ -28,10 +47,15 @@
"disable.configuration.provider": "Wyłącz aktywnego dostawcę konfiguracji, jeśli ma zastosowanie.",
"select.compile.commands": "Wybierz plik compile_commands.json...",
"select.workspace": "Wybierz folder obszaru roboczego...",
"select.command": "Wybierz polecenie...",
"select.code.analysis.command": "Wybierz polecenie analizy kodu...",
"resume.parsing": "Wznów analizowanie obszaru roboczego",
"pause.parsing": "Wstrzymaj analizowanie obszaru roboczego",
"cancel.analysis": "Anuluj",
"resume.analysis": "Wznów",
"pause.analysis": "Wstrzymaj",
"another.analysis": "Uruchom kolejną..."
"another.analysis": "Uruchom kolejną...",
"active.analysis": "Uruchom analizę kodu dla aktywnego pliku",
"all.analysis": "Uruchamianie analizy kodu dla wszystkich plików",
"open.analysis": "Uruchamianie rozszerzenia Code Analysis na otwartych plikach"
}
+5 -1
View File
@@ -247,6 +247,10 @@
"c_cpp.configuration.caseSensitiveFileSupport.markdownDescription": "Se definido como `default`, o sistema de arquivos do workspace não diferencia maiúsculas de minúsculas no Windows e diferencia maiúsculas de minúsculas no macOS ou Linux. Se definido como `enabled`, o sistema de arquivos do workspace é considerado sensível a maiúsculas e minúsculas no Windows.",
"c_cpp.configuration.enhancedColorization.markdownDescription": "Se habilitado, o código é colorido com base no IntelliSense. Esta configuração só se aplica se `#C_Cpp.intelliSenseEngine#` estiver definido como `default`.",
"c_cpp.configuration.codeFolding.description": "Se habilitado, os intervalos de dobramento de código serão fornecidos pelo servidor de idiomas.",
"c_cpp.configuration.markdownInComments.description": "Selecione se a remarcação estará disponível na dica de ferramenta instantânea. Por padrão, apenas um subconjunto de marcação será aplicado aos comentários na dica de ferramenta instantânea.",
"c_cpp.configuration.markdownInComments.subsetEnabled.description": "Habilite todos os recursos de marcação na dica de ferramenta instantânea, exceto aqueles que incluem os caracteres '_' e '*'.",
"c_cpp.configuration.markdownInComments.enabled.description": "Habilite todos os recursos de marcação na dica de ferramenta de foco.",
"c_cpp.configuration.markdownInComments.disabled.description": "Desabilite todos os recursos de marcação na dica de ferramenta de foco.",
"c_cpp.configuration.hover.description": "Se desabilitado, os detalhes do hover não são mais fornecidos pelo servidor de idiomas.",
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Habilitar os serviços de integração para o [gerenciador de dependências vcpkg](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Adicione caminhos de inclusão de `nan` e `node-addon-api` quando forem dependências.",
@@ -430,4 +434,4 @@
"c_cpp.walkthrough.customize.debugging.linux.description": "Você pode personalizar sua configuração de depuração (por exemplo, para passar argumentos para seu programa em tempo de execução) selecionando \"Adicionar Configuração de Depuração\" à direita do botão de reprodução. A configuração de depuração personalizada é salva no arquivo launch.json do seu projeto.\n[Saiba mais](https://code.visualstudio.com/docs/cpp/config-msvc#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.windows.description": "Você pode personalizar sua configuração de depuração (por exemplo, para passar argumentos para seu programa em tempo de execução) selecionando \"Adicionar Configuração de Depuração\" à direita do botão de reprodução. A configuração de depuração personalizada é salva no arquivo launch.json do seu projeto.\n[Saiba mais](https://code.visualstudio.com/docs/cpp/config-clang-mac#_debug-helloworldcpp)",
"c_cpp.walkthrough.customize.debugging.altText": "Imagem que mostra Adicionar configuração de depuração no menu suspenso"
}
}

Some files were not shown because too many files have changed in this diff Show More