Compare commits

..

48 Commits

Author SHA1 Message Date
github-actions[bot]
1112057979 Updated translation files (#2523)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-02 16:02:58 +01:00
Giacomo Cusinato
8e18c47d30 feat: use dompurify to sanitize translations
Pin same version of `dompurify` used in Theia
2024-12-02 15:21:22 +01:00
Giacomo Cusinato
4788bfbc3f feat: introduce VersionWelcomeDialog
Show donate dialog after the first time a first IDE version is loaded
2024-12-02 15:21:22 +01:00
Giacomo Cusinato
71b11ed829 feat: add donate footer to updater dialog 2024-12-02 15:21:22 +01:00
dependabot[bot]
3aedafa306 build(deps): Bump docker/build-push-action from 5 to 6
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-29 01:38:27 -08:00
dependabot[bot]
284dd83d7d build(deps): Bump peter-evans/create-pull-request from 5 to 7
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-29 00:05:37 -08:00
per1234
c09b5f718a Use Ubuntu 18.10 in Linux build container
Background
==========

Shared Library Dependencies
---------------------------

The Linux build of Arduino IDE has dynamic linkage against the libstdc++ and glibc shared libraries. This results in
it having a dependency on the version of the libraries that happens to be present in the environment it is built in.

Although newer versions of the shared libraries are compatible with executables linked against an older version, the
reverse is not true. This means that building Arduino IDE on a Linux machine with a recent distro version installed
causes the IDE to error on startup for users who have a distro with older versions of the dependencies.

For example, if Arduino IDE were built on a machine with version 3.4.33 of libstdc++, then attempting to run it on a
machine with an older version of libstdc++ would fail with an error like:

```
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.33' not found (required by /home/foo/arduino-ide/resources/app/lib/backend/native/nsfw.node)
```

Likewise,  if Arduino IDE were built on a machine with version 2.39 of glibc, then attempting to run it on a machine
with an older version of glibc would fail with an error like:

```
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /home/foo/arduino-ide/resources/app/node_modules/nsfw/build/Release/nsfw.node)
```

Build Machine Requirements
--------------------------

The IDE builds distributed by Arduino should be compatible with a reasonable range of Linux distribution versions. In
order to achieve this, the builds must be performed in a machine with an older version of the shared libraries. The
shared libraries are part of the Linux distro, and installing a different version is not feasible. So this imposes a
maximum limit on the build machine's distro version.

The distributed builds are generated via a GitHub Actions workflow. The most simple approach is to run the build in the
machine of the GitHub-hosted runners provided for each operating system. However, GitHub provides a limited range of
operating system versions in their runners, and removes the older versions as newer versions are added. This means that
building in the GitHub-hosted runner machine would not allow for the desired range of Linux distro version
compatibility. For this reason, the Linux build is performed in a Docker container that provides an older version of
Ubuntu.

The same situation of incompatibility with Linux distro versions that have a version of the shared library dependencies
older than the version present on the build machine occurs for several of the tools and frameworks used by the build
process (e.g., Node.js, Python). In this case, the tables are turned as we are now the user rather than the distributor
and so are at the mercy of the Linux distro version compatibility range provided by the distributor. So this imposes a
minimum limit on the build machine's distro version.

Although several of the dependencies used by the standard build system have dependencies on versions of glibc higher
than the version 2.27 present in Ubuntu 18.04, it was possible to use this distro version in the Linux build container
by using alternative distributions and/or versions of these dependencies.

Workflow Artifacts
------------------

The build workflow uses GitHub actions workflow artifacts to transfer the files generated by the build job to subsequent
jobs in the workflow. The "actions/upload-artifact" action is used for this purpose.

Problem
=======

GitHub is dropping support for the workflow artifacts produced by the version 3.x of the "actions/upload-artifact"
action that was previously used by the build job. So the action version used in the build workflow was updated to the
current version 4.x. This version of the action uses a newer version of the Node.js runtime (20). Unfortunately the the
Node.js 20 runtime used by the action has a dependency on glibc version 2.28, which causes the Linux build job to fail
after the update of the "actions/upload-artifact" action:

```
Run actions/upload-artifact@v4
/__e/node20/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /__e/node20/bin/node)
```

Unlike the other dependencies of the build process, it is no longer possible to work around this incompatibility by
continuing to use the older compatible version of the "actions/upload-artifact" action. It is also impossible to replace
the incompatible Node.js 20.x distribution used by the action, since it comes from the read-only file system of the
runner image. Likewise, it is not possible to configure or force the action to use a Node.js installation at a different
path on the runner machine.

Resolution
==========

Compatibility with the new version of the "actions/upload-artifact" action is attained by updating the version of Linux
in the build container to 18.10, which is the oldest version that has glibc 2.28. The presence of a newer glibc version
in the container also makes it compatible with several other dependencies of the build process, meaning the code in the
Dockerfile and workflow for working around the incompatibilities of Ubuntu 18.04 can be removed.

Consequences
============

Unfortunately this means the loss of compatibility of the Linux Arduino IDE builds with distros that use glibc 2.27
(e.g., Ubuntu 18.04). User of those distros will now find that Arduino IDE fails to start with an error like:

```
Error: node-loader:
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /home/foo/arduino-ide/resources/app/lib/backend/native/pty.node)
    at 85467 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:2766)
    at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
    at 23571 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:3374073)
    at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
    at 55444 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:3369761)
    at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
    at 24290 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:1780542)
    at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
    at 43416 (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:1770138)
    at __webpack_require__ (/home/foo/arduino-ide/resources/app/lib/backend/main.js:2:6663105)
```
2024-11-27 06:58:10 -08:00
per1234
dba57b312c Don't upload multiple times to same artifact in build workflow
The build workflow produces binaries for a range of target hosts. This is done by using a job matrix in the GitHub
Actions workflow that produces each build in a parallel job. GitHub Actions workflow artifacts are used to transfer the
generated files between sequential jobs in the workflow. The "actions/upload-artifact" action is used for this purpose.

Previously, a single artifact was used for this purpose, with each of the parallel jobs uploading its own generated
files to that artifact. However, support for uploading multiple times to a single artifact was dropped in version 4.0.0
of the "actions/upload-artifact" action. So it is now necessary to use a dedicated artifact for each of the builds.
These can be downloaded in aggregate by using the artifact name globbing and merging features which were introduced in
version 4.1.0 of the "actions/download-artifact" action.
2024-11-27 06:58:10 -08:00
per1234
90d3d77ca4 Don't upload multiple times to same artifact in label sync workflow
The "Sync Labels" GitHub Actions workflow is configured to allow the use of multiple shared label configuration files.
This is done by using a job matrix in the GitHub Actions workflow to download each of the files from the source
repository in a parallel GitHub Actions workflow job. A GitHub Actions workflow artifact was used to transfer the
generated files between sequential jobs in the workflow. The "actions/upload-artifact" and "actions/download-artifact"
actions are used for this purpose.

Previously, a single artifact was used for the transfer of all the shared label configuration files, with each of the
parallel jobs uploading its own generated files to that artifact. However, support for uploading multiple times to a
single artifact was dropped in version 4.0.0 of the "actions/upload-artifact" action. So it is now necessary to use a
dedicated artifact for each of the builds. These can be downloaded in aggregate by using the artifact name globbing and
merging features which were introduced in version 4.1.0 of the "actions/download-artifact" action.
2024-11-27 06:58:10 -08:00
dependabot[bot]
0aec778e84 build(deps): Bump geekyeggo/delete-artifact from 2 to 5
Bumps [geekyeggo/delete-artifact](https://github.com/geekyeggo/delete-artifact) from 2 to 5.
- [Release notes](https://github.com/geekyeggo/delete-artifact/releases)
- [Changelog](https://github.com/GeekyEggo/delete-artifact/blob/main/CHANGELOG.md)
- [Commits](https://github.com/geekyeggo/delete-artifact/compare/v2...v5)

---
updated-dependencies:
- dependency-name: geekyeggo/delete-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-27 06:58:10 -08:00
dependabot[bot]
84d2dfd13e build(deps): Bump actions/download-artifact from 3 to 4
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-27 06:58:10 -08:00
dependabot[bot]
86c7fd7b59 build(deps): Bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-27 06:58:10 -08:00
Giacomo Cusinato
de265694ee feat: use Arduino CLI v1.1.1 2024-11-27 14:05:16 +01:00
Giacomo Cusinato
8462d8a391 refactor: generate-protocol now fetch proto files from arduino_cli_{version}_proto.zip
- Use the CLI release proto.zip to get proto files for production versions of CLI
- Extract the proto files from repo if CLI version is declared as `commitsh` or version is 1.1.0

See https://github.com/arduino/arduino-cli/pull/2761
2024-11-27 14:05:16 +01:00
dankeboy36
48d6d37539 feat: can skip verify before upload
Adds a new preference to control whether the
verify command should automatically run before the
upload. If the `arduino.upload.autoVerify` setting
value is `false`, IDE does not recompile the
sketch code before uploading it to the board.

Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
2024-11-26 21:41:48 +01:00
Giacomo Cusinato
d1065886ef feat: use Arduino CLI 1.1.0 2024-11-21 14:21:30 +01:00
Giacomo Cusinato
8773bd67ab fix: use missing google proto files in CLI 2024-11-21 14:21:30 +01:00
Giacomo Cusinato
4189b086de fix: update yarn.lock 2024-11-21 10:44:20 +01:00
dankeboy36
3fc8474d71 fix: align viewsWelcome behavior to VS Code (#2543)
* fix: align `viewsWelcome` behavior to VS Code

Ref: eclipse-theia/theia#14309
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>

* fix: update change proposal from Theia as is

Ref: arduino/arduino-ide#2543
Signed-off-by: dankeboy36 <dankeboy36@gmail.com>

---------

Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
2024-11-21 08:43:04 +01:00
Giacomo Cusinato
4cf9909a07 fix: retry compilation if grpc client needs to be reinitialized (#2548)
* fix: use `Status` enum for status code in `ServiceError` type guards

This change resolves the issue where the intersection of `ServiceError` error codes of type `number` resulted in the `never` type due to conflict between number and `State` enum if `StatusObject`

* feat: add `isInvalidArgument` type guard to `ServiceError`

* fix: retry compilation if grpc client needs to be reinitialized

See https://github.com/arduino/arduino-ide/issues/2547
2024-11-21 08:42:14 +01:00
Giacomo Cusinato
41844c9470 feat: implement menu action to reload current board data (#2553) 2024-11-21 08:41:26 +01:00
Giacomo Cusinato
7c231fff76 fix: memory leak when scanning sketchbooks with large files (#2555)
Resolves https://github.com/arduino/arduino-ide/issues/2537

Fix memory leak issue caused by inflight dependency, see https://github.com/isaacs/node-glob/issues/435
2024-11-21 08:40:52 +01:00
dependabot[bot]
d6235f0a0c build(deps): Bump svenstaro/upload-release-action from 2.7.0 to 2.9.0
Bumps [svenstaro/upload-release-action](https://github.com/svenstaro/upload-release-action) from 2.7.0 to 2.9.0.
- [Release notes](https://github.com/svenstaro/upload-release-action/releases)
- [Changelog](https://github.com/svenstaro/upload-release-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/svenstaro/upload-release-action/compare/2.7.0...2.9.0)

---
updated-dependencies:
- dependency-name: svenstaro/upload-release-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-19 04:04:35 -08:00
per1234
d377d00042 Use appropriate equality operator in changelog script
It is considered good practice to use JavaScript's type-safe strict equality operator === instead of the equality
operator ==. Compliance with this practice is enforced by the project's ESLint configuration, via the "eqeqeq" rule.

The script used to generate the changelog for Arduino IDE's auto-update dialog contained an inappropriate usage of the
equality operator. This caused linting runs to fail:

arduino-ide-extension/scripts/compose-changelog.js
  37:19  error  Expected '===' and instead saw '=='  eqeqeq
2024-11-19 03:53:36 -08:00
per1234
f232010bec Correct eslint command in lint script
The `lint` script of the "arduino-ide-extension" package is intended to use the ESLint linter tool to check for problems
in all the package's JavaScript and TypeScript code files. It is used by the continuous integration system to validate
contributions.

Previously, the command invoked `eslint` without any arguments. With the 8.x version of ESLint used by the project, it
is necessary to provide a path argument in order to cause it to lint the contents of files. Because that argument was
not provided, the script didn't do anything at all and so would return a 0 exit status even if the code had linting rule
violations.

This is fixed by adding a `.` path argument to the command invoked by the script. This will cause ESLint to recurse
through the `arduino-ide-extension` folder and lint the code in all relevant files.
2024-11-19 03:53:36 -08:00
per1234
788017bb99 Use a dedicated GitHub workflow to check for problems with Yarn configuration
The "build" workflow builds the application for all supported targets, generates workflow artifacts from which the
builds can be downloaded by users and beta testers, and publishes nightly and production releases.

As if that wasn't enough, the workflow was also configured to check the sync of the Yarn lockfile.

This monolithic approach is harmful for multiple reasons:

* Makes it difficult to interpret a failed workflow run
* Makes the build workflow more difficult to maintain
* Increases the turnaround time for contributors and maintainers to get feedback from the CI system

The sync check operation is hereby moved to a dedicated workflow, consistent with standard practices for Arduino Tooling
projects.
2024-11-18 06:57:16 -08:00
per1234
9331d2ec0d Use a dedicated GitHub Actions workflow for testing TypeScript/JavaScript code
The "build" workflow builds the application for all supported targets, generates workflow artifacts from which the
builds can be downloaded by users and beta testers, and publishes nightly and production releases.

As if that wasn't enough, the workflow was also configured to perform the unrelated operation of running the project's
test suites.

This monolithic approach is harmful for multiple reasons:

* Makes it difficult to interpret a failed workflow run
* Unnecessarily adds a significant amount of extra content to the already extensive logs produced by the build process
* Makes the build workflow more difficult to maintain
* Increases the length of a build workflow run
* Increases the impact of a spurious failure
* Increases the turnaround time for contributors and maintainers to get feedback from the CI system

The test run operation is hereby moved to a dedicated workflow, consistent with standard practices for Arduino Tooling
projects.
2024-11-18 06:57:16 -08:00
per1234
6e695429cc Use a dedicated GitHub Actions workflow for linting TypeScript/JavaScript code
The "build" workflow builds the application for all supported targets, generates workflow artifacts from which the
builds can be downloaded by users and beta testers, and publishes nightly and production releases.

As if that wasn't enough, the workflow was also configured to perform the unrelated operation of linting the project's
TypeScript and JavaScript code.

This monolithic approach is harmful for multiple reasons:

* Makes it difficult to interpret a failed workflow run
* Unnecessarily adds a significant amount of extra content to the already extensive logs produced by the build process
* Makes the build workflow more difficult to maintain
* Increases the length of a build workflow run
* Increases the impact of a spurious failure
* Increases the turnaround time for contributors and maintainers to get feedback from the CI system

The linting operation is hereby moved to a dedicated workflow, consistent with standard practices for Arduino Tooling
projects.
2024-11-18 06:57:16 -08:00
per1234
4f8b9800a0 Remove redundant signing determination code from build system
The "build" workflow signs the macOS and Windows builds of the application. The signing process relies on access to GitHub Actions
secrets. For this reason, the workflow is configured to only sign the builds when it has access to GitHub Actions
secrets to avoid spurious failures of the workflow that would otherwise be caused by signing failure.

A flexible general purpose system for determining whether to attempt signing of a build was established years ago. However, a redundant system was added specific to the Windows build instead of using the existing system.

The redundant system is hereby removed. This makes the workflow easier to understand and maintain.
2024-11-17 22:00:34 -08:00
per1234
f72d1f0ac8 Use appropriate indicator for Windows signing determination in build workflow
The "build" workflow signs the Windows builds of the application. The signing process relies on access to GitHub Actions
secrets. For this reason, the workflow is configured to only sign the builds when it has access to GitHub Actions
secrets to avoid spurious failures of the workflow that would otherwise be caused by signing failure.

Previously the signing was determined based on the value of the `github.event.pull_request.head.repo.fork` context item.
That was effective for the use case of the workflow being triggered by a pull request from a fork (for security reasons,
GitHub Actions does not give access to secrets under these conditions).

However, there is another context under which the workflow might run without access to the signing secrets, for which
the use of context item is not appropriate. It is important to support the use of the workflow in forks of the
repository. In addition to the possible value to hard forked projects, this is essential to allow conscientious
contributors to test contributions to the build and release system in their own fork prior to submitting a pull request.
The previous configuration would cause a workflow run performed by a contributor in a fork to attempt to sign the
Windows build. Unless the contributor had set up the ridiculously complex infrastructure required to perform the signing
for the Windows build, which is utterly infeasible, this would cause the workflow to fail spuriously.

The appropriate approach, which has been the established convention in the rest of the workflow code, is to use the
secret itself when determining whether to attempt the signing process. If the secret is not defined (resulting in it
having an empty string value), then the signing should be skipped. If it is defined, then the signing should be
performed.
2024-11-17 22:00:34 -08:00
per1234
0fe0feace4 Get job-specific configuration from matrix in build workflow
The "build" workflow builds the application for a range of target hosts. This is done by using a job matrix. A separate
parallel job runs for each target. The target-specific configuration data is defined in the job matrix array.

This configuration data includes the information related to the code signing certificates. Inexplicably, during the work
to add support for signing the Windows builds with an "eToken" hardware authentication device, this data was not used
for the Windows code signing configuration. Instead the certificate data was redundantly hardcoded into the workflow
code.

The Windows code signing certificate configuration is hereby changed to use the established flexible job configuration
data system. This makes the workflow easier to understand and maintain.
2024-11-17 20:18:52 -08:00
per1234
43f0ccb250 Use appropriate indicator for dependency installation conditionals in build workflow
The Windows builds of the application are cryptographically signed. The signing requires an "eToken" hardware
authentication device be connected to the machine performing the signing. This means that it is necessary to use a
self-hosted GitHub Actions runner for the Windows job of the build workflow rather than the runners hosted by GitHub.

There are some unique characteristics of the self-hosted runner which the workflow code must accommodate. One of these
is that, rather than installing dependencies of the build process during the workflow run as is done for the
GitHub-hosted runners, the dependencies are preinstalled in the self-hosted runner machine. So the dependency
installation steps must be configured so that they will be skipped when the job is running on the self-hosted runner.

This is done by adding a conditional to the steps. Previously the conditional was based on the value of the `runner.os`
context item. This is not an appropriate indicator of the job running on the self-hosted runner because `runner.os` will
have the same value if the job was running on a GitHub-hosted Windows runner. That might seem like only a hypothetical
problem since the workflow does not use a GitHub-hosted Windows runner. However, it is important to support the use of
the workflow in forks of the repository. In addition to the possible value to hard forked projects, this is essential to
allow conscientious contributors to test contributions to the build and release system in their own fork prior to
submitting a pull request.

The conditionals are changed to use the more appropriate indicator of the specific name of the self-hosted Windows
runner (via the `runner.name` context item).
2024-11-17 03:15:42 -08:00
per1234
c0b0b84d79 Simplify and generalize configurable working directory code in build workflow
The Windows builds of the application are cryptographically signed. The signing requires an "eToken" hardware
authentication device be connected to the machine performing the signing. This means that it is necessary to use a
self-hosted GitHub Actions runner for the Windows job of the build workflow rather than the runners hosted by GitHub.

There are some unique characteristics of the self-hosted runner which the workflow code must accommodate. The default
working directory of the self-hosted runner is not suitable to perform the build under because the the resulting folder
structure produced paths that exceeded the ridiculously small maximum path length of Windows. So the workflow must be
configured to use a custom working directory with a short path (`C:\a`).

This custom working directory must be used only for the job running on the self-hosted Windows runner so the working
directory of the relevant workflow steps are configured using a ternary expression. Previously, this expression had
multiple conditions:

* the value of the `runner.os` context item
* the definition of a custom working directory value in the job matrix

The second condition is entirely sufficient. The use of the first condition only added unnecessary complexity to the
workflow code, and imposed a pointless limitation of only allowing the use of the custom working directory system on
Windows runners.

Removing the unnecessary condition makes the workflow easier to understand and maintain, and makes it possible to
configure any job to use a custom working directory if necessary.
2024-11-17 02:15:21 -08:00
per1234
3d82cb3525 Add PAID_RUNNER_BUILD_DATA environment variable back to build workflow
The build workflow produces builds for a range of target host architectures, including macOS Apple Silicon. This is done
by running a native build in a machine of the target architecture.

At the time the support for producing Apple Silicon builds was added to the workflow, use of GitHub-hosted Apple Silicon
runner machines was charged by the minute (while use of the other runners is free). In order to avoid excessive
expenses, the workflow was configured so that the Apple Silicon builds were only produced when absolutely necessary.
This was done by defining two sets of job matrix arrays, one for jobs using free runners, and the other for jobs using
paid runners. Due to the limitations of the GitHub Actions framework, it was necessary to use workflow environment
variables for this purpose.

Since that time, GitHub made free GitHub-hosted Apple Silicon runners available. When the workflow was adjusted to use
that runner, the configuration for the Apple Silicon build job was moved to the free runner job matrix array. The system
for supporting selective use of paid GitHub-hosted runners to produce builds was not removed at that time. This is
reasonable since it is possible the need will arise for using paid runners at some point in the future (e.g., only
legacy older versions of free macOS "Intel" runners are now provided and it is likely that even these will eventually be
phased out forcing us to use the paid runner to produce builds for that target). However, the environment variable for
the paid runner job matrix array data was removed. The absence of that variable made it very difficult to understand the
workflow code for the system.

For this reason, the environment variable is replaced, but empty of data. A comment is added to explain the reason for
this.
2024-11-17 00:54:17 -08:00
per1234
9cbee0eacf Trim trailing whitespace in build workflow 2024-11-17 00:54:17 -08:00
Giacomo Cusinato
63e9dfd7f5 fix: disable local windows signing for forks PR
Resolves https://github.com/arduino/arduino-ide/issues/2545
2024-11-11 14:53:42 +01:00
dankeboy36
3ccc864453 fix(doc): add missing prerequisites to dev docs (#2531)
Document prerequisites of the Arduino CLI, LS, etc. tools when built
from a Git commitish.

---------

Signed-off-by: dankeboy36 <dankeboy36@gmail.com>
Co-authored-by: per1234 <accounts@perglass.com>
2024-10-26 17:15:23 -07:00
Dave Simpson
44f15238d6 chore: switch to version 2.3.4 after the release (#2514) 2024-10-24 09:26:49 +02:00
Giacomo Cusinato
4a3abf542c fix: prevent parsing CLI errors without metadata
When parsing a CLI error, check if any metadata from grpc is present before trying to parse it.
Closes #2516
2024-10-22 09:06:28 -07:00
per1234
91bb75ca97 Bump version metadata post release
On every startup, Arduino IDE checks for new versions of the IDE. If a newer version is available, a notification/dialog
is shown offering an update.

"Newer" is determined by comparing the version of the user's IDE to the latest available version on the update channel.
This comparison is done according to the Semantic Versioning Specification ("SemVer").

In order to facilitate beta testing, builds are generated of the Arduino IDE at the current stage in development. These
builds are given an identifying version of the following form:

- <version>-snapshot-<short hash> - builds generated for every push and pull request that modifies relevant files
- <version>-nightly-<YYYYMMDD> - daily builds of the tip of the default branch

In order to cause these builds to be correctly considered "newer" than the release version, the version metadata must be
bumped immediately following each release.

This will also serve as the metadata bump for the next release in the event that release is a minor release. In case it
is instead a minor or major release, the version metadata will need to be updated once more before the release tag is
created.
2024-10-22 07:52:48 -07:00
Dave Simpson
77136687d3 Use macos-latest runner for macOS ARM build (#2513) 2024-09-24 18:30:58 +02:00
github-actions[bot]
16bc1a4610 Updated translation files (#2392)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-24 17:05:43 +02:00
Dave Simpson
2921979678 Use macos-13 for Intel build (#2508) 2024-09-24 15:59:16 +02:00
Giacomo Cusinato
a5bf56ffa6 feat: upload using programmer by default if board requires it 2024-09-19 11:57:42 +02:00
Giacomo Cusinato
2de8bd1717 feat: decode grpc status objects and map them to protocol types
Status object thrown by grpc commands contains metadata that needs to be serialized in order to map it to custom errors generated through proto files https://github.com/grpc/grpc-web/issues/399
2024-09-19 11:57:42 +02:00
Giacomo Cusinato
1ec0a8cc77 feat: use Arduino CLI 1.0.4 (#2457)
* fix: use `@pingghost/protoc` to compile proto files

The npm package previously used (`protoc`) is still lacking apple arm32 support, see https://github.com/YePpHa/node-protoc/pull/10

* feat: use Arduino CLI 1.0.4

* fix: allow use of node16 in github actions

* chore: update `arduino-language-server` version for cli-1.0.0

* fix: deprecated platform order test

Arduino deprecated platforms should have more priority then other deprecated ones
2024-09-06 11:38:55 +02:00
Giacomo Cusinato
c3adde5460 feat: add shared space support (#2486) 2024-09-06 10:29:31 +02:00
Dave Simpson
2e78e96b75 [chore] Update Windows signing Cert to eToken (#2452) 2024-07-03 09:42:10 +02:00
122 changed files with 16866 additions and 3094 deletions

View File

@@ -1,43 +1,28 @@
# The Arduino IDE Linux build workflow job runs in this container.
# syntax=docker/dockerfile:1
FROM ubuntu:18.04
# See: https://hub.docker.com/_/ubuntu/tags
FROM ubuntu:18.10
# See: https://unofficial-builds.nodejs.org/download/release/
ARG node_version="18.17.1"
# This is required in order to use the Ubuntu package repositories for EOL Ubuntu versions:
# https://help.ubuntu.com/community/EOLUpgrades#Update_sources.list
RUN \
sed \
--in-place \
--regexp-extended \
--expression='s/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' \
"/etc/apt/sources.list"
RUN \
apt-get \
--yes \
update
# This is required to get add-apt-repository
RUN \
apt-get \
--yes \
install \
"software-properties-common=0.96.24.32.22"
# Install Git
# The PPA is required to get a modern version of Git. The version in the Ubuntu 18.04 package repository is 2.17.1,
# while action/checkout@v3 requires 2.18 or higher.
RUN \
add-apt-repository \
--yes \
"ppa:git-core/ppa" && \
apt-get \
--yes \
update && \
\
apt-get \
--yes \
install \
"git" && \
\
apt-get \
--yes \
purge \
"software-properties-common"
"git"
# The repository path must be added to safe.directory, otherwise any Git operations on it would fail with a
# "dubious ownership" error. actions/checkout configures this, but it is not applied to containers.
@@ -51,18 +36,12 @@ ENV \
# Install Python
# The Python installed by actions/setup-python has dependency on a higher version of glibc than available in the
# ubuntu:18.04 container.
# container.
RUN \
apt-get \
--yes \
install \
"python3.8-minimal=3.8.0-3ubuntu1~18.04.2" && \
\
ln \
--symbolic \
--force \
"$(which python3.8)" \
"/usr/bin/python3"
"python3.7-minimal=3.7.3-2~18.10"
# Install Theia's package dependencies
# These are pre-installed in the GitHub Actions hosted runner machines.
@@ -70,43 +49,15 @@ RUN \
apt-get \
--yes \
install \
"libsecret-1-dev=0.18.6-1" \
"libx11-dev=2:1.6.4-3ubuntu0.4" \
"libsecret-1-dev=0.18.6-3" \
"libx11-dev=2:1.6.7-1" \
"libxkbfile-dev=1:1.0.9-2"
# Install Node.js
# It is necessary to use the "unofficial" linux-x64-glibc-217 build because the official Node.js 18.x is dynamically
# linked against glibc 2.28, while Ubuntu 18.04 has glibc 2.27.
ARG node_installation_path="/tmp/node-installation"
ARG artifact_name="node-v${node_version}-linux-x64-glibc-217"
# Target python3 symlink to Python 3.7 installation. It would otherwise target version 3.6 due to the installation of
# the `python3` package as a transitive dependency.
RUN \
mkdir "$node_installation_path" && \
cd "$node_installation_path" && \
\
apt-get \
--yes \
install \
"wget=1.19.4-1ubuntu2.2" && \
\
archive_name="${artifact_name}.tar.xz" && \
wget \
"https://unofficial-builds.nodejs.org/download/release/v${node_version}/${archive_name}" && \
\
apt-get \
--yes \
purge \
"wget" && \
\
tar \
--file="$archive_name" \
--extract && \
rm "$archive_name"
ENV PATH="${PATH}:${node_installation_path}/${artifact_name}/bin"
# Install Yarn
# Yarn is pre-installed in the GitHub Actions hosted runner machines.
RUN \
npm \
install \
--global \
"yarn@1.22.19"
ln \
--symbolic \
--force \
"$(which python3.7)" \
"/usr/bin/python3"

View File

@@ -40,7 +40,7 @@ on:
- Push Container Images
branches:
- main
types:
types:
- completed
env:
@@ -48,28 +48,38 @@ env:
GO_VERSION: '1.21'
# See: https://github.com/actions/setup-node/#readme
NODE_VERSION: '18.17'
JOB_TRANSFER_ARTIFACT: build-artifacts
YARN_VERSION: '1.22'
JOB_TRANSFER_ARTIFACT_PREFIX: build-artifacts-
CHANGELOG_ARTIFACTS: changelog
STAGED_CHANNEL_FILES_ARTIFACT: staged-channel-files
STAGED_CHANNEL_FILE_ARTIFACT_PREFIX: staged-channel-file-
BASE_BUILD_DATA: |
- config:
# Human identifier for the job.
name: Windows
runs-on: windows-2019
runs-on: [self-hosted, windows-sign-pc]
# The value is a string representing a JSON document.
# Setting this to null causes the job to run directly in the runner machine instead of in a container.
container: |
null
# Name of the secret that contains the certificate.
certificate-secret: WINDOWS_SIGNING_CERTIFICATE_PFX
certificate-secret: INSTALLER_CERT_WINDOWS_CER
# Name of the secret that contains the certificate password.
certificate-password-secret: WINDOWS_SIGNING_CERTIFICATE_PASSWORD
certificate-password-secret: INSTALLER_CERT_WINDOWS_PASSWORD
# File extension for the certificate.
certificate-extension: pfx
# Container for windows cert signing
certificate-container: INSTALLER_CERT_WINDOWS_CONTAINER
# Arbitrary identifier used to give the workflow artifact uploaded by each "build" matrix job a unique name.
job-transfer-artifact-suffix: Windows_64bit
# Quoting on the value is required here to allow the same comparison expression syntax to be used for this
# and the companion needs.select-targets.outputs.merge-channel-files property (output values always have string
# type).
mergeable-channel-file: 'false'
# as this runs on a self hosted runner, we need to avoid building with the default working directory path,
# otherwise paths in the build job will be too long for `light.exe`
# we use the below as a Symbolic link (just changing the wd will break the checkout action)
# this is a work around (see: https://github.com/actions/checkout/issues/197).
working-directory: 'C:\a'
artifacts:
- path: '*Windows_64bit.exe'
name: Windows_X86-64_interactive_installer
@@ -84,6 +94,7 @@ env:
{
\"image\": \"ghcr.io/arduino/arduino-ide/linux:main\"
}
job-transfer-artifact-suffix: Linux_64bit
mergeable-channel-file: 'false'
artifacts:
- path: '*Linux_64bit.zip'
@@ -92,7 +103,7 @@ env:
name: Linux_X86-64_app_image
- config:
name: macOS x86
runs-on: macos-latest
runs-on: macos-13
container: |
null
# APPLE_SIGNING_CERTIFICATE_P12 secret was produced by following the procedure from:
@@ -100,27 +111,32 @@ env:
certificate-secret: APPLE_SIGNING_CERTIFICATE_P12
certificate-password-secret: KEYCHAIN_PASSWORD
certificate-extension: p12
job-transfer-artifact-suffix: macOS_64bit
mergeable-channel-file: 'true'
artifacts:
- path: '*macOS_64bit.dmg'
name: macOS_X86-64_dmg
- path: '*macOS_64bit.zip'
name: macOS_X86-64_zip
PAID_RUNNER_BUILD_DATA: |
- config:
name: macOS ARM
runs-on: macos-latest-xlarge
runs-on: macos-latest
container: |
null
certificate-secret: APPLE_SIGNING_CERTIFICATE_P12
certificate-password-secret: KEYCHAIN_PASSWORD
certificate-extension: p12
job-transfer-artifact-suffix: macOS_arm64
mergeable-channel-file: 'true'
artifacts:
- path: '*macOS_arm64.dmg'
name: macOS_arm64_dmg
- path: '*macOS_arm64.zip'
name: macOS_arm64_zip
PAID_RUNNER_BUILD_DATA: |
# This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
# incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to
# `BASE_BUILD_DATA`, but the system was left in place for future use.
jobs:
run-determination:
@@ -223,7 +239,7 @@ jobs:
) | \
yq \
--output-format json \
'[.[].artifacts.[]]'
'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
)"
# The build matrix produces two macOS jobs (x86 and ARM) so the "channel update info files"
@@ -242,7 +258,7 @@ jobs:
echo "${{ env.BASE_BUILD_DATA }}" | \
yq \
--output-format json \
'[.[].artifacts.[]]'
'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
)"
merge_channel_files="false"
@@ -268,8 +284,19 @@ jobs:
- build-type-determination
- select-targets
env:
# https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
# Location of artifacts generated by build.
BUILD_ARTIFACTS_PATH: electron-app/dist/build-artifacts
# to skip passing signing credentials to electron-builder
IS_WINDOWS_CONFIG: ${{ matrix.config.name == 'Windows' }}
INSTALLER_CERT_WINDOWS_CER: "/tmp/cert.cer"
# We are hardcoding the path for signtool because is not present on the windows PATH env var by default.
# Keep in mind that this path could change when upgrading to a new runner version
SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86/signtool.exe"
WIN_CERT_PASSWORD: ${{ secrets[matrix.config.certificate-password-secret] }}
WIN_CERT_CONTAINER_NAME: ${{ secrets[matrix.config.certificate-container] }}
strategy:
matrix:
config: ${{ fromJson(needs.select-targets.outputs.build-matrix) }}
@@ -283,57 +310,53 @@ jobs:
timeout-minutes: 90
steps:
- name: Symlink custom working directory
shell: cmd
if: runner.os == 'Windows' && matrix.config.working-directory
run: |
if not exist "${{ matrix.config.working-directory }}" mklink /d "${{ matrix.config.working-directory }}" "C:\actions-runner\_work\arduino-ide\arduino-ide"
- name: Checkout
if: fromJSON(matrix.config.container) == null
uses: actions/checkout@v4
- name: Checkout
# actions/checkout@v4 has dependency on a higher version of glibc than available in the Linux container.
if: fromJSON(matrix.config.container) != null
uses: actions/checkout@v3
- name: Install Node.js
if: fromJSON(matrix.config.container) == null
if: runner.name != 'WINDOWS-SIGN-PC'
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: 'https://registry.npmjs.org'
cache: 'yarn'
# Yarn is a prerequisite for the action's cache feature, so caching should be disabled when running in the
# container where Yarn is not pre-installed.
cache: ${{ fromJSON(matrix.config.container) == null && 'yarn' || null }}
- name: Install Yarn
if: runner.name != 'WINDOWS-SIGN-PC'
run: |
npm \
install \
--global \
"yarn@${{ env.YARN_VERSION }}"
- name: Install Python 3.x
if: fromJSON(matrix.config.container) == null
if: fromJSON(matrix.config.container) == null && runner.name != 'WINDOWS-SIGN-PC'
uses: actions/setup-python@v5
with:
python-version: '3.11.x'
- name: Install Go
if: fromJSON(matrix.config.container) == null
if: runner.name != 'WINDOWS-SIGN-PC'
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Go
# actions/setup-go@v5 has dependency on a higher version of glibc than available in the Linux container.
if: fromJSON(matrix.config.container) != null
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Taskfile
if: fromJSON(matrix.config.container) == null
if: runner.name != 'WINDOWS-SIGN-PC'
uses: arduino/setup-task@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: 3.x
- name: Install Taskfile
# actions/setup-task@v2 has dependency on a higher version of glibc than available in the Linux container.
if: fromJSON(matrix.config.container) != null
uses: arduino/setup-task@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: 3.x
- name: Package
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -345,14 +368,10 @@ jobs:
IS_NIGHTLY: ${{ needs.build-type-determination.outputs.is-nightly }}
IS_RELEASE: ${{ needs.build-type-determination.outputs.is-release }}
CAN_SIGN: ${{ secrets[matrix.config.certificate-secret] != '' }}
# The CREATE_* environment vars are only used to run tests. These secrets are optional. Dependent tests will
# be skipped if not available.
CREATE_USERNAME: ${{ secrets.CREATE_USERNAME }}
CREATE_PASSWORD: ${{ secrets.CREATE_PASSWORD }}
CREATE_CLIENT_SECRET: ${{ secrets.CREATE_CLIENT_SECRET }}
working-directory: ${{ matrix.config.working-directory || './' }}
run: |
# See: https://www.electron.build/code-signing
if [ $CAN_SIGN = false ]; then
if [ $CAN_SIGN = false ] || [ $IS_WINDOWS_CONFIG = true ]; then
echo "Skipping the app signing: certificate not provided."
else
export CSC_LINK="${{ runner.temp }}/signing_certificate.${{ matrix.config.certificate-extension }}"
@@ -362,13 +381,9 @@ jobs:
fi
npx node-gyp install
yarn install --immutable
yarn install
yarn --cwd arduino-ide-extension build
yarn test
yarn --cwd arduino-ide-extension test:slow
yarn --cwd arduino-ide-extension lint
yarn --cwd electron-app rebuild
yarn --cwd electron-app build
yarn --cwd electron-app package
@@ -379,6 +394,7 @@ jobs:
if: >
needs.select-targets.outputs.merge-channel-files == 'true' &&
matrix.config.mergeable-channel-file == 'true'
working-directory: ${{ matrix.config.working-directory || './' }}
run: |
staged_channel_files_path="${{ runner.temp }}/staged-channel-files"
mkdir "$staged_channel_files_path"
@@ -391,20 +407,26 @@ jobs:
echo "STAGED_CHANNEL_FILES_PATH=$staged_channel_files_path" >> "$GITHUB_ENV"
- name: Upload staged-for-merge channel file artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: >
needs.select-targets.outputs.merge-channel-files == 'true' &&
matrix.config.mergeable-channel-file == 'true'
with:
if-no-files-found: error
name: ${{ env.STAGED_CHANNEL_FILES_ARTIFACT }}
path: ${{ env.STAGED_CHANNEL_FILES_PATH }}
name: ${{ env.STAGED_CHANNEL_FILE_ARTIFACT_PREFIX }}${{ matrix.config.job-transfer-artifact-suffix }}
path: ${{ matrix.config.working-directory && format('{0}/{1}', matrix.config.working-directory, env.STAGED_CHANNEL_FILES_PATH) || env.STAGED_CHANNEL_FILES_PATH }}
- name: Upload [GitHub Actions]
uses: actions/upload-artifact@v3
- name: Upload builds to job transfer artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
path: ${{ env.BUILD_ARTIFACTS_PATH }}
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}${{ matrix.config.job-transfer-artifact-suffix }}
path: ${{ matrix.config.working-directory && format('{0}/{1}', matrix.config.working-directory, env.BUILD_ARTIFACTS_PATH) || env.BUILD_ARTIFACTS_PATH }}
- name: Manual Clean up for self-hosted runners
if: runner.os == 'Windows' && matrix.config.working-directory
shell: cmd
run: |
rmdir /s /q "${{ matrix.config.working-directory }}\${{ env.BUILD_ARTIFACTS_PATH }}"
merge-channel-files:
needs:
@@ -423,16 +445,17 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Download staged-for-merge channel files artifact
uses: actions/download-artifact@v3
- name: Download staged-for-merge channel file artifacts
uses: actions/download-artifact@v4
with:
name: ${{ env.STAGED_CHANNEL_FILES_ARTIFACT }}
merge-multiple: true
path: ${{ env.CHANNEL_FILES_PATH }}
pattern: ${{ env.STAGED_CHANNEL_FILE_ARTIFACT_PREFIX }}*
- name: Remove no longer needed artifact
uses: geekyeggo/delete-artifact@v2
- name: Remove no longer needed artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: ${{ env.STAGED_CHANNEL_FILES_ARTIFACT }}
name: ${{ env.STAGED_CHANNEL_FILE_ARTIFACT_PREFIX }}*
- name: Install Node.js
uses: actions/setup-node@v4
@@ -462,11 +485,11 @@ jobs:
--channel "${{ needs.build-type-determination.outputs.channel-name }}" \
--input "${{ env.CHANNEL_FILES_PATH }}"
- name: Upload merged channel files to job transfer artifact
uses: actions/upload-artifact@v3
- name: Upload merged channel files job transfer artifact
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}channel-files
path: ${{ env.CHANNEL_FILES_PATH }}
artifacts:
@@ -477,22 +500,25 @@ jobs:
if: always() && needs.build.result != 'skipped'
runs-on: ubuntu-latest
env:
BUILD_ARTIFACTS_FOLDER: build-artifacts
strategy:
matrix:
artifact: ${{ fromJson(needs.select-targets.outputs.artifact-matrix) }}
steps:
- name: Download job transfer artifact
uses: actions/download-artifact@v3
- name: Download job transfer artifact that contains ${{ matrix.artifact.name }} tester build
uses: actions/download-artifact@v4
with:
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
path: ${{ env.JOB_TRANSFER_ARTIFACT }}
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}${{ matrix.artifact.job-transfer-artifact-suffix }}
path: ${{ env.BUILD_ARTIFACTS_FOLDER }}
- name: Upload tester build artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact.name }}
path: ${{ env.JOB_TRANSFER_ARTIFACT }}/${{ matrix.artifact.path }}
path: ${{ env.BUILD_ARTIFACTS_FOLDER }}/${{ matrix.artifact.path }}
changelog:
needs:
@@ -535,11 +561,11 @@ jobs:
echo "$BODY" > CHANGELOG.txt
- name: Upload Changelog [GitHub Actions]
- name: Upload changelog job transfer artifact
if: needs.build-type-determination.outputs.is-nightly == 'true'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}changelog
path: CHANGELOG.txt
publish:
@@ -558,18 +584,23 @@ jobs:
needs.build-type-determination.outputs.publish-to-s3 == 'true' &&
needs.build-type-determination.outputs.is-nightly == 'true'
runs-on: ubuntu-latest
env:
ARTIFACTS_FOLDER: build-artifacts
steps:
- name: Download [GitHub Actions]
uses: actions/download-artifact@v3
- name: Download all job transfer artifacts
uses: actions/download-artifact@v4
with:
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
path: ${{ env.JOB_TRANSFER_ARTIFACT }}
merge-multiple: true
path: ${{ env.ARTIFACTS_FOLDER }}
pattern: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}*
- name: Publish Nightly [S3]
uses: docker://plugins/s3
env:
PLUGIN_SOURCE: '${{ env.JOB_TRANSFER_ARTIFACT }}/*'
PLUGIN_STRIP_PREFIX: '${{ env.JOB_TRANSFER_ARTIFACT }}/'
PLUGIN_SOURCE: '${{ env.ARTIFACTS_FOLDER }}/*'
PLUGIN_STRIP_PREFIX: '${{ env.ARTIFACTS_FOLDER }}/'
PLUGIN_TARGET: '/arduino-ide/nightly'
PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
@@ -590,12 +621,17 @@ jobs:
needs.changelog.result == 'success' &&
needs.build-type-determination.outputs.is-release == 'true'
runs-on: ubuntu-latest
env:
ARTIFACTS_FOLDER: build-artifacts
steps:
- name: Download [GitHub Actions]
uses: actions/download-artifact@v3
- name: Download all job transfer artifacts
uses: actions/download-artifact@v4
with:
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
path: ${{ env.JOB_TRANSFER_ARTIFACT }}
merge-multiple: true
path: ${{ env.ARTIFACTS_FOLDER }}
pattern: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}*
- name: Get Tag
id: tag_name
@@ -603,11 +639,11 @@ jobs:
echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Publish Release [GitHub]
uses: svenstaro/upload-release-action@2.7.0
uses: svenstaro/upload-release-action@2.9.0
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
release_name: ${{ steps.tag_name.outputs.TAG_NAME }}
file: ${{ env.JOB_TRANSFER_ARTIFACT }}/*
file: ${{ env.ARTIFACTS_FOLDER }}/*
tag: ${{ github.ref }}
file_glob: true
body: ${{ needs.changelog.outputs.BODY }}
@@ -616,8 +652,8 @@ jobs:
if: needs.build-type-determination.outputs.publish-to-s3 == 'true'
uses: docker://plugins/s3
env:
PLUGIN_SOURCE: '${{ env.JOB_TRANSFER_ARTIFACT }}/*'
PLUGIN_STRIP_PREFIX: '${{ env.JOB_TRANSFER_ARTIFACT }}/'
PLUGIN_SOURCE: '${{ env.ARTIFACTS_FOLDER }}/*'
PLUGIN_STRIP_PREFIX: '${{ env.ARTIFACTS_FOLDER }}/'
PLUGIN_TARGET: '/arduino-ide'
PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
@@ -635,7 +671,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Remove unneeded job transfer artifact
uses: geekyeggo/delete-artifact@v2
- name: Remove unneeded job transfer artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: ${{ env.JOB_TRANSFER_ARTIFACT }}
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}*

View File

@@ -74,9 +74,11 @@ jobs:
- identifier: macOS signing certificate # Text used to identify certificate in notifications.
certificate-secret: APPLE_SIGNING_CERTIFICATE_P12 # Name of the secret that contains the certificate.
password-secret: KEYCHAIN_PASSWORD # Name of the secret that contains the certificate password.
type: pkcs12
- identifier: Windows signing certificate
certificate-secret: WINDOWS_SIGNING_CERTIFICATE_PFX
password-secret: WINDOWS_SIGNING_CERTIFICATE_PASSWORD
certificate-secret: INSTALLER_CERT_WINDOWS_CER
# The password for the Windows certificate is not needed, because its not a container, but a single certificate.
type: x509
steps:
- name: Set certificate path environment variable
@@ -95,7 +97,7 @@ jobs:
CERTIFICATE_PASSWORD: ${{ secrets[matrix.certificate.password-secret] }}
run: |
(
openssl pkcs12 \
openssl ${{ matrix.certificate.type }} \
-in "${{ env.CERTIFICATE_PATH }}" \
-legacy \
-noout \
@@ -122,26 +124,43 @@ jobs:
CERTIFICATE_PASSWORD: ${{ secrets[matrix.certificate.password-secret] }}
id: get-days-before-expiration
run: |
EXPIRATION_DATE="$(
(
openssl pkcs12 \
-in "${{ env.CERTIFICATE_PATH }}" \
-clcerts \
-legacy \
-nodes \
-passin env:CERTIFICATE_PASSWORD
) | (
openssl x509 \
-noout \
-enddate
) | (
grep \
--max-count=1 \
--only-matching \
--perl-regexp \
'notAfter=(\K.*)'
)
)"
if [[ ${{ matrix.certificate.type }} == "pkcs12" ]]; then
EXPIRATION_DATE="$(
(
openssl pkcs12 \
-in "${{ env.CERTIFICATE_PATH }}" \
-clcerts \
-legacy \
-nodes \
-passin env:CERTIFICATE_PASSWORD
) | (
openssl x509 \
-noout \
-enddate
) | (
grep \
--max-count=1 \
--only-matching \
--perl-regexp \
'notAfter=(\K.*)'
)
)"
elif [[ ${{ matrix.certificate.type }} == "x509" ]]; then
EXPIRATION_DATE="$(
(
openssl x509 \
-in ${{ env.CERTIFICATE_PATH }} \
-noout \
-enddate
) | (
grep \
--max-count=1 \
--only-matching \
--perl-regexp \
'notAfter=(\K.*)'
)
)"
fi
DAYS_BEFORE_EXPIRATION="$((($(date --utc --date="$EXPIRATION_DATE" +%s) - $(date --utc +%s)) / 60 / 60 / 24))"

View File

@@ -43,7 +43,7 @@ jobs:
uses: actions/checkout@v4
- name: Build and push to local registry
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
file: ${{ matrix.image.path }}

88
.github/workflows/check-javascript.yml vendored Normal file
View File

@@ -0,0 +1,88 @@
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-javascript-task.md
name: Check JavaScript
env:
# See: https://github.com/actions/setup-node/#readme
NODE_VERSION: 18.17
# See: https://docs.github.com/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows
on:
create:
push:
paths:
- '.github/workflows/check-javascript.ya?ml'
- '**/.eslintignore'
- '**/.eslintrc*'
- '**/.npmrc'
- '**/package.json'
- '**/package-lock.json'
- '**/yarn.lock'
- '**.jsx?'
pull_request:
paths:
- '.github/workflows/check-javascript.ya?ml'
- '**/.eslintignore'
- '**/.eslintrc*'
- '**/.npmrc'
- '**/package.json'
- '**/package-lock.json'
- '**/yarn.lock'
- '**.jsx?'
workflow_dispatch:
repository_dispatch:
jobs:
run-determination:
runs-on: ubuntu-latest
permissions: {}
outputs:
result: ${{ steps.determination.outputs.result }}
steps:
- name: Determine if the rest of the workflow should run
id: determination
run: |
RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x"
# The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead.
if [[
"${{ github.event_name }}" != "create" ||
"${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX
]]; then
# Run the other jobs.
RESULT="true"
else
# There is no need to run the other jobs.
RESULT="false"
fi
echo "result=$RESULT" >> $GITHUB_OUTPUT
check:
needs: run-determination
if: needs.run-determination.outputs.result == 'true'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: yarn
node-version: ${{ env.NODE_VERSION }}
- name: Install npm package dependencies
env:
# Avoid failure of @vscode/ripgrep installation due to GitHub API rate limiting:
# https://github.com/microsoft/vscode-ripgrep#github-api-limit-note
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
yarn install
- name: Lint
run: |
yarn \
--cwd arduino-ide-extension \
lint

91
.github/workflows/check-yarn.yml vendored Normal file
View File

@@ -0,0 +1,91 @@
name: Check Yarn
# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows
on:
create:
push:
paths:
- ".github/workflows/check-yarn.ya?ml"
- "**/.yarnrc"
- "**/package.json"
- "**/package-lock.json"
- "**/yarn.lock"
pull_request:
paths:
- ".github/workflows/check-yarn.ya?ml"
- "**/.yarnrc"
- "**/package.json"
- "**/package-lock.json"
- "**/yarn.lock"
schedule:
# Run every Tuesday at 8 AM UTC to catch breakage resulting from changes to the JSON schema.
- cron: "0 8 * * TUE"
workflow_dispatch:
repository_dispatch:
jobs:
run-determination:
runs-on: ubuntu-latest
permissions: {}
outputs:
result: ${{ steps.determination.outputs.result }}
steps:
- name: Determine if the rest of the workflow should run
id: determination
run: |
RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x"
# The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead.
if [[
"${{ github.event_name }}" != "create" ||
"${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX
]]; then
# Run the other jobs.
RESULT="true"
else
# There is no need to run the other jobs.
RESULT="false"
fi
echo "result=$RESULT" >> $GITHUB_OUTPUT
check-sync:
name: check-sync (${{ matrix.project.path }})
needs: run-determination
if: needs.run-determination.outputs.result == 'true'
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
fail-fast: false
matrix:
project:
- path: .
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: yarn
node-version: ${{ env.NODE_VERSION }}
- name: Install npm package dependencies
env:
# Avoid failure of @vscode/ripgrep installation due to GitHub API rate limiting:
# https://github.com/microsoft/vscode-ripgrep#github-api-limit-note
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
yarn \
install \
--ignore-scripts
- name: Check yarn.lock
run: |
git \
diff \
--color \
--exit-code \
"${{ matrix.project.path }}/yarn.lock"

View File

@@ -46,7 +46,7 @@ jobs:
TRANSIFEX_API_KEY: ${{ secrets.TRANSIFEX_API_KEY }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v7
with:
commit-message: Updated translation files
title: Update translation files

View File

@@ -59,7 +59,7 @@ jobs:
images: ${{ matrix.image.registry }}/${{ matrix.image.name }}
- name: Build and push image
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
file: ${{ matrix.image.path }}

View File

@@ -19,7 +19,7 @@ on:
env:
CONFIGURATIONS_FOLDER: .github/label-configuration-files
CONFIGURATIONS_ARTIFACT: label-configuration-files
CONFIGURATIONS_ARTIFACT_PREFIX: label-configuration-file-
jobs:
check:
@@ -71,13 +71,13 @@ jobs:
file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }}
- name: Pass configuration files to next job via workflow artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
path: |
*.yaml
*.yml
if-no-files-found: error
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}${{ matrix.filename }}
sync:
needs: download
@@ -108,16 +108,17 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download configuration files artifact
uses: actions/download-artifact@v3
- name: Download configuration file artifacts
uses: actions/download-artifact@v4
with:
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
merge-multiple: true
pattern: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
path: ${{ env.CONFIGURATIONS_FOLDER }}
- name: Remove unneeded artifact
uses: geekyeggo/delete-artifact@v2
- name: Remove unneeded artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
- name: Merge label configuration files
run: |

134
.github/workflows/test-javascript.yml vendored Normal file
View File

@@ -0,0 +1,134 @@
name: Test JavaScript
env:
# See vars.GO_VERSION field of https://github.com/arduino/arduino-cli/blob/master/DistTasks.yml
GO_VERSION: '1.21'
# See: https://github.com/actions/setup-node/#readme
NODE_VERSION: 18.17
on:
push:
paths:
- ".github/workflows/test-javascript.ya?ml"
- "**/.mocharc.js"
- "**/.mocharc.jsonc?"
- "**/.mocharc.ya?ml"
- "**/package.json"
- "**/package-lock.json"
- "**/yarn.lock"
- "tests/testdata/**"
- "**/tsconfig.json"
- "**.[jt]sx?"
pull_request:
paths:
- ".github/workflows/test-javascript.ya?ml"
- "**/.mocharc.js"
- "**/.mocharc.jsonc?"
- "**/.mocharc.ya?ml"
- "**/package.json"
- "**/package-lock.json"
- "**/yarn.lock"
- "tests/testdata/**"
- "**/tsconfig.json"
- "**.[jt]sx?"
workflow_dispatch:
repository_dispatch:
jobs:
run-determination:
runs-on: ubuntu-latest
permissions: {}
outputs:
result: ${{ steps.determination.outputs.result }}
steps:
- name: Determine if the rest of the workflow should run
id: determination
run: |
RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x"
# The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead.
if [[
"${{ github.event_name }}" != "create" ||
"${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX
]]; then
# Run the other jobs.
RESULT="true"
else
# There is no need to run the other jobs.
RESULT="false"
fi
echo "result=$RESULT" >> $GITHUB_OUTPUT
test:
name: test (${{ matrix.project.path }}, ${{ matrix.operating-system }})
needs: run-determination
if: needs.run-determination.outputs.result == 'true'
runs-on: ${{ matrix.operating-system }}
defaults:
run:
shell: bash
permissions:
contents: read
strategy:
fail-fast: false
matrix:
project:
- path: .
operating-system:
- macos-latest
- ubuntu-latest
- windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: yarn
node-version: ${{ env.NODE_VERSION }}
# See: https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisites
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.11.x'
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Taskfile
uses: arduino/setup-task@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: 3.x
- name: Install npm package dependencies
env:
# Avoid failure of @vscode/ripgrep installation due to GitHub API rate limiting:
# https://github.com/microsoft/vscode-ripgrep#github-api-limit-note
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
yarn install
- name: Compile TypeScript
run: |
yarn \
--cwd arduino-ide-extension \
build
- name: Run tests
env:
# These secrets are optional. Dependent tests will be skipped if not available.
CREATE_USERNAME: ${{ secrets.CREATE_USERNAME }}
CREATE_PASSWORD: ${{ secrets.CREATE_PASSWORD }}
CREATE_CLIENT_SECRET: ${{ secrets.CREATE_CLIENT_SECRET }}
run: |
yarn test
yarn \
--cwd arduino-ide-extension \
test:slow

View File

@@ -55,7 +55,7 @@ jobs:
run: yarn run themes:generate
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v7
with:
commit-message: Updated themes
title: Update themes

View File

@@ -2,7 +2,9 @@
# Arduino IDE 2.x
[![Arduino IDE](https://github.com/arduino/arduino-ide/workflows/Arduino%20IDE/badge.svg)](https://github.com/arduino/arduino-ide/actions?query=workflow%3A%22Arduino+IDE%22)
[![Build status](https://github.com/arduino/arduino-ide/actions/workflows/build.yml/badge.svg)](https://github.com/arduino/arduino-ide/actions/workflows/build.yml)
[![Check JavaScript status](https://github.com/arduino/arduino-ide/actions/workflows/check-javascript.yml/badge.svg)](https://github.com/arduino/arduino-ide/actions/workflows/check-javascript.yml)
[![Test JavaScript status](https://github.com/arduino/arduino-ide/actions/workflows/test-javascript.yml/badge.svg)](https://github.com/arduino/arduino-ide/actions/workflows/test-javascript.yml)
This repository contains the source code of the Arduino IDE 2.x. If you're looking for the old IDE, go to the [repository of the 1.x version](https://github.com/arduino/Arduino).

View File

@@ -1,6 +1,6 @@
{
"name": "arduino-ide-extension",
"version": "2.3.3",
"version": "2.3.4",
"description": "An extension for Theia building the Arduino IDE",
"license": "AGPL-3.0-or-later",
"scripts": {
@@ -13,7 +13,7 @@
"download-ls": "node ./scripts/download-ls.js",
"download-examples": "node ./scripts/download-examples.js",
"generate-protocol": "node ./scripts/generate-protocol.js",
"lint": "eslint",
"lint": "eslint .",
"prebuild": "rimraf lib",
"build": "tsc",
"build:dev": "yarn build",
@@ -39,6 +39,7 @@
"@theia/outline-view": "1.41.0",
"@theia/output": "1.41.0",
"@theia/plugin-ext": "1.41.0",
"@theia/plugin-ext-vscode": "1.41.0",
"@theia/preferences": "1.41.0",
"@theia/scm": "1.41.0",
"@theia/search-in-workspace": "1.41.0",
@@ -66,6 +67,7 @@
"cross-fetch": "^3.1.5",
"dateformat": "^3.0.3",
"deepmerge": "^4.2.2",
"dompurify": "^2.4.7",
"drivelist": "^9.2.4",
"electron-updater": "^4.6.5",
"fast-deep-equal": "^3.1.3",
@@ -73,7 +75,7 @@
"fast-safe-stringify": "^2.1.1",
"filename-reserved-regex": "^2.0.0",
"fqbn": "^1.0.5",
"glob": "^7.1.6",
"glob": "10.4.4",
"google-protobuf": "^3.20.1",
"hash.js": "^1.1.7",
"is-online": "^10.0.0",
@@ -127,8 +129,8 @@
"rimraf": "^2.6.1"
},
"optionalDependencies": {
"grpc-tools": "^1.12.4",
"protoc": "^1.0.4"
"@pingghost/protoc": "^1.0.2",
"grpc-tools": "^1.12.4"
},
"mocha": {
"require": [
@@ -170,7 +172,7 @@
],
"arduino": {
"arduino-cli": {
"version": "0.36.0-rc.1"
"version": "1.1.1"
},
"arduino-fwuploader": {
"version": "2.4.1"
@@ -179,7 +181,7 @@
"version": {
"owner": "arduino",
"repo": "arduino-language-server",
"commitish": "91c2ba8"
"commitish": "05ec308"
}
},
"clangd": {

View File

@@ -34,7 +34,7 @@
}, '');
const args = process.argv.slice(2);
if (args.length == 0) {
if (args.length === 0) {
console.error('Missing argument to destination file');
process.exit(1);
}

View File

@@ -3,13 +3,15 @@
(async () => {
const os = require('node:os');
const path = require('node:path');
const { mkdirSync, promises: fs, rmSync } = require('node:fs');
const decompress = require('decompress');
const unzip = require('decompress-unzip');
const { mkdirSync, promises: fs, rmSync, existsSync } = require('node:fs');
const { exec } = require('./utils');
const glob = require('glob');
const { SemVer, gte, valid: validSemVer } = require('semver');
const protoc = path.dirname(require('protoc/protoc'));
const repository = await fs.mkdtemp(path.join(os.tmpdir(), 'arduino-cli-'));
const { glob } = require('glob');
const { SemVer, gte, valid: validSemVer, eq } = require('semver');
// Use a node-protoc fork until apple arm32 is supported
// https://github.com/YePpHa/node-protoc/pull/10
const protoc = path.dirname(require('@pingghost/protoc/protoc'));
const { owner, repo, commitish } = (() => {
const pkg = require(path.join(__dirname, '..', 'package.json'));
@@ -56,11 +58,6 @@
return { owner, repo, commitish };
})();
const url = `https://github.com/${owner}/${repo}.git`;
console.log(`>>> Cloning repository from '${url}'...`);
exec('git', ['clone', url, repository], { logStdout: true });
console.log(`<<< Repository cloned.`);
const { platform } = process;
const resourcesFolder = path.join(
__dirname,
@@ -86,112 +83,207 @@
// - `git-snapshot` for local build executed via `task build`. We do not do this.
// - rest, we assume it is a valid semver and has the corresponding tagged code, we use the tag to generate the APIs from the `proto` files.
/*
{
"Application": "arduino-cli",
"VersionString": "nightly-20210126",
"Commit": "079bb6c6",
"Status": "alpha",
"Date": "2021-01-26T01:46:31Z"
}
*/
const versionObject = JSON.parse(versionJson);
let version = versionObject.VersionString;
if (validSemVer(version)) {
// https://github.com/arduino/arduino-cli/pull/2374
if (gte(new SemVer(version, { loose: true }), new SemVer('0.35.0-rc.1'))) {
version = `v${version}`;
{
"Application": "arduino-cli",
"VersionString": "nightly-20210126",
"Commit": "079bb6c6",
"Status": "alpha",
"Date": "2021-01-26T01:46:31Z"
}
console.log(`>>> Checking out tagged version: '${version}'...`);
exec('git', ['-C', repository, 'fetch', '--all', '--tags'], {
logStdout: true,
*/
const versionObject = JSON.parse(versionJson);
async function globProtos(folder, pattern = '**/*.proto') {
let protos = [];
try {
const matches = await glob(pattern, { cwd: folder });
protos = matches.map((filename) => path.join(folder, filename));
} catch (error) {
console.log(error.stack ?? error.message);
}
return protos;
}
async function getProtosFromRepo(
commitish = '',
version = '',
owner = 'arduino',
repo = 'arduino-cli'
) {
const repoFolder = await fs.mkdtemp(path.join(os.tmpdir(), 'arduino-cli-'));
const url = `https://github.com/${owner}/${repo}.git`;
console.log(`>>> Cloning repository from '${url}'...`);
exec('git', ['clone', url, repoFolder], { logStdout: true });
console.log(`<<< Repository cloned.`);
if (validSemVer(version)) {
let versionTag = version;
// https://github.com/arduino/arduino-cli/pull/2374
if (
gte(new SemVer(version, { loose: true }), new SemVer('0.35.0-rc.1'))
) {
versionTag = `v${version}`;
}
console.log(`>>> Checking out tagged version: '${versionTag}'...`);
exec('git', ['-C', repoFolder, 'fetch', '--all', '--tags'], {
logStdout: true,
});
exec(
'git',
['-C', repoFolder, 'checkout', `tags/${versionTag}`, '-b', versionTag],
{ logStdout: true }
);
console.log(`<<< Checked out tagged version: '${versionTag}'.`);
} else if (commitish) {
console.log(`>>> Checking out commitish: '${commitish}'...`);
exec('git', ['-C', repoFolder, 'checkout', commitish], {
logStdout: true,
});
console.log(`<<< Checked out commitish: '${commitish}'.`);
} else {
console.log(
`WARN: no 'git checkout'. Generating from the HEAD revision.`
);
}
const rpcFolder = await fs.mkdtemp(
path.join(os.tmpdir(), 'arduino-cli-rpc')
);
// Copy the the repository rpc folder so we can remove the repository
await fs.cp(path.join(repoFolder, 'rpc'), path.join(rpcFolder), {
recursive: true,
});
exec(
'git',
['-C', repository, 'checkout', `tags/${version}`, '-b', version],
{ logStdout: true }
rmSync(repoFolder, { recursive: true, maxRetries: 5, force: true });
// Patch for https://github.com/arduino/arduino-cli/issues/2755
// Google proto files are removed from source since v1.1.0
if (!existsSync(path.join(rpcFolder, 'google'))) {
// Include packaged google proto files from v1.1.1
// See https://github.com/arduino/arduino-cli/pull/2761
console.log(`>>> Missing google proto files. Including from v1.1.1...`);
const v111ProtoFolder = await getProtosFromZip('1.1.1');
// Create an return a folder name google in rpcFolder
const googleFolder = path.join(rpcFolder, 'google');
await fs.cp(path.join(v111ProtoFolder, 'google'), googleFolder, {
recursive: true,
});
console.log(`<<< Included google proto files from v1.1.1.`);
}
return rpcFolder;
}
async function getProtosFromZip(version) {
if (!version) {
console.log(`Could not download proto files: CLI version not provided.`);
process.exit(1);
}
console.log(`>>> Downloading proto files from zip for ${version}.`);
const url = `https://downloads.arduino.cc/arduino-cli/arduino-cli_${version}_proto.zip`;
const protos = await fs.mkdtemp(
path.join(os.tmpdir(), 'arduino-cli-proto')
);
console.log(`<<< Checked out tagged version: '${version}'.`);
} else if (commitish) {
const { default: download } = await import('@xhmikosr/downloader');
/** @type {import('node:buffer').Buffer} */
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const data = await download(url);
await decompress(data, protos, {
plugins: [unzip()],
filter: (file) => file.path.endsWith('.proto'),
});
console.log(
`>>> Checking out commitish from 'package.json': '${commitish}'...`
);
exec('git', ['-C', repository, 'checkout', commitish], { logStdout: true });
console.log(
`<<< Checked out commitish from 'package.json': '${commitish}'.`
`<<< Finished downloading and extracting proto files for ${version}.`
);
return protos;
}
let protosFolder;
if (commitish) {
protosFolder = await getProtosFromRepo(commitish, undefined, owner, repo);
} else if (
versionObject.VersionString &&
validSemVer(versionObject.VersionString)
) {
const version = versionObject.VersionString;
// v1.1.0 does not contains google proto files in zip
// See https://github.com/arduino/arduino-cli/issues/2755
const isV110 = eq(new SemVer(version, { loose: true }), '1.1.0');
protosFolder = isV110
? await getProtosFromRepo(undefined, version)
: await getProtosFromZip(version);
} else if (versionObject.Commit) {
console.log(
`>>> Checking out commitish from the CLI: '${versionObject.Commit}'...`
);
exec('git', ['-C', repository, 'checkout', versionObject.Commit], {
logStdout: true,
});
console.log(
`<<< Checked out commitish from the CLI: '${versionObject.Commit}'.`
);
} else {
console.log(`WARN: no 'git checkout'. Generating from the HEAD revision.`);
protosFolder = await getProtosFromRepo(versionObject.Commit);
}
if (!protosFolder) {
console.log(`Could not get proto files: missing commitish or version.`);
process.exit(1);
}
const protos = await globProtos(protosFolder);
if (!protos || protos.length === 0) {
rmSync(protosFolder, { recursive: true, maxRetries: 5, force: true });
console.log(`Could not find any .proto files under ${protosFolder}.`);
process.exit(1);
}
console.log('>>> Generating TS/JS API from:');
exec('git', ['-C', repository, 'rev-parse', '--abbrev-ref', 'HEAD'], {
logStdout: true,
});
const rpc = path.join(repository, 'rpc');
const out = path.join(__dirname, '..', 'src', 'node', 'cli-protocol');
// Must wipe the gen output folder. Otherwise, dangling service implementation remain in IDE2 code,
// although it has been removed from the proto file.
// For example, https://github.com/arduino/arduino-cli/commit/50a8bf5c3e61d5b661ccfcd6a055e82eeb510859.
rmSync(out, { recursive: true, maxRetries: 5, force: true });
// rmSync(out, { recursive: true, maxRetries: 5, force: true });
mkdirSync(out, { recursive: true });
const protos = await new Promise((resolve) =>
glob('**/*.proto', { cwd: rpc }, (error, matches) => {
if (error) {
console.log(error.stack ?? error.message);
resolve([]);
return;
}
resolve(matches.map((filename) => path.join(rpc, filename)));
})
);
if (!protos || protos.length === 0) {
console.log(`Could not find any .proto files under ${rpc}.`);
process.exit(1);
try {
// Generate JS code from the `.proto` files.
exec(
'grpc_tools_node_protoc',
[
`--js_out=import_style=commonjs,binary:${out}`,
`--grpc_out=generate_package_definition:${out}`,
'-I',
protosFolder,
...protos,
],
{ logStdout: true }
);
// Generate the `.d.ts` files for JS.
exec(
path.join(protoc, `protoc${platform === 'win32' ? '.exe' : ''}`),
[
`--plugin=protoc-gen-ts=${path.resolve(
__dirname,
'..',
'node_modules',
'.bin',
`protoc-gen-ts${platform === 'win32' ? '.cmd' : ''}`
)}`,
`--ts_out=generate_package_definition:${out}`,
'-I',
protosFolder,
...protos,
],
{ logStdout: true }
);
} catch (error) {
console.log(error);
} finally {
rmSync(protosFolder, { recursive: true, maxRetries: 5, force: true });
}
// Generate JS code from the `.proto` files.
exec(
'grpc_tools_node_protoc',
[
`--js_out=import_style=commonjs,binary:${out}`,
`--grpc_out=generate_package_definition:${out}`,
'-I',
rpc,
...protos,
],
{ logStdout: true }
);
// Generate the `.d.ts` files for JS.
exec(
path.join(protoc, `protoc${platform === 'win32' ? '.exe' : ''}`),
[
`--plugin=protoc-gen-ts=${path.resolve(
__dirname,
'..',
'node_modules',
'.bin',
`protoc-gen-ts${platform === 'win32' ? '.cmd' : ''}`
)}`,
`--ts_out=generate_package_definition:${out}`,
'-I',
rpc,
...protos,
],
{ logStdout: true }
);
console.log('<<< Generation was successful.');
})();

View File

@@ -1,5 +1,9 @@
import '../../src/browser/style/index.css';
import { Container, ContainerModule } from '@theia/core/shared/inversify';
import {
Container,
ContainerModule,
interfaces,
} from '@theia/core/shared/inversify';
import { WidgetFactory } from '@theia/core/lib/browser/widget-manager';
import { CommandContribution } from '@theia/core/lib/common/command';
import { bindViewContribution } from '@theia/core/lib/browser/shell/view-contribution';
@@ -53,6 +57,8 @@ import {
DockPanelRenderer as TheiaDockPanelRenderer,
TabBarRendererFactory,
ContextMenuRenderer,
createTreeContainer,
TreeWidget,
} from '@theia/core/lib/browser';
import { MenuContribution } from '@theia/core/lib/common/menu';
import {
@@ -372,6 +378,19 @@ import { DebugSessionWidget } from '@theia/debug/lib/browser/view/debug-session-
import { DebugConfigurationWidget } from './theia/debug/debug-configuration-widget';
import { DebugConfigurationWidget as TheiaDebugConfigurationWidget } from '@theia/debug/lib/browser/view/debug-configuration-widget';
import { DebugToolBar } from '@theia/debug/lib/browser/view/debug-toolbar-widget';
import {
PluginTree,
PluginTreeModel,
TreeViewWidgetOptions,
VIEW_ITEM_CONTEXT_MENU,
} from '@theia/plugin-ext/lib/main/browser/view/tree-view-widget';
import { TreeViewDecoratorService } from '@theia/plugin-ext/lib/main/browser/view/tree-view-decorator-service';
import { PLUGIN_VIEW_DATA_FACTORY_ID } from '@theia/plugin-ext/lib/main/browser/view/plugin-view-registry';
import { TreeViewWidget } from './theia/plugin-ext/tree-view-widget';
import {
VersionWelcomeDialog,
VersionWelcomeDialogProps,
} from './dialogs/version-welcome-dialog';
// Hack to fix copy/cut/paste issue after electron version update in Theia.
// https://github.com/eclipse-theia/theia/issues/12487
@@ -999,6 +1018,11 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
title: 'IDEUpdater',
});
bind(VersionWelcomeDialog).toSelf().inSingletonScope();
bind(VersionWelcomeDialogProps).toConstantValue({
title: 'VersionWelcomeDialog',
});
bind(UserFieldsDialog).toSelf().inSingletonScope();
bind(UserFieldsDialogProps).toConstantValue({
title: 'UserFields',
@@ -1082,4 +1106,43 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
rebind(TheiaTerminalFrontendContribution).toService(
TerminalFrontendContribution
);
bindViewsWelcome_TheiaGH14309({ bind, widget: TreeViewWidget });
});
// Align the viewsWelcome rendering with VS Code (https://github.com/eclipse-theia/theia/issues/14309)
// Copied from Theia code but with customized TreeViewWidget with the customized viewsWelcome rendering
// https://github.com/eclipse-theia/theia/blob/0c5f69455d9ee355b1a7ca510ffa63d2b20f0c77/packages/plugin-ext/src/main/browser/plugin-ext-frontend-module.ts#L159-L181
function bindViewsWelcome_TheiaGH14309({
bind,
widget,
}: {
bind: interfaces.Bind;
widget: interfaces.Newable<TreeWidget>;
}) {
bind(WidgetFactory)
.toDynamicValue(({ container }) => ({
id: PLUGIN_VIEW_DATA_FACTORY_ID,
createWidget: (options: TreeViewWidgetOptions) => {
const props = {
contextMenuPath: VIEW_ITEM_CONTEXT_MENU,
expandOnlyOnExpansionToggleClick: true,
expansionTogglePadding: 22,
globalSelection: true,
leftPadding: 8,
search: true,
multiSelect: options.multiSelect,
};
const child = createTreeContainer(container, {
props,
tree: PluginTree,
model: PluginTreeModel,
widget,
decoratorService: TreeViewDecoratorService,
});
child.bind(TreeViewWidgetOptions).toConstantValue(options);
return child.get(TreeWidget);
},
}))
.inSingletonScope();
}

View File

@@ -137,6 +137,18 @@ const properties: ArduinoPreferenceSchemaProperties = {
'arduino.upload.verify': {
type: 'boolean',
default: false,
description: nls.localize(
'arduino/preferences/upload.verify',
'After upload, verify that the contents of the memory on the board match the uploaded binary.'
),
},
'arduino.upload.autoVerify': {
type: 'boolean',
default: true,
description: nls.localize(
'arduino/preferences/upload.autoVerify',
"True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing."
),
},
'arduino.window.autoScale': {
type: 'boolean',
@@ -228,6 +240,14 @@ const properties: ArduinoPreferenceSchemaProperties = {
),
default: 'https://api2.arduino.cc/create',
},
'arduino.cloud.sharedSpaceID': {
type: 'string',
description: nls.localize(
'arduino/preferences/cloud.sharedSpaceId',
'The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.'
),
default: '',
},
'arduino.auth.clientID': {
type: 'string',
description: nls.localize(
@@ -319,6 +339,7 @@ export interface ArduinoConfiguration {
'arduino.compile.warnings': CompilerWarnings;
'arduino.upload.verbose': boolean;
'arduino.upload.verify': boolean;
'arduino.upload.autoVerify': boolean;
'arduino.window.autoScale': boolean;
'arduino.ide.updateChannel': UpdateChannel;
'arduino.ide.updateBaseUrl': string;
@@ -329,6 +350,7 @@ export interface ArduinoConfiguration {
'arduino.cloud.push.warn': boolean;
'arduino.cloud.pushpublic.warn': boolean;
'arduino.cloud.sketchSyncEndpoint': string;
'arduino.cloud.sharedSpaceID': string;
'arduino.auth.clientID': string;
'arduino.auth.domain': string;
'arduino.auth.audience': string;

View File

@@ -222,6 +222,20 @@ export class BoardsDataStore
return data;
}
async reloadBoardData(fqbn: string | undefined): Promise<void> {
if (!fqbn) {
return;
}
const key = this.getStorageKey(fqbn);
const details = await this.loadBoardDetails(fqbn, true);
if (!details) {
return;
}
const data = createDataStoreEntry(details);
await this.storageService.setData(key, data);
this.fireChanged({ fqbn, data });
}
async selectProgrammer({
fqbn,
selectedProgrammer,
@@ -299,9 +313,15 @@ export class BoardsDataStore
return `.arduinoIDE-configOptions-${fqbn}`;
}
async loadBoardDetails(fqbn: string): Promise<BoardDetails | undefined> {
async loadBoardDetails(
fqbn: string,
forceRefresh = false
): Promise<BoardDetails | undefined> {
try {
const details = await this.boardsService.getBoardDetails({ fqbn });
const details = await this.boardsService.getBoardDetails({
fqbn,
forceRefresh,
});
return details;
} catch (err) {
if (

View File

@@ -20,6 +20,7 @@ import {
} from '../../common/protocol';
import type { BoardList } from '../../common/protocol/board-list';
import { BoardsListWidget } from '../boards/boards-list-widget';
import { BoardsDataStore } from '../boards/boards-data-store';
import { BoardsServiceProvider } from '../boards/boards-service-provider';
import {
ArduinoMenus,
@@ -39,6 +40,8 @@ export class BoardSelection extends SketchContribution {
private readonly menuModelRegistry: MenuModelRegistry;
@inject(NotificationCenter)
private readonly notificationCenter: NotificationCenter;
@inject(BoardsDataStore)
private readonly boardsDataStore: BoardsDataStore;
@inject(BoardsService)
private readonly boardsService: BoardsService;
@inject(BoardsServiceProvider)
@@ -74,6 +77,29 @@ SN: ${SN}
});
},
});
registry.registerCommand(BoardSelection.Commands.RELOAD_BOARD_DATA, {
execute: async () => {
const selectedFqbn =
this.boardsServiceProvider.boardList.boardsConfig.selectedBoard?.fqbn;
let message: string;
if (selectedFqbn) {
await this.boardsDataStore.reloadBoardData(selectedFqbn);
message = nls.localize(
'arduino/board/boardDataReloaded',
'Board data reloaded.'
);
} else {
message = nls.localize(
'arduino/board/selectBoardToReload',
'Please select a board first.'
);
}
this.messageService.info(message, { timeout: 2000 });
},
});
}
override onStart(): void {
@@ -151,6 +177,21 @@ SN: ${SN}
)
);
const reloadBoardData = {
commandId: BoardSelection.Commands.RELOAD_BOARD_DATA.id,
label: nls.localize('arduino/board/reloadBoardData', 'Reload Board Data'),
order: '102',
};
this.menuModelRegistry.registerMenuAction(
ArduinoMenus.TOOLS__BOARD_SELECTION_GROUP,
reloadBoardData
);
this.toDisposeBeforeMenuRebuild.push(
Disposable.create(() =>
this.menuModelRegistry.unregisterMenuAction(reloadBoardData)
)
);
const getBoardInfo = {
commandId: BoardSelection.Commands.GET_BOARD_INFO.id,
label: nls.localize('arduino/board/getBoardInfo', 'Get Board Info'),
@@ -361,5 +402,8 @@ SN: ${SN}
export namespace BoardSelection {
export namespace Commands {
export const GET_BOARD_INFO: Command = { id: 'arduino-get-board-info' };
export const RELOAD_BOARD_DATA: Command = {
id: 'arduino-reload-board-data',
};
}
}

View File

@@ -3,10 +3,14 @@ import { LocalStorageService } from '@theia/core/lib/browser/storage-service';
import { inject, injectable } from '@theia/core/shared/inversify';
import {
IDEUpdater,
LAST_USED_IDE_VERSION,
SKIP_IDE_VERSION,
} from '../../common/protocol/ide-updater';
import { IDEUpdaterDialog } from '../dialogs/ide-updater/ide-updater-dialog';
import { Contribution } from './contribution';
import { VersionWelcomeDialog } from '../dialogs/version-welcome-dialog';
import { AppService } from '../app-service';
import { SemVer } from 'semver';
@injectable()
export class CheckForIDEUpdates extends Contribution {
@@ -16,9 +20,15 @@ export class CheckForIDEUpdates extends Contribution {
@inject(IDEUpdaterDialog)
private readonly updaterDialog: IDEUpdaterDialog;
@inject(VersionWelcomeDialog)
private readonly versionWelcomeDialog: VersionWelcomeDialog;
@inject(LocalStorageService)
private readonly localStorage: LocalStorageService;
@inject(AppService)
private readonly appService: AppService;
override onStart(): void {
this.preferences.onPreferenceChanged(
({ preferenceName, newValue, oldValue }) => {
@@ -36,7 +46,7 @@ export class CheckForIDEUpdates extends Contribution {
);
}
override onReady(): void {
override async onReady(): Promise<void> {
this.updater
.init(
this.preferences.get('arduino.ide.updateChannel'),
@@ -49,7 +59,13 @@ export class CheckForIDEUpdates extends Contribution {
return this.updater.checkForUpdates(true);
})
.then(async (updateInfo) => {
if (!updateInfo) return;
if (!updateInfo) {
const isNewVersion = await this.isNewStableVersion();
if (isNewVersion) {
this.versionWelcomeDialog.open();
}
return;
}
const versionToSkip = await this.localStorage.getData<string>(
SKIP_IDE_VERSION
);
@@ -64,6 +80,44 @@ export class CheckForIDEUpdates extends Contribution {
e.message
)
);
})
.finally(() => {
this.setCurrentIDEVersion();
});
}
private async setCurrentIDEVersion(): Promise<void> {
try {
const { appVersion } = await this.appService.info();
const currSemVer = new SemVer(appVersion ?? '');
this.localStorage.setData(LAST_USED_IDE_VERSION, currSemVer.format());
} catch {
// ignore invalid versions
}
}
/**
* Check if user is running a new IDE version for the first time.
* @returns true if the current IDE version is greater than the last used version
* and both are non-prerelease versions.
*/
private async isNewStableVersion(): Promise<boolean> {
try {
const { appVersion } = await this.appService.info();
const prevVersion = await this.localStorage.getData<string>(
LAST_USED_IDE_VERSION
);
const prevSemVer = new SemVer(prevVersion ?? '');
const currSemVer = new SemVer(appVersion ?? '');
if (prevSemVer.prerelease.length || currSemVer.prerelease.length) {
return false;
}
return currSemVer.compare(prevSemVer) === 1;
} catch (e) {
return false;
}
}
}

View File

@@ -289,8 +289,8 @@ export class Debug
): Promise<boolean> {
if (err instanceof Error) {
try {
const tempBuildPaths = await this.sketchesService.tempBuildPath(sketch);
return tempBuildPaths.some((tempBuildPath) =>
const buildPaths = await this.sketchesService.getBuildPath(sketch);
return buildPaths.some((tempBuildPath) =>
err.message.includes(tempBuildPath)
);
} catch {

View File

@@ -104,6 +104,7 @@ export class UploadSketch extends CoreServiceContribution {
}
try {
const autoVerify = this.preferences['arduino.upload.autoVerify'];
// toggle the toolbar button and menu item state.
// uploadInProgress will be set to false whether the upload fails or not
this.uploadInProgress = true;
@@ -116,7 +117,7 @@ export class UploadSketch extends CoreServiceContribution {
'arduino-verify-sketch',
<VerifySketchParams>{
exportBinaries: false,
silent: true,
mode: autoVerify ? 'auto' : 'dry-run',
}
);
if (!verifyOptions) {
@@ -127,6 +128,7 @@ export class UploadSketch extends CoreServiceContribution {
usingProgrammer,
verifyOptions
);
if (!uploadOptions) {
return;
}
@@ -137,11 +139,37 @@ export class UploadSketch extends CoreServiceContribution {
const uploadResponse = await this.doWithProgress({
progressText: nls.localize('arduino/sketch/uploading', 'Uploading...'),
task: (progressId, coreService, token) =>
coreService.upload({ ...uploadOptions, progressId }, token),
task: async (progressId, coreService, token) => {
try {
return await coreService.upload(
{ ...uploadOptions, progressId },
token
);
} catch (err) {
if (err.code === 4005) {
const uploadWithProgrammerOptions = await this.uploadOptions(
true,
verifyOptions
);
if (uploadWithProgrammerOptions) {
return coreService.upload(
{ ...uploadWithProgrammerOptions, progressId },
token
);
}
} else {
throw err;
}
}
},
keepOutput: true,
cancelable: true,
});
if (!uploadResponse) {
return;
}
// the port update is NOOP if nothing has changed
this.boardsServiceProvider.updateConfig(uploadResponse.portAfterUpload);

View File

@@ -15,23 +15,35 @@ import {
} from './contribution';
import { CoreErrorHandler } from './core-error-handler';
export type VerifySketchMode =
/**
* When the user explicitly triggers the verify command from the primary UI: menu, toolbar, or keybinding. The UI shows the output, updates the toolbar items state, etc.
*/
| 'explicit'
/**
* When the verify phase automatically runs as part of the upload but there is no UI indication of the command: the toolbar items do not update.
*/
| 'auto'
/**
* The verify does not run. There is no UI indication of the command. For example, when the user decides to disable the auto verify (`'arduino.upload.autoVerify'`) to skips the code recompilation phase.
*/
| 'dry-run';
export interface VerifySketchParams {
/**
* Same as `CoreService.Options.Compile#exportBinaries`
*/
readonly exportBinaries?: boolean;
/**
* If `true`, there won't be any UI indication of the verify command in the toolbar. It's `false` by default.
* The mode specifying how verify should run. It's `'explicit'` by default.
*/
readonly silent?: boolean;
readonly mode?: VerifySketchMode;
}
/**
* - `"idle"` when neither verify, nor upload is running,
* - `"explicit-verify"` when only verify is running triggered by the user, and
* - `"automatic-verify"` is when the automatic verify phase is running as part of an upload triggered by the user.
* - `"idle"` when neither verify, nor upload is running
*/
type VerifyProgress = 'idle' | 'explicit-verify' | 'automatic-verify';
type VerifyProgress = 'idle' | VerifySketchMode;
@injectable()
export class VerifySketch extends CoreServiceContribution {
@@ -54,10 +66,10 @@ export class VerifySketch extends CoreServiceContribution {
registry.registerCommand(VerifySketch.Commands.VERIFY_SKETCH_TOOLBAR, {
isVisible: (widget) =>
ArduinoToolbar.is(widget) && widget.side === 'left',
isEnabled: () => this.verifyProgress !== 'explicit-verify',
isEnabled: () => this.verifyProgress !== 'explicit',
// toggled only when verify is running, but not toggled when automatic verify is running before the upload
// https://github.com/arduino/arduino-ide/pull/1750#pullrequestreview-1214762975
isToggled: () => this.verifyProgress === 'explicit-verify',
isToggled: () => this.verifyProgress === 'explicit',
execute: () =>
registry.executeCommand(VerifySketch.Commands.VERIFY_SKETCH.id),
});
@@ -113,19 +125,22 @@ export class VerifySketch extends CoreServiceContribution {
}
try {
this.verifyProgress = params?.silent
? 'automatic-verify'
: 'explicit-verify';
this.verifyProgress = params?.mode ?? 'explicit';
this.onDidChangeEmitter.fire();
this.menuManager.update();
this.clearVisibleNotification();
this.coreErrorHandler.reset();
const dryRun = this.verifyProgress === 'dry-run';
const options = await this.options(params?.exportBinaries);
if (!options) {
return undefined;
}
if (dryRun) {
return options;
}
await this.doWithProgress({
progressText: nls.localize(
'arduino/sketch/compile',

View File

@@ -509,11 +509,19 @@ export class CreateApi {
private async headers(): Promise<Record<string, string>> {
const token = await this.token();
return {
const headers: Record<string, string> = {
'content-type': 'application/json',
accept: 'application/json',
authorization: `Bearer ${token}`,
};
const sharedSpaceID =
this.arduinoPreferences['arduino.cloud.sharedSpaceID'];
if (sharedSpaceID) {
headers['x-organization'] = sharedSpaceID;
}
return headers;
}
private domain(apiVersion = 'v2'): string {

View File

@@ -1,36 +1,35 @@
import { FrontendApplicationContribution } from '@theia/core/lib/browser/frontend-application';
import { inject, injectable } from '@theia/core/shared/inversify';
import URI from '@theia/core/lib/common/uri';
import { Event } from '@theia/core/lib/common/event';
import {
Disposable,
DisposableCollection,
} from '@theia/core/lib/common/disposable';
import { Event } from '@theia/core/lib/common/event';
import URI from '@theia/core/lib/common/uri';
import { inject, injectable } from '@theia/core/shared/inversify';
import { FrontendApplicationContribution } from '@theia/core/lib/browser/frontend-application';
import {
Stat,
FileType,
FileChange,
FileWriteOptions,
FileDeleteOptions,
FileOverwriteOptions,
FileSystemProvider,
FileSystemProviderError,
FileSystemProviderErrorCode,
FileSystemProviderCapabilities,
WatchOptions,
} from '@theia/filesystem/lib/common/files';
import {
FileService,
FileServiceContribution,
} from '@theia/filesystem/lib/browser/file-service';
import {
FileChange,
FileDeleteOptions,
FileOverwriteOptions,
FileSystemProvider,
FileSystemProviderCapabilities,
FileSystemProviderError,
FileSystemProviderErrorCode,
FileType,
FileWriteOptions,
Stat,
WatchOptions,
createFileSystemProviderError,
} from '@theia/filesystem/lib/common/files';
import { SketchesService } from '../../common/protocol';
import { stringToUint8Array } from '../../common/utils';
import { ArduinoPreferences } from '../arduino-preferences';
import { AuthenticationClientService } from '../auth/authentication-client-service';
import { CreateApi } from './create-api';
import { CreateUri } from './create-uri';
import { Create, isNotFound } from './typings';
import { SketchesService } from '../../common/protocol';
import { ArduinoPreferences } from '../arduino-preferences';
import { Create } from './typings';
import { stringToUint8Array } from '../../common/utils';
@injectable()
export class CreateFsProvider
@@ -91,27 +90,14 @@ export class CreateFsProvider
size: 0,
};
}
try {
const resource = await this.getCreateApi.stat(uri.path.toString());
const mtime = Date.parse(resource.modified_at);
return {
type: this.toFileType(resource.type),
ctime: mtime,
mtime,
size: 0,
};
} catch (err) {
let errToRethrow = err;
// Not Found (Create API) errors must be remapped to VS Code filesystem provider specific errors
// https://code.visualstudio.com/api/references/vscode-api#FileSystemError
if (isNotFound(errToRethrow)) {
errToRethrow = createFileSystemProviderError(
errToRethrow,
FileSystemProviderErrorCode.FileNotFound
);
}
throw errToRethrow;
}
const resource = await this.getCreateApi.stat(uri.path.toString());
const mtime = Date.parse(resource.modified_at);
return {
type: this.toFileType(resource.type),
ctime: mtime,
mtime,
size: 0,
};
}
async mkdir(uri: URI): Promise<void> {

View File

@@ -17,6 +17,7 @@ import {
} from '../../../common/protocol/ide-updater';
import { LocalStorageService } from '@theia/core/lib/browser';
import { WindowService } from '@theia/core/lib/browser/window/window-service';
import { sanitize } from 'dompurify';
@injectable()
export class IDEUpdaterDialogProps extends DialogProps {}
@@ -165,6 +166,51 @@ export class IDEUpdaterDialog extends ReactDialog<UpdateInfo | undefined> {
goToDownloadPageButton.focus();
}
private appendDonateFooter() {
const footer = document.createElement('div');
footer.classList.add('ide-updater-dialog--footer');
const footerContent = document.createElement('div');
footerContent.classList.add('ide-updater-dialog--footer-content');
footer.appendChild(footerContent);
const footerLink = document.createElement('a');
footerLink.innerText = sanitize(
nls.localize('arduino/ide-updater/donateLinkText', 'donate to support us')
);
footerLink.classList.add('ide-updater-dialog--footer-link');
footerLink.onclick = () =>
this.openExternal('https://www.arduino.cc/en/donate');
const footerLinkIcon = document.createElement('span');
footerLinkIcon.title = nls.localize(
'arduino/ide-updater/donateLinkIconTitle',
'open donation page'
);
footerLinkIcon.classList.add('ide-updater-dialog--footer-link-icon');
footerLink.appendChild(footerLinkIcon);
const placeholderKey = '%%link%%';
const footerText = sanitize(
nls.localize(
'arduino/ide-updater/donateText',
'Open source is love, {0}',
placeholderKey
)
);
const placeholder = footerText.indexOf(placeholderKey);
if (placeholder !== -1) {
const parts = footerText.split(placeholderKey);
footerContent.appendChild(document.createTextNode(parts[0]));
footerContent.appendChild(footerLink);
footerContent.appendChild(document.createTextNode(parts[1]));
} else {
footerContent.appendChild(document.createTextNode(footerText));
footerContent.appendChild(footerLink);
}
this.controlPanel.insertAdjacentElement('afterend', footer);
}
private openDownloadPage(): void {
this.openExternal('https://www.arduino.cc/en/software');
this.close();
@@ -187,6 +233,7 @@ export class IDEUpdaterDialog extends ReactDialog<UpdateInfo | undefined> {
downloadStarted: true,
});
this.clearButtons();
this.appendDonateFooter();
this.updater.downloadUpdate();
}

View File

@@ -0,0 +1,107 @@
import React from '@theia/core/shared/react';
import { inject, injectable } from '@theia/core/shared/inversify';
import { Message } from '@theia/core/shared/@phosphor/messaging';
import { ReactDialog } from '../theia/dialogs/dialogs';
import { nls } from '@theia/core';
import { DialogProps } from '@theia/core/lib/browser';
import { WindowService } from '@theia/core/lib/browser/window/window-service';
import { AppService } from '../app-service';
import { sanitize } from 'dompurify';
@injectable()
export class VersionWelcomeDialogProps extends DialogProps {}
@injectable()
export class VersionWelcomeDialog extends ReactDialog<void> {
@inject(AppService)
private readonly appService: AppService;
@inject(WindowService)
private readonly windowService: WindowService;
constructor(
@inject(VersionWelcomeDialogProps)
protected override readonly props: VersionWelcomeDialogProps
) {
super({
title: nls.localize(
'arduino/versionWelcome/title',
'Welcome to a new version of the Arduino IDE!'
),
});
this.node.id = 'version-welcome-dialog-container';
this.contentNode.classList.add('version-welcome-dialog');
}
protected render(): React.ReactNode {
return (
<div>
<p>
{nls.localize(
'arduino/versionWelcome/donateMessage',
'Arduino is committed to keeping software free and open-source for everyone. Your donation helps us develop new features, improve libraries, and support millions of users worldwide.'
)}
</p>
<p className="bold">
{nls.localize(
'arduino/versionWelcome/donateMessage2',
'Please consider supporting our work on the free open source Arduino IDE.'
)}
</p>
</div>
);
}
override get value(): void {
return;
}
private appendButtons(): void {
const cancelButton = this.createButton(
nls.localize('arduino/versionWelcome/cancelButton', 'Maybe later')
);
cancelButton.classList.add('secondary');
cancelButton.classList.add('cancel-button');
this.addAction(cancelButton, this.close.bind(this), 'click');
this.controlPanel.appendChild(cancelButton);
const donateButton = this.createButton(
nls.localize('arduino/versionWelcome/donateButton', 'Donate now')
);
this.addAction(donateButton, this.onDonateButtonClick.bind(this), 'click');
this.controlPanel.appendChild(donateButton);
donateButton.focus();
}
private onDonateButtonClick(): void {
this.openDonationPage();
this.close();
}
private readonly openDonationPage = () => {
const url = 'https://www.arduino.cc/en/donate';
this.windowService.openNewWindow(url, { external: true });
};
private async updateTitleVersion(): Promise<void> {
const appInfo = await this.appService.info();
const { appVersion } = appInfo;
if (appVersion) {
this.titleNode.innerText = sanitize(
nls.localize(
'arduino/versionWelcome/titleWithVersion',
'Welcome to the new Arduino IDE {0}!',
appVersion
)
);
}
}
protected override onAfterAttach(msg: Message): void {
this.update();
this.appendButtons();
this.updateTitleVersion();
super.onAfterAttach(msg);
}
}

View File

@@ -0,0 +1,3 @@
<svg width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.878141 10.6219C0.960188 10.7039 1.07147 10.75 1.1875 10.75H10.8125C10.9285 10.75 11.0398 10.7039 11.1219 10.6219C11.2039 10.5398 11.25 10.4285 11.25 10.3125V6.81252C11.25 6.69648 11.2039 6.5852 11.1219 6.50316C11.0398 6.42111 10.9285 6.37502 10.8125 6.37502C10.6965 6.37502 10.5852 6.42111 10.5031 6.50316C10.4211 6.5852 10.375 6.69648 10.375 6.81252V9.87502H1.625V1.12502H4.6875C4.80353 1.12502 4.91481 1.07892 4.99686 0.996874C5.07891 0.914827 5.125 0.803548 5.125 0.687515C5.125 0.571483 5.07891 0.460203 4.99686 0.378156C4.91481 0.296109 4.80353 0.250015 4.6875 0.250015H1.1875C1.07147 0.250015 0.960188 0.296109 0.878141 0.378156C0.796094 0.460203 0.75 0.571483 0.75 0.687515V10.3125C0.75 10.4285 0.796094 10.5398 0.878141 10.6219ZM11.25 4.62502V0.687515C11.25 0.571483 11.2039 0.460203 11.1219 0.378156C11.0398 0.296109 10.9285 0.250015 10.8125 0.250015H6.875C6.75897 0.250015 6.64769 0.296109 6.56564 0.378156C6.48359 0.460203 6.4375 0.571483 6.4375 0.687515C6.4375 0.803548 6.48359 0.914827 6.56564 0.996874C6.64769 1.07892 6.75897 1.12502 6.875 1.12502H9.75375L5.68937 5.18939C5.64837 5.23006 5.61582 5.27845 5.59361 5.33176C5.5714 5.38508 5.55996 5.44226 5.55996 5.50002C5.55996 5.55777 5.5714 5.61495 5.59361 5.66827C5.61582 5.72158 5.64837 5.76997 5.68937 5.81064C5.73005 5.85165 5.77843 5.88419 5.83175 5.90641C5.88506 5.92862 5.94224 5.94005 6 5.94005C6.05776 5.94005 6.11494 5.92862 6.16825 5.90641C6.22157 5.88419 6.26995 5.85165 6.31062 5.81064L10.375 1.74627V4.62502C10.375 4.74105 10.4211 4.85233 10.5031 4.93437C10.5852 5.01642 10.6965 5.06252 10.8125 5.06252C10.9285 5.06252 11.0398 5.01642 11.1219 4.93437C11.2039 4.85233 11.25 4.74105 11.25 4.62502Z" fill="#008184"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -34,6 +34,37 @@
min-width: 0;
}
.ide-updater-dialog--footer {
display: inline-block;
margin-top: -16px;
padding: 12px 0 24px 0;
border-top: 1px solid var(--theia-editorWidget-border);
}
.ide-updater-dialog--footer-content {
float: right;
}
.ide-updater-dialog--footer-link {
display: inline-block;
color: var(--theia-textLink-foreground);
font-weight: 500;
line-height: 13px;
}
.ide-updater-dialog--footer-link:hover {
color: var(--theia-textLink-foreground);
cursor: pointer;
}
.ide-updater-dialog--footer-link-icon {
display: inline-block;
-webkit-mask: url(../icons/link-open-icon.svg) center no-repeat;
background-color: var(--theia-textLink-foreground);
height: 12px;
width: 12px;
cursor: pointer;
transform: translateY(2px);
margin-left: 4px;
}
.ide-updater-dialog .changelog {
color: var(--theia-editor-foreground);
background-color: var(--theia-editor-background);
@@ -109,6 +140,7 @@
max-height: 100%;
overflow: hidden;
display: flex;
padding-bottom: 20px !important;
}
#ide-updater-dialog-container .skip-version-button {

View File

@@ -10,6 +10,7 @@
@import "./settings-dialog.css";
@import "./firmware-uploader-dialog.css";
@import "./ide-updater-dialog.css";
@import "./version-welcome-dialog.css";
@import "./certificate-uploader-dialog.css";
@import "./user-fields-dialog.css";
@import "./debug.css";

View File

@@ -0,0 +1,7 @@
#version-welcome-dialog-container > .dialogBlock {
width: 546px;
.bold {
font-weight: bold;
}
}

View File

@@ -0,0 +1,241 @@
import { LabelIcon } from '@theia/core/lib/browser/label-parser';
import { OpenerService, open } from '@theia/core/lib/browser/opener-service';
import { codicon } from '@theia/core/lib/browser/widgets/widget';
import { DisposableCollection } from '@theia/core/lib/common/disposable';
import { URI } from '@theia/core/lib/common/uri';
import { inject, injectable } from '@theia/core/shared/inversify';
import React from '@theia/core/shared/react';
import { URI as CodeUri } from '@theia/core/shared/vscode-uri';
import { TreeViewWidget as TheiaTreeViewWidget } from '@theia/plugin-ext/lib/main/browser/view/tree-view-widget';
// Copied back from https://github.com/eclipse-theia/theia/pull/14391
// Remove the patching when Arduino uses Eclipse Theia >1.55.0
// https://github.com/eclipse-theia/theia/blob/8d3c5a11af65448b6700bedd096f8d68f0675541/packages/core/src/browser/tree/tree-view-welcome-widget.tsx#L37-L54
// https://github.com/eclipse-theia/theia/blob/8d3c5a11af65448b6700bedd096f8d68f0675541/packages/core/src/browser/tree/tree-view-welcome-widget.tsx#L146-L298
interface ViewWelcome {
readonly view: string;
readonly content: string;
readonly when?: string;
readonly enablement?: string;
readonly order: number;
}
export interface IItem {
readonly welcomeInfo: ViewWelcome;
visible: boolean;
}
export interface ILink {
readonly label: string;
readonly href: string;
readonly title?: string;
}
type LinkedTextItem = string | ILink;
@injectable()
export class TreeViewWidget extends TheiaTreeViewWidget {
@inject(OpenerService)
private readonly openerService: OpenerService;
private readonly toDisposeBeforeUpdateViewWelcomeNodes =
new DisposableCollection();
protected override updateViewWelcomeNodes(): void {
this.viewWelcomeNodes = [];
this.toDisposeBeforeUpdateViewWelcomeNodes.dispose();
const items = this.visibleItems.sort((a, b) => a.order - b.order);
const enablementKeys: Set<string>[] = [];
// the plugin-view-registry will push the changes when there is a change in the `when` prop which controls the visibility
// this listener is to update the enablement of the components in the view welcome
this.toDisposeBeforeUpdateViewWelcomeNodes.push(
this.contextService.onDidChange((event) => {
if (enablementKeys.some((keys) => event.affects(keys))) {
this.updateViewWelcomeNodes();
this.update();
}
})
);
// Note: VS Code does not support the `renderSecondaryButtons` prop in welcome content either.
for (const item of items) {
const { content } = item;
const enablement = isEnablementAware(item) ? item.enablement : undefined;
const itemEnablementKeys = enablement
? this.contextService.parseKeys(enablement)
: undefined;
if (itemEnablementKeys) {
enablementKeys.push(itemEnablementKeys);
}
const lines = content.split('\n');
for (let line of lines) {
line = line.trim();
if (!line) {
continue;
}
const linkedTextItems = this.parseLinkedText_patch14309(line);
if (
linkedTextItems.length === 1 &&
typeof linkedTextItems[0] !== 'string'
) {
const node = linkedTextItems[0];
this.viewWelcomeNodes.push(
this.renderButtonNode_patch14309(
node,
this.viewWelcomeNodes.length,
enablement
)
);
} else {
const renderNode = (item: LinkedTextItem, index: number) =>
typeof item == 'string'
? this.renderTextNode_patch14309(item, index)
: this.renderLinkNode_patch14309(item, index, enablement);
this.viewWelcomeNodes.push(
<p key={`p-${this.viewWelcomeNodes.length}`}>
{...linkedTextItems.flatMap(renderNode)}
</p>
);
}
}
}
}
private renderButtonNode_patch14309(
node: ILink,
lineKey: string | number,
enablement: string | undefined
): React.ReactNode {
return (
<div key={`line-${lineKey}`} className="theia-WelcomeViewButtonWrapper">
<button
title={node.title}
className="theia-button theia-WelcomeViewButton"
disabled={!this.isEnabledClick_patch14309(enablement)}
onClick={(e) => this.openLinkOrCommand_patch14309(e, node.href)}
>
{node.label}
</button>
</div>
);
}
private renderTextNode_patch14309(
node: string,
textKey: string | number
): React.ReactNode {
return (
<span key={`text-${textKey}`}>
{this.labelParser
.parse(node)
.map((segment, index) =>
LabelIcon.is(segment) ? (
<span key={index} className={codicon(segment.name)} />
) : (
<span key={index}>{segment}</span>
)
)}
</span>
);
}
private renderLinkNode_patch14309(
node: ILink,
linkKey: string | number,
enablement: string | undefined
): React.ReactNode {
return (
<a
key={`link-${linkKey}`}
className={this.getLinkClassName_patch14309(node.href, enablement)}
title={node.title || ''}
onClick={(e) => this.openLinkOrCommand_patch14309(e, node.href)}
>
{node.label}
</a>
);
}
private getLinkClassName_patch14309(
href: string,
enablement: string | undefined
): string {
const classNames = ['theia-WelcomeViewCommandLink'];
// Only command-backed links can be disabled. All other, https:, file: remain enabled
if (
href.startsWith('command:') &&
!this.isEnabledClick_patch14309(enablement)
) {
classNames.push('disabled');
}
return classNames.join(' ');
}
private isEnabledClick_patch14309(enablement: string | undefined): boolean {
return typeof enablement === 'string'
? this.contextService.match(enablement)
: true;
}
private openLinkOrCommand_patch14309 = (
event: React.MouseEvent,
value: string
): void => {
event.stopPropagation();
if (value.startsWith('command:')) {
const command = value.replace('command:', '');
this.commands.executeCommand(command);
} else if (value.startsWith('file:')) {
const uri = value.replace('file:', '');
open(this.openerService, new URI(CodeUri.file(uri).toString()));
} else {
this.windowService.openNewWindow(value, { external: true });
}
};
private parseLinkedText_patch14309(text: string): LinkedTextItem[] {
const result: LinkedTextItem[] = [];
const linkRegex =
/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;
let index = 0;
let match: RegExpExecArray | null;
while ((match = linkRegex.exec(text))) {
if (match.index - index > 0) {
result.push(text.substring(index, match.index));
}
const [, label, href, , title] = match;
if (title) {
result.push({ label, href, title });
} else {
result.push({ label, href });
}
index = match.index + match[0].length;
}
if (index < text.length) {
result.push(text.substring(index));
}
return result;
}
}
interface EnablementAware {
readonly enablement: string | undefined;
}
function isEnablementAware(arg: unknown): arg is EnablementAware {
return !!arg && typeof arg === 'object' && 'enablement' in arg;
}

View File

@@ -58,13 +58,6 @@ export class WorkspaceCommandContribution extends TheiaWorkspaceCommandContribut
execute: (uri) => this.newFile(uri),
})
);
registry.unregisterCommand(WorkspaceCommands.NEW_FOLDER);
registry.registerCommand(
WorkspaceCommands.NEW_FOLDER,
this.newWorkspaceRootUriAwareCommandHandler({
execute: (uri) => this.newFolder(uri),
})
);
registry.unregisterCommand(WorkspaceCommands.FILE_RENAME);
registry.registerCommand(
WorkspaceCommands.FILE_RENAME,
@@ -79,37 +72,6 @@ export class WorkspaceCommandContribution extends TheiaWorkspaceCommandContribut
);
}
private async newFolder(uri: URI | undefined): Promise<void> {
if (!uri) {
return;
}
const parent = await this.getDirectory(uri);
if (!parent) {
return;
}
const dialog = new WorkspaceInputDialog(
{
title: nls.localizeByDefault('New Folder...'),
parentUri: uri,
placeholder: nls.localize(
'theia/workspace/newFolderPlaceholder',
'Folder Name'
),
validate: (name) => this.validateFileName(name, parent, true),
},
this.labelProvider
);
const name = await this.openDialog(dialog, uri);
if (!name) {
return;
}
const folderUri = uri.resolve(name);
await this.fileService.createFolder(folderUri);
this.fireCreateNewFile({ parent: uri, uri: folderUri });
}
private async newFile(uri: URI | undefined): Promise<void> {
if (!uri) {
return;

View File

@@ -389,28 +389,21 @@ export class CloudSketchbookTree extends SketchbookTree {
private async sync(source: URI, dest: URI): Promise<void> {
const { filesToWrite, filesToDelete } = await this.treeDiff(source, dest);
// Sort by the URIs. The shortest comes first. It's to ensure creating the parent folder for nested resources, for example.
// When sorting the URIs, it does not matter whether on source or dest, only the URI path and its length matters; they're the same for a source+dest pair
const uriPathLengthComparator = (left: URI, right: URI) =>
left.path.toString().length - right.path.toString().length;
filesToWrite.sort((left, right) =>
uriPathLengthComparator(left.source, right.source)
await Promise.all(
filesToWrite.map(async ({ source, dest }) => {
if ((await this.fileService.resolve(source)).isFile) {
const content = await this.fileService.read(source);
return this.fileService.write(dest, content.value);
}
return this.fileService.createFolder(dest);
})
);
for (const { source, dest } of filesToWrite) {
const stat = await this.fileService.resolve(source);
if (stat.isFile) {
const content = await this.fileService.read(source);
await this.fileService.write(dest, content.value);
} else {
await this.fileService.createFolder(dest);
}
}
// Longes URI paths come first to delete the most nested ones first.
filesToDelete.sort(uriPathLengthComparator).reverse();
for (const resource of filesToDelete) {
await this.fileService.delete(resource, { recursive: true });
}
await Promise.all(
filesToDelete.map((file) =>
this.fileService.delete(file, { recursive: true })
)
);
}
override async resolveChildren(

View File

@@ -25,14 +25,6 @@ export namespace SketchbookCommands {
'arduino/sketch/openFolder'
);
export const NEW_FOLDER = Command.toLocalizedCommand(
{
id: 'arduino-sketchbook--new-folder',
label: 'New Folder',
},
'arduino/sketch/newFolder'
);
export const OPEN_SKETCHBOOK_CONTEXT_MENU: Command = {
id: 'arduino-sketchbook--open-sketch-context-menu',
iconClass: 'sketchbook-tree__opts',

View File

@@ -127,6 +127,9 @@ export class SketchbookTreeModel extends FileTreeModel {
if (preferenceName === 'arduino.sketchbook.showAllFiles') {
this.updateRoot();
}
if (preferenceName === 'arduino.cloud.sharedSpaceID') {
this.updateRoot();
}
})
);

View File

@@ -28,10 +28,7 @@ import {
} from '../../sketches-service-client-impl';
import { FileService } from '@theia/filesystem/lib/browser/file-service';
import { URI } from '../../contributions/contribution';
import {
WorkspaceCommands,
WorkspaceInput,
} from '@theia/workspace/lib/browser';
import { WorkspaceInput } from '@theia/workspace/lib/browser';
export const SKETCHBOOK__CONTEXT = ['arduino-sketchbook--context'];
@@ -133,21 +130,6 @@ export class SketchbookWidgetContribution
!!arg && 'node' in arg && SketchbookTree.SketchDirNode.is(arg.node),
});
registry.registerCommand(SketchbookCommands.NEW_FOLDER, {
execute: async (arg) => {
if (arg.node.uri) {
return registry.executeCommand(
WorkspaceCommands.NEW_FOLDER.id,
arg.node.uri
);
}
},
isEnabled: (arg) =>
!!arg && 'node' in arg && SketchbookTree.SketchDirNode.is(arg.node),
isVisible: (arg) =>
!!arg && 'node' in arg && SketchbookTree.SketchDirNode.is(arg.node),
});
registry.registerCommand(SketchbookCommands.OPEN_SKETCHBOOK_CONTEXT_MENU, {
isEnabled: (arg) =>
!!arg && 'node' in arg && SketchbookTree.SketchDirNode.is(arg.node),
@@ -224,12 +206,6 @@ export class SketchbookWidgetContribution
label: SketchbookCommands.REVEAL_IN_FINDER.label,
order: '0',
});
registry.registerMenuAction(SKETCHBOOK__CONTEXT__MAIN_GROUP, {
commandId: SketchbookCommands.NEW_FOLDER.id,
label: SketchbookCommands.NEW_FOLDER.label,
order: '1',
});
}
private openNewWindow(

View File

@@ -67,7 +67,10 @@ export interface BoardsService
skipPostInstall?: boolean;
}): Promise<void>;
getDetectedPorts(): Promise<DetectedPorts>;
getBoardDetails(options: { fqbn: string }): Promise<BoardDetails | undefined>;
getBoardDetails(options: {
fqbn: string;
forceRefresh?: boolean;
}): Promise<BoardDetails | undefined>;
getBoardPackage(options: {
id: string /* TODO: change to PlatformIdentifier type? */;
}): Promise<BoardsPackage | undefined>;

View File

@@ -71,6 +71,7 @@ export namespace CoreError {
Upload: 4002,
UploadUsingProgrammer: 4003,
BurnBootloader: 4004,
UploadRequiresProgrammer: 4005,
};
export const VerifyFailed = declareCoreError(Codes.Verify);
export const UploadFailed = declareCoreError(Codes.Upload);
@@ -78,6 +79,10 @@ export namespace CoreError {
Codes.UploadUsingProgrammer
);
export const BurnBootloaderFailed = declareCoreError(Codes.BurnBootloader);
export const UploadRequiresProgrammer = declareCoreError(
Codes.UploadRequiresProgrammer
);
export function is(
error: unknown
): error is ApplicationError<number, ErrorLocation[]> {

View File

@@ -71,3 +71,4 @@ export interface IDEUpdaterClient {
}
export const SKIP_IDE_VERSION = 'skipIDEVersion';
export const LAST_USED_IDE_VERSION = 'lastUsedIDEVersion';

View File

@@ -141,13 +141,14 @@ export interface SketchesService {
/**
* This is the JS/TS re-implementation of [`GenBuildPath`](https://github.com/arduino/arduino-cli/blob/c0d4e4407d80aabad81142693513b3306759cfa6/arduino/sketch/sketch.go#L296-L306) of the CLI.
* Pass in a sketch and get the build temporary folder filesystem path calculated from the main sketch file location. Can be multiple ones. This method does not check the existence of the sketch.
* Since CLI v1.1.0 the default sketch folder is the os user cache dir. See https://github.com/arduino/arduino-cli/pull/2673/commits/d2ffeb06ca6360a211d5aa7ddd11505212ffb1b9
*
* The case sensitivity of the drive letter on Windows matters when the CLI calculates the MD5 hash of the temporary build folder.
* IDE2 does not know and does not want to rely on how the CLI treats the paths: with lowercase or uppercase drive letters.
* Hence, IDE2 has to provide multiple build paths on Windows. This hack will be obsolete when the CLI can provide error codes:
* https://github.com/arduino/arduino-cli/issues/1762.
*/
tempBuildPath(sketch: SketchRef): Promise<string[]>;
getBuildPath(sketch: SketchRef): Promise<string[]>;
}
export interface SketchRef {

View File

@@ -116,12 +116,16 @@ import { MessagingContribution } from './theia/core/messaging-contribution';
import { MessagingService } from '@theia/core/lib/node/messaging/messaging-service';
import { HostedPluginReader } from './theia/plugin-ext/plugin-reader';
import { HostedPluginReader as TheiaHostedPluginReader } from '@theia/plugin-ext/lib/hosted/node/plugin-reader';
import { PluginDeployer } from '@theia/plugin-ext/lib/common/plugin-protocol';
import {
PluginDeployer,
PluginScanner,
} from '@theia/plugin-ext/lib/common/plugin-protocol';
import {
LocalDirectoryPluginDeployerResolverWithFallback,
PluginDeployer_GH_12064,
} from './theia/plugin-ext/plugin-deployer';
import { SettingsReader } from './settings-reader';
import { VsCodePluginScanner } from './theia/plugin-ext-vscode/scanner-vscode';
export default new ContainerModule((bind, unbind, isBound, rebind) => {
bind(BackendApplication).toSelf().inSingletonScope();
@@ -410,6 +414,11 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
rebind(PluginDeployer).to(PluginDeployer_GH_12064).inSingletonScope();
bind(SettingsReader).toSelf().inSingletonScope();
// To read the enablement property of the viewsWelcome
// https://github.com/eclipse-theia/theia/issues/14309
bind(VsCodePluginScanner).toSelf().inSingletonScope();
rebind(PluginScanner).toService(VsCodePluginScanner);
});
function bindChildLogger(bind: interfaces.Bind, name: string): void {

View File

@@ -73,7 +73,11 @@ export class BoardsServiceImpl
async getBoardDetails(options: {
fqbn: string;
forceRefresh?: boolean;
}): Promise<BoardDetails | undefined> {
if (options.forceRefresh) {
await this.refresh();
}
const coreClient = await this.coreClient;
const { client, instance } = coreClient;
const { fqbn } = options;
@@ -585,7 +589,7 @@ function createBoardsPackage(
if (!actualRelease) {
return undefined;
}
const { name, typeList, boardsList, deprecated, compatible } = actualRelease;
const { name, typesList, boardsList, deprecated, compatible } = actualRelease;
if (!compatible) {
return undefined; // never show incompatible platforms
}
@@ -602,7 +606,7 @@ function createBoardsPackage(
),
description: boardsList.map(({ name }) => name).join(', '),
boards: boardsList,
types: typeList,
types: typesList,
moreInfoLink: website,
author: maintainer,
deprecated,

View File

@@ -384,6 +384,10 @@ export class BoardListResponse extends jspb.Message {
getPortsList(): Array<DetectedPort>;
setPortsList(value: Array<DetectedPort>): BoardListResponse;
addPorts(value?: DetectedPort, index?: number): DetectedPort;
clearWarningsList(): void;
getWarningsList(): Array<string>;
setWarningsList(value: Array<string>): BoardListResponse;
addWarnings(value: string, index?: number): string;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): BoardListResponse.AsObject;
@@ -398,6 +402,7 @@ export class BoardListResponse extends jspb.Message {
export namespace BoardListResponse {
export type AsObject = {
portsList: Array<DetectedPort.AsObject>,
warningsList: Array<string>,
}
}

View File

@@ -3387,7 +3387,7 @@ proto.cc.arduino.cli.commands.v1.BoardListRequest.prototype.setFqbn = function(v
* @private {!Array<number>}
* @const
*/
proto.cc.arduino.cli.commands.v1.BoardListResponse.repeatedFields_ = [1];
proto.cc.arduino.cli.commands.v1.BoardListResponse.repeatedFields_ = [1,2];
@@ -3421,7 +3421,8 @@ proto.cc.arduino.cli.commands.v1.BoardListResponse.prototype.toObject = function
proto.cc.arduino.cli.commands.v1.BoardListResponse.toObject = function(includeInstance, msg) {
var f, obj = {
portsList: jspb.Message.toObjectList(msg.getPortsList(),
proto.cc.arduino.cli.commands.v1.DetectedPort.toObject, includeInstance)
proto.cc.arduino.cli.commands.v1.DetectedPort.toObject, includeInstance),
warningsList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f
};
if (includeInstance) {
@@ -3463,6 +3464,10 @@ proto.cc.arduino.cli.commands.v1.BoardListResponse.deserializeBinaryFromReader =
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.DetectedPort.deserializeBinaryFromReader);
msg.addPorts(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.addWarnings(value);
break;
default:
reader.skipField();
break;
@@ -3500,6 +3505,13 @@ proto.cc.arduino.cli.commands.v1.BoardListResponse.serializeBinaryToWriter = fun
proto.cc.arduino.cli.commands.v1.DetectedPort.serializeBinaryToWriter
);
}
f = message.getWarningsList();
if (f.length > 0) {
writer.writeRepeatedString(
2,
f
);
}
};
@@ -3541,6 +3553,43 @@ proto.cc.arduino.cli.commands.v1.BoardListResponse.prototype.clearPortsList = fu
};
/**
* repeated string warnings = 2;
* @return {!Array<string>}
*/
proto.cc.arduino.cli.commands.v1.BoardListResponse.prototype.getWarningsList = function() {
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));
};
/**
* @param {!Array<string>} value
* @return {!proto.cc.arduino.cli.commands.v1.BoardListResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.BoardListResponse.prototype.setWarningsList = function(value) {
return jspb.Message.setField(this, 2, value || []);
};
/**
* @param {string} value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.BoardListResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.BoardListResponse.prototype.addWarnings = function(value, opt_index) {
return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.BoardListResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.BoardListResponse.prototype.clearWarningsList = function() {
return this.setWarningsList([]);
};
/**
* List of repeated fields within this message type.

View File

@@ -6,16 +6,16 @@
import * as grpc from "@grpc/grpc-js";
import * as cc_arduino_cli_commands_v1_commands_pb from "../../../../../cc/arduino/cli/commands/v1/commands_pb";
import * as google_rpc_status_pb from "../../../../../google/rpc/status_pb";
import * as cc_arduino_cli_commands_v1_common_pb from "../../../../../cc/arduino/cli/commands/v1/common_pb";
import * as cc_arduino_cli_commands_v1_board_pb from "../../../../../cc/arduino/cli/commands/v1/board_pb";
import * as cc_arduino_cli_commands_v1_common_pb from "../../../../../cc/arduino/cli/commands/v1/common_pb";
import * as cc_arduino_cli_commands_v1_compile_pb from "../../../../../cc/arduino/cli/commands/v1/compile_pb";
import * as cc_arduino_cli_commands_v1_core_pb from "../../../../../cc/arduino/cli/commands/v1/core_pb";
import * as cc_arduino_cli_commands_v1_debug_pb from "../../../../../cc/arduino/cli/commands/v1/debug_pb";
import * as cc_arduino_cli_commands_v1_monitor_pb from "../../../../../cc/arduino/cli/commands/v1/monitor_pb";
import * as cc_arduino_cli_commands_v1_upload_pb from "../../../../../cc/arduino/cli/commands/v1/upload_pb";
import * as cc_arduino_cli_commands_v1_lib_pb from "../../../../../cc/arduino/cli/commands/v1/lib_pb";
import * as cc_arduino_cli_commands_v1_monitor_pb from "../../../../../cc/arduino/cli/commands/v1/monitor_pb";
import * as cc_arduino_cli_commands_v1_settings_pb from "../../../../../cc/arduino/cli/commands/v1/settings_pb";
import * as cc_arduino_cli_commands_v1_upload_pb from "../../../../../cc/arduino/cli/commands/v1/upload_pb";
import * as google_rpc_status_pb from "../../../../../google/rpc/status_pb";
interface IArduinoCoreServiceService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
create: IArduinoCoreServiceService_ICreate;
@@ -59,12 +59,14 @@ interface IArduinoCoreServiceService extends grpc.ServiceDefinition<grpc.Untyped
debug: IArduinoCoreServiceService_IDebug;
isDebugSupported: IArduinoCoreServiceService_IIsDebugSupported;
getDebugConfig: IArduinoCoreServiceService_IGetDebugConfig;
settingsGetAll: IArduinoCoreServiceService_ISettingsGetAll;
settingsMerge: IArduinoCoreServiceService_ISettingsMerge;
checkForArduinoCLIUpdates: IArduinoCoreServiceService_ICheckForArduinoCLIUpdates;
cleanDownloadCacheDirectory: IArduinoCoreServiceService_ICleanDownloadCacheDirectory;
configurationSave: IArduinoCoreServiceService_IConfigurationSave;
configurationOpen: IArduinoCoreServiceService_IConfigurationOpen;
configurationGet: IArduinoCoreServiceService_IConfigurationGet;
settingsEnumerate: IArduinoCoreServiceService_ISettingsEnumerate;
settingsGetValue: IArduinoCoreServiceService_ISettingsGetValue;
settingsSetValue: IArduinoCoreServiceService_ISettingsSetValue;
settingsWrite: IArduinoCoreServiceService_ISettingsWrite;
settingsDelete: IArduinoCoreServiceService_ISettingsDelete;
}
interface IArduinoCoreServiceService_ICreate extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_commands_pb.CreateRequest, cc_arduino_cli_commands_v1_commands_pb.CreateResponse> {
@@ -436,23 +438,59 @@ interface IArduinoCoreServiceService_IGetDebugConfig extends grpc.MethodDefiniti
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigResponse>;
}
interface IArduinoCoreServiceService_ISettingsGetAll extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsGetAll";
interface IArduinoCoreServiceService_ICheckForArduinoCLIUpdates extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest, cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/CheckForArduinoCLIUpdates";
requestStream: false;
responseStream: false;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse>;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse>;
}
interface IArduinoCoreServiceService_ISettingsMerge extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsMerge";
interface IArduinoCoreServiceService_ICleanDownloadCacheDirectory extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest, cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/CleanDownloadCacheDirectory";
requestStream: false;
responseStream: false;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse>;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse>;
}
interface IArduinoCoreServiceService_IConfigurationSave extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest, cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationSave";
requestStream: false;
responseStream: false;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse>;
}
interface IArduinoCoreServiceService_IConfigurationOpen extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest, cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationOpen";
requestStream: false;
responseStream: false;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse>;
}
interface IArduinoCoreServiceService_IConfigurationGet extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest, cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationGet";
requestStream: false;
responseStream: false;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse>;
}
interface IArduinoCoreServiceService_ISettingsEnumerate extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsEnumerate";
requestStream: false;
responseStream: false;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse>;
}
interface IArduinoCoreServiceService_ISettingsGetValue extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsGetValue";
@@ -472,24 +510,6 @@ interface IArduinoCoreServiceService_ISettingsSetValue extends grpc.MethodDefini
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse>;
}
interface IArduinoCoreServiceService_ISettingsWrite extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsWrite";
requestStream: false;
responseStream: false;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse>;
}
interface IArduinoCoreServiceService_ISettingsDelete extends grpc.MethodDefinition<cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse> {
path: "/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsDelete";
requestStream: false;
responseStream: false;
requestSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest>;
requestDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest>;
responseSerialize: grpc.serialize<cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse>;
responseDeserialize: grpc.deserialize<cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse>;
}
export const ArduinoCoreServiceService: IArduinoCoreServiceService;
@@ -535,12 +555,14 @@ export interface IArduinoCoreServiceServer extends grpc.UntypedServiceImplementa
debug: grpc.handleBidiStreamingCall<cc_arduino_cli_commands_v1_debug_pb.DebugRequest, cc_arduino_cli_commands_v1_debug_pb.DebugResponse>;
isDebugSupported: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_debug_pb.IsDebugSupportedRequest, cc_arduino_cli_commands_v1_debug_pb.IsDebugSupportedResponse>;
getDebugConfig: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigRequest, cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigResponse>;
settingsGetAll: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse>;
settingsMerge: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse>;
checkForArduinoCLIUpdates: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest, cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse>;
cleanDownloadCacheDirectory: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest, cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse>;
configurationSave: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest, cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse>;
configurationOpen: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest, cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse>;
configurationGet: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest, cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse>;
settingsEnumerate: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse>;
settingsGetValue: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueResponse>;
settingsSetValue: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse>;
settingsWrite: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse>;
settingsDelete: grpc.handleUnaryCall<cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest, cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse>;
}
export interface IArduinoCoreServiceClient {
@@ -648,24 +670,30 @@ export interface IArduinoCoreServiceClient {
getDebugConfig(request: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigResponse) => void): grpc.ClientUnaryCall;
getDebugConfig(request: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigResponse) => void): grpc.ClientUnaryCall;
getDebugConfig(request: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigResponse) => void): grpc.ClientUnaryCall;
settingsGetAll(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse) => void): grpc.ClientUnaryCall;
settingsGetAll(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse) => void): grpc.ClientUnaryCall;
settingsGetAll(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse) => void): grpc.ClientUnaryCall;
settingsMerge(request: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse) => void): grpc.ClientUnaryCall;
settingsMerge(request: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse) => void): grpc.ClientUnaryCall;
settingsMerge(request: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse) => void): grpc.ClientUnaryCall;
checkForArduinoCLIUpdates(request: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse) => void): grpc.ClientUnaryCall;
checkForArduinoCLIUpdates(request: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse) => void): grpc.ClientUnaryCall;
checkForArduinoCLIUpdates(request: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse) => void): grpc.ClientUnaryCall;
cleanDownloadCacheDirectory(request: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse) => void): grpc.ClientUnaryCall;
cleanDownloadCacheDirectory(request: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse) => void): grpc.ClientUnaryCall;
cleanDownloadCacheDirectory(request: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse) => void): grpc.ClientUnaryCall;
configurationSave(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse) => void): grpc.ClientUnaryCall;
configurationSave(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse) => void): grpc.ClientUnaryCall;
configurationSave(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse) => void): grpc.ClientUnaryCall;
configurationOpen(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse) => void): grpc.ClientUnaryCall;
configurationOpen(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse) => void): grpc.ClientUnaryCall;
configurationOpen(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse) => void): grpc.ClientUnaryCall;
configurationGet(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse) => void): grpc.ClientUnaryCall;
configurationGet(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse) => void): grpc.ClientUnaryCall;
configurationGet(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse) => void): grpc.ClientUnaryCall;
settingsEnumerate(request: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse) => void): grpc.ClientUnaryCall;
settingsEnumerate(request: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse) => void): grpc.ClientUnaryCall;
settingsEnumerate(request: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse) => void): grpc.ClientUnaryCall;
settingsGetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueResponse) => void): grpc.ClientUnaryCall;
settingsGetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueResponse) => void): grpc.ClientUnaryCall;
settingsGetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueResponse) => void): grpc.ClientUnaryCall;
settingsSetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse) => void): grpc.ClientUnaryCall;
settingsSetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse) => void): grpc.ClientUnaryCall;
settingsSetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse) => void): grpc.ClientUnaryCall;
settingsWrite(request: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse) => void): grpc.ClientUnaryCall;
settingsWrite(request: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse) => void): grpc.ClientUnaryCall;
settingsWrite(request: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse) => void): grpc.ClientUnaryCall;
settingsDelete(request: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse) => void): grpc.ClientUnaryCall;
settingsDelete(request: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse) => void): grpc.ClientUnaryCall;
settingsDelete(request: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse) => void): grpc.ClientUnaryCall;
}
export class ArduinoCoreServiceClient extends grpc.Client implements IArduinoCoreServiceClient {
@@ -772,22 +800,28 @@ export class ArduinoCoreServiceClient extends grpc.Client implements IArduinoCor
public getDebugConfig(request: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigResponse) => void): grpc.ClientUnaryCall;
public getDebugConfig(request: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigResponse) => void): grpc.ClientUnaryCall;
public getDebugConfig(request: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_debug_pb.GetDebugConfigResponse) => void): grpc.ClientUnaryCall;
public settingsGetAll(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse) => void): grpc.ClientUnaryCall;
public settingsGetAll(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse) => void): grpc.ClientUnaryCall;
public settingsGetAll(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse) => void): grpc.ClientUnaryCall;
public settingsMerge(request: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse) => void): grpc.ClientUnaryCall;
public settingsMerge(request: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse) => void): grpc.ClientUnaryCall;
public settingsMerge(request: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse) => void): grpc.ClientUnaryCall;
public checkForArduinoCLIUpdates(request: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse) => void): grpc.ClientUnaryCall;
public checkForArduinoCLIUpdates(request: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse) => void): grpc.ClientUnaryCall;
public checkForArduinoCLIUpdates(request: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse) => void): grpc.ClientUnaryCall;
public cleanDownloadCacheDirectory(request: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse) => void): grpc.ClientUnaryCall;
public cleanDownloadCacheDirectory(request: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse) => void): grpc.ClientUnaryCall;
public cleanDownloadCacheDirectory(request: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse) => void): grpc.ClientUnaryCall;
public configurationSave(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse) => void): grpc.ClientUnaryCall;
public configurationSave(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse) => void): grpc.ClientUnaryCall;
public configurationSave(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse) => void): grpc.ClientUnaryCall;
public configurationOpen(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse) => void): grpc.ClientUnaryCall;
public configurationOpen(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse) => void): grpc.ClientUnaryCall;
public configurationOpen(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse) => void): grpc.ClientUnaryCall;
public configurationGet(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse) => void): grpc.ClientUnaryCall;
public configurationGet(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse) => void): grpc.ClientUnaryCall;
public configurationGet(request: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse) => void): grpc.ClientUnaryCall;
public settingsEnumerate(request: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse) => void): grpc.ClientUnaryCall;
public settingsEnumerate(request: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse) => void): grpc.ClientUnaryCall;
public settingsEnumerate(request: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse) => void): grpc.ClientUnaryCall;
public settingsGetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueResponse) => void): grpc.ClientUnaryCall;
public settingsGetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueResponse) => void): grpc.ClientUnaryCall;
public settingsGetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueResponse) => void): grpc.ClientUnaryCall;
public settingsSetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse) => void): grpc.ClientUnaryCall;
public settingsSetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse) => void): grpc.ClientUnaryCall;
public settingsSetValue(request: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse) => void): grpc.ClientUnaryCall;
public settingsWrite(request: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse) => void): grpc.ClientUnaryCall;
public settingsWrite(request: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse) => void): grpc.ClientUnaryCall;
public settingsWrite(request: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse) => void): grpc.ClientUnaryCall;
public settingsDelete(request: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse) => void): grpc.ClientUnaryCall;
public settingsDelete(request: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse) => void): grpc.ClientUnaryCall;
public settingsDelete(request: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse) => void): grpc.ClientUnaryCall;
}

View File

@@ -3,31 +3,32 @@
// Original file comments:
// This file is part of arduino-cli.
//
// Copyright 2020 ARDUINO SA (http://www.arduino.cc/)
// Copyright 2024 ARDUINO SA (https://www.arduino.cc/)
//
// This software is released under the GNU General Public License version 3,
// which covers the main part of arduino-cli.
// The terms of this license can be found at:
// https://www.gnu.org/licenses/gpl-3.0.en.html
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// You can be released from the requirements of the above licenses by purchasing
// a commercial license. Buying such a license is mandatory if you want to
// modify or otherwise use the software for commercial activities involving the
// Arduino software without disclosing the source code of your own applications.
// To purchase a commercial license, send an email to license@arduino.cc.
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
'use strict';
var cc_arduino_cli_commands_v1_commands_pb = require('../../../../../cc/arduino/cli/commands/v1/commands_pb.js');
var google_rpc_status_pb = require('../../../../../google/rpc/status_pb.js');
var cc_arduino_cli_commands_v1_common_pb = require('../../../../../cc/arduino/cli/commands/v1/common_pb.js');
var cc_arduino_cli_commands_v1_board_pb = require('../../../../../cc/arduino/cli/commands/v1/board_pb.js');
var cc_arduino_cli_commands_v1_common_pb = require('../../../../../cc/arduino/cli/commands/v1/common_pb.js');
var cc_arduino_cli_commands_v1_compile_pb = require('../../../../../cc/arduino/cli/commands/v1/compile_pb.js');
var cc_arduino_cli_commands_v1_core_pb = require('../../../../../cc/arduino/cli/commands/v1/core_pb.js');
var cc_arduino_cli_commands_v1_debug_pb = require('../../../../../cc/arduino/cli/commands/v1/debug_pb.js');
var cc_arduino_cli_commands_v1_monitor_pb = require('../../../../../cc/arduino/cli/commands/v1/monitor_pb.js');
var cc_arduino_cli_commands_v1_upload_pb = require('../../../../../cc/arduino/cli/commands/v1/upload_pb.js');
var cc_arduino_cli_commands_v1_lib_pb = require('../../../../../cc/arduino/cli/commands/v1/lib_pb.js');
var cc_arduino_cli_commands_v1_monitor_pb = require('../../../../../cc/arduino/cli/commands/v1/monitor_pb.js');
var cc_arduino_cli_commands_v1_settings_pb = require('../../../../../cc/arduino/cli/commands/v1/settings_pb.js');
var cc_arduino_cli_commands_v1_upload_pb = require('../../../../../cc/arduino/cli/commands/v1/upload_pb.js');
var google_rpc_status_pb = require('../../../../../google/rpc/status_pb.js');
function serialize_cc_arduino_cli_commands_v1_ArchiveSketchRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_commands_pb.ArchiveSketchRequest)) {
@@ -183,6 +184,50 @@ function deserialize_cc_arduino_cli_commands_v1_BurnBootloaderResponse(buffer_ar
return cc_arduino_cli_commands_v1_upload_pb.BurnBootloaderResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_CheckForArduinoCLIUpdatesRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.CheckForArduinoCLIUpdatesRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_CheckForArduinoCLIUpdatesRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_CheckForArduinoCLIUpdatesResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.CheckForArduinoCLIUpdatesResponse');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_CheckForArduinoCLIUpdatesResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.CleanDownloadCacheDirectoryRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.CleanDownloadCacheDirectoryResponse');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_CompileRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_compile_pb.CompileRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.CompileRequest');
@@ -205,6 +250,72 @@ function deserialize_cc_arduino_cli_commands_v1_CompileResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_compile_pb.CompileResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_ConfigurationGetRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.ConfigurationGetRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_ConfigurationGetRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.ConfigurationGetResponse');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_ConfigurationOpenRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.ConfigurationOpenRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_ConfigurationOpenRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.ConfigurationOpenResponse');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_ConfigurationSaveRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.ConfigurationSaveRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_ConfigurationSaveRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.ConfigurationSaveResponse');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_CreateRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_commands_pb.CreateRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.CreateRequest');
@@ -777,48 +888,26 @@ function deserialize_cc_arduino_cli_commands_v1_SetSketchDefaultsResponse(buffer
return cc_arduino_cli_commands_v1_commands_pb.SetSketchDefaultsResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsDeleteRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsDeleteRequest');
function serialize_cc_arduino_cli_commands_v1_SettingsEnumerateRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsEnumerateRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_SettingsDeleteRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest.deserializeBinary(new Uint8Array(buffer_arg));
function deserialize_cc_arduino_cli_commands_v1_SettingsEnumerateRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsDeleteResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsDeleteResponse');
function serialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsEnumerateResponse');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_SettingsDeleteResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsGetAllRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsGetAllRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_SettingsGetAllRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsGetAllResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsGetAllResponse');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_SettingsGetAllResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse.deserializeBinary(new Uint8Array(buffer_arg));
function deserialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsGetValueRequest(arg) {
@@ -843,28 +932,6 @@ function deserialize_cc_arduino_cli_commands_v1_SettingsGetValueResponse(buffer_
return cc_arduino_cli_commands_v1_settings_pb.SettingsGetValueResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsMergeRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsMergeRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_SettingsMergeRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsMergeResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsMergeResponse');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_SettingsMergeResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsSetValueRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsSetValueRequest');
@@ -887,28 +954,6 @@ function deserialize_cc_arduino_cli_commands_v1_SettingsSetValueResponse(buffer_
return cc_arduino_cli_commands_v1_settings_pb.SettingsSetValueResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsWriteRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsWriteRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_SettingsWriteRequest(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SettingsWriteResponse(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SettingsWriteResponse');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_cc_arduino_cli_commands_v1_SettingsWriteResponse(buffer_arg) {
return cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_cc_arduino_cli_commands_v1_SupportedUserFieldsRequest(arg) {
if (!(arg instanceof cc_arduino_cli_commands_v1_upload_pb.SupportedUserFieldsRequest)) {
throw new Error('Expected argument of type cc.arduino.cli.commands.v1.SupportedUserFieldsRequest');
@@ -1064,9 +1109,9 @@ function deserialize_cc_arduino_cli_commands_v1_ZipLibraryInstallResponse(buffer
}
// The main Arduino Platform service API
// The main Arduino Platform service API.
var ArduinoCoreServiceService = exports['cc.arduino.cli.commands.v1.ArduinoCoreService'] = {
// Create a new Arduino Core instance
// Create a new Arduino Core instance.
create: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Create',
requestStream: false,
@@ -1079,7 +1124,7 @@ create: {
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_CreateResponse,
},
// Initializes an existing Arduino Core instance by loading platforms and
// libraries
// libraries.
init: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Init',
requestStream: false,
@@ -1091,7 +1136,7 @@ init: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_InitResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_InitResponse,
},
// Destroy an instance of the Arduino Core Service
// Destroy an instance of the Arduino Core Service.
destroy: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Destroy',
requestStream: false,
@@ -1103,7 +1148,7 @@ destroy: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_DestroyResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_DestroyResponse,
},
// Update package index of the Arduino Core Service
// Update package index of the Arduino Core Service.
updateIndex: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/UpdateIndex',
requestStream: false,
@@ -1115,7 +1160,7 @@ updateIndex: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_UpdateIndexResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_UpdateIndexResponse,
},
// Update libraries index
// Update libraries index.
updateLibrariesIndex: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/UpdateLibrariesIndex',
requestStream: false,
@@ -1139,7 +1184,7 @@ version: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_VersionResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_VersionResponse,
},
// Create a new Sketch
// Create a new Sketch.
newSketch: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/NewSketch',
requestStream: false,
@@ -1151,7 +1196,7 @@ newSketch: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_NewSketchResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_NewSketchResponse,
},
// Returns all files composing a Sketch
// Returns all files composing a Sketch.
loadSketch: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/LoadSketch',
requestStream: false,
@@ -1163,7 +1208,7 @@ loadSketch: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_LoadSketchResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_LoadSketchResponse,
},
// Creates a zip file containing all files of specified Sketch
// Creates a zip file containing all files of specified Sketch.
archiveSketch: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ArchiveSketch',
requestStream: false,
@@ -1189,10 +1234,7 @@ setSketchDefaults: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_SetSketchDefaultsResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SetSketchDefaultsResponse,
},
// BOARD COMMANDS
// --------------
//
// Requests details about a board
// Requests details about a board.
boardDetails: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/BoardDetails',
requestStream: false,
@@ -1424,7 +1466,7 @@ libraryUpgrade: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_LibraryUpgradeResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_LibraryUpgradeResponse,
},
// Install a library from a Zip File
// Install a library from a Zip File.
zipLibraryInstall: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ZipLibraryInstall',
requestStream: false,
@@ -1436,7 +1478,7 @@ zipLibraryInstall: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_ZipLibraryInstallResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ZipLibraryInstallResponse,
},
// Download and install a library from a git url
// Download and install a library from a git url.
gitLibraryInstall: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/GitLibraryInstall',
requestStream: false,
@@ -1509,7 +1551,7 @@ libraryList: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_LibraryListResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_LibraryListResponse,
},
// Open a monitor connection to a board port
// Open a monitor connection to a board port.
monitor: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/Monitor',
requestStream: true,
@@ -1521,7 +1563,7 @@ monitor: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_MonitorResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_MonitorResponse,
},
// Returns the parameters that can be set in the MonitorRequest calls
// Returns the parameters that can be set in the MonitorRequest calls.
enumerateMonitorPortSettings: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/EnumerateMonitorPortSettings',
requestStream: false,
@@ -1569,31 +1611,79 @@ getDebugConfig: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_GetDebugConfigResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_GetDebugConfigResponse,
},
// List all the settings.
settingsGetAll: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsGetAll',
// Check for updates to the Arduino CLI.
checkForArduinoCLIUpdates: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/CheckForArduinoCLIUpdates',
requestStream: false,
responseStream: false,
requestType: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllRequest,
responseType: cc_arduino_cli_commands_v1_settings_pb.SettingsGetAllResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_SettingsGetAllRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsGetAllRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsGetAllResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsGetAllResponse,
requestType: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesRequest,
responseType: cc_arduino_cli_commands_v1_commands_pb.CheckForArduinoCLIUpdatesResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_CheckForArduinoCLIUpdatesRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_CheckForArduinoCLIUpdatesRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_CheckForArduinoCLIUpdatesResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_CheckForArduinoCLIUpdatesResponse,
},
// Set multiple settings values at once.
settingsMerge: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsMerge',
// Clean the download cache directory (where archives are downloaded).
cleanDownloadCacheDirectory: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/CleanDownloadCacheDirectory',
requestStream: false,
responseStream: false,
requestType: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeRequest,
responseType: cc_arduino_cli_commands_v1_settings_pb.SettingsMergeResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_SettingsMergeRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsMergeRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsMergeResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsMergeResponse,
requestType: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryRequest,
responseType: cc_arduino_cli_commands_v1_commands_pb.CleanDownloadCacheDirectoryResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_CleanDownloadCacheDirectoryResponse,
},
// Get the value of a specific setting.
// Writes the settings currently stored in memory in a YAML file.
configurationSave: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationSave',
requestStream: false,
responseStream: false,
requestType: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveRequest,
responseType: cc_arduino_cli_commands_v1_settings_pb.ConfigurationSaveResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationSaveRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationSaveRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationSaveResponse,
},
// Read the settings from a YAML file.
configurationOpen: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationOpen',
requestStream: false,
responseStream: false,
requestType: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenRequest,
responseType: cc_arduino_cli_commands_v1_settings_pb.ConfigurationOpenResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationOpenRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationOpenRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationOpenResponse,
},
// Get the current configuration.
configurationGet: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/ConfigurationGet',
requestStream: false,
responseStream: false,
requestType: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetRequest,
responseType: cc_arduino_cli_commands_v1_settings_pb.ConfigurationGetResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationGetRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationGetRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_ConfigurationGetResponse,
},
// Enumerate all the keys/values pairs available in the configuration.
settingsEnumerate: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsEnumerate',
requestStream: false,
responseStream: false,
requestType: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateRequest,
responseType: cc_arduino_cli_commands_v1_settings_pb.SettingsEnumerateResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_SettingsEnumerateRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsEnumerateRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsEnumerateResponse,
},
// Get a single configuration value.
settingsGetValue: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsGetValue',
requestStream: false,
@@ -1605,7 +1695,7 @@ settingsGetValue: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsGetValueResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsGetValueResponse,
},
// Set the value of a specific setting.
// Set a single configuration value.
settingsSetValue: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsSetValue',
requestStream: false,
@@ -1617,29 +1707,5 @@ settingsSetValue: {
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsSetValueResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsSetValueResponse,
},
// Writes to file settings currently stored in memory
settingsWrite: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsWrite',
requestStream: false,
responseStream: false,
requestType: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteRequest,
responseType: cc_arduino_cli_commands_v1_settings_pb.SettingsWriteResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_SettingsWriteRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsWriteRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsWriteResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsWriteResponse,
},
// Deletes an entry and rewrites the file settings
settingsDelete: {
path: '/cc.arduino.cli.commands.v1.ArduinoCoreService/SettingsDelete',
requestStream: false,
responseStream: false,
requestType: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteRequest,
responseType: cc_arduino_cli_commands_v1_settings_pb.SettingsDeleteResponse,
requestSerialize: serialize_cc_arduino_cli_commands_v1_SettingsDeleteRequest,
requestDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsDeleteRequest,
responseSerialize: serialize_cc_arduino_cli_commands_v1_SettingsDeleteResponse,
responseDeserialize: deserialize_cc_arduino_cli_commands_v1_SettingsDeleteResponse,
},
};

View File

@@ -5,16 +5,16 @@
/* eslint-disable */
import * as jspb from "google-protobuf";
import * as google_rpc_status_pb from "../../../../../google/rpc/status_pb";
import * as cc_arduino_cli_commands_v1_common_pb from "../../../../../cc/arduino/cli/commands/v1/common_pb";
import * as cc_arduino_cli_commands_v1_board_pb from "../../../../../cc/arduino/cli/commands/v1/board_pb";
import * as cc_arduino_cli_commands_v1_common_pb from "../../../../../cc/arduino/cli/commands/v1/common_pb";
import * as cc_arduino_cli_commands_v1_compile_pb from "../../../../../cc/arduino/cli/commands/v1/compile_pb";
import * as cc_arduino_cli_commands_v1_core_pb from "../../../../../cc/arduino/cli/commands/v1/core_pb";
import * as cc_arduino_cli_commands_v1_debug_pb from "../../../../../cc/arduino/cli/commands/v1/debug_pb";
import * as cc_arduino_cli_commands_v1_monitor_pb from "../../../../../cc/arduino/cli/commands/v1/monitor_pb";
import * as cc_arduino_cli_commands_v1_upload_pb from "../../../../../cc/arduino/cli/commands/v1/upload_pb";
import * as cc_arduino_cli_commands_v1_lib_pb from "../../../../../cc/arduino/cli/commands/v1/lib_pb";
import * as cc_arduino_cli_commands_v1_monitor_pb from "../../../../../cc/arduino/cli/commands/v1/monitor_pb";
import * as cc_arduino_cli_commands_v1_settings_pb from "../../../../../cc/arduino/cli/commands/v1/settings_pb";
import * as cc_arduino_cli_commands_v1_upload_pb from "../../../../../cc/arduino/cli/commands/v1/upload_pb";
import * as google_rpc_status_pb from "../../../../../google/rpc/status_pb";
export class CreateRequest extends jspb.Message {
@@ -99,8 +99,8 @@ export class InitResponse extends jspb.Message {
hasProfile(): boolean;
clearProfile(): void;
getProfile(): cc_arduino_cli_commands_v1_common_pb.Profile | undefined;
setProfile(value?: cc_arduino_cli_commands_v1_common_pb.Profile): InitResponse;
getProfile(): cc_arduino_cli_commands_v1_common_pb.SketchProfile | undefined;
setProfile(value?: cc_arduino_cli_commands_v1_common_pb.SketchProfile): InitResponse;
getMessageCase(): InitResponse.MessageCase;
@@ -118,7 +118,7 @@ export namespace InitResponse {
export type AsObject = {
initProgress?: InitResponse.Progress.AsObject,
error?: google_rpc_status_pb.Status.AsObject,
profile?: cc_arduino_cli_commands_v1_common_pb.Profile.AsObject,
profile?: cc_arduino_cli_commands_v1_common_pb.SketchProfile.AsObject,
}
@@ -232,6 +232,8 @@ export class UpdateIndexRequest extends jspb.Message {
setInstance(value?: cc_arduino_cli_commands_v1_common_pb.Instance): UpdateIndexRequest;
getIgnoreCustomPackageIndexes(): boolean;
setIgnoreCustomPackageIndexes(value: boolean): UpdateIndexRequest;
getUpdateIfOlderThanSecs(): number;
setUpdateIfOlderThanSecs(value: number): UpdateIndexRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UpdateIndexRequest.AsObject;
@@ -247,6 +249,7 @@ export namespace UpdateIndexRequest {
export type AsObject = {
instance?: cc_arduino_cli_commands_v1_common_pb.Instance.AsObject,
ignoreCustomPackageIndexes: boolean,
updateIfOlderThanSecs: number,
}
}
@@ -257,6 +260,13 @@ export class UpdateIndexResponse extends jspb.Message {
getDownloadProgress(): cc_arduino_cli_commands_v1_common_pb.DownloadProgress | undefined;
setDownloadProgress(value?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress): UpdateIndexResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): UpdateIndexResponse.Result | undefined;
setResult(value?: UpdateIndexResponse.Result): UpdateIndexResponse;
getMessageCase(): UpdateIndexResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UpdateIndexResponse.AsObject;
static toObject(includeInstance: boolean, msg: UpdateIndexResponse): UpdateIndexResponse.AsObject;
@@ -270,7 +280,39 @@ export class UpdateIndexResponse extends jspb.Message {
export namespace UpdateIndexResponse {
export type AsObject = {
downloadProgress?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress.AsObject,
result?: UpdateIndexResponse.Result.AsObject,
}
export class Result extends jspb.Message {
clearUpdatedIndexesList(): void;
getUpdatedIndexesList(): Array<IndexUpdateReport>;
setUpdatedIndexesList(value: Array<IndexUpdateReport>): Result;
addUpdatedIndexes(value?: IndexUpdateReport, index?: number): IndexUpdateReport;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
updatedIndexesList: Array<IndexUpdateReport.AsObject>,
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
DOWNLOAD_PROGRESS = 1,
RESULT = 2,
}
}
export class UpdateLibrariesIndexRequest extends jspb.Message {
@@ -279,6 +321,8 @@ export class UpdateLibrariesIndexRequest extends jspb.Message {
clearInstance(): void;
getInstance(): cc_arduino_cli_commands_v1_common_pb.Instance | undefined;
setInstance(value?: cc_arduino_cli_commands_v1_common_pb.Instance): UpdateLibrariesIndexRequest;
getUpdateIfOlderThanSecs(): number;
setUpdateIfOlderThanSecs(value: number): UpdateLibrariesIndexRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UpdateLibrariesIndexRequest.AsObject;
@@ -293,6 +337,7 @@ export class UpdateLibrariesIndexRequest extends jspb.Message {
export namespace UpdateLibrariesIndexRequest {
export type AsObject = {
instance?: cc_arduino_cli_commands_v1_common_pb.Instance.AsObject,
updateIfOlderThanSecs: number,
}
}
@@ -303,6 +348,13 @@ export class UpdateLibrariesIndexResponse extends jspb.Message {
getDownloadProgress(): cc_arduino_cli_commands_v1_common_pb.DownloadProgress | undefined;
setDownloadProgress(value?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress): UpdateLibrariesIndexResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): UpdateLibrariesIndexResponse.Result | undefined;
setResult(value?: UpdateLibrariesIndexResponse.Result): UpdateLibrariesIndexResponse;
getMessageCase(): UpdateLibrariesIndexResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UpdateLibrariesIndexResponse.AsObject;
static toObject(includeInstance: boolean, msg: UpdateLibrariesIndexResponse): UpdateLibrariesIndexResponse.AsObject;
@@ -316,7 +368,72 @@ export class UpdateLibrariesIndexResponse extends jspb.Message {
export namespace UpdateLibrariesIndexResponse {
export type AsObject = {
downloadProgress?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress.AsObject,
result?: UpdateLibrariesIndexResponse.Result.AsObject,
}
export class Result extends jspb.Message {
hasLibrariesIndex(): boolean;
clearLibrariesIndex(): void;
getLibrariesIndex(): IndexUpdateReport | undefined;
setLibrariesIndex(value?: IndexUpdateReport): Result;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
librariesIndex?: IndexUpdateReport.AsObject,
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
DOWNLOAD_PROGRESS = 1,
RESULT = 2,
}
}
export class IndexUpdateReport extends jspb.Message {
getIndexUrl(): string;
setIndexUrl(value: string): IndexUpdateReport;
getStatus(): IndexUpdateReport.Status;
setStatus(value: IndexUpdateReport.Status): IndexUpdateReport;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): IndexUpdateReport.AsObject;
static toObject(includeInstance: boolean, msg: IndexUpdateReport): IndexUpdateReport.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: IndexUpdateReport, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): IndexUpdateReport;
static deserializeBinaryFromReader(message: IndexUpdateReport, reader: jspb.BinaryReader): IndexUpdateReport;
}
export namespace IndexUpdateReport {
export type AsObject = {
indexUrl: string,
status: IndexUpdateReport.Status,
}
export enum Status {
STATUS_UNSPECIFIED = 0,
STATUS_UPDATED = 1,
STATUS_ALREADY_UP_TO_DATE = 2,
STATUS_FAILED = 3,
STATUS_SKIPPED = 4,
}
}
export class VersionRequest extends jspb.Message {
@@ -500,6 +617,8 @@ export class SetSketchDefaultsRequest extends jspb.Message {
setDefaultPortAddress(value: string): SetSketchDefaultsRequest;
getDefaultPortProtocol(): string;
setDefaultPortProtocol(value: string): SetSketchDefaultsRequest;
getDefaultProgrammer(): string;
setDefaultProgrammer(value: string): SetSketchDefaultsRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SetSketchDefaultsRequest.AsObject;
@@ -517,6 +636,7 @@ export namespace SetSketchDefaultsRequest {
defaultFqbn: string,
defaultPortAddress: string,
defaultPortProtocol: string,
defaultProgrammer: string,
}
}
@@ -527,6 +647,8 @@ export class SetSketchDefaultsResponse extends jspb.Message {
setDefaultPortAddress(value: string): SetSketchDefaultsResponse;
getDefaultPortProtocol(): string;
setDefaultPortProtocol(value: string): SetSketchDefaultsResponse;
getDefaultProgrammer(): string;
setDefaultProgrammer(value: string): SetSketchDefaultsResponse;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SetSketchDefaultsResponse.AsObject;
@@ -543,6 +665,87 @@ export namespace SetSketchDefaultsResponse {
defaultFqbn: string,
defaultPortAddress: string,
defaultPortProtocol: string,
defaultProgrammer: string,
}
}
export class CheckForArduinoCLIUpdatesRequest extends jspb.Message {
getForceCheck(): boolean;
setForceCheck(value: boolean): CheckForArduinoCLIUpdatesRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): CheckForArduinoCLIUpdatesRequest.AsObject;
static toObject(includeInstance: boolean, msg: CheckForArduinoCLIUpdatesRequest): CheckForArduinoCLIUpdatesRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: CheckForArduinoCLIUpdatesRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): CheckForArduinoCLIUpdatesRequest;
static deserializeBinaryFromReader(message: CheckForArduinoCLIUpdatesRequest, reader: jspb.BinaryReader): CheckForArduinoCLIUpdatesRequest;
}
export namespace CheckForArduinoCLIUpdatesRequest {
export type AsObject = {
forceCheck: boolean,
}
}
export class CheckForArduinoCLIUpdatesResponse extends jspb.Message {
getNewestVersion(): string;
setNewestVersion(value: string): CheckForArduinoCLIUpdatesResponse;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): CheckForArduinoCLIUpdatesResponse.AsObject;
static toObject(includeInstance: boolean, msg: CheckForArduinoCLIUpdatesResponse): CheckForArduinoCLIUpdatesResponse.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: CheckForArduinoCLIUpdatesResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): CheckForArduinoCLIUpdatesResponse;
static deserializeBinaryFromReader(message: CheckForArduinoCLIUpdatesResponse, reader: jspb.BinaryReader): CheckForArduinoCLIUpdatesResponse;
}
export namespace CheckForArduinoCLIUpdatesResponse {
export type AsObject = {
newestVersion: string,
}
}
export class CleanDownloadCacheDirectoryRequest extends jspb.Message {
hasInstance(): boolean;
clearInstance(): void;
getInstance(): cc_arduino_cli_commands_v1_common_pb.Instance | undefined;
setInstance(value?: cc_arduino_cli_commands_v1_common_pb.Instance): CleanDownloadCacheDirectoryRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): CleanDownloadCacheDirectoryRequest.AsObject;
static toObject(includeInstance: boolean, msg: CleanDownloadCacheDirectoryRequest): CleanDownloadCacheDirectoryRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: CleanDownloadCacheDirectoryRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): CleanDownloadCacheDirectoryRequest;
static deserializeBinaryFromReader(message: CleanDownloadCacheDirectoryRequest, reader: jspb.BinaryReader): CleanDownloadCacheDirectoryRequest;
}
export namespace CleanDownloadCacheDirectoryRequest {
export type AsObject = {
instance?: cc_arduino_cli_commands_v1_common_pb.Instance.AsObject,
}
}
export class CleanDownloadCacheDirectoryResponse extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): CleanDownloadCacheDirectoryResponse.AsObject;
static toObject(includeInstance: boolean, msg: CleanDownloadCacheDirectoryResponse): CleanDownloadCacheDirectoryResponse.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: CleanDownloadCacheDirectoryResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): CleanDownloadCacheDirectoryResponse;
static deserializeBinaryFromReader(message: CleanDownloadCacheDirectoryResponse, reader: jspb.BinaryReader): CleanDownloadCacheDirectoryResponse;
}
export namespace CleanDownloadCacheDirectoryResponse {
export type AsObject = {
}
}

View File

@@ -318,10 +318,10 @@ export class PlatformRelease extends jspb.Message {
setName(value: string): PlatformRelease;
getVersion(): string;
setVersion(value: string): PlatformRelease;
clearTypeList(): void;
getTypeList(): Array<string>;
setTypeList(value: Array<string>): PlatformRelease;
addType(value: string, index?: number): string;
clearTypesList(): void;
getTypesList(): Array<string>;
setTypesList(value: Array<string>): PlatformRelease;
addTypes(value: string, index?: number): string;
getInstalled(): boolean;
setInstalled(value: boolean): PlatformRelease;
clearBoardsList(): void;
@@ -354,7 +354,7 @@ export namespace PlatformRelease {
export type AsObject = {
name: string,
version: string,
typeList: Array<string>,
typesList: Array<string>,
installed: boolean,
boardsList: Array<Board.AsObject>,
help?: HelpResources.AsObject,
@@ -416,29 +416,6 @@ export namespace Board {
}
}
export class Profile extends jspb.Message {
getName(): string;
setName(value: string): Profile;
getFqbn(): string;
setFqbn(value: string): Profile;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Profile.AsObject;
static toObject(includeInstance: boolean, msg: Profile): Profile.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Profile, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Profile;
static deserializeBinaryFromReader(message: Profile, reader: jspb.BinaryReader): Profile;
}
export namespace Profile {
export type AsObject = {
name: string,
fqbn: string,
}
}
export class HelpResources extends jspb.Message {
getOnline(): string;
setOnline(value: string): HelpResources;
@@ -491,6 +468,13 @@ export class Sketch extends jspb.Message {
clearDefaultProfile(): void;
getDefaultProfile(): SketchProfile | undefined;
setDefaultProfile(value?: SketchProfile): Sketch;
getDefaultProgrammer(): string;
setDefaultProgrammer(value: string): Sketch;
hasDefaultPortConfig(): boolean;
clearDefaultPortConfig(): void;
getDefaultPortConfig(): MonitorPortConfiguration | undefined;
setDefaultPortConfig(value?: MonitorPortConfiguration): Sketch;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Sketch.AsObject;
@@ -514,6 +498,53 @@ export namespace Sketch {
defaultProtocol: string,
profilesList: Array<SketchProfile.AsObject>,
defaultProfile?: SketchProfile.AsObject,
defaultProgrammer: string,
defaultPortConfig?: MonitorPortConfiguration.AsObject,
}
}
export class MonitorPortConfiguration extends jspb.Message {
clearSettingsList(): void;
getSettingsList(): Array<MonitorPortSetting>;
setSettingsList(value: Array<MonitorPortSetting>): MonitorPortConfiguration;
addSettings(value?: MonitorPortSetting, index?: number): MonitorPortSetting;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): MonitorPortConfiguration.AsObject;
static toObject(includeInstance: boolean, msg: MonitorPortConfiguration): MonitorPortConfiguration.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: MonitorPortConfiguration, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): MonitorPortConfiguration;
static deserializeBinaryFromReader(message: MonitorPortConfiguration, reader: jspb.BinaryReader): MonitorPortConfiguration;
}
export namespace MonitorPortConfiguration {
export type AsObject = {
settingsList: Array<MonitorPortSetting.AsObject>,
}
}
export class MonitorPortSetting extends jspb.Message {
getSettingId(): string;
setSettingId(value: string): MonitorPortSetting;
getValue(): string;
setValue(value: string): MonitorPortSetting;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): MonitorPortSetting.AsObject;
static toObject(includeInstance: boolean, msg: MonitorPortSetting): MonitorPortSetting.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: MonitorPortSetting, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): MonitorPortSetting;
static deserializeBinaryFromReader(message: MonitorPortSetting, reader: jspb.BinaryReader): MonitorPortSetting;
}
export namespace MonitorPortSetting {
export type AsObject = {
settingId: string,
value: string,
}
}
@@ -522,6 +553,17 @@ export class SketchProfile extends jspb.Message {
setName(value: string): SketchProfile;
getFqbn(): string;
setFqbn(value: string): SketchProfile;
getProgrammer(): string;
setProgrammer(value: string): SketchProfile;
getPort(): string;
setPort(value: string): SketchProfile;
hasPortConfig(): boolean;
clearPortConfig(): void;
getPortConfig(): MonitorPortConfiguration | undefined;
setPortConfig(value?: MonitorPortConfiguration): SketchProfile;
getProtocol(): string;
setProtocol(value: string): SketchProfile;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SketchProfile.AsObject;
@@ -537,5 +579,9 @@ export namespace SketchProfile {
export type AsObject = {
name: string,
fqbn: string,
programmer: string,
port: string,
portConfig?: MonitorPortConfiguration.AsObject,
protocol: string,
}
}

View File

@@ -31,11 +31,12 @@ goog.exportSymbol('proto.cc.arduino.cli.commands.v1.HelpResources', null, global
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.InstalledPlatformReference', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.Instance', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MissingProgrammerError', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorPortSetting', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.Platform', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.PlatformMetadata', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.PlatformRelease', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.PlatformSummary', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.Profile', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.Programmer', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.Sketch', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.SketchProfile', null, global);
@@ -334,27 +335,6 @@ if (goog.DEBUG && !COMPILED) {
*/
proto.cc.arduino.cli.commands.v1.Board.displayName = 'proto.cc.arduino.cli.commands.v1.Board';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.cc.arduino.cli.commands.v1.Profile = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.Profile, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.cc.arduino.cli.commands.v1.Profile.displayName = 'proto.cc.arduino.cli.commands.v1.Profile';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@@ -397,6 +377,48 @@ if (goog.DEBUG && !COMPILED) {
*/
proto.cc.arduino.cli.commands.v1.Sketch.displayName = 'proto.cc.arduino.cli.commands.v1.Sketch';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.repeatedFields_, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.displayName = 'proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.MonitorPortSetting, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.displayName = 'proto.cc.arduino.cli.commands.v1.MonitorPortSetting';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@@ -2616,7 +2638,7 @@ proto.cc.arduino.cli.commands.v1.PlatformRelease.toObject = function(includeInst
var f, obj = {
name: jspb.Message.getFieldWithDefault(msg, 1, ""),
version: jspb.Message.getFieldWithDefault(msg, 2, ""),
typeList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
typesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
installed: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
boardsList: jspb.Message.toObjectList(msg.getBoardsList(),
proto.cc.arduino.cli.commands.v1.Board.toObject, includeInstance),
@@ -2670,7 +2692,7 @@ proto.cc.arduino.cli.commands.v1.PlatformRelease.deserializeBinaryFromReader = f
break;
case 3:
var value = /** @type {string} */ (reader.readString());
msg.addType(value);
msg.addTypes(value);
break;
case 4:
var value = /** @type {boolean} */ (reader.readBool());
@@ -2741,7 +2763,7 @@ proto.cc.arduino.cli.commands.v1.PlatformRelease.serializeBinaryToWriter = funct
f
);
}
f = message.getTypeList();
f = message.getTypesList();
if (f.length > 0) {
writer.writeRepeatedString(
3,
@@ -2832,10 +2854,10 @@ proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.setVersion = function
/**
* repeated string type = 3;
* repeated string types = 3;
* @return {!Array<string>}
*/
proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.getTypeList = function() {
proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.getTypesList = function() {
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));
};
@@ -2844,7 +2866,7 @@ proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.getTypeList = functio
* @param {!Array<string>} value
* @return {!proto.cc.arduino.cli.commands.v1.PlatformRelease} returns this
*/
proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.setTypeList = function(value) {
proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.setTypesList = function(value) {
return jspb.Message.setField(this, 3, value || []);
};
@@ -2854,7 +2876,7 @@ proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.setTypeList = functio
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.PlatformRelease} returns this
*/
proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.addType = function(value, opt_index) {
proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.addTypes = function(value, opt_index) {
return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};
@@ -2863,8 +2885,8 @@ proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.addType = function(va
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.PlatformRelease} returns this
*/
proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.clearTypeList = function() {
return this.setTypeList([]);
proto.cc.arduino.cli.commands.v1.PlatformRelease.prototype.clearTypesList = function() {
return this.setTypesList([]);
};
@@ -3398,166 +3420,6 @@ proto.cc.arduino.cli.commands.v1.Board.prototype.setFqbn = function(value) {
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.cc.arduino.cli.commands.v1.Profile.prototype.toObject = function(opt_includeInstance) {
return proto.cc.arduino.cli.commands.v1.Profile.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.cc.arduino.cli.commands.v1.Profile} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.Profile.toObject = function(includeInstance, msg) {
var f, obj = {
name: jspb.Message.getFieldWithDefault(msg, 1, ""),
fqbn: jspb.Message.getFieldWithDefault(msg, 2, "")
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.cc.arduino.cli.commands.v1.Profile}
*/
proto.cc.arduino.cli.commands.v1.Profile.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.cc.arduino.cli.commands.v1.Profile;
return proto.cc.arduino.cli.commands.v1.Profile.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.cc.arduino.cli.commands.v1.Profile} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.cc.arduino.cli.commands.v1.Profile}
*/
proto.cc.arduino.cli.commands.v1.Profile.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setName(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setFqbn(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.cc.arduino.cli.commands.v1.Profile.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.cc.arduino.cli.commands.v1.Profile.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.cc.arduino.cli.commands.v1.Profile} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.Profile.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getName();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getFqbn();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
};
/**
* optional string name = 1;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.Profile.prototype.getName = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.Profile} returns this
*/
proto.cc.arduino.cli.commands.v1.Profile.prototype.setName = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional string fqbn = 2;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.Profile.prototype.getFqbn = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.Profile} returns this
*/
proto.cc.arduino.cli.commands.v1.Profile.prototype.setFqbn = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
};
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
@@ -3734,7 +3596,9 @@ proto.cc.arduino.cli.commands.v1.Sketch.toObject = function(includeInstance, msg
defaultProtocol: jspb.Message.getFieldWithDefault(msg, 8, ""),
profilesList: jspb.Message.toObjectList(msg.getProfilesList(),
proto.cc.arduino.cli.commands.v1.SketchProfile.toObject, includeInstance),
defaultProfile: (f = msg.getDefaultProfile()) && proto.cc.arduino.cli.commands.v1.SketchProfile.toObject(includeInstance, f)
defaultProfile: (f = msg.getDefaultProfile()) && proto.cc.arduino.cli.commands.v1.SketchProfile.toObject(includeInstance, f),
defaultProgrammer: jspb.Message.getFieldWithDefault(msg, 11, ""),
defaultPortConfig: (f = msg.getDefaultPortConfig()) && proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject(includeInstance, f)
};
if (includeInstance) {
@@ -3813,6 +3677,15 @@ proto.cc.arduino.cli.commands.v1.Sketch.deserializeBinaryFromReader = function(m
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.SketchProfile.deserializeBinaryFromReader);
msg.setDefaultProfile(value);
break;
case 11:
var value = /** @type {string} */ (reader.readString());
msg.setDefaultProgrammer(value);
break;
case 12:
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration;
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader);
msg.setDefaultPortConfig(value);
break;
default:
reader.skipField();
break;
@@ -3914,6 +3787,21 @@ proto.cc.arduino.cli.commands.v1.Sketch.serializeBinaryToWriter = function(messa
proto.cc.arduino.cli.commands.v1.SketchProfile.serializeBinaryToWriter
);
}
f = message.getDefaultProgrammer();
if (f.length > 0) {
writer.writeString(
11,
f
);
}
f = message.getDefaultPortConfig();
if (f != null) {
writer.writeMessage(
12,
f,
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter
);
}
};
@@ -4193,6 +4081,381 @@ proto.cc.arduino.cli.commands.v1.Sketch.prototype.hasDefaultProfile = function()
};
/**
* optional string default_programmer = 11;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.Sketch.prototype.getDefaultProgrammer = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.Sketch} returns this
*/
proto.cc.arduino.cli.commands.v1.Sketch.prototype.setDefaultProgrammer = function(value) {
return jspb.Message.setProto3StringField(this, 11, value);
};
/**
* optional MonitorPortConfiguration default_port_config = 12;
* @return {?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration}
*/
proto.cc.arduino.cli.commands.v1.Sketch.prototype.getDefaultPortConfig = function() {
return /** @type{?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} */ (
jspb.Message.getWrapperField(this, proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration, 12));
};
/**
* @param {?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration|undefined} value
* @return {!proto.cc.arduino.cli.commands.v1.Sketch} returns this
*/
proto.cc.arduino.cli.commands.v1.Sketch.prototype.setDefaultPortConfig = function(value) {
return jspb.Message.setWrapperField(this, 12, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.cc.arduino.cli.commands.v1.Sketch} returns this
*/
proto.cc.arduino.cli.commands.v1.Sketch.prototype.clearDefaultPortConfig = function() {
return this.setDefaultPortConfig(undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.cc.arduino.cli.commands.v1.Sketch.prototype.hasDefaultPortConfig = function() {
return jspb.Message.getField(this, 12) != null;
};
/**
* List of repeated fields within this message type.
* @private {!Array<number>}
* @const
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.repeatedFields_ = [1];
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.toObject = function(opt_includeInstance) {
return proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject = function(includeInstance, msg) {
var f, obj = {
settingsList: jspb.Message.toObjectList(msg.getSettingsList(),
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.toObject, includeInstance)
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration;
return proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortSetting;
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortSetting.deserializeBinaryFromReader);
msg.addSettings(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getSettingsList();
if (f.length > 0) {
writer.writeRepeatedMessage(
1,
f,
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.serializeBinaryToWriter
);
}
};
/**
* repeated MonitorPortSetting settings = 1;
* @return {!Array<!proto.cc.arduino.cli.commands.v1.MonitorPortSetting>}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.getSettingsList = function() {
return /** @type{!Array<!proto.cc.arduino.cli.commands.v1.MonitorPortSetting>} */ (
jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.v1.MonitorPortSetting, 1));
};
/**
* @param {!Array<!proto.cc.arduino.cli.commands.v1.MonitorPortSetting>} value
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.setSettingsList = function(value) {
return jspb.Message.setRepeatedWrapperField(this, 1, value);
};
/**
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting=} opt_value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.addSettings = function(opt_value, opt_index) {
return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.cc.arduino.cli.commands.v1.MonitorPortSetting, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.clearSettingsList = function() {
return this.setSettingsList([]);
};
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.toObject = function(opt_includeInstance) {
return proto.cc.arduino.cli.commands.v1.MonitorPortSetting.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.toObject = function(includeInstance, msg) {
var f, obj = {
settingId: jspb.Message.getFieldWithDefault(msg, 1, ""),
value: jspb.Message.getFieldWithDefault(msg, 2, "")
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.cc.arduino.cli.commands.v1.MonitorPortSetting;
return proto.cc.arduino.cli.commands.v1.MonitorPortSetting.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setSettingId(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setValue(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getSettingId();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getValue();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
};
/**
* optional string setting_id = 1;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.getSettingId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.setSettingId = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional string value = 2;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.getValue = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.setValue = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
};
@@ -4226,7 +4489,11 @@ proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.toObject = function(opt
proto.cc.arduino.cli.commands.v1.SketchProfile.toObject = function(includeInstance, msg) {
var f, obj = {
name: jspb.Message.getFieldWithDefault(msg, 1, ""),
fqbn: jspb.Message.getFieldWithDefault(msg, 2, "")
fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""),
programmer: jspb.Message.getFieldWithDefault(msg, 3, ""),
port: jspb.Message.getFieldWithDefault(msg, 4, ""),
portConfig: (f = msg.getPortConfig()) && proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject(includeInstance, f),
protocol: jspb.Message.getFieldWithDefault(msg, 6, "")
};
if (includeInstance) {
@@ -4271,6 +4538,23 @@ proto.cc.arduino.cli.commands.v1.SketchProfile.deserializeBinaryFromReader = fun
var value = /** @type {string} */ (reader.readString());
msg.setFqbn(value);
break;
case 3:
var value = /** @type {string} */ (reader.readString());
msg.setProgrammer(value);
break;
case 4:
var value = /** @type {string} */ (reader.readString());
msg.setPort(value);
break;
case 5:
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration;
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader);
msg.setPortConfig(value);
break;
case 6:
var value = /** @type {string} */ (reader.readString());
msg.setProtocol(value);
break;
default:
reader.skipField();
break;
@@ -4314,6 +4598,35 @@ proto.cc.arduino.cli.commands.v1.SketchProfile.serializeBinaryToWriter = functio
f
);
}
f = message.getProgrammer();
if (f.length > 0) {
writer.writeString(
3,
f
);
}
f = message.getPort();
if (f.length > 0) {
writer.writeString(
4,
f
);
}
f = message.getPortConfig();
if (f != null) {
writer.writeMessage(
5,
f,
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter
);
}
f = message.getProtocol();
if (f.length > 0) {
writer.writeString(
6,
f
);
}
};
@@ -4353,4 +4666,95 @@ proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.setFqbn = function(valu
};
/**
* optional string programmer = 3;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.getProgrammer = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.SketchProfile} returns this
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.setProgrammer = function(value) {
return jspb.Message.setProto3StringField(this, 3, value);
};
/**
* optional string port = 4;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.getPort = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.SketchProfile} returns this
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.setPort = function(value) {
return jspb.Message.setProto3StringField(this, 4, value);
};
/**
* optional MonitorPortConfiguration port_config = 5;
* @return {?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration}
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.getPortConfig = function() {
return /** @type{?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} */ (
jspb.Message.getWrapperField(this, proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration, 5));
};
/**
* @param {?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration|undefined} value
* @return {!proto.cc.arduino.cli.commands.v1.SketchProfile} returns this
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.setPortConfig = function(value) {
return jspb.Message.setWrapperField(this, 5, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.cc.arduino.cli.commands.v1.SketchProfile} returns this
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.clearPortConfig = function() {
return this.setPortConfig(undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.hasPortConfig = function() {
return jspb.Message.getField(this, 5) != null;
};
/**
* optional string protocol = 6;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.getProtocol = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.SketchProfile} returns this
*/
proto.cc.arduino.cli.commands.v1.SketchProfile.prototype.setProtocol = function(value) {
return jspb.Message.setProto3StringField(this, 6, value);
};
goog.object.extend(exports, proto.cc.arduino.cli.commands.v1);

View File

@@ -5,7 +5,6 @@
/* eslint-disable */
import * as jspb from "google-protobuf";
import * as google_protobuf_wrappers_pb from "google-protobuf/google/protobuf/wrappers_pb";
import * as cc_arduino_cli_commands_v1_common_pb from "../../../../../cc/arduino/cli/commands/v1/common_pb";
import * as cc_arduino_cli_commands_v1_lib_pb from "../../../../../cc/arduino/cli/commands/v1/lib_pb";
@@ -57,8 +56,8 @@ export class CompileRequest extends jspb.Message {
hasExportBinaries(): boolean;
clearExportBinaries(): void;
getExportBinaries(): google_protobuf_wrappers_pb.BoolValue | undefined;
setExportBinaries(value?: google_protobuf_wrappers_pb.BoolValue): CompileRequest;
getExportBinaries(): boolean | undefined;
setExportBinaries(value: boolean): CompileRequest;
clearLibraryList(): void;
getLibraryList(): Array<string>;
setLibraryList(value: Array<string>): CompileRequest;
@@ -73,6 +72,10 @@ export class CompileRequest extends jspb.Message {
setSkipLibrariesDiscovery(value: boolean): CompileRequest;
getDoNotExpandBuildProperties(): boolean;
setDoNotExpandBuildProperties(value: boolean): CompileRequest;
clearBuildCacheExtraPathsList(): void;
getBuildCacheExtraPathsList(): Array<string>;
setBuildCacheExtraPathsList(value: Array<string>): CompileRequest;
addBuildCacheExtraPaths(value: string, index?: number): string;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): CompileRequest.AsObject;
@@ -105,13 +108,14 @@ export namespace CompileRequest {
createCompilationDatabaseOnly: boolean,
sourceOverrideMap: Array<[string, string]>,
exportBinaries?: google_protobuf_wrappers_pb.BoolValue.AsObject,
exportBinaries?: boolean,
libraryList: Array<string>,
keysKeychain: string,
signKey: string,
encryptKey: string,
skipLibrariesDiscovery: boolean,
doNotExpandBuildProperties: boolean,
buildCacheExtraPathsList: Array<string>,
}
}
@@ -171,6 +175,23 @@ export namespace CompileResponse {
}
export class InstanceNeedsReinitializationError extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): InstanceNeedsReinitializationError.AsObject;
static toObject(includeInstance: boolean, msg: InstanceNeedsReinitializationError): InstanceNeedsReinitializationError.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: InstanceNeedsReinitializationError, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): InstanceNeedsReinitializationError;
static deserializeBinaryFromReader(message: InstanceNeedsReinitializationError, reader: jspb.BinaryReader): InstanceNeedsReinitializationError;
}
export namespace InstanceNeedsReinitializationError {
export type AsObject = {
}
}
export class BuilderResult extends jspb.Message {
getBuildPath(): string;
setBuildPath(value: string): BuilderResult;

View File

@@ -21,8 +21,6 @@ var global = (function() {
return Function('return this')();
}.call(null));
var google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');
goog.object.extend(proto, google_protobuf_wrappers_pb);
var cc_arduino_cli_commands_v1_common_pb = require('../../../../../cc/arduino/cli/commands/v1/common_pb.js');
goog.object.extend(proto, cc_arduino_cli_commands_v1_common_pb);
var cc_arduino_cli_commands_v1_lib_pb = require('../../../../../cc/arduino/cli/commands/v1/lib_pb.js');
@@ -35,6 +33,7 @@ goog.exportSymbol('proto.cc.arduino.cli.commands.v1.CompileRequest', null, globa
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.CompileResponse', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.CompileResponse.MessageCase', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.ExecutableSectionSize', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError', null, global);
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@@ -77,6 +76,27 @@ if (goog.DEBUG && !COMPILED) {
*/
proto.cc.arduino.cli.commands.v1.CompileResponse.displayName = 'proto.cc.arduino.cli.commands.v1.CompileResponse';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.displayName = 'proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@@ -188,7 +208,7 @@ if (goog.DEBUG && !COMPILED) {
* @private {!Array<number>}
* @const
*/
proto.cc.arduino.cli.commands.v1.CompileRequest.repeatedFields_ = [8,15,24];
proto.cc.arduino.cli.commands.v1.CompileRequest.repeatedFields_ = [8,15,24,30];
@@ -239,13 +259,14 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.toObject = function(includeInsta
clean: jspb.Message.getBooleanFieldWithDefault(msg, 19, false),
createCompilationDatabaseOnly: jspb.Message.getBooleanFieldWithDefault(msg, 21, false),
sourceOverrideMap: (f = msg.getSourceOverrideMap()) ? f.toObject(includeInstance, undefined) : [],
exportBinaries: (f = msg.getExportBinaries()) && google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f),
exportBinaries: jspb.Message.getBooleanFieldWithDefault(msg, 23, false),
libraryList: (f = jspb.Message.getRepeatedField(msg, 24)) == null ? undefined : f,
keysKeychain: jspb.Message.getFieldWithDefault(msg, 25, ""),
signKey: jspb.Message.getFieldWithDefault(msg, 26, ""),
encryptKey: jspb.Message.getFieldWithDefault(msg, 27, ""),
skipLibrariesDiscovery: jspb.Message.getBooleanFieldWithDefault(msg, 28, false),
doNotExpandBuildProperties: jspb.Message.getBooleanFieldWithDefault(msg, 29, false)
doNotExpandBuildProperties: jspb.Message.getBooleanFieldWithDefault(msg, 29, false),
buildCacheExtraPathsList: (f = jspb.Message.getRepeatedField(msg, 30)) == null ? undefined : f
};
if (includeInstance) {
@@ -358,8 +379,7 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.deserializeBinaryFromReader = fu
});
break;
case 23:
var value = new google_protobuf_wrappers_pb.BoolValue;
reader.readMessage(value,google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader);
var value = /** @type {boolean} */ (reader.readBool());
msg.setExportBinaries(value);
break;
case 24:
@@ -386,6 +406,10 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.deserializeBinaryFromReader = fu
var value = /** @type {boolean} */ (reader.readBool());
msg.setDoNotExpandBuildProperties(value);
break;
case 30:
var value = /** @type {string} */ (reader.readString());
msg.addBuildCacheExtraPaths(value);
break;
default:
reader.skipField();
break;
@@ -539,12 +563,11 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.serializeBinaryToWriter = functi
if (f && f.getLength() > 0) {
f.serializeBinary(22, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
}
f = message.getExportBinaries();
f = /** @type {boolean} */ (jspb.Message.getField(message, 23));
if (f != null) {
writer.writeMessage(
writer.writeBool(
23,
f,
google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter
f
);
}
f = message.getLibraryList();
@@ -589,6 +612,13 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.serializeBinaryToWriter = functi
f
);
}
f = message.getBuildCacheExtraPathsList();
if (f.length > 0) {
writer.writeRepeatedString(
30,
f
);
}
};
@@ -978,30 +1008,29 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.clearSourceOverrideMap
/**
* optional google.protobuf.BoolValue export_binaries = 23;
* @return {?proto.google.protobuf.BoolValue}
* optional bool export_binaries = 23;
* @return {boolean}
*/
proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.getExportBinaries = function() {
return /** @type{?proto.google.protobuf.BoolValue} */ (
jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BoolValue, 23));
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 23, false));
};
/**
* @param {?proto.google.protobuf.BoolValue|undefined} value
* @param {boolean} value
* @return {!proto.cc.arduino.cli.commands.v1.CompileRequest} returns this
*/
*/
proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.setExportBinaries = function(value) {
return jspb.Message.setWrapperField(this, 23, value);
return jspb.Message.setField(this, 23, value);
};
/**
* Clears the message field making it undefined.
* Clears the field making it undefined.
* @return {!proto.cc.arduino.cli.commands.v1.CompileRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.clearExportBinaries = function() {
return this.setExportBinaries(undefined);
return jspb.Message.setField(this, 23, undefined);
};
@@ -1141,6 +1170,43 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.setDoNotExpandBuildPro
};
/**
* repeated string build_cache_extra_paths = 30;
* @return {!Array<string>}
*/
proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.getBuildCacheExtraPathsList = function() {
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 30));
};
/**
* @param {!Array<string>} value
* @return {!proto.cc.arduino.cli.commands.v1.CompileRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.setBuildCacheExtraPathsList = function(value) {
return jspb.Message.setField(this, 30, value || []);
};
/**
* @param {string} value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.CompileRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.addBuildCacheExtraPaths = function(value, opt_index) {
return jspb.Message.addToRepeatedField(this, 30, value, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.CompileRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.clearBuildCacheExtraPathsList = function() {
return this.setBuildCacheExtraPathsList([]);
};
/**
* Oneof group definitions for this message. Each group defines the field
@@ -1516,6 +1582,107 @@ proto.cc.arduino.cli.commands.v1.CompileResponse.prototype.hasResult = function(
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.prototype.toObject = function(opt_includeInstance) {
return proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.toObject = function(includeInstance, msg) {
var f, obj = {
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError}
*/
proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError;
return proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError}
*/
proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
};
/**
* List of repeated fields within this message type.
* @private {!Array<number>}

View File

@@ -60,6 +60,13 @@ export class PlatformInstallResponse extends jspb.Message {
getTaskProgress(): cc_arduino_cli_commands_v1_common_pb.TaskProgress | undefined;
setTaskProgress(value?: cc_arduino_cli_commands_v1_common_pb.TaskProgress): PlatformInstallResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): PlatformInstallResponse.Result | undefined;
setResult(value?: PlatformInstallResponse.Result): PlatformInstallResponse;
getMessageCase(): PlatformInstallResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): PlatformInstallResponse.AsObject;
static toObject(includeInstance: boolean, msg: PlatformInstallResponse): PlatformInstallResponse.AsObject;
@@ -74,7 +81,35 @@ export namespace PlatformInstallResponse {
export type AsObject = {
progress?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress.AsObject,
taskProgress?: cc_arduino_cli_commands_v1_common_pb.TaskProgress.AsObject,
result?: PlatformInstallResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
PROGRESS = 1,
TASK_PROGRESS = 2,
RESULT = 3,
}
}
export class PlatformLoadingError extends jspb.Message {
@@ -133,6 +168,13 @@ export class PlatformDownloadResponse extends jspb.Message {
getProgress(): cc_arduino_cli_commands_v1_common_pb.DownloadProgress | undefined;
setProgress(value?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress): PlatformDownloadResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): PlatformDownloadResponse.Result | undefined;
setResult(value?: PlatformDownloadResponse.Result): PlatformDownloadResponse;
getMessageCase(): PlatformDownloadResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): PlatformDownloadResponse.AsObject;
static toObject(includeInstance: boolean, msg: PlatformDownloadResponse): PlatformDownloadResponse.AsObject;
@@ -146,7 +188,34 @@ export class PlatformDownloadResponse extends jspb.Message {
export namespace PlatformDownloadResponse {
export type AsObject = {
progress?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress.AsObject,
result?: PlatformDownloadResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
PROGRESS = 1,
RESULT = 2,
}
}
export class PlatformUninstallRequest extends jspb.Message {
@@ -188,6 +257,13 @@ export class PlatformUninstallResponse extends jspb.Message {
getTaskProgress(): cc_arduino_cli_commands_v1_common_pb.TaskProgress | undefined;
setTaskProgress(value?: cc_arduino_cli_commands_v1_common_pb.TaskProgress): PlatformUninstallResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): PlatformUninstallResponse.Result | undefined;
setResult(value?: PlatformUninstallResponse.Result): PlatformUninstallResponse;
getMessageCase(): PlatformUninstallResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): PlatformUninstallResponse.AsObject;
static toObject(includeInstance: boolean, msg: PlatformUninstallResponse): PlatformUninstallResponse.AsObject;
@@ -201,7 +277,34 @@ export class PlatformUninstallResponse extends jspb.Message {
export namespace PlatformUninstallResponse {
export type AsObject = {
taskProgress?: cc_arduino_cli_commands_v1_common_pb.TaskProgress.AsObject,
result?: PlatformUninstallResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
TASK_PROGRESS = 1,
RESULT = 2,
}
}
export class AlreadyAtLatestVersionError extends jspb.Message {
@@ -268,10 +371,12 @@ export class PlatformUpgradeResponse extends jspb.Message {
getTaskProgress(): cc_arduino_cli_commands_v1_common_pb.TaskProgress | undefined;
setTaskProgress(value?: cc_arduino_cli_commands_v1_common_pb.TaskProgress): PlatformUpgradeResponse;
hasPlatform(): boolean;
clearPlatform(): void;
getPlatform(): cc_arduino_cli_commands_v1_common_pb.Platform | undefined;
setPlatform(value?: cc_arduino_cli_commands_v1_common_pb.Platform): PlatformUpgradeResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): PlatformUpgradeResponse.Result | undefined;
setResult(value?: PlatformUpgradeResponse.Result): PlatformUpgradeResponse;
getMessageCase(): PlatformUpgradeResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): PlatformUpgradeResponse.AsObject;
@@ -287,8 +392,41 @@ export namespace PlatformUpgradeResponse {
export type AsObject = {
progress?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress.AsObject,
taskProgress?: cc_arduino_cli_commands_v1_common_pb.TaskProgress.AsObject,
platform?: cc_arduino_cli_commands_v1_common_pb.Platform.AsObject,
result?: PlatformUpgradeResponse.Result.AsObject,
}
export class Result extends jspb.Message {
hasPlatform(): boolean;
clearPlatform(): void;
getPlatform(): cc_arduino_cli_commands_v1_common_pb.Platform | undefined;
setPlatform(value?: cc_arduino_cli_commands_v1_common_pb.Platform): Result;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
platform?: cc_arduino_cli_commands_v1_common_pb.Platform.AsObject,
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
PROGRESS = 1,
TASK_PROGRESS = 2,
RESULT = 3,
}
}
export class PlatformSearchRequest extends jspb.Message {

View File

@@ -41,12 +41,20 @@ export namespace DebugRequest {
}
export class DebugResponse extends jspb.Message {
hasData(): boolean;
clearData(): void;
getData(): Uint8Array | string;
getData_asU8(): Uint8Array;
getData_asB64(): string;
setData(value: Uint8Array | string): DebugResponse;
getError(): string;
setError(value: string): DebugResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): DebugResponse.Result | undefined;
setResult(value?: DebugResponse.Result): DebugResponse;
getMessageCase(): DebugResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): DebugResponse.AsObject;
@@ -61,8 +69,37 @@ export class DebugResponse extends jspb.Message {
export namespace DebugResponse {
export type AsObject = {
data: Uint8Array | string,
error: string,
result?: DebugResponse.Result.AsObject,
}
export class Result extends jspb.Message {
getError(): string;
setError(value: string): Result;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
error: string,
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
DATA = 1,
RESULT = 2,
}
}
export class IsDebugSupportedRequest extends jspb.Message {
@@ -82,6 +119,10 @@ export class IsDebugSupportedRequest extends jspb.Message {
setInterpreter(value: string): IsDebugSupportedRequest;
getProgrammer(): string;
setProgrammer(value: string): IsDebugSupportedRequest;
clearDebugPropertiesList(): void;
getDebugPropertiesList(): Array<string>;
setDebugPropertiesList(value: Array<string>): IsDebugSupportedRequest;
addDebugProperties(value: string, index?: number): string;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): IsDebugSupportedRequest.AsObject;
@@ -100,6 +141,7 @@ export namespace IsDebugSupportedRequest {
port?: cc_arduino_cli_commands_v1_port_pb.Port.AsObject,
interpreter: string,
programmer: string,
debugPropertiesList: Array<string>,
}
}
@@ -147,6 +189,10 @@ export class GetDebugConfigRequest extends jspb.Message {
setImportDir(value: string): GetDebugConfigRequest;
getProgrammer(): string;
setProgrammer(value: string): GetDebugConfigRequest;
clearDebugPropertiesList(): void;
getDebugPropertiesList(): Array<string>;
setDebugPropertiesList(value: Array<string>): GetDebugConfigRequest;
addDebugProperties(value: string, index?: number): string;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): GetDebugConfigRequest.AsObject;
@@ -167,6 +213,7 @@ export namespace GetDebugConfigRequest {
interpreter: string,
importDir: string,
programmer: string,
debugPropertiesList: Array<string>,
}
}

View File

@@ -31,6 +31,8 @@ goog.exportSymbol('proto.cc.arduino.cli.commands.v1.DebugGCCToolchainConfigurati
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.DebugOpenOCDServerConfiguration', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.DebugRequest', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.DebugResponse', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.DebugResponse.MessageCase', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.DebugResponse.Result', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.GetDebugConfigResponse', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest', null, global);
@@ -67,7 +69,7 @@ if (goog.DEBUG && !COMPILED) {
* @constructor
*/
proto.cc.arduino.cli.commands.v1.DebugResponse = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
jspb.Message.initialize(this, opt_data, 0, -1, null, proto.cc.arduino.cli.commands.v1.DebugResponse.oneofGroups_);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.DebugResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
@@ -87,9 +89,30 @@ if (goog.DEBUG && !COMPILED) {
* @extends {jspb.Message}
* @constructor
*/
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest = function(opt_data) {
proto.cc.arduino.cli.commands.v1.DebugResponse.Result = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.DebugResponse.Result, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.displayName = 'proto.cc.arduino.cli.commands.v1.DebugResponse.Result';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.repeatedFields_, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
@@ -130,7 +153,7 @@ if (goog.DEBUG && !COMPILED) {
* @constructor
*/
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.repeatedFields_, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
@@ -439,6 +462,32 @@ proto.cc.arduino.cli.commands.v1.DebugRequest.prototype.setSendInterrupt = funct
/**
* Oneof group definitions for this message. Each group defines the field
* numbers belonging to that group. When of these fields' value is set, all
* other fields in the group are cleared. During deserialization, if multiple
* fields are encountered for a group, only the last value seen will be kept.
* @private {!Array<!Array<number>>}
* @const
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.oneofGroups_ = [[1,2]];
/**
* @enum {number}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.MessageCase = {
MESSAGE_NOT_SET: 0,
DATA: 1,
RESULT: 2
};
/**
* @return {proto.cc.arduino.cli.commands.v1.DebugResponse.MessageCase}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.getMessageCase = function() {
return /** @type {proto.cc.arduino.cli.commands.v1.DebugResponse.MessageCase} */(jspb.Message.computeOneofCase(this, proto.cc.arduino.cli.commands.v1.DebugResponse.oneofGroups_[0]));
};
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -471,7 +520,7 @@ proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.toObject = function(opt
proto.cc.arduino.cli.commands.v1.DebugResponse.toObject = function(includeInstance, msg) {
var f, obj = {
data: msg.getData_asB64(),
error: jspb.Message.getFieldWithDefault(msg, 2, "")
result: (f = msg.getResult()) && proto.cc.arduino.cli.commands.v1.DebugResponse.Result.toObject(includeInstance, f)
};
if (includeInstance) {
@@ -513,8 +562,9 @@ proto.cc.arduino.cli.commands.v1.DebugResponse.deserializeBinaryFromReader = fun
msg.setData(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setError(value);
var value = new proto.cc.arduino.cli.commands.v1.DebugResponse.Result;
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.DebugResponse.Result.deserializeBinaryFromReader);
msg.setResult(value);
break;
default:
reader.skipField();
@@ -545,23 +595,154 @@ proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.serializeBinary = funct
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getData_asU8();
if (f.length > 0) {
f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1));
if (f != null) {
writer.writeBytes(
1,
f
);
}
f = message.getResult();
if (f != null) {
writer.writeMessage(
2,
f,
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.serializeBinaryToWriter
);
}
};
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.prototype.toObject = function(opt_includeInstance) {
return proto.cc.arduino.cli.commands.v1.DebugResponse.Result.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.cc.arduino.cli.commands.v1.DebugResponse.Result} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.toObject = function(includeInstance, msg) {
var f, obj = {
error: jspb.Message.getFieldWithDefault(msg, 1, "")
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.cc.arduino.cli.commands.v1.DebugResponse.Result}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.cc.arduino.cli.commands.v1.DebugResponse.Result;
return proto.cc.arduino.cli.commands.v1.DebugResponse.Result.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.cc.arduino.cli.commands.v1.DebugResponse.Result} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.cc.arduino.cli.commands.v1.DebugResponse.Result}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setError(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.cc.arduino.cli.commands.v1.DebugResponse.Result} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getError();
if (f.length > 0) {
writer.writeString(
2,
1,
f
);
}
};
/**
* optional string error = 1;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.prototype.getError = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.DebugResponse.Result} returns this
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.Result.prototype.setError = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional bytes data = 1;
* @return {!(string|Uint8Array)}
@@ -600,28 +781,72 @@ proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.getData_asU8 = function
* @return {!proto.cc.arduino.cli.commands.v1.DebugResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.setData = function(value) {
return jspb.Message.setProto3BytesField(this, 1, value);
return jspb.Message.setOneofField(this, 1, proto.cc.arduino.cli.commands.v1.DebugResponse.oneofGroups_[0], value);
};
/**
* optional string error = 2;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.getError = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* Clears the field making it undefined.
* @return {!proto.cc.arduino.cli.commands.v1.DebugResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.setError = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.clearData = function() {
return jspb.Message.setOneofField(this, 1, proto.cc.arduino.cli.commands.v1.DebugResponse.oneofGroups_[0], undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.hasData = function() {
return jspb.Message.getField(this, 1) != null;
};
/**
* optional Result result = 2;
* @return {?proto.cc.arduino.cli.commands.v1.DebugResponse.Result}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.getResult = function() {
return /** @type{?proto.cc.arduino.cli.commands.v1.DebugResponse.Result} */ (
jspb.Message.getWrapperField(this, proto.cc.arduino.cli.commands.v1.DebugResponse.Result, 2));
};
/**
* @param {?proto.cc.arduino.cli.commands.v1.DebugResponse.Result|undefined} value
* @return {!proto.cc.arduino.cli.commands.v1.DebugResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.setResult = function(value) {
return jspb.Message.setOneofWrapperField(this, 2, proto.cc.arduino.cli.commands.v1.DebugResponse.oneofGroups_[0], value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.cc.arduino.cli.commands.v1.DebugResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.clearResult = function() {
return this.setResult(undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.cc.arduino.cli.commands.v1.DebugResponse.prototype.hasResult = function() {
return jspb.Message.getField(this, 2) != null;
};
/**
* List of repeated fields within this message type.
* @private {!Array<number>}
* @const
*/
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.repeatedFields_ = [6];
@@ -658,7 +883,8 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.toObject = function(inc
fqbn: jspb.Message.getFieldWithDefault(msg, 2, ""),
port: (f = msg.getPort()) && cc_arduino_cli_commands_v1_port_pb.Port.toObject(includeInstance, f),
interpreter: jspb.Message.getFieldWithDefault(msg, 4, ""),
programmer: jspb.Message.getFieldWithDefault(msg, 5, "")
programmer: jspb.Message.getFieldWithDefault(msg, 5, ""),
debugPropertiesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f
};
if (includeInstance) {
@@ -717,6 +943,10 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.deserializeBinaryFromRe
var value = /** @type {string} */ (reader.readString());
msg.setProgrammer(value);
break;
case 6:
var value = /** @type {string} */ (reader.readString());
msg.addDebugProperties(value);
break;
default:
reader.skipField();
break;
@@ -783,6 +1013,13 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.serializeBinaryToWriter
f
);
}
f = message.getDebugPropertiesList();
if (f.length > 0) {
writer.writeRepeatedString(
6,
f
);
}
};
@@ -914,6 +1151,43 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.setProgrammer
};
/**
* repeated string debug_properties = 6;
* @return {!Array<string>}
*/
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.getDebugPropertiesList = function() {
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 6));
};
/**
* @param {!Array<string>} value
* @return {!proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.setDebugPropertiesList = function(value) {
return jspb.Message.setField(this, 6, value || []);
};
/**
* @param {string} value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.addDebugProperties = function(value, opt_index) {
return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.IsDebugSupportedRequest.prototype.clearDebugPropertiesList = function() {
return this.setDebugPropertiesList([]);
};
@@ -1075,6 +1349,13 @@ proto.cc.arduino.cli.commands.v1.IsDebugSupportedResponse.prototype.setDebugFqbn
/**
* List of repeated fields within this message type.
* @private {!Array<number>}
* @const
*/
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.repeatedFields_ = [10];
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -1112,7 +1393,8 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.toObject = function(inclu
port: (f = msg.getPort()) && cc_arduino_cli_commands_v1_port_pb.Port.toObject(includeInstance, f),
interpreter: jspb.Message.getFieldWithDefault(msg, 5, ""),
importDir: jspb.Message.getFieldWithDefault(msg, 8, ""),
programmer: jspb.Message.getFieldWithDefault(msg, 9, "")
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
debugPropertiesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f
};
if (includeInstance) {
@@ -1179,6 +1461,10 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.deserializeBinaryFromRead
var value = /** @type {string} */ (reader.readString());
msg.setProgrammer(value);
break;
case 10:
var value = /** @type {string} */ (reader.readString());
msg.addDebugProperties(value);
break;
default:
reader.skipField();
break;
@@ -1259,6 +1545,13 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.serializeBinaryToWriter =
f
);
}
f = message.getDebugPropertiesList();
if (f.length > 0) {
writer.writeRepeatedString(
10,
f
);
}
};
@@ -1426,6 +1719,43 @@ proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.setProgrammer =
};
/**
* repeated string debug_properties = 10;
* @return {!Array<string>}
*/
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.getDebugPropertiesList = function() {
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 10));
};
/**
* @param {!Array<string>} value
* @return {!proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.setDebugPropertiesList = function(value) {
return jspb.Message.setField(this, 10, value || []);
};
/**
* @param {string} value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.addDebugProperties = function(value, opt_index) {
return jspb.Message.addToRepeatedField(this, 10, value, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.GetDebugConfigRequest.prototype.clearDebugPropertiesList = function() {
return this.setDebugPropertiesList([]);
};

View File

@@ -43,6 +43,13 @@ export class LibraryDownloadResponse extends jspb.Message {
getProgress(): cc_arduino_cli_commands_v1_common_pb.DownloadProgress | undefined;
setProgress(value?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress): LibraryDownloadResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): LibraryDownloadResponse.Result | undefined;
setResult(value?: LibraryDownloadResponse.Result): LibraryDownloadResponse;
getMessageCase(): LibraryDownloadResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): LibraryDownloadResponse.AsObject;
static toObject(includeInstance: boolean, msg: LibraryDownloadResponse): LibraryDownloadResponse.AsObject;
@@ -56,7 +63,34 @@ export class LibraryDownloadResponse extends jspb.Message {
export namespace LibraryDownloadResponse {
export type AsObject = {
progress?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress.AsObject,
result?: LibraryDownloadResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
PROGRESS = 1,
RESULT = 2,
}
}
export class LibraryInstallRequest extends jspb.Message {
@@ -109,6 +143,13 @@ export class LibraryInstallResponse extends jspb.Message {
getTaskProgress(): cc_arduino_cli_commands_v1_common_pb.TaskProgress | undefined;
setTaskProgress(value?: cc_arduino_cli_commands_v1_common_pb.TaskProgress): LibraryInstallResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): LibraryInstallResponse.Result | undefined;
setResult(value?: LibraryInstallResponse.Result): LibraryInstallResponse;
getMessageCase(): LibraryInstallResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): LibraryInstallResponse.AsObject;
static toObject(includeInstance: boolean, msg: LibraryInstallResponse): LibraryInstallResponse.AsObject;
@@ -123,7 +164,35 @@ export namespace LibraryInstallResponse {
export type AsObject = {
progress?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress.AsObject,
taskProgress?: cc_arduino_cli_commands_v1_common_pb.TaskProgress.AsObject,
result?: LibraryInstallResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
PROGRESS = 1,
TASK_PROGRESS = 2,
RESULT = 3,
}
}
export class LibraryUpgradeRequest extends jspb.Message {
@@ -167,6 +236,13 @@ export class LibraryUpgradeResponse extends jspb.Message {
getTaskProgress(): cc_arduino_cli_commands_v1_common_pb.TaskProgress | undefined;
setTaskProgress(value?: cc_arduino_cli_commands_v1_common_pb.TaskProgress): LibraryUpgradeResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): LibraryUpgradeResponse.Result | undefined;
setResult(value?: LibraryUpgradeResponse.Result): LibraryUpgradeResponse;
getMessageCase(): LibraryUpgradeResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): LibraryUpgradeResponse.AsObject;
static toObject(includeInstance: boolean, msg: LibraryUpgradeResponse): LibraryUpgradeResponse.AsObject;
@@ -181,7 +257,35 @@ export namespace LibraryUpgradeResponse {
export type AsObject = {
progress?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress.AsObject,
taskProgress?: cc_arduino_cli_commands_v1_common_pb.TaskProgress.AsObject,
result?: LibraryUpgradeResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
PROGRESS = 1,
TASK_PROGRESS = 2,
RESULT = 3,
}
}
export class LibraryUninstallRequest extends jspb.Message {
@@ -220,6 +324,13 @@ export class LibraryUninstallResponse extends jspb.Message {
getTaskProgress(): cc_arduino_cli_commands_v1_common_pb.TaskProgress | undefined;
setTaskProgress(value?: cc_arduino_cli_commands_v1_common_pb.TaskProgress): LibraryUninstallResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): LibraryUninstallResponse.Result | undefined;
setResult(value?: LibraryUninstallResponse.Result): LibraryUninstallResponse;
getMessageCase(): LibraryUninstallResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): LibraryUninstallResponse.AsObject;
static toObject(includeInstance: boolean, msg: LibraryUninstallResponse): LibraryUninstallResponse.AsObject;
@@ -233,7 +344,34 @@ export class LibraryUninstallResponse extends jspb.Message {
export namespace LibraryUninstallResponse {
export type AsObject = {
taskProgress?: cc_arduino_cli_commands_v1_common_pb.TaskProgress.AsObject,
result?: LibraryUninstallResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
TASK_PROGRESS = 1,
RESULT = 2,
}
}
export class LibraryUpgradeAllRequest extends jspb.Message {
@@ -271,6 +409,13 @@ export class LibraryUpgradeAllResponse extends jspb.Message {
getTaskProgress(): cc_arduino_cli_commands_v1_common_pb.TaskProgress | undefined;
setTaskProgress(value?: cc_arduino_cli_commands_v1_common_pb.TaskProgress): LibraryUpgradeAllResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): LibraryUpgradeAllResponse.Result | undefined;
setResult(value?: LibraryUpgradeAllResponse.Result): LibraryUpgradeAllResponse;
getMessageCase(): LibraryUpgradeAllResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): LibraryUpgradeAllResponse.AsObject;
static toObject(includeInstance: boolean, msg: LibraryUpgradeAllResponse): LibraryUpgradeAllResponse.AsObject;
@@ -285,7 +430,35 @@ export namespace LibraryUpgradeAllResponse {
export type AsObject = {
progress?: cc_arduino_cli_commands_v1_common_pb.DownloadProgress.AsObject,
taskProgress?: cc_arduino_cli_commands_v1_common_pb.TaskProgress.AsObject,
result?: LibraryUpgradeAllResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
PROGRESS = 1,
TASK_PROGRESS = 2,
RESULT = 3,
}
}
export class LibraryResolveDependenciesRequest extends jspb.Message {
@@ -809,6 +982,13 @@ export class ZipLibraryInstallResponse extends jspb.Message {
getTaskProgress(): cc_arduino_cli_commands_v1_common_pb.TaskProgress | undefined;
setTaskProgress(value?: cc_arduino_cli_commands_v1_common_pb.TaskProgress): ZipLibraryInstallResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): ZipLibraryInstallResponse.Result | undefined;
setResult(value?: ZipLibraryInstallResponse.Result): ZipLibraryInstallResponse;
getMessageCase(): ZipLibraryInstallResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): ZipLibraryInstallResponse.AsObject;
static toObject(includeInstance: boolean, msg: ZipLibraryInstallResponse): ZipLibraryInstallResponse.AsObject;
@@ -822,7 +1002,34 @@ export class ZipLibraryInstallResponse extends jspb.Message {
export namespace ZipLibraryInstallResponse {
export type AsObject = {
taskProgress?: cc_arduino_cli_commands_v1_common_pb.TaskProgress.AsObject,
result?: ZipLibraryInstallResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
TASK_PROGRESS = 1,
RESULT = 2,
}
}
export class GitLibraryInstallRequest extends jspb.Message {
@@ -861,6 +1068,13 @@ export class GitLibraryInstallResponse extends jspb.Message {
getTaskProgress(): cc_arduino_cli_commands_v1_common_pb.TaskProgress | undefined;
setTaskProgress(value?: cc_arduino_cli_commands_v1_common_pb.TaskProgress): GitLibraryInstallResponse;
hasResult(): boolean;
clearResult(): void;
getResult(): GitLibraryInstallResponse.Result | undefined;
setResult(value?: GitLibraryInstallResponse.Result): GitLibraryInstallResponse;
getMessageCase(): GitLibraryInstallResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): GitLibraryInstallResponse.AsObject;
static toObject(includeInstance: boolean, msg: GitLibraryInstallResponse): GitLibraryInstallResponse.AsObject;
@@ -874,7 +1088,34 @@ export class GitLibraryInstallResponse extends jspb.Message {
export namespace GitLibraryInstallResponse {
export type AsObject = {
taskProgress?: cc_arduino_cli_commands_v1_common_pb.TaskProgress.AsObject,
result?: GitLibraryInstallResponse.Result.AsObject,
}
export class Result extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Result.AsObject;
static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Result, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Result;
static deserializeBinaryFromReader(message: Result, reader: jspb.BinaryReader): Result;
}
export namespace Result {
export type AsObject = {
}
}
export enum MessageCase {
MESSAGE_NOT_SET = 0,
TASK_PROGRESS = 1,
RESULT = 2,
}
}
export enum LibraryInstallLocation {

View File

@@ -24,8 +24,8 @@ export class MonitorRequest extends jspb.Message {
hasUpdatedConfiguration(): boolean;
clearUpdatedConfiguration(): void;
getUpdatedConfiguration(): MonitorPortConfiguration | undefined;
setUpdatedConfiguration(value?: MonitorPortConfiguration): MonitorRequest;
getUpdatedConfiguration(): cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration | undefined;
setUpdatedConfiguration(value?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration): MonitorRequest;
hasClose(): boolean;
clearClose(): void;
@@ -48,7 +48,7 @@ export namespace MonitorRequest {
export type AsObject = {
openRequest?: MonitorPortOpenRequest.AsObject,
txData: Uint8Array | string,
updatedConfiguration?: MonitorPortConfiguration.AsObject,
updatedConfiguration?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.AsObject,
close: boolean,
}
@@ -78,8 +78,8 @@ export class MonitorPortOpenRequest extends jspb.Message {
hasPortConfiguration(): boolean;
clearPortConfiguration(): void;
getPortConfiguration(): MonitorPortConfiguration | undefined;
setPortConfiguration(value?: MonitorPortConfiguration): MonitorPortOpenRequest;
getPortConfiguration(): cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration | undefined;
setPortConfiguration(value?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration): MonitorPortOpenRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): MonitorPortOpenRequest.AsObject;
@@ -96,46 +96,36 @@ export namespace MonitorPortOpenRequest {
instance?: cc_arduino_cli_commands_v1_common_pb.Instance.AsObject,
port?: cc_arduino_cli_commands_v1_port_pb.Port.AsObject,
fqbn: string,
portConfiguration?: MonitorPortConfiguration.AsObject,
}
}
export class MonitorPortConfiguration extends jspb.Message {
clearSettingsList(): void;
getSettingsList(): Array<MonitorPortSetting>;
setSettingsList(value: Array<MonitorPortSetting>): MonitorPortConfiguration;
addSettings(value?: MonitorPortSetting, index?: number): MonitorPortSetting;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): MonitorPortConfiguration.AsObject;
static toObject(includeInstance: boolean, msg: MonitorPortConfiguration): MonitorPortConfiguration.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: MonitorPortConfiguration, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): MonitorPortConfiguration;
static deserializeBinaryFromReader(message: MonitorPortConfiguration, reader: jspb.BinaryReader): MonitorPortConfiguration;
}
export namespace MonitorPortConfiguration {
export type AsObject = {
settingsList: Array<MonitorPortSetting.AsObject>,
portConfiguration?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.AsObject,
}
}
export class MonitorResponse extends jspb.Message {
hasError(): boolean;
clearError(): void;
getError(): string;
setError(value: string): MonitorResponse;
hasRxData(): boolean;
clearRxData(): void;
getRxData(): Uint8Array | string;
getRxData_asU8(): Uint8Array;
getRxData_asB64(): string;
setRxData(value: Uint8Array | string): MonitorResponse;
clearAppliedSettingsList(): void;
getAppliedSettingsList(): Array<MonitorPortSetting>;
setAppliedSettingsList(value: Array<MonitorPortSetting>): MonitorResponse;
addAppliedSettings(value?: MonitorPortSetting, index?: number): MonitorPortSetting;
hasAppliedSettings(): boolean;
clearAppliedSettings(): void;
getAppliedSettings(): cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration | undefined;
setAppliedSettings(value?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration): MonitorResponse;
hasSuccess(): boolean;
clearSuccess(): void;
getSuccess(): boolean;
setSuccess(value: boolean): MonitorResponse;
getMessageCase(): MonitorResponse.MessageCase;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): MonitorResponse.AsObject;
static toObject(includeInstance: boolean, msg: MonitorResponse): MonitorResponse.AsObject;
@@ -150,32 +140,18 @@ export namespace MonitorResponse {
export type AsObject = {
error: string,
rxData: Uint8Array | string,
appliedSettingsList: Array<MonitorPortSetting.AsObject>,
appliedSettings?: cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.AsObject,
success: boolean,
}
}
export class MonitorPortSetting extends jspb.Message {
getSettingId(): string;
setSettingId(value: string): MonitorPortSetting;
getValue(): string;
setValue(value: string): MonitorPortSetting;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): MonitorPortSetting.AsObject;
static toObject(includeInstance: boolean, msg: MonitorPortSetting): MonitorPortSetting.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: MonitorPortSetting, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): MonitorPortSetting;
static deserializeBinaryFromReader(message: MonitorPortSetting, reader: jspb.BinaryReader): MonitorPortSetting;
}
export namespace MonitorPortSetting {
export type AsObject = {
settingId: string,
value: string,
export enum MessageCase {
MESSAGE_NOT_SET = 0,
ERROR = 1,
RX_DATA = 2,
APPLIED_SETTINGS = 3,
SUCCESS = 4,
}
}
export class EnumerateMonitorPortSettingsRequest extends jspb.Message {

View File

@@ -27,13 +27,12 @@ var cc_arduino_cli_commands_v1_port_pb = require('../../../../../cc/arduino/cli/
goog.object.extend(proto, cc_arduino_cli_commands_v1_port_pb);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.EnumerateMonitorPortSettingsRequest', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.EnumerateMonitorPortSettingsResponse', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorPortSetting', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorPortSettingDescriptor', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorRequest', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorRequest.MessageCase', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorResponse', null, global);
goog.exportSymbol('proto.cc.arduino.cli.commands.v1.MonitorResponse.MessageCase', null, global);
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@@ -76,27 +75,6 @@ if (goog.DEBUG && !COMPILED) {
*/
proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.displayName = 'proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.repeatedFields_, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.displayName = 'proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@@ -108,7 +86,7 @@ if (goog.DEBUG && !COMPILED) {
* @constructor
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.MonitorResponse.repeatedFields_, null);
jspb.Message.initialize(this, opt_data, 0, -1, null, proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.MonitorResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
@@ -118,27 +96,6 @@ if (goog.DEBUG && !COMPILED) {
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.displayName = 'proto.cc.arduino.cli.commands.v1.MonitorResponse';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.MonitorPortSetting, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.displayName = 'proto.cc.arduino.cli.commands.v1.MonitorPortSetting';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@@ -264,7 +221,7 @@ proto.cc.arduino.cli.commands.v1.MonitorRequest.toObject = function(includeInsta
var f, obj = {
openRequest: (f = msg.getOpenRequest()) && proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.toObject(includeInstance, f),
txData: msg.getTxData_asB64(),
updatedConfiguration: (f = msg.getUpdatedConfiguration()) && proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject(includeInstance, f),
updatedConfiguration: (f = msg.getUpdatedConfiguration()) && cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.toObject(includeInstance, f),
close: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
};
@@ -312,8 +269,8 @@ proto.cc.arduino.cli.commands.v1.MonitorRequest.deserializeBinaryFromReader = fu
msg.setTxData(value);
break;
case 3:
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration;
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader);
var value = new cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration;
reader.readMessage(value,cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.deserializeBinaryFromReader);
msg.setUpdatedConfiguration(value);
break;
case 4:
@@ -369,7 +326,7 @@ proto.cc.arduino.cli.commands.v1.MonitorRequest.serializeBinaryToWriter = functi
writer.writeMessage(
3,
f,
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter
cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.serializeBinaryToWriter
);
}
f = /** @type {boolean} */ (jspb.Message.getField(message, 4));
@@ -485,7 +442,7 @@ proto.cc.arduino.cli.commands.v1.MonitorRequest.prototype.hasTxData = function()
*/
proto.cc.arduino.cli.commands.v1.MonitorRequest.prototype.getUpdatedConfiguration = function() {
return /** @type{?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} */ (
jspb.Message.getWrapperField(this, proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration, 3));
jspb.Message.getWrapperField(this, cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration, 3));
};
@@ -587,7 +544,7 @@ proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.toObject = function(incl
instance: (f = msg.getInstance()) && cc_arduino_cli_commands_v1_common_pb.Instance.toObject(includeInstance, f),
port: (f = msg.getPort()) && cc_arduino_cli_commands_v1_port_pb.Port.toObject(includeInstance, f),
fqbn: jspb.Message.getFieldWithDefault(msg, 3, ""),
portConfiguration: (f = msg.getPortConfiguration()) && proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject(includeInstance, f)
portConfiguration: (f = msg.getPortConfiguration()) && cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.toObject(includeInstance, f)
};
if (includeInstance) {
@@ -639,8 +596,8 @@ proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.deserializeBinaryFromRea
msg.setFqbn(value);
break;
case 4:
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration;
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader);
var value = new cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration;
reader.readMessage(value,cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.deserializeBinaryFromReader);
msg.setPortConfiguration(value);
break;
default:
@@ -700,7 +657,7 @@ proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.serializeBinaryToWriter
writer.writeMessage(
4,
f,
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter
cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.serializeBinaryToWriter
);
}
};
@@ -804,7 +761,7 @@ proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.prototype.setFqbn = func
*/
proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.prototype.getPortConfiguration = function() {
return /** @type{?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} */ (
jspb.Message.getWrapperField(this, proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration, 4));
jspb.Message.getWrapperField(this, cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration, 4));
};
@@ -837,171 +794,32 @@ proto.cc.arduino.cli.commands.v1.MonitorPortOpenRequest.prototype.hasPortConfigu
/**
* List of repeated fields within this message type.
* @private {!Array<number>}
* Oneof group definitions for this message. Each group defines the field
* numbers belonging to that group. When of these fields' value is set, all
* other fields in the group are cleared. During deserialization, if multiple
* fields are encountered for a group, only the last value seen will be kept.
* @private {!Array<!Array<number>>}
* @const
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.repeatedFields_ = [1];
proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_ = [[1,2,3,4]];
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
* @enum {number}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.toObject = function(opt_includeInstance) {
return proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject(opt_includeInstance, this);
proto.cc.arduino.cli.commands.v1.MonitorResponse.MessageCase = {
MESSAGE_NOT_SET: 0,
ERROR: 1,
RX_DATA: 2,
APPLIED_SETTINGS: 3,
SUCCESS: 4
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
* @return {proto.cc.arduino.cli.commands.v1.MonitorResponse.MessageCase}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.toObject = function(includeInstance, msg) {
var f, obj = {
settingsList: jspb.Message.toObjectList(msg.getSettingsList(),
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.toObject, includeInstance)
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.getMessageCase = function() {
return /** @type {proto.cc.arduino.cli.commands.v1.MonitorResponse.MessageCase} */(jspb.Message.computeOneofCase(this, proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_[0]));
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration;
return proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortSetting;
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortSetting.deserializeBinaryFromReader);
msg.addSettings(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getSettingsList();
if (f.length > 0) {
writer.writeRepeatedMessage(
1,
f,
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.serializeBinaryToWriter
);
}
};
/**
* repeated MonitorPortSetting settings = 1;
* @return {!Array<!proto.cc.arduino.cli.commands.v1.MonitorPortSetting>}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.getSettingsList = function() {
return /** @type{!Array<!proto.cc.arduino.cli.commands.v1.MonitorPortSetting>} */ (
jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.v1.MonitorPortSetting, 1));
};
/**
* @param {!Array<!proto.cc.arduino.cli.commands.v1.MonitorPortSetting>} value
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.setSettingsList = function(value) {
return jspb.Message.setRepeatedWrapperField(this, 1, value);
};
/**
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting=} opt_value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.addSettings = function(opt_value, opt_index) {
return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.cc.arduino.cli.commands.v1.MonitorPortSetting, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration.prototype.clearSettingsList = function() {
return this.setSettingsList([]);
};
/**
* List of repeated fields within this message type.
* @private {!Array<number>}
* @const
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.repeatedFields_ = [3];
@@ -1036,8 +854,7 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.toObject = function(includeInst
var f, obj = {
error: jspb.Message.getFieldWithDefault(msg, 1, ""),
rxData: msg.getRxData_asB64(),
appliedSettingsList: jspb.Message.toObjectList(msg.getAppliedSettingsList(),
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.toObject, includeInstance),
appliedSettings: (f = msg.getAppliedSettings()) && cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.toObject(includeInstance, f),
success: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
};
@@ -1084,9 +901,9 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.deserializeBinaryFromReader = f
msg.setRxData(value);
break;
case 3:
var value = new proto.cc.arduino.cli.commands.v1.MonitorPortSetting;
reader.readMessage(value,proto.cc.arduino.cli.commands.v1.MonitorPortSetting.deserializeBinaryFromReader);
msg.addAppliedSettings(value);
var value = new cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration;
reader.readMessage(value,cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.deserializeBinaryFromReader);
msg.setAppliedSettings(value);
break;
case 4:
var value = /** @type {boolean} */ (reader.readBool());
@@ -1121,30 +938,30 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.serializeBinary = fun
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getError();
if (f.length > 0) {
f = /** @type {string} */ (jspb.Message.getField(message, 1));
if (f != null) {
writer.writeString(
1,
f
);
}
f = message.getRxData_asU8();
if (f.length > 0) {
f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2));
if (f != null) {
writer.writeBytes(
2,
f
);
}
f = message.getAppliedSettingsList();
if (f.length > 0) {
writer.writeRepeatedMessage(
f = message.getAppliedSettings();
if (f != null) {
writer.writeMessage(
3,
f,
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.serializeBinaryToWriter
cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration.serializeBinaryToWriter
);
}
f = message.getSuccess();
if (f) {
f = /** @type {boolean} */ (jspb.Message.getField(message, 4));
if (f != null) {
writer.writeBool(
4,
f
@@ -1167,7 +984,25 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.getError = function()
* @return {!proto.cc.arduino.cli.commands.v1.MonitorResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.setError = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
return jspb.Message.setOneofField(this, 1, proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_[0], value);
};
/**
* Clears the field making it undefined.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.clearError = function() {
return jspb.Message.setOneofField(this, 1, proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_[0], undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.hasError = function() {
return jspb.Message.getField(this, 1) != null;
};
@@ -1209,45 +1044,62 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.getRxData_asU8 = func
* @return {!proto.cc.arduino.cli.commands.v1.MonitorResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.setRxData = function(value) {
return jspb.Message.setProto3BytesField(this, 2, value);
return jspb.Message.setOneofField(this, 2, proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_[0], value);
};
/**
* repeated MonitorPortSetting applied_settings = 3;
* @return {!Array<!proto.cc.arduino.cli.commands.v1.MonitorPortSetting>}
* Clears the field making it undefined.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.getAppliedSettingsList = function() {
return /** @type{!Array<!proto.cc.arduino.cli.commands.v1.MonitorPortSetting>} */ (
jspb.Message.getRepeatedWrapperField(this, proto.cc.arduino.cli.commands.v1.MonitorPortSetting, 3));
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.clearRxData = function() {
return jspb.Message.setOneofField(this, 2, proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_[0], undefined);
};
/**
* @param {!Array<!proto.cc.arduino.cli.commands.v1.MonitorPortSetting>} value
* Returns whether this field is set.
* @return {boolean}
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.hasRxData = function() {
return jspb.Message.getField(this, 2) != null;
};
/**
* optional MonitorPortConfiguration applied_settings = 3;
* @return {?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration}
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.getAppliedSettings = function() {
return /** @type{?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration} */ (
jspb.Message.getWrapperField(this, cc_arduino_cli_commands_v1_common_pb.MonitorPortConfiguration, 3));
};
/**
* @param {?proto.cc.arduino.cli.commands.v1.MonitorPortConfiguration|undefined} value
* @return {!proto.cc.arduino.cli.commands.v1.MonitorResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.setAppliedSettingsList = function(value) {
return jspb.Message.setRepeatedWrapperField(this, 3, value);
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.setAppliedSettings = function(value) {
return jspb.Message.setOneofWrapperField(this, 3, proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_[0], value);
};
/**
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting=} opt_value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting}
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.addAppliedSettings = function(opt_value, opt_index) {
return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.cc.arduino.cli.commands.v1.MonitorPortSetting, opt_index);
};
/**
* Clears the list making it empty but non-null.
* Clears the message field making it undefined.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.clearAppliedSettingsList = function() {
return this.setAppliedSettingsList([]);
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.clearAppliedSettings = function() {
return this.setAppliedSettings(undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.hasAppliedSettings = function() {
return jspb.Message.getField(this, 3) != null;
};
@@ -1265,167 +1117,25 @@ proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.getSuccess = function
* @return {!proto.cc.arduino.cli.commands.v1.MonitorResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.setSuccess = function(value) {
return jspb.Message.setProto3BooleanField(this, 4, value);
};
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.toObject = function(opt_includeInstance) {
return proto.cc.arduino.cli.commands.v1.MonitorPortSetting.toObject(opt_includeInstance, this);
return jspb.Message.setOneofField(this, 4, proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_[0], value);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
* Clears the field making it undefined.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorResponse} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.toObject = function(includeInstance, msg) {
var f, obj = {
settingId: jspb.Message.getFieldWithDefault(msg, 1, ""),
value: jspb.Message.getFieldWithDefault(msg, 2, "")
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.cc.arduino.cli.commands.v1.MonitorPortSetting;
return proto.cc.arduino.cli.commands.v1.MonitorPortSetting.deserializeBinaryFromReader(msg, reader);
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.clearSuccess = function() {
return jspb.Message.setOneofField(this, 4, proto.cc.arduino.cli.commands.v1.MonitorResponse.oneofGroups_[0], undefined);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting}
* Returns whether this field is set.
* @return {boolean}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setSettingId(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setValue(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getSettingId();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getValue();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
};
/**
* optional string setting_id = 1;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.getSettingId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.setSettingId = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional string value = 2;
* @return {string}
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.getValue = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.cc.arduino.cli.commands.v1.MonitorPortSetting} returns this
*/
proto.cc.arduino.cli.commands.v1.MonitorPortSetting.prototype.setValue = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
proto.cc.arduino.cli.commands.v1.MonitorResponse.prototype.hasSuccess = function() {
return jspb.Message.getField(this, 4) != null;
};

View File

@@ -6,112 +6,481 @@
import * as jspb from "google-protobuf";
export class SettingsGetAllResponse extends jspb.Message {
getJsonData(): string;
setJsonData(value: string): SettingsGetAllResponse;
export class Configuration extends jspb.Message {
hasDirectories(): boolean;
clearDirectories(): void;
getDirectories(): Configuration.Directories | undefined;
setDirectories(value?: Configuration.Directories): Configuration;
hasNetwork(): boolean;
clearNetwork(): void;
getNetwork(): Configuration.Network | undefined;
setNetwork(value?: Configuration.Network): Configuration;
hasSketch(): boolean;
clearSketch(): void;
getSketch(): Configuration.Sketch | undefined;
setSketch(value?: Configuration.Sketch): Configuration;
hasBuildCache(): boolean;
clearBuildCache(): void;
getBuildCache(): Configuration.BuildCache | undefined;
setBuildCache(value?: Configuration.BuildCache): Configuration;
hasBoardManager(): boolean;
clearBoardManager(): void;
getBoardManager(): Configuration.BoardManager | undefined;
setBoardManager(value?: Configuration.BoardManager): Configuration;
hasDaemon(): boolean;
clearDaemon(): void;
getDaemon(): Configuration.Daemon | undefined;
setDaemon(value?: Configuration.Daemon): Configuration;
hasOutput(): boolean;
clearOutput(): void;
getOutput(): Configuration.Output | undefined;
setOutput(value?: Configuration.Output): Configuration;
hasLogging(): boolean;
clearLogging(): void;
getLogging(): Configuration.Logging | undefined;
setLogging(value?: Configuration.Logging): Configuration;
hasLibrary(): boolean;
clearLibrary(): void;
getLibrary(): Configuration.Library | undefined;
setLibrary(value?: Configuration.Library): Configuration;
hasUpdater(): boolean;
clearUpdater(): void;
getUpdater(): Configuration.Updater | undefined;
setUpdater(value?: Configuration.Updater): Configuration;
hasLocale(): boolean;
clearLocale(): void;
getLocale(): string | undefined;
setLocale(value: string): Configuration;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsGetAllResponse.AsObject;
static toObject(includeInstance: boolean, msg: SettingsGetAllResponse): SettingsGetAllResponse.AsObject;
toObject(includeInstance?: boolean): Configuration.AsObject;
static toObject(includeInstance: boolean, msg: Configuration): Configuration.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsGetAllResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsGetAllResponse;
static deserializeBinaryFromReader(message: SettingsGetAllResponse, reader: jspb.BinaryReader): SettingsGetAllResponse;
static serializeBinaryToWriter(message: Configuration, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Configuration;
static deserializeBinaryFromReader(message: Configuration, reader: jspb.BinaryReader): Configuration;
}
export namespace SettingsGetAllResponse {
export namespace Configuration {
export type AsObject = {
directories?: Configuration.Directories.AsObject,
network?: Configuration.Network.AsObject,
sketch?: Configuration.Sketch.AsObject,
buildCache?: Configuration.BuildCache.AsObject,
boardManager?: Configuration.BoardManager.AsObject,
daemon?: Configuration.Daemon.AsObject,
output?: Configuration.Output.AsObject,
logging?: Configuration.Logging.AsObject,
library?: Configuration.Library.AsObject,
updater?: Configuration.Updater.AsObject,
locale?: string,
}
export class Directories extends jspb.Message {
getData(): string;
setData(value: string): Directories;
getUser(): string;
setUser(value: string): Directories;
getDownloads(): string;
setDownloads(value: string): Directories;
hasBuiltin(): boolean;
clearBuiltin(): void;
getBuiltin(): Configuration.Directories.Builtin | undefined;
setBuiltin(value?: Configuration.Directories.Builtin): Directories;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Directories.AsObject;
static toObject(includeInstance: boolean, msg: Directories): Directories.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Directories, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Directories;
static deserializeBinaryFromReader(message: Directories, reader: jspb.BinaryReader): Directories;
}
export namespace Directories {
export type AsObject = {
data: string,
user: string,
downloads: string,
builtin?: Configuration.Directories.Builtin.AsObject,
}
export class Builtin extends jspb.Message {
hasLibraries(): boolean;
clearLibraries(): void;
getLibraries(): string | undefined;
setLibraries(value: string): Builtin;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Builtin.AsObject;
static toObject(includeInstance: boolean, msg: Builtin): Builtin.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Builtin, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Builtin;
static deserializeBinaryFromReader(message: Builtin, reader: jspb.BinaryReader): Builtin;
}
export namespace Builtin {
export type AsObject = {
libraries?: string,
}
}
}
export class Network extends jspb.Message {
hasExtraUserAgent(): boolean;
clearExtraUserAgent(): void;
getExtraUserAgent(): string | undefined;
setExtraUserAgent(value: string): Network;
hasProxy(): boolean;
clearProxy(): void;
getProxy(): string | undefined;
setProxy(value: string): Network;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Network.AsObject;
static toObject(includeInstance: boolean, msg: Network): Network.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Network, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Network;
static deserializeBinaryFromReader(message: Network, reader: jspb.BinaryReader): Network;
}
export namespace Network {
export type AsObject = {
extraUserAgent?: string,
proxy?: string,
}
}
export class Sketch extends jspb.Message {
getAlwaysExportBinaries(): boolean;
setAlwaysExportBinaries(value: boolean): Sketch;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Sketch.AsObject;
static toObject(includeInstance: boolean, msg: Sketch): Sketch.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Sketch, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Sketch;
static deserializeBinaryFromReader(message: Sketch, reader: jspb.BinaryReader): Sketch;
}
export namespace Sketch {
export type AsObject = {
alwaysExportBinaries: boolean,
}
}
export class BuildCache extends jspb.Message {
getCompilationsBeforePurge(): number;
setCompilationsBeforePurge(value: number): BuildCache;
getTtlSecs(): number;
setTtlSecs(value: number): BuildCache;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): BuildCache.AsObject;
static toObject(includeInstance: boolean, msg: BuildCache): BuildCache.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: BuildCache, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): BuildCache;
static deserializeBinaryFromReader(message: BuildCache, reader: jspb.BinaryReader): BuildCache;
}
export namespace BuildCache {
export type AsObject = {
compilationsBeforePurge: number,
ttlSecs: number,
}
}
export class BoardManager extends jspb.Message {
clearAdditionalUrlsList(): void;
getAdditionalUrlsList(): Array<string>;
setAdditionalUrlsList(value: Array<string>): BoardManager;
addAdditionalUrls(value: string, index?: number): string;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): BoardManager.AsObject;
static toObject(includeInstance: boolean, msg: BoardManager): BoardManager.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: BoardManager, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): BoardManager;
static deserializeBinaryFromReader(message: BoardManager, reader: jspb.BinaryReader): BoardManager;
}
export namespace BoardManager {
export type AsObject = {
additionalUrlsList: Array<string>,
}
}
export class Daemon extends jspb.Message {
getPort(): string;
setPort(value: string): Daemon;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Daemon.AsObject;
static toObject(includeInstance: boolean, msg: Daemon): Daemon.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Daemon, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Daemon;
static deserializeBinaryFromReader(message: Daemon, reader: jspb.BinaryReader): Daemon;
}
export namespace Daemon {
export type AsObject = {
port: string,
}
}
export class Output extends jspb.Message {
getNoColor(): boolean;
setNoColor(value: boolean): Output;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Output.AsObject;
static toObject(includeInstance: boolean, msg: Output): Output.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Output, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Output;
static deserializeBinaryFromReader(message: Output, reader: jspb.BinaryReader): Output;
}
export namespace Output {
export type AsObject = {
noColor: boolean,
}
}
export class Logging extends jspb.Message {
getLevel(): string;
setLevel(value: string): Logging;
getFormat(): string;
setFormat(value: string): Logging;
hasFile(): boolean;
clearFile(): void;
getFile(): string | undefined;
setFile(value: string): Logging;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Logging.AsObject;
static toObject(includeInstance: boolean, msg: Logging): Logging.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Logging, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Logging;
static deserializeBinaryFromReader(message: Logging, reader: jspb.BinaryReader): Logging;
}
export namespace Logging {
export type AsObject = {
level: string,
format: string,
file?: string,
}
}
export class Library extends jspb.Message {
getEnableUnsafeInstall(): boolean;
setEnableUnsafeInstall(value: boolean): Library;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Library.AsObject;
static toObject(includeInstance: boolean, msg: Library): Library.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Library, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Library;
static deserializeBinaryFromReader(message: Library, reader: jspb.BinaryReader): Library;
}
export namespace Library {
export type AsObject = {
enableUnsafeInstall: boolean,
}
}
export class Updater extends jspb.Message {
getEnableNotification(): boolean;
setEnableNotification(value: boolean): Updater;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Updater.AsObject;
static toObject(includeInstance: boolean, msg: Updater): Updater.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Updater, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Updater;
static deserializeBinaryFromReader(message: Updater, reader: jspb.BinaryReader): Updater;
}
export namespace Updater {
export type AsObject = {
enableNotification: boolean,
}
}
}
export class ConfigurationGetRequest extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): ConfigurationGetRequest.AsObject;
static toObject(includeInstance: boolean, msg: ConfigurationGetRequest): ConfigurationGetRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: ConfigurationGetRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): ConfigurationGetRequest;
static deserializeBinaryFromReader(message: ConfigurationGetRequest, reader: jspb.BinaryReader): ConfigurationGetRequest;
}
export namespace ConfigurationGetRequest {
export type AsObject = {
jsonData: string,
}
}
export class SettingsMergeRequest extends jspb.Message {
getJsonData(): string;
setJsonData(value: string): SettingsMergeRequest;
export class ConfigurationGetResponse extends jspb.Message {
hasConfiguration(): boolean;
clearConfiguration(): void;
getConfiguration(): Configuration | undefined;
setConfiguration(value?: Configuration): ConfigurationGetResponse;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsMergeRequest.AsObject;
static toObject(includeInstance: boolean, msg: SettingsMergeRequest): SettingsMergeRequest.AsObject;
toObject(includeInstance?: boolean): ConfigurationGetResponse.AsObject;
static toObject(includeInstance: boolean, msg: ConfigurationGetResponse): ConfigurationGetResponse.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsMergeRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsMergeRequest;
static deserializeBinaryFromReader(message: SettingsMergeRequest, reader: jspb.BinaryReader): SettingsMergeRequest;
static serializeBinaryToWriter(message: ConfigurationGetResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): ConfigurationGetResponse;
static deserializeBinaryFromReader(message: ConfigurationGetResponse, reader: jspb.BinaryReader): ConfigurationGetResponse;
}
export namespace SettingsMergeRequest {
export namespace ConfigurationGetResponse {
export type AsObject = {
jsonData: string,
configuration?: Configuration.AsObject,
}
}
export class SettingsGetValueResponse extends jspb.Message {
getKey(): string;
setKey(value: string): SettingsGetValueResponse;
getJsonData(): string;
setJsonData(value: string): SettingsGetValueResponse;
export class ConfigurationSaveRequest extends jspb.Message {
getSettingsFormat(): string;
setSettingsFormat(value: string): ConfigurationSaveRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsGetValueResponse.AsObject;
static toObject(includeInstance: boolean, msg: SettingsGetValueResponse): SettingsGetValueResponse.AsObject;
toObject(includeInstance?: boolean): ConfigurationSaveRequest.AsObject;
static toObject(includeInstance: boolean, msg: ConfigurationSaveRequest): ConfigurationSaveRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsGetValueResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsGetValueResponse;
static deserializeBinaryFromReader(message: SettingsGetValueResponse, reader: jspb.BinaryReader): SettingsGetValueResponse;
static serializeBinaryToWriter(message: ConfigurationSaveRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): ConfigurationSaveRequest;
static deserializeBinaryFromReader(message: ConfigurationSaveRequest, reader: jspb.BinaryReader): ConfigurationSaveRequest;
}
export namespace SettingsGetValueResponse {
export namespace ConfigurationSaveRequest {
export type AsObject = {
key: string,
jsonData: string,
settingsFormat: string,
}
}
export class SettingsSetValueRequest extends jspb.Message {
getKey(): string;
setKey(value: string): SettingsSetValueRequest;
getJsonData(): string;
setJsonData(value: string): SettingsSetValueRequest;
export class ConfigurationSaveResponse extends jspb.Message {
getEncodedSettings(): string;
setEncodedSettings(value: string): ConfigurationSaveResponse;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsSetValueRequest.AsObject;
static toObject(includeInstance: boolean, msg: SettingsSetValueRequest): SettingsSetValueRequest.AsObject;
toObject(includeInstance?: boolean): ConfigurationSaveResponse.AsObject;
static toObject(includeInstance: boolean, msg: ConfigurationSaveResponse): ConfigurationSaveResponse.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsSetValueRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsSetValueRequest;
static deserializeBinaryFromReader(message: SettingsSetValueRequest, reader: jspb.BinaryReader): SettingsSetValueRequest;
static serializeBinaryToWriter(message: ConfigurationSaveResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): ConfigurationSaveResponse;
static deserializeBinaryFromReader(message: ConfigurationSaveResponse, reader: jspb.BinaryReader): ConfigurationSaveResponse;
}
export namespace SettingsSetValueRequest {
export namespace ConfigurationSaveResponse {
export type AsObject = {
key: string,
jsonData: string,
encodedSettings: string,
}
}
export class SettingsGetAllRequest extends jspb.Message {
export class ConfigurationOpenRequest extends jspb.Message {
getEncodedSettings(): string;
setEncodedSettings(value: string): ConfigurationOpenRequest;
getSettingsFormat(): string;
setSettingsFormat(value: string): ConfigurationOpenRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsGetAllRequest.AsObject;
static toObject(includeInstance: boolean, msg: SettingsGetAllRequest): SettingsGetAllRequest.AsObject;
toObject(includeInstance?: boolean): ConfigurationOpenRequest.AsObject;
static toObject(includeInstance: boolean, msg: ConfigurationOpenRequest): ConfigurationOpenRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsGetAllRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsGetAllRequest;
static deserializeBinaryFromReader(message: SettingsGetAllRequest, reader: jspb.BinaryReader): SettingsGetAllRequest;
static serializeBinaryToWriter(message: ConfigurationOpenRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): ConfigurationOpenRequest;
static deserializeBinaryFromReader(message: ConfigurationOpenRequest, reader: jspb.BinaryReader): ConfigurationOpenRequest;
}
export namespace SettingsGetAllRequest {
export namespace ConfigurationOpenRequest {
export type AsObject = {
encodedSettings: string,
settingsFormat: string,
}
}
export class ConfigurationOpenResponse extends jspb.Message {
clearWarningsList(): void;
getWarningsList(): Array<string>;
setWarningsList(value: Array<string>): ConfigurationOpenResponse;
addWarnings(value: string, index?: number): string;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): ConfigurationOpenResponse.AsObject;
static toObject(includeInstance: boolean, msg: ConfigurationOpenResponse): ConfigurationOpenResponse.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: ConfigurationOpenResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): ConfigurationOpenResponse;
static deserializeBinaryFromReader(message: ConfigurationOpenResponse, reader: jspb.BinaryReader): ConfigurationOpenResponse;
}
export namespace ConfigurationOpenResponse {
export type AsObject = {
warningsList: Array<string>,
}
}
export class SettingsGetValueRequest extends jspb.Message {
getKey(): string;
setKey(value: string): SettingsGetValueRequest;
getValueFormat(): string;
setValueFormat(value: string): SettingsGetValueRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsGetValueRequest.AsObject;
@@ -126,23 +495,53 @@ export class SettingsGetValueRequest extends jspb.Message {
export namespace SettingsGetValueRequest {
export type AsObject = {
key: string,
valueFormat: string,
}
}
export class SettingsMergeResponse extends jspb.Message {
export class SettingsGetValueResponse extends jspb.Message {
getEncodedValue(): string;
setEncodedValue(value: string): SettingsGetValueResponse;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsMergeResponse.AsObject;
static toObject(includeInstance: boolean, msg: SettingsMergeResponse): SettingsMergeResponse.AsObject;
toObject(includeInstance?: boolean): SettingsGetValueResponse.AsObject;
static toObject(includeInstance: boolean, msg: SettingsGetValueResponse): SettingsGetValueResponse.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsMergeResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsMergeResponse;
static deserializeBinaryFromReader(message: SettingsMergeResponse, reader: jspb.BinaryReader): SettingsMergeResponse;
static serializeBinaryToWriter(message: SettingsGetValueResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsGetValueResponse;
static deserializeBinaryFromReader(message: SettingsGetValueResponse, reader: jspb.BinaryReader): SettingsGetValueResponse;
}
export namespace SettingsMergeResponse {
export namespace SettingsGetValueResponse {
export type AsObject = {
encodedValue: string,
}
}
export class SettingsSetValueRequest extends jspb.Message {
getKey(): string;
setKey(value: string): SettingsSetValueRequest;
getEncodedValue(): string;
setEncodedValue(value: string): SettingsSetValueRequest;
getValueFormat(): string;
setValueFormat(value: string): SettingsSetValueRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsSetValueRequest.AsObject;
static toObject(includeInstance: boolean, msg: SettingsSetValueRequest): SettingsSetValueRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsSetValueRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsSetValueRequest;
static deserializeBinaryFromReader(message: SettingsSetValueRequest, reader: jspb.BinaryReader): SettingsSetValueRequest;
}
export namespace SettingsSetValueRequest {
export type AsObject = {
key: string,
encodedValue: string,
valueFormat: string,
}
}
@@ -163,76 +562,66 @@ export namespace SettingsSetValueResponse {
}
}
export class SettingsWriteRequest extends jspb.Message {
getFilePath(): string;
setFilePath(value: string): SettingsWriteRequest;
export class SettingsEnumerateRequest extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsWriteRequest.AsObject;
static toObject(includeInstance: boolean, msg: SettingsWriteRequest): SettingsWriteRequest.AsObject;
toObject(includeInstance?: boolean): SettingsEnumerateRequest.AsObject;
static toObject(includeInstance: boolean, msg: SettingsEnumerateRequest): SettingsEnumerateRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsWriteRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsWriteRequest;
static deserializeBinaryFromReader(message: SettingsWriteRequest, reader: jspb.BinaryReader): SettingsWriteRequest;
static serializeBinaryToWriter(message: SettingsEnumerateRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsEnumerateRequest;
static deserializeBinaryFromReader(message: SettingsEnumerateRequest, reader: jspb.BinaryReader): SettingsEnumerateRequest;
}
export namespace SettingsWriteRequest {
export type AsObject = {
filePath: string,
}
}
export class SettingsWriteResponse extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsWriteResponse.AsObject;
static toObject(includeInstance: boolean, msg: SettingsWriteResponse): SettingsWriteResponse.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsWriteResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsWriteResponse;
static deserializeBinaryFromReader(message: SettingsWriteResponse, reader: jspb.BinaryReader): SettingsWriteResponse;
}
export namespace SettingsWriteResponse {
export namespace SettingsEnumerateRequest {
export type AsObject = {
}
}
export class SettingsDeleteRequest extends jspb.Message {
getKey(): string;
setKey(value: string): SettingsDeleteRequest;
export class SettingsEnumerateResponse extends jspb.Message {
clearEntriesList(): void;
getEntriesList(): Array<SettingsEnumerateResponse.Entry>;
setEntriesList(value: Array<SettingsEnumerateResponse.Entry>): SettingsEnumerateResponse;
addEntries(value?: SettingsEnumerateResponse.Entry, index?: number): SettingsEnumerateResponse.Entry;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsDeleteRequest.AsObject;
static toObject(includeInstance: boolean, msg: SettingsDeleteRequest): SettingsDeleteRequest.AsObject;
toObject(includeInstance?: boolean): SettingsEnumerateResponse.AsObject;
static toObject(includeInstance: boolean, msg: SettingsEnumerateResponse): SettingsEnumerateResponse.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsDeleteRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsDeleteRequest;
static deserializeBinaryFromReader(message: SettingsDeleteRequest, reader: jspb.BinaryReader): SettingsDeleteRequest;
static serializeBinaryToWriter(message: SettingsEnumerateResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsEnumerateResponse;
static deserializeBinaryFromReader(message: SettingsEnumerateResponse, reader: jspb.BinaryReader): SettingsEnumerateResponse;
}
export namespace SettingsDeleteRequest {
export namespace SettingsEnumerateResponse {
export type AsObject = {
key: string,
entriesList: Array<SettingsEnumerateResponse.Entry.AsObject>,
}
}
export class SettingsDeleteResponse extends jspb.Message {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): SettingsDeleteResponse.AsObject;
static toObject(includeInstance: boolean, msg: SettingsDeleteResponse): SettingsDeleteResponse.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: SettingsDeleteResponse, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): SettingsDeleteResponse;
static deserializeBinaryFromReader(message: SettingsDeleteResponse, reader: jspb.BinaryReader): SettingsDeleteResponse;
}
export class Entry extends jspb.Message {
getKey(): string;
setKey(value: string): Entry;
getType(): string;
setType(value: string): Entry;
export namespace SettingsDeleteResponse {
export type AsObject = {
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Entry.AsObject;
static toObject(includeInstance: boolean, msg: Entry): Entry.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: Entry, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Entry;
static deserializeBinaryFromReader(message: Entry, reader: jspb.BinaryReader): Entry;
}
export namespace Entry {
export type AsObject = {
key: string,
type: string,
}
}
}

View File

@@ -38,6 +38,10 @@ export class UploadRequest extends jspb.Message {
getUserFieldsMap(): jspb.Map<string, string>;
clearUserFieldsMap(): void;
clearUploadPropertiesList(): void;
getUploadPropertiesList(): Array<string>;
setUploadPropertiesList(value: Array<string>): UploadRequest;
addUploadProperties(value: string, index?: number): string;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UploadRequest.AsObject;
@@ -63,6 +67,7 @@ export namespace UploadRequest {
dryRun: boolean,
userFieldsMap: Array<[string, string]>,
uploadPropertiesList: Array<string>,
}
}
@@ -185,6 +190,10 @@ export class UploadUsingProgrammerRequest extends jspb.Message {
getUserFieldsMap(): jspb.Map<string, string>;
clearUserFieldsMap(): void;
clearUploadPropertiesList(): void;
getUploadPropertiesList(): Array<string>;
setUploadPropertiesList(value: Array<string>): UploadUsingProgrammerRequest;
addUploadProperties(value: string, index?: number): string;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UploadUsingProgrammerRequest.AsObject;
@@ -210,6 +219,7 @@ export namespace UploadUsingProgrammerRequest {
dryRun: boolean,
userFieldsMap: Array<[string, string]>,
uploadPropertiesList: Array<string>,
}
}
@@ -279,6 +289,10 @@ export class BurnBootloaderRequest extends jspb.Message {
getUserFieldsMap(): jspb.Map<string, string>;
clearUserFieldsMap(): void;
clearUploadPropertiesList(): void;
getUploadPropertiesList(): Array<string>;
setUploadPropertiesList(value: Array<string>): BurnBootloaderRequest;
addUploadProperties(value: string, index?: number): string;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): BurnBootloaderRequest.AsObject;
@@ -301,6 +315,7 @@ export namespace BurnBootloaderRequest {
dryRun: boolean,
userFieldsMap: Array<[string, string]>,
uploadPropertiesList: Array<string>,
}
}

View File

@@ -52,7 +52,7 @@ goog.exportSymbol('proto.cc.arduino.cli.commands.v1.UserField', null, global);
* @constructor
*/
proto.cc.arduino.cli.commands.v1.UploadRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.UploadRequest.repeatedFields_, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.UploadRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
@@ -136,7 +136,7 @@ if (goog.DEBUG && !COMPILED) {
* @constructor
*/
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.repeatedFields_, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
@@ -178,7 +178,7 @@ if (goog.DEBUG && !COMPILED) {
* @constructor
*/
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
jspb.Message.initialize(this, opt_data, 0, -1, proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.repeatedFields_, null);
};
goog.inherits(proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
@@ -315,6 +315,13 @@ if (goog.DEBUG && !COMPILED) {
proto.cc.arduino.cli.commands.v1.SupportedUserFieldsResponse.displayName = 'proto.cc.arduino.cli.commands.v1.SupportedUserFieldsResponse';
}
/**
* List of repeated fields within this message type.
* @private {!Array<number>}
* @const
*/
proto.cc.arduino.cli.commands.v1.UploadRequest.repeatedFields_ = [12];
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -356,7 +363,8 @@ proto.cc.arduino.cli.commands.v1.UploadRequest.toObject = function(includeInstan
importDir: jspb.Message.getFieldWithDefault(msg, 8, ""),
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
dryRun: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : []
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : [],
uploadPropertiesList: (f = jspb.Message.getRepeatedField(msg, 12)) == null ? undefined : f
};
if (includeInstance) {
@@ -441,6 +449,10 @@ proto.cc.arduino.cli.commands.v1.UploadRequest.deserializeBinaryFromReader = fun
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
});
break;
case 12:
var value = /** @type {string} */ (reader.readString());
msg.addUploadProperties(value);
break;
default:
reader.skipField();
break;
@@ -546,6 +558,13 @@ proto.cc.arduino.cli.commands.v1.UploadRequest.serializeBinaryToWriter = functio
if (f && f.getLength() > 0) {
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
}
f = message.getUploadPropertiesList();
if (f.length > 0) {
writer.writeRepeatedString(
12,
f
);
}
};
@@ -789,6 +808,43 @@ proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.clearUserFieldsMap = fu
return this;};
/**
* repeated string upload_properties = 12;
* @return {!Array<string>}
*/
proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.getUploadPropertiesList = function() {
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 12));
};
/**
* @param {!Array<string>} value
* @return {!proto.cc.arduino.cli.commands.v1.UploadRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.setUploadPropertiesList = function(value) {
return jspb.Message.setField(this, 12, value || []);
};
/**
* @param {string} value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.UploadRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.addUploadProperties = function(value, opt_index) {
return jspb.Message.addToRepeatedField(this, 12, value, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.UploadRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.UploadRequest.prototype.clearUploadPropertiesList = function() {
return this.setUploadPropertiesList([]);
};
/**
* Oneof group definitions for this message. Each group defines the field
@@ -1364,6 +1420,13 @@ proto.cc.arduino.cli.commands.v1.ProgrammerIsRequiredForUploadError.serializeBin
/**
* List of repeated fields within this message type.
* @private {!Array<number>}
* @const
*/
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.repeatedFields_ = [12];
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -1405,7 +1468,8 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.toObject = functio
importDir: jspb.Message.getFieldWithDefault(msg, 8, ""),
programmer: jspb.Message.getFieldWithDefault(msg, 9, ""),
dryRun: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : []
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : [],
uploadPropertiesList: (f = jspb.Message.getRepeatedField(msg, 12)) == null ? undefined : f
};
if (includeInstance) {
@@ -1490,6 +1554,10 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.deserializeBinaryF
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
});
break;
case 12:
var value = /** @type {string} */ (reader.readString());
msg.addUploadProperties(value);
break;
default:
reader.skipField();
break;
@@ -1595,6 +1663,13 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.serializeBinaryToW
if (f && f.getLength() > 0) {
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
}
f = message.getUploadPropertiesList();
if (f.length > 0) {
writer.writeRepeatedString(
12,
f
);
}
};
@@ -1838,6 +1913,43 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.clearUse
return this;};
/**
* repeated string upload_properties = 12;
* @return {!Array<string>}
*/
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.getUploadPropertiesList = function() {
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 12));
};
/**
* @param {!Array<string>} value
* @return {!proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.setUploadPropertiesList = function(value) {
return jspb.Message.setField(this, 12, value || []);
};
/**
* @param {string} value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.addUploadProperties = function(value, opt_index) {
return jspb.Message.addToRepeatedField(this, 12, value, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerRequest.prototype.clearUploadPropertiesList = function() {
return this.setUploadPropertiesList([]);
};
/**
* Oneof group definitions for this message. Each group defines the field
@@ -2109,6 +2221,13 @@ proto.cc.arduino.cli.commands.v1.UploadUsingProgrammerResponse.prototype.hasErrS
/**
* List of repeated fields within this message type.
* @private {!Array<number>}
* @const
*/
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.repeatedFields_ = [12];
if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -2147,7 +2266,8 @@ proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.toObject = function(inclu
verify: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
programmer: jspb.Message.getFieldWithDefault(msg, 6, ""),
dryRun: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : []
userFieldsMap: (f = msg.getUserFieldsMap()) ? f.toObject(includeInstance, undefined) : [],
uploadPropertiesList: (f = jspb.Message.getRepeatedField(msg, 12)) == null ? undefined : f
};
if (includeInstance) {
@@ -2220,6 +2340,10 @@ proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.deserializeBinaryFromRead
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
});
break;
case 12:
var value = /** @type {string} */ (reader.readString());
msg.addUploadProperties(value);
break;
default:
reader.skipField();
break;
@@ -2304,6 +2428,13 @@ proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.serializeBinaryToWriter =
if (f && f.getLength() > 0) {
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
}
f = message.getUploadPropertiesList();
if (f.length > 0) {
writer.writeRepeatedString(
12,
f
);
}
};
@@ -2493,6 +2624,43 @@ proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.clearUserFields
return this;};
/**
* repeated string upload_properties = 12;
* @return {!Array<string>}
*/
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.getUploadPropertiesList = function() {
return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 12));
};
/**
* @param {!Array<string>} value
* @return {!proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.setUploadPropertiesList = function(value) {
return jspb.Message.setField(this, 12, value || []);
};
/**
* @param {string} value
* @param {number=} opt_index
* @return {!proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.addUploadProperties = function(value, opt_index) {
return jspb.Message.addToRepeatedField(this, 12, value, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest} returns this
*/
proto.cc.arduino.cli.commands.v1.BurnBootloaderRequest.prototype.clearUploadPropertiesList = function() {
return this.setUploadPropertiesList([]);
};
/**
* Oneof group definitions for this message. Each group defines the field

View File

@@ -16,16 +16,16 @@ import {
} from '../common/protocol';
import { spawnCommand } from './exec-util';
import { ArduinoDaemonImpl } from './arduino-daemon-impl';
import { DefaultCliConfig, CLI_CONFIG } from './cli-config';
import { DefaultCliConfig, CLI_CONFIG, CliConfig } from './cli-config';
import { Deferred } from '@theia/core/lib/common/promise-util';
import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
import { deepClone, nls } from '@theia/core';
import { ErrnoException } from './utils/errors';
import {
SettingsMergeRequest,
SettingsWriteRequest,
} from './cli-protocol/cc/arduino/cli/commands/v1/settings_pb';
import { createArduinoCoreServiceClient } from './arduino-core-service-client';
import {
ConfigurationSaveRequest,
SettingsSetValueRequest,
} from './cli-protocol/cc/arduino/cli/commands/v1/settings_pb';
const deepmerge = require('deepmerge');
@@ -180,13 +180,13 @@ export class ConfigServiceImpl
const content = await fs.readFile(cliConfigPath, {
encoding: 'utf8',
});
const model = (yaml.safeLoad(content) || {}) as DefaultCliConfig;
const model = (yaml.safeLoad(content) || {}) as CliConfig;
this.logger.info(`Loaded CLI configuration: ${JSON.stringify(model)}`);
if (model.directories.data && model.directories.user) {
if (model.directories?.data && model.directories?.user) {
this.logger.info(
"'directories.data' and 'directories.user' are set in the CLI configuration model."
);
return model;
return model as DefaultCliConfig;
}
// The CLI can run with partial (missing `port`, `directories`), the IDE2 cannot.
// We merge the default CLI config with the partial user's config.
@@ -217,13 +217,17 @@ export class ConfigServiceImpl
private async getFallbackCliConfig(): Promise<DefaultCliConfig> {
const cliPath = this.daemon.getExecPath();
const rawJson = await spawnCommand(cliPath, [
'config',
'dump',
'format',
'--json',
const [configRaw, directoriesRaw] = await Promise.all([
spawnCommand(cliPath, ['config', 'dump', '--json']),
// Since CLI 1.0, the command `config dump` only returns user-modified values and not default ones.
// directories.user and directories.data are required by IDE2 so we get the default value explicitly.
spawnCommand(cliPath, ['config', 'get', 'directories', '--json']),
]);
return JSON.parse(rawJson);
const config = JSON.parse(configRaw);
const { user, data } = JSON.parse(directoriesRaw);
return { ...config.config, directories: { user, data } };
}
private async initCliConfigTo(fsPathToDir: string): Promise<void> {
@@ -291,48 +295,65 @@ export class ConfigServiceImpl
}
private async updateDaemon(
port: number | number,
port: number,
config: DefaultCliConfig
): Promise<void> {
const client = createArduinoCoreServiceClient({ port });
const req = new SettingsMergeRequest();
const json = JSON.stringify(config, null, 2);
req.setJsonData(json);
this.logger.info(`Updating daemon with 'data': ${json}`);
return new Promise<void>((resolve, reject) => {
client.settingsMerge(req, (error) => {
try {
const updatableConfig = {
locale: config.locale,
'directories.user': config.directories.user,
'directories.data': config.directories.data,
'network.proxy': config.network?.proxy,
'board_manager.additional_urls':
config.board_manager?.additional_urls || [],
};
const client = createArduinoCoreServiceClient({ port });
for (const [key, value] of Object.entries(updatableConfig)) {
const req = new SettingsSetValueRequest();
req.setKey(key);
req.setEncodedValue(JSON.stringify(value));
await new Promise<void>((resolve) => {
client.settingsSetValue(req, (error) => {
if (error) {
reject(error);
return;
this.logger.error(
`Could not update config with key: ${key} and value: ${value}`,
error
);
}
resolve();
} finally {
client.close();
}
});
});
});
}
client.close();
}
private async writeDaemonState(port: number | number): Promise<void> {
private async writeDaemonState(port: number): Promise<void> {
const client = createArduinoCoreServiceClient({ port });
const req = new SettingsWriteRequest();
const cliConfigUri = await this.getCliConfigFileUri();
const cliConfigPath = FileUri.fsPath(cliConfigUri);
req.setFilePath(cliConfigPath);
return new Promise<void>((resolve, reject) => {
client.settingsWrite(req, (error) => {
const req = new ConfigurationSaveRequest();
req.setSettingsFormat('yaml');
const configRaw = await new Promise<string>((resolve, reject) => {
client.configurationSave(req, (error, resp) => {
try {
if (error) {
reject(error);
return;
}
resolve();
resolve(resp.getEncodedSettings());
} finally {
client.close();
}
});
});
const cliConfigUri = await this.getCliConfigFileUri();
const cliConfigPath = FileUri.fsPath(cliConfigUri);
await fs.writeFile(cliConfigPath, configRaw, { encoding: 'utf-8' });
}
// #1445

View File

@@ -1,4 +1,4 @@
import type { ClientReadableStream } from '@grpc/grpc-js';
import { type ClientReadableStream } from '@grpc/grpc-js';
import { ApplicationError } from '@theia/core/lib/common/application-error';
import type { CancellationToken } from '@theia/core/lib/common/cancellation';
import { CommandService } from '@theia/core/lib/common/command';
@@ -11,7 +11,6 @@ import type { Mutable } from '@theia/core/lib/common/types';
import { FileUri } from '@theia/core/lib/node/file-uri';
import { inject, injectable } from '@theia/core/shared/inversify';
import * as jspb from 'google-protobuf';
import { BoolValue } from 'google-protobuf/google/protobuf/wrappers_pb';
import path from 'node:path';
import {
UploadResponse as ApiUploadResponse,
@@ -37,11 +36,13 @@ import { Instance } from './cli-protocol/cc/arduino/cli/commands/v1/common_pb';
import {
CompileRequest,
CompileResponse,
InstanceNeedsReinitializationError,
} from './cli-protocol/cc/arduino/cli/commands/v1/compile_pb';
import { Port as RpcPort } from './cli-protocol/cc/arduino/cli/commands/v1/port_pb';
import {
BurnBootloaderRequest,
BurnBootloaderResponse,
ProgrammerIsRequiredForUploadError,
UploadRequest,
UploadResponse,
UploadUsingProgrammerRequest,
@@ -89,48 +90,84 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService {
compileSummaryHandler
);
const toDisposeOnFinally = new DisposableCollection(handler);
return new Promise<void>((resolve, reject) => {
const call = client.compile(request);
if (cancellationToken) {
toDisposeOnFinally.push(
cancellationToken.onCancellationRequested(() => call.cancel())
let hasRetried = false;
const handleUnexpectedError = (error: Error) => {
console.error(
'Unexpected error occurred while compiling the sketch.',
error
);
}
call
.on('data', handler.onData)
.on('error', (error) => {
if (!ServiceError.is(error)) {
console.error(
'Unexpected error occurred while compiling the sketch.',
error
);
reject(error);
return;
}
if (ServiceError.isCancel(error)) {
console.log(userAbort);
reject(UserAbortApplicationError());
return;
}
const compilerErrors = tryParseError({
content: handler.content,
sketch: options.sketch,
});
const message = nls.localize(
'arduino/compile/error',
'Compilation error: {0}',
compilerErrors
.map(({ message }) => message)
.filter(notEmpty)
.shift() ?? error.details
reject(error);
};
const handleCancellationError = () => {
console.log(userAbort);
reject(UserAbortApplicationError());
};
const handleInstanceNeedsReinitializationError = async (
error: ServiceError & InstanceNeedsReinitializationError
) => {
if (hasRetried) {
// If error persists, send the error message to the output
return parseAndSendErrorResponse(error);
}
hasRetried = true;
await this.refresh();
return startCompileStream();
};
const parseAndSendErrorResponse = (error: ServiceError) => {
const compilerErrors = tryParseError({
content: handler.content,
sketch: options.sketch,
});
const message = nls.localize(
'arduino/compile/error',
'Compilation error: {0}',
compilerErrors
.map(({ message }) => message)
.filter(notEmpty)
.shift() ?? error.details
);
this.sendResponse(
error.details + '\n\n' + message,
OutputMessage.Severity.Error
);
reject(CoreError.VerifyFailed(message, compilerErrors));
};
const handleError = async (error: Error) => {
if (!ServiceError.is(error)) return handleUnexpectedError(error);
if (ServiceError.isCancel(error)) return handleCancellationError();
if (
ServiceError.isInstanceOf(error, InstanceNeedsReinitializationError)
) {
return await handleInstanceNeedsReinitializationError(error);
}
parseAndSendErrorResponse(error);
};
const startCompileStream = () => {
const call = client.compile(request);
if (cancellationToken) {
toDisposeOnFinally.push(
cancellationToken.onCancellationRequested(() => call.cancel())
);
this.sendResponse(
error.details + '\n\n' + message,
OutputMessage.Severity.Error
);
reject(CoreError.VerifyFailed(message, compilerErrors));
})
.on('end', resolve);
}
call
.on('data', handler.onData)
.on('error', handleError)
.on('end', resolve);
};
startCompileStream();
}).finally(() => {
toDisposeOnFinally.dispose();
if (!isCompileSummary(compileSummary)) {
@@ -195,9 +232,7 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService {
request.setVerbose(options.verbose);
request.setQuiet(false);
if (typeof options.exportBinaries === 'boolean') {
const exportBinaries = new BoolValue();
exportBinaries.setValue(options.exportBinaries);
request.setExportBinaries(exportBinaries);
request.setExportBinaries(options.exportBinaries);
}
this.mergeSourceOverrides(request, options);
return request;
@@ -298,12 +333,24 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService {
reject(UserAbortApplicationError());
return;
}
if (
ServiceError.isInstanceOf(
error,
ProgrammerIsRequiredForUploadError
)
) {
reject(CoreError.UploadRequiresProgrammer());
return;
}
const message = nls.localize(
'arduino/upload/error',
'{0} error: {1}',
firstToUpperCase(task),
error.details
);
this.sendResponse(error.details, OutputMessage.Severity.Error);
reject(
errorCtor(

View File

@@ -22,9 +22,7 @@ import {
import {
EnumerateMonitorPortSettingsRequest,
EnumerateMonitorPortSettingsResponse,
MonitorPortConfiguration,
MonitorPortOpenRequest,
MonitorPortSetting,
MonitorRequest,
MonitorResponse,
} from './cli-protocol/cc/arduino/cli/commands/v1/monitor_pb';
@@ -39,6 +37,10 @@ import {
} from '@theia/core/lib/common/promise-util';
import { MonitorServiceFactoryOptions } from './monitor-service-factory';
import { ServiceError } from './service-error';
import {
MonitorPortConfiguration,
MonitorPortSetting,
} from './cli-protocol/cc/arduino/cli/commands/v1/common_pb';
export const MonitorServiceName = 'monitor-service';
type DuplexHandlerKeys =

View File

@@ -1,14 +1,71 @@
import { Metadata, StatusObject } from '@grpc/grpc-js';
import { Status } from './cli-protocol/google/rpc/status_pb';
import { stringToUint8Array } from '../common/utils';
import { Status as StatusCode } from '@grpc/grpc-js/build/src/constants';
import { ProgrammerIsRequiredForUploadError } from './cli-protocol/cc/arduino/cli/commands/v1/upload_pb';
import { InstanceNeedsReinitializationError } from './cli-protocol/cc/arduino/cli/commands/v1/compile_pb';
type ProtoError = typeof ProgrammerIsRequiredForUploadError;
const protoErrorsMap = new Map<string, ProtoError>([
[
'cc.arduino.cli.commands.v1.ProgrammerIsRequiredForUploadError',
ProgrammerIsRequiredForUploadError,
],
[
'cc.arduino.cli.commands.v1.InstanceNeedsReinitializationError',
InstanceNeedsReinitializationError,
],
// handle other cli defined errors here
]);
export type ServiceError = StatusObject & Error;
export namespace ServiceError {
export function isCancel(arg: unknown): arg is ServiceError & { code: 1 } {
export function isCancel(
arg: unknown
): arg is ServiceError & { code: StatusCode.CANCELLED } {
return is(arg) && arg.code === 1; // https://grpc.github.io/grpc/core/md_doc_statuscodes.html
}
export function is(arg: unknown): arg is ServiceError {
return arg instanceof Error && isStatusObjet(arg);
export function isInvalidArgument(
arg: unknown
): arg is ServiceError & { code: StatusCode.INVALID_ARGUMENT } {
return is(arg) && arg.code === 3; // https://grpc.github.io/grpc/core/md_doc_statuscodes.html
}
function isStatusObjet(arg: unknown): arg is StatusObject {
export function is(arg: unknown): arg is ServiceError {
return arg instanceof Error && isStatusObject(arg);
}
export function isInstanceOf<ProtoError>(
arg: unknown,
type: new (...args: unknown[]) => ProtoError
): arg is ProtoError {
if (!isStatusObject(arg)) {
return false;
}
try {
const bin = arg.metadata.get('grpc-status-details-bin')[0];
const uint8Array =
typeof bin === 'string'
? stringToUint8Array(bin)
: new Uint8Array(bin.buffer, bin.byteOffset, bin.byteLength);
const errors = Status.deserializeBinary(uint8Array)
.getDetailsList()
.map((details) => {
const typeName = details.getTypeName();
const ErrorType = protoErrorsMap.get(typeName);
return ErrorType?.deserializeBinary(details.getValue_asU8());
});
return !!errors.find((error) => error && error instanceof type);
} catch {
return false;
}
}
function isStatusObject(arg: unknown): arg is StatusObject {
if (typeof arg === 'object') {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const any = arg as any;

View File

@@ -8,7 +8,7 @@ import type { Mutable } from '@theia/core/lib/common/types';
import URI from '@theia/core/lib/common/uri';
import { FileUri } from '@theia/core/lib/node/file-uri';
import { inject, injectable, named } from '@theia/core/shared/inversify';
import glob from 'glob';
import { glob } from 'glob';
import crypto from 'node:crypto';
import {
CopyOptions,
@@ -668,47 +668,43 @@ export class SketchesServiceImpl
);
}
async tempBuildPath(sketch: Sketch): Promise<string[]> {
async getBuildPath(sketch: Sketch): Promise<string[]> {
const sketchPath = FileUri.fsPath(sketch.uri);
const { tempDirRealpath } = this.isTempSketch;
const tempBuildPaths = [
this.tempBuildPathMD5Hash(tempDirRealpath, sketchPath),
];
let basePath: string;
try {
basePath = userCacheDir();
} catch {
// Fallback to /tmp
const { tempDirRealpath } = this.isTempSketch;
basePath = tempDirRealpath;
}
const buildPaths = [this.buildPathMD5Hash(basePath, sketchPath)];
// If on Windows, provide both the upper and the lowercase drive letter MD5 hashes. All together four paths are expected:
// One of them should match if the sketch is not yet compiled.
// https://github.com/arduino/arduino-ide/pull/1809#discussion_r1071031040
if (isWindows && Win32DriveRegex.test(tempDirRealpath)) {
if (isWindows && Win32DriveRegex.test(basePath)) {
const toggleFirstCharCasing = (s: string) =>
startsWithUpperCase(s) ? firstToLowerCase(s) : firstToUpperCase(s);
const otherCaseTempDirRealPath = toggleFirstCharCasing(tempDirRealpath);
tempBuildPaths.push(
this.tempBuildPathMD5Hash(otherCaseTempDirRealPath, sketchPath)
);
const otherCaseDirRealPath = toggleFirstCharCasing(basePath);
buildPaths.push(this.buildPathMD5Hash(otherCaseDirRealPath, sketchPath));
if (Win32DriveRegex.test(sketchPath)) {
const otherCaseSketchPath = toggleFirstCharCasing(sketchPath);
tempBuildPaths.push(
this.tempBuildPathMD5Hash(tempDirRealpath, otherCaseSketchPath),
this.tempBuildPathMD5Hash(
otherCaseTempDirRealPath,
otherCaseSketchPath
)
buildPaths.push(
this.buildPathMD5Hash(basePath, otherCaseSketchPath),
this.buildPathMD5Hash(otherCaseDirRealPath, otherCaseSketchPath)
);
}
}
return tempBuildPaths;
return buildPaths;
}
private tempBuildPathMD5Hash(tempFolderPath: string, path: string): string {
return join(
tempFolderPath,
'arduino',
'sketches',
this.tempBuildFolderMD5Hash(path)
);
private buildPathMD5Hash(basePath: string, path: string): string {
return join(basePath, 'arduino', 'sketches', this.buildFolderMD5Hash(path));
}
private tempBuildFolderMD5Hash(path: string): string {
private buildFolderMD5Hash(path: string): string {
return crypto.createHash('md5').update(path).digest('hex').toUpperCase();
}
@@ -853,13 +849,13 @@ export async function discoverSketches(
container: Mutable<SketchContainer>,
logger?: ILogger
): Promise<SketchContainer> {
const pathToAllSketchFiles = await globSketches(
const pathToAllSketchFiles = await glob(
'/!(libraries|hardware)/**/*.{ino,pde}',
root
{ root }
);
// if no match try to glob the sketchbook as a sketch folder
if (!pathToAllSketchFiles.length) {
pathToAllSketchFiles.push(...(await globSketches('/*.{ino,pde}', root)));
pathToAllSketchFiles.push(...(await glob('/*.{ino,pde}', { root })));
}
// Sort by path length to filter out nested sketches, such as the `Nested_folder` inside the `Folder` sketch.
@@ -873,7 +869,14 @@ export async function discoverSketches(
// +--Nested_folder
// |
// +--Nested_folder.ino
pathToAllSketchFiles.sort((left, right) => left.length - right.length);
pathToAllSketchFiles.sort((left, right) => {
if (left.length === right.length) {
// Sort alphabetically for tests consistency
return left.localeCompare(right);
}
return left.length - right.length;
});
const getOrCreateChildContainer = (
container: SketchContainer,
segments: string[]
@@ -974,17 +977,39 @@ export async function discoverSketches(
uri: FileUri.create(path.dirname(pathToSketchFile)).toString(),
});
}
return prune(container);
}
async function globSketches(pattern: string, root: string): Promise<string[]> {
return new Promise<string[]>((resolve, reject) => {
glob(pattern, { root }, (error, results) => {
if (error) {
reject(error);
} else {
resolve(results);
/**
* Replica of Go `os.UserCacheDir()`.
* https://github.com/golang/go/blob/777f43ab27bde4c662cd0a663f807f74f3fbab0f/src/os/file.go#L477
*/
export function userCacheDir(): string {
let dir: string | undefined;
const platform = os.platform();
switch (platform) {
case 'darwin': {
dir = path.join(os.homedir(), '/Library/Caches');
break;
}
case 'win32': {
dir = process.env.LocalAppData || undefined;
if (!dir) {
throw new Error('%LocalAppData% is not defined');
}
});
});
break;
}
default: {
dir = process.env.XDG_CACHE_HOME || undefined;
if (!dir) {
dir = path.join(os.homedir() + '/.cache');
} else if (!path.isAbsolute(dir)) {
throw new Error('path in $XDG_CACHE_HOME is relative');
}
}
}
return dir;
}

View File

@@ -0,0 +1,44 @@
import { injectable, postConstruct } from '@theia/core/shared/inversify';
import { VsCodePluginScanner as TheiaVsCodePluginScanner } from '@theia/plugin-ext-vscode/lib/node/scanner-vscode';
import {
PluginPackageViewWelcome,
ViewWelcome,
} from '@theia/plugin-ext/lib/common/plugin-protocol';
@injectable()
export class VsCodePluginScanner extends TheiaVsCodePluginScanner {
@postConstruct()
protected init(): void {
this['readViewWelcome'] = (
rawViewWelcome: PluginPackageViewWelcome,
pluginViewsIds: string[]
) => {
const result = {
view: rawViewWelcome.view,
content: rawViewWelcome.contents,
when: rawViewWelcome.when,
// if the plugin contributes Welcome view to its own view - it will be ordered first
order:
pluginViewsIds.findIndex((v) => v === rawViewWelcome.view) > -1
? 0
: 1,
};
return maybeSetEnablement(rawViewWelcome, result);
};
}
}
// This is not yet supported by Theia but available in Code (https://github.com/microsoft/vscode/issues/114304)
function maybeSetEnablement(
rawViewWelcome: PluginPackageViewWelcome,
result: ViewWelcome
) {
const enablement =
'enablement' in rawViewWelcome &&
typeof rawViewWelcome['enablement'] === 'string' &&
rawViewWelcome['enablement'];
if (enablement) {
Object.assign(result, { enablement });
}
return result;
}

View File

@@ -113,13 +113,13 @@ describe('boards-service-impl', () => {
expect(result.length).greaterThan(1);
const lastIndex = result.length - 1;
const last = result[lastIndex];
expect(last.id).to.be.equal('arduino:mbed');
expect(last.id).to.be.equal('Microsoft:win10');
expect(last.deprecated).to.be.true;
const windowsIoTCoreIndex = result.findIndex(
(platform) => platform.id === 'Microsoft:win10'
const arduinoMbedCoreIndex = result.findIndex(
(platform) => platform.id === 'arduino:mbed'
);
expect(windowsIoTCoreIndex).to.be.greaterThanOrEqual(0);
expect(windowsIoTCoreIndex).to.be.lessThan(lastIndex);
expect(arduinoMbedCoreIndex).to.be.greaterThanOrEqual(0);
expect(arduinoMbedCoreIndex).to.be.lessThan(lastIndex);
const first = result[0];
expect(typeof first.deprecated).to.be.equal('boolean');
expect(first.deprecated).to.be.false;

View File

@@ -61,7 +61,7 @@ describe('core-service-impl', () => {
expect('buildOutputUri' in arg).to.be.true;
expect(arg.buildOutputUri).to.be.not.undefined;
const tempBuildPaths = await sketchesService.tempBuildPath(sketch);
const tempBuildPaths = await sketchesService.getBuildPath(sketch);
if (isWindows) {
expect(tempBuildPaths.length).to.be.greaterThan(1);
} else {

View File

@@ -37,7 +37,7 @@ describe('exec-utils', () => {
expect(fs.accessSync(cliCopyPath, fs.constants.X_OK)).to.be.undefined;
expect(cliCopyPath.includes(segment)).to.be.true;
const stdout = await spawnCommand(cliCopyPath, ['version']);
expect(stdout.includes(filename)).to.be.true;
expect(stdout.includes(path.parse(filename).name)).to.be.true;
});
});

View File

@@ -289,7 +289,6 @@ export async function createCliConfig(
const directories = {
data: join(configDirPath, 'data', 'Arduino15'),
downloads: join(configDirPath, 'data', 'Arduino15', 'staging'),
builtin: join(configDirPath, 'data', 'Arduino15', 'libraries'),
user: join(configDirPath, 'user', 'Arduino'),
};
for (const directoryPath of Object.values(directories)) {

View File

@@ -50,6 +50,7 @@ This repository contains the main code, but two more repositories are included d
- To build the application, follow the Theia IDE [prerequisites](https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisites).
- This project recommends using [Visual Studio Code (VS Code)](https://code.visualstudio.com/) for the development.
- The build system might also need to build the [Arduino CLI](https://github.com/arduino/arduino-cli), the [Arduino Language Server](https://github.com/arduino/arduino-language-server), and other tools from the sources. In this case it is also necessary to have the build prerequisites for those projects installed. For more details, refer to the Arduino CLI's [prerequisites section](https://arduino.github.io/arduino-cli/latest/CONTRIBUTING/#prerequisites).
## Build from source

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "electron-app",
"version": "2.3.3",
"version": "2.3.4",
"license": "AGPL-3.0-or-later",
"main": "./src-gen/backend/electron-main.js",
"dependencies": {
@@ -19,7 +19,7 @@
"@theia/preferences": "1.41.0",
"@theia/terminal": "1.41.0",
"@theia/workspace": "1.41.0",
"arduino-ide-extension": "2.3.3"
"arduino-ide-extension": "2.3.4"
},
"devDependencies": {
"@theia/cli": "1.41.0",
@@ -133,7 +133,8 @@
"msi",
"nsis",
"zip"
]
],
"sign": "./scripts/windowsCustomSign.js"
},
"mac": {
"darkModeSupport": true,

View File

@@ -4,7 +4,7 @@
const isCI = require('is-ci');
const fs = require('fs');
const path = require('path');
const glob = require('glob');
const { glob } = require('glob');
const { isRelease } = require('./utils');
const { isZip, adjustArchiveStructure } = require('./archive');

View File

@@ -0,0 +1,30 @@
const childProcess = require('child_process');
exports.default = async function (configuration) {
if (!process.env.GITHUB_ACTIONS || process.env.CAN_SIGN !== 'true') {
return;
}
const SIGNTOOL_PATH = process.env.SIGNTOOL_PATH;
const INSTALLER_CERT_WINDOWS_CER = process.env.INSTALLER_CERT_WINDOWS_CER;
const CERT_PASSWORD = process.env.WIN_CERT_PASSWORD;
const CONTAINER_NAME = process.env.WIN_CERT_CONTAINER_NAME;
const filePath = configuration.path;
if (
SIGNTOOL_PATH &&
INSTALLER_CERT_WINDOWS_CER &&
CERT_PASSWORD &&
CONTAINER_NAME
) {
childProcess.execSync(
`"${SIGNTOOL_PATH}" sign -d "Arduino IDE" -f "${INSTALLER_CERT_WINDOWS_CER}" -csp "eToken Base Cryptographic Provider" -k "[{{${CERT_PASSWORD}}}]=${CONTAINER_NAME}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "${filePath}"`,
{ stdio: 'inherit' }
);
} else {
console.warn(
`Custom windows signing was no performed one of the following variables was not provided: SIGNTOOL_PATH (${SIGNTOOL_PATH}), INSTALLER_CERT_WINDOWS_CERT (${INSTALLER_CERT_WINDOWS_CER}), CERT_PASSWORD (${CERT_PASSWORD}), CONTAINER_NAME (${CONTAINER_NAME})`
);
process.exit(1);
}
};

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Board{0}",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Board Info",
"boards": "boards",
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
@@ -31,10 +32,12 @@
"port": "Port{0}",
"ports": "ports",
"programmer": "Programeerder",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Herselekteer later",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Kies Bord",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Please select a port to obtain board info.",
"showAllAvailablePorts": "Shows all available ports when enabled",
"showAllPorts": "Show all ports",
@@ -152,7 +155,8 @@
"serialMonitor": "Seriaal Monitor",
"type": "Type",
"unknown": "Onbekend",
"updateable": "Updatable"
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Compilation error: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "Debugging is not supported by '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Platform is nie geïnstalleer vir ' {0} '",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Geoptimaliseerd vir ontfouting",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "True if users should be warned before pulling a cloud sketch. Defaults to true.",
"cloud.push.warn": "True if users should be warned before pushing a cloud sketch. Defaults to true.",
"cloud.pushpublic.warn": "True if users should be warned before pushing a public sketch to the cloud. Defaults to true.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "The endpoint used to push and pull sketches from a backend. By default it points to Arduino Cloud API.",
"compile": "saamstel",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +415,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
"upload": "oplaai",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True for verbose upload output. False by default.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verifieer kode na oplaai ",
"window.autoScale": "True if the user interface automatically scales with the font size.",
"window.zoomLevel": {

View File

@@ -8,13 +8,14 @@
"goToCloudEditor": "الانتقال الى المحرر السحابي",
"goToIoTCloud": "الانتقال الى سحابة الIoT",
"goToProfile": "الانتقال الى ملف التعريف الشخصي",
"menuTitle": "Arduino Cloud"
"menuTitle": "الخدمة السحابية للأردوينو"
},
"board": {
"board": "اللوحة {0}",
"boardConfigDialogTitle": "أختر متحكم و منفذ مختلفين ",
"boardConfigDialogTitle": "اختر لوحة أخرى ومنفذها",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "معلومات اللوحة",
"boards": "المتحكمات",
"boards": "اللوحات",
"configDialog1": "اختر لوحة و منفذ معا اذا اردت ان ترفع السكتش",
"configDialog2": "اذا قمت باختيار لوحة فقط ستسطيع ان تترجم لكن بدون ان ترفع المشروع",
"couldNotFindPreviouslySelected": "تعذر ايجاد اللوحة '{0}' المختارة مسبقا في المنصة المثبتة '{1}' . الرجاء اعادة اختيار اللوحة التي تريد استعمالها يدويا . هل تريد باعادة الاختيار الان؟",
@@ -22,19 +23,21 @@
"getBoardInfo": "الحصول على معلومات اللوحة",
"inSketchbook": "(داخل ملف المشاريع)",
"installNow": "نواة \"{0} {1}\" يجب تثبيتها للوحة \"{2}\" التي تم اختيارها . هل تريد تثبيتها الان ؟",
"noBoardsFound": ا يوجد لوحات ل \"{0}\"",
"noBoardsFound": م يتم العثور على لوحة لـ \"{0}\"",
"noNativeSerialPort": "منفذ الاتصال التسلسلي الاساسي , تعذر الحصول على معلومات",
"noPortsDiscovered": "تعذر ايجاد منافذ",
"noPortsDiscovered": "لم يتم العثور على منفذ متصل",
"nonSerialPort": "منفذ اتصال غير تسلسلي , تعذر الحصول على معلومات",
"openBoardsConfig": "قم باختيار لوحة و منفذ مختلفين",
"pleasePickBoard": "من فضلك اختر لوحة متصلة على المنفذ الذي اخترته",
"port": "المنفذ {0}",
"ports": "منافذ",
"programmer": "المبرمجة",
"reloadBoardData": "Reload Board Data",
"reselectLater": "اعد الاختيار لاحقا",
"revertBoardsConfig": "استخدم '{0}' تعامل مع '{1}'",
"searchBoard": "أبحث عن متحكم",
"selectBoard": "اختر لوحة",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "الرجاء اختيار منفذ من اجل الحصول على معلومات اللوحة",
"showAllAvailablePorts": "يظهر كل المنافذ المتاحة عند تفعيله",
"showAllPorts": "أظهر جميع المنافذ",
@@ -139,7 +142,7 @@
"installManually": "ثبّت يدويا",
"later": "لاحقا",
"noBoardSelected": "لم يتم اختيار اي لوحة",
"noSketchOpened": "No sketch opened",
"noSketchOpened": "لم يتم فتح صفحة كتابة الكود",
"notConnected": "[غير متصل]",
"offlineIndicator": "انت غير متصل بالانترنت على الارجح , بدون الاتصال بالانترنت لن تستطيع واجهة سطر الاوامر الخاصة بالاردوينو \"Arduino CLI\" تحميل الموارد المطلوبة و من الممكن ان تسبب باخطاء , الرجاء الاتصال بالانترنت و اعادة تشغيل البرنامج",
"oldFormat": "ال '{0}' ما زالت تستخدم صيغة `.pde` القديمة . هل تريد الانتقال الى صيغة `.ino`  الجديدة ؟",
@@ -147,12 +150,13 @@
"processing": "تتم المعالجة",
"recommended": "يُنصح به",
"retired": "متقاعد",
"selectManually": "Select Manually",
"selectManually": "اختر يدوياً",
"selectedOn": "{0} شغّل",
"serialMonitor": "مراقب المنفذ التسلسلي \"سيريال بورت\"\n ",
"type": "النوع",
"unknown": "غير معروف",
"updateable": "يمكن تحديثه"
"updateable": "يمكن تحديثه",
"userAbort": "إلغاء المستخدم"
},
"compile": {
"error": "خطا في الترجمة : {0}"
@@ -211,9 +215,8 @@
"debug": {
"debugWithMessage": "تصحيح برمجي - {0}",
"debuggingNotSupported": "'{0}' لا يقبل التصحيح البرمجي",
"getDebugInfo": "Getting debug info...",
"getDebugInfo": "الحصول على معلومات التصحيح",
"noPlatformInstalledFor": "المنصة غير مثبتة ل '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "التحسين من اجل التصحيح البرمجي",
"sketchIsNotCompiled": "المشروع '{0}' يجب ان يتم التحقق منه قبل بدء جلسة تصحيح الاخطاء . الرجاء التحقق من المشروع و اعادة تشغيل مصحح الاخطاء مرة اخرى .\nهل تريد التحقق من المشروع الان؟"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "True اذا كان يجب تحذير المستخدمين قبل سحب مشروع من السحابة . True افتراضيا",
"cloud.push.warn": "True اذا كان يجب تحذير المستخدمين قبل دفع مشروع الى السحابة . True افتراضيا",
"cloud.pushpublic.warn": "True اذا كان يجب تحذير المستخدمين قبل دفع مشروع عام الى السحابة . True افتراضيا",
"cloud.sharedSpaceId": "معرّف مساحة Arduino Cloud المشتركة لتحميل مجموعة المشاريع منها. إذا تُركت فارغة، يتم اختيار مساحتك الخاصة",
"cloud.sketchSyncEndpoint": "الوجهة المستخدمة لدفع و سحب المشاريع من الخلفية . تشير افتراضيا الى Arduino Cloud API.",
"compile": "الترجمة",
"compile.experimental": "مُفعل اذا وَجَبَ على الIDE التعامل مع عدة اخطاء اثناء الترجمة . غير مفعل بشكل افتراضي ",
@@ -385,7 +389,7 @@
"invalid.editorFontSize": "حجم خط المحرّر غير صالح . يجب ان يكون عدد موجب",
"invalid.sketchbook.location": "موقع ملف المشروع غير صالح : {0}",
"invalid.theme": "سمة غير صالحة",
"language.asyncWorkers": "Number of async workers used by the Arduino Language Server (clangd). Background index also uses this many workers. The minimum value is 0, and the maximum is 8. When it is 0, the language server uses all available cores. The default value is 0.",
"language.asyncWorkers": "عدد العاملين غير المتزامنين المستخدمين من قبل خادم لغة Arduino (clangd). يستخدم الفهرس الخلفي أيضاً نفس عدد العاملين. الحد الأدنى للقيمة هو 0، والحد الأقصى هو 8. عندما تكون القيمة 0، يستخدم خادم اللغة جميع النوى المتاحة. القيمة الافتراضية هي 0",
"language.log": "\"True\" اذا كان مخدم اللغات الخاص بArduino يستطيع توليد سجلات الى ملف المشروع , و الا \"False\", و هي كذلك بشكل افتراضي.",
"language.realTimeDiagnostics": "اذا تم تفعيله , سيقوم سيرفر اللغة باعطاء تشخيصات للاخطاء خلال الوقت الحقيقي اثناء الكتابة ضمن المحرر . غير مفعل بشكل افتراضي",
"manualProxy": "اعدادات الوكيل يدوياً",
@@ -411,7 +415,9 @@
"survey.notification": "مفعل اذا اراد المستخدم ان يتم تبليغه في حالوجود استطلاع راي . مفعل بشكل افتراضي",
"unofficialBoardSupport": "انقر لعرض قائمة عناوين URL للوحات المدعومة بشكل غير رسمي",
"upload": "الرفع",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True لخرج الرفع المطول . False افتراضيا",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "التحقق من الكود بعد الرفع",
"window.autoScale": "True اذا كان مقياس الواجهة يتزامن تلقائيا مع حجم الخط ",
"window.zoomLevel": {
@@ -465,8 +471,8 @@
"saveSketchAs": "حفظ ملف المشروع باسم ...",
"showFolder": "اعرض ملف المشروع",
"sketch": "مشروع",
"sketchAlreadyContainsThisFileError": "The sketch already contains a file named '{0}'",
"sketchAlreadyContainsThisFileMessage": "Failed to save sketch \"{0}\" as \"{1}\". {2}",
"sketchAlreadyContainsThisFileError": "السكيتش يحتوي بالفعل على ملف باسم{0}",
"sketchAlreadyContainsThisFileMessage": "فشل في حفظ السكيتش {0} كـ {1} {2}",
"sketchbook": "مجلد المشاريع",
"titleLocalSketchbook": "مجلد المشاريع المحلي",
"titleSketchbook": "مجلد المشاريع",

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Board{0}",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Board Info",
"boards": "boards",
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
@@ -31,10 +32,12 @@
"port": "Port{0}",
"ports": "ports",
"programmer": "Proqramlayıcı",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Daha Sonra Yenidən Seç",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Select Board",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Please select a port to obtain board info.",
"showAllAvailablePorts": "Shows all available ports when enabled",
"showAllPorts": "Show all ports",
@@ -152,7 +155,8 @@
"serialMonitor": "Serial Monitor",
"type": "Type",
"unknown": "Bilnməyən",
"updateable": "Updatable"
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Compilation error: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "Debugging is not supported by '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Platform is not installed for '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Optimize for Debugging",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "True if users should be warned before pulling a cloud sketch. Defaults to true.",
"cloud.push.warn": "True if users should be warned before pushing a cloud sketch. Defaults to true.",
"cloud.pushpublic.warn": "True if users should be warned before pushing a public sketch to the cloud. Defaults to true.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "The endpoint used to push and pull sketches from a backend. By default it points to Arduino Cloud API.",
"compile": "compile",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +415,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
"upload": "upload",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True for verbose upload output. False by default.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verify code after upload",
"window.autoScale": "True if the user interface automatically scales with the font size.",
"window.zoomLevel": {

557
i18n/be.json Normal file
View File

@@ -0,0 +1,557 @@
{
"arduino": {
"about": {
"detail": "Версія: {0}\nДата: {1}{2}\nВерсія CLI: {3}\n\n{4}",
"label": "Пра {0}"
},
"account": {
"goToCloudEditor": "Перайсці ў сродак праўкі воблака",
"goToIoTCloud": "Перайсці ў воблака IoT",
"goToProfile": "Перайсці ў профіль",
"menuTitle": "Воблака Arduino"
},
"board": {
"board": "Плата{0}",
"boardConfigDialogTitle": "Абярыце іншую плату і порт",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Інфармацыя пра плату",
"boards": "платы",
"configDialog1": "Абярыце як плату, так і порт, калі вы жадаеце загрузіць сцэнар.",
"configDialog2": "Калі вы выбіраеце толькі плату, вы зможаце кампіліраваць, але не загружаць сцэнар.",
"couldNotFindPreviouslySelected": "Не атрымалася знайсці раней абраную плату '{0}' на ўсталяванай платформе '{1}'.\nКалі ласка, абярыце ўручную плату, якую вы жадаеце ўжываць.\nЦі жадаеце вы паўторна абраць яе зараз?",
"editBoardsConfig": "Змяніць плату і порт…",
"getBoardInfo": "Атрымаць інфармацыю пра плату",
"inSketchbook": " (у альбоме з сцэнарамі)",
"installNow": "Ядро \"{0} {1}\" павінна быць усталяванае для абранай у бягучы час платы \"{2}\".\nЦі жадаеце вы ўсталяваць яе зараз?",
"noBoardsFound": "Не знойдзена плат для \"{0}\"",
"noNativeSerialPort": "Уласны паслядоўны порт, не атрымалася атрымаць інфармацыю.",
"noPortsDiscovered": "Парты не выяўленыя",
"nonSerialPort": "Уласны паслядоўны порт, не атрымалася атрымаць інфармацыю.",
"openBoardsConfig": "Абярыце іншую плату і порт…",
"pleasePickBoard": "Калі ласка, абярыце плату, якая злучаная з абраным вамі портам.",
"port": "Порт{0}",
"ports": "порты",
"programmer": "Сродак праграмавання",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Абярыце паўторна пазней",
"revertBoardsConfig": "Ужыта '{0}' выяўлена ў '{1}'",
"searchBoard": "Знайсці плату",
"selectBoard": "Знайсці плату",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Калі ласка, абярыце порт, каб атрымаць інфармацыю пра плату.",
"showAllAvailablePorts": "Паказвае ўсе даступныя порты, калі яны ўключаныя",
"showAllPorts": "Паказаць усе порты",
"succesfullyInstalledPlatform": "Платформа {0}:{1} паспяхова ўсталяваная",
"succesfullyUninstalledPlatform": "Платформа {0}:{1} паспяхова выдаленая",
"typeOfPorts": "{0} порты",
"unconfirmedBoard": "Непацвержданная плата",
"unknownBoard": "Невядомая плата"
},
"boardsManager": "Кіраванне платамі",
"boardsType": {
"arduinoCertified": "Сертыфікаваны Arduino"
},
"bootloader": {
"burnBootloader": "Прашыць загрузнік",
"burningBootloader": "Прашыўка загрузніка…",
"doneBurningBootloader": "Прашыўка загрузніка скончаная."
},
"burnBootloader": {
"error": "Памылка пры запісу загрузніка: {0}"
},
"certificate": {
"addNew": "Дадаць новы",
"addURL": "Дадаць адрас URL для атрымання сертыфіката SSL",
"boardAtPort": "{0} у {1}",
"certificatesUploaded": "Сертыфікаты загружаныя.",
"enterURL": "Увядзіце адрас URL",
"noSupportedBoardConnected": "Плата, якая падтрымліваецца, не падключаная",
"openContext": "Адчыніць кантэкст",
"remove": "Выдаліць",
"selectBoard": "Абраць плату…",
"selectCertificateToUpload": "1. Абярыце сертыфікат для выгрузкі",
"selectDestinationBoardToUpload": "2. Абярыце мэтавую плату, і выгрузіце сертыфікат",
"upload": "Выгрузіць",
"uploadFailed": "Не атрымалася выгрузіць.\nКалі ласка, паспрабуйце зноў.",
"uploadRootCertificates": "Выгрузіць каранёвые сертыфікаты SSL",
"uploadingCertificates": "Выгрузка сертыфікатаў."
},
"checkForUpdates": {
"checkForUpdates": "Праверыць наяўнасць абнаўленняў Arduino",
"installAll": "Усталяваць усе",
"noUpdates": "Апошнія абнаўленні недаступныя.",
"promptUpdateBoards": "Даступныя абнаўленні для некаторых вашых плат.",
"promptUpdateLibraries": "Даступныя абнаўленні для некаторых вашых бібліятэк.",
"updatingBoards": "Абнаўленне плат…",
"updatingLibraries": "Абнаўленне бібліятэк…"
},
"cli-error-parser": {
"keyboardError": "'Keyboard' не знойдзеная.\nЦі прысутнічае ў вашым сцэнары радок '#include <Keyboard.h>'?",
"mouseError": "'Mouse' Не знойдзеная.\nЦі прысутнічае ў вашым сцэнары радок '#include <Mouse.h>'?"
},
"cloud": {
"chooseSketchVisibility": "Абярыце бачнасць вашага сцэнару:",
"cloudSketchbook": "Альбом з сцэнарамі ў воблаке",
"connected": "Злучана",
"continue": "Працягнуць",
"donePulling": "Скончана выцягванне '{0}'.",
"donePushing": "Скончана адпраўка '{0}'.",
"embed": "Убудаваны:",
"emptySketchbook": "Ваш альбом з сцэнарамі пусты",
"goToCloud": "Перайсці ў воблака",
"learnMore": "Вывучыць больш",
"link": "Спасылак:",
"notYetPulled": "Не атрымалася паслаць у воблака.\nСцэнар яшчэ не выцягнуты.",
"offline": "Не ў сетцы",
"openInCloudEditor": "Адчыніць у сродку праўкі воблака",
"options": "Налады…",
"privateVisibility": "Асабісты.\nТолькі вы можаце глядзець сцэнар.",
"profilePicture": "Выява профілю",
"publicVisibility": "Грамадскі.\nЛюбы, хто мае спасылак, можа глядзець сцэнар.",
"pull": "Выцягнуць",
"pullFirst": "Спачатку вы павінны выцягнуць, каб мець магчымасць перайсці да воблака.",
"pullSketch": "Выцягнуць сцэнар",
"pullSketchMsg": "Пры выцягванні гэтага сцэнару з воблаку, будзе перазапісаная яго лакальная версія.\nЦі жадаеце працягнуць?",
"push": "Адправіць",
"pushSketch": "Адправіць сцэнар",
"pushSketchMsg": "Гэта грамадскі сцэнар.\nПерад адпраўкай пераканайцеся, што ў файлах arduino_secrets.h паказана любая канфідэнцыйная інфармацыя.\nВы можаце зрабіць сцэнар прыватным з панэлі агульнага доступу.",
"remote": "Падалены",
"share": "Падзяліцца…",
"shareSketch": "Падзяліцца сцэнарам",
"showHideSketchbook": "Адлюстраваць/схаваць альбом з сцэнарамі ў воблаке",
"signIn": "Увайсці",
"signInToCloud": "Увайсці ў воблака Arduino",
"signOut": "Выйсці",
"sync": "Сінхранізаваць",
"syncEditSketches": "Сінхранізаваць і змяніць сцэнары ў воблаку Arduino",
"visitArduinoCloud": "Наведаць воблака Arduino, каб стварыць сцэнары ў воблаке."
},
"cloudSketch": {
"alreadyExists": "Сцэнар '{0}' ў воблаке ўжо існуе.",
"creating": "Стварэнне сцэнара '{0}' ў воблаке…",
"new": "Новы сцэнар у воблаку",
"notFound": "Не атрымалася выцягнуць сцэнар '{0}' з воблака.\nСцэнар не існуе.",
"pulling": "Сінхранізацыя альбому, выцягванне '{0}'…",
"pushing": "Сінхранізацыя альбому, адпраўка '{0}'…",
"renaming": "Пераназваць сцэнар '{0}' у '{1}' у воблаке…",
"synchronizingSketchbook": "Сінхранізацыя альбому з сцэнарамі…"
},
"common": {
"all": "Усе",
"contributed": "Уклад",
"installManually": "Усталяваць уручную",
"later": "Пазней",
"noBoardSelected": "плата не абраная",
"noSketchOpened": "Сцэнар не абраны",
"notConnected": "[не злучана]",
"offlineIndicator": "Падобна на тое, што вы знаходзіцеся не ў сетцы.\nБез злучэння з інтэрнэтам Arduino CLI можа не загружаць неабходныя рэсурсы і гэтае можа прывесці да збою ў працы.\nКалі ласка, злучыцеся з інтэрнэтам, і запусціце праграму нанова.",
"oldFormat": "'{0}' ужывае стары фармат `.pde`.\nЦі жадаеце вы перайсці на новае пашырэнне `.ino`?",
"partner": "Партнёр",
"processing": "Апрацоўка",
"recommended": "Рэкамендаваны",
"retired": "У адстаўцы",
"selectManually": "Абраць уручную",
"selectedOn": "уключана {0}",
"serialMonitor": "Манітор паслядоўнага порта",
"type": "Тып",
"unknown": "Невядома",
"updateable": "Абнаўляецца",
"userAbort": "Перапыненне карыстальнікам"
},
"compile": {
"error": "Памылка кампіляцыі: {0}"
},
"component": {
"boardsIncluded": "Платы, якія ўваходзяць у гэты пакет:",
"by": "ад",
"clickToOpen": "Пстрыкніце, каб адчыніць ў інтэрнэт-аглядальніку: {0}",
"filterSearch": "Фільтраваць пошук…",
"install": "Усталяваць",
"installLatest": "Усталяваць пазней",
"installVersion": "Усталяваць {0}",
"installed": "{0} усталяваны",
"moreInfo": "Дадатковая інфармацыя",
"otherVersions": "Іншыя версіі",
"remove": "Выдаліць",
"title": "{0} ад {1}",
"uninstall": "Выдаліць",
"uninstallMsg": "Ці сапраўды вы жадаеце выдаліць {0}?",
"update": "Абнавіць"
},
"configuration": {
"cli": {
"inaccessibleDirectory": "Не атрымалася атрымаць доступ да размяшчэння альбому па адрасу '{0}': {1}"
}
},
"connectionStatus": {
"connectionLost": "Злучэнне страчанае.\nДзеянні і абнаўленні сцэнараў воблаку будуць недаступныя."
},
"contributions": {
"addFile": "Дадаць файл",
"fileAdded": "Адзін файл дададзены ў сцэнар.",
"plotter": {
"couldNotOpen": "Не атрымалася адчыніць паслядоўны плотэр"
},
"replaceTitle": "Замяніць"
},
"core": {
"compilerWarnings": {
"all": "Усе",
"default": "Першапачаткова",
"more": "Больш",
"none": "Ніхто"
}
},
"coreContribution": {
"copyError": "Капіраваць паведамленні пра памылкі",
"noBoardSelected": "Плата не выбрана.\nКалі ласка, абярыце вашу плату Arduino у меню Інструменты > Плата."
},
"createCloudCopy": "Перамясціць сцэнар у воблака",
"daemon": {
"restart": "Запусціць Daemon нанова",
"start": "Запусціць Daemon",
"stop": "Спыніць Daemon"
},
"debug": {
"debugWithMessage": "Адладзіць - {0}",
"debuggingNotSupported": "Адладка не падтрымліваецца для '{0}'",
"getDebugInfo": "Атрыманне дадатковай інфармацыі…",
"noPlatformInstalledFor": "Платформа не ўсталяваная для '{0}'",
"optimizeForDebugging": "Аптымізаваць для адладкі",
"sketchIsNotCompiled": "Сцэнар '{0}' неабходна праверыць перад пачаткам сеансу адладкі.\nКалі ласка, праверце сцэнар, і пачніце адладку нанова.\nЦі жадаеце праверыць сцэнар зараз?"
},
"developer": {
"clearBoardList": "Ачысціць гісторыю спісу плат",
"clearBoardsConfig": "Ачысціць плату і абраць порт",
"dumpBoardList": "Звалка спісу плат"
},
"dialog": {
"dontAskAgain": "Болей не пытаць"
},
"editor": {
"autoFormat": "Аўтаматычнае фарматаванне",
"commentUncomment": "Каментаваць/раскаментаваць",
"copyForForum": "Капіраваць для форуму (Markdown)",
"decreaseFontSize": "Паменшыць памер шрыфту",
"decreaseIndent": "Паменшыць водступ",
"increaseFontSize": "Павялічыць памер шрыфту",
"increaseIndent": "Павялічыць водступ",
"nextError": "Наступная памылка",
"previousError": "Папярэдняя памылка",
"revealError": "Выявіць памылку"
},
"examples": {
"builtInExamples": "Убудаваныя прыклады",
"couldNotInitializeExamples": "Не атрымалася ініцыялізаваць убудаваныя прыклады.",
"customLibrary": "Прыклады з карыстальніцкіх бібліятэк",
"for": "Прыклады для {0}",
"forAny": "Прыклады для любой платы",
"menu": "Прыклады"
},
"firmware": {
"checkUpdates": "Праверыць наяўнасць абнаўленняў",
"failedInstall": "Памылка ўсталявання.\nКалі ласка, паспрабуйце зноў.",
"install": "Усталяваць",
"installingFirmware": "Усталяванне прашыўкі.",
"overwriteSketch": "Усталяванне перазапіша сцэнар на плаце.",
"selectBoard": "Знайсці плату",
"selectVersion": "Абярыце версію прашыўкі",
"successfullyInstalled": "Прашыўка паспяхова ўсталяваная.",
"updater": "Сродак абнаўлення прашыўкі"
},
"help": {
"environment": "Асяроддзе",
"faq": "Часта задаваныя пытанні",
"findInReference": "Знайсці ў даведніку",
"gettingStarted": "Прыступаючы да працы",
"keyword": "Увядзіце ключавае слова",
"privacyPolicy": "Палітыка прыватнасці",
"reference": "Даведнік",
"search": "Пошук на Arduino.cc",
"troubleshooting": "Дыягностыка",
"visit": "Перайсці на Arduino.cc"
},
"ide-updater": {
"checkForUpdates": "Праверыць наяўнасць абнаўленняў Arduino IDE",
"closeAndInstallButton": "Зачыніць і ўсталяваць",
"closeToInstallNotice": "Зачыніце праграмнае забеспячэнне і ўсталюйце абнаўленне на свой кампутар.",
"downloadButton": "Спампаваць",
"downloadingNotice": "Пампуе апошнюю версію Arduino IDE.",
"errorCheckingForUpdates": "Памылка пры праверцы абнаўленняў Arduino IDE.\n{0}",
"goToDownloadButton": "Перайсці да спампоўкі",
"goToDownloadPage": "Даступна абнаўленне для Arduino IDE, але мы не можам загрузіць і ўсталяваць яго аўтаматычна.\nКалі ласка, перайдзіце на старонку спампоўкі і спампуйце адтуль апошнюю версію.",
"ideUpdaterDialog": "Абнаўленне праграмнага забеспячэння",
"newVersionAvailable": "Новая версія Arduino IDE ({0}) даступная для спампоўкі.",
"noUpdatesAvailable": "Апошнія абнаўленні для Arduino IDE недаступныя",
"notNowButton": "Не цяпер",
"skipVersionButton": "Прапусціць версію",
"updateAvailable": "Даступна абнаўленне",
"versionDownloaded": "Arduino IDE {0} быў спампаваны."
},
"installable": {
"libraryInstallFailed": "Не атрымалася ўсталяваць бібліятэку: '{0}{1}'.",
"platformInstallFailed": "Не атрымалася ўсталяваць платформу: '{0}{1}'."
},
"library": {
"addZip": "Дадаць бібліятэку .ZIP…",
"arduinoLibraries": "Бібліятэкі Arduino",
"contributedLibraries": "Прадстаўленыя бібліятэкі",
"include": "Уключыць бібліятэку",
"installAll": "Усталяваць усе",
"installLibraryDependencies": "Усталяваць залежнасці бібліятэк",
"installMissingDependencies": "Ці жадаеце вы ўсталяваць усе залежнасці, якія адсутнічаюць?",
"installOneMissingDependency": "Ці жадаеце вы ўсталяваць залежнасць, якая адсутнічае?",
"installWithoutDependencies": "Усталяваць без залежнасцяў",
"installedSuccessfully": "Бібліятэка {0}:{1} паспяхова ўсталяваная",
"libraryAlreadyExists": "Бібліятэка ўжо існуе.\nЦі жадаеце вы перазапісаць яе?",
"manageLibraries": "Кіраваць бібліятэкамі…",
"namedLibraryAlreadyExists": "Каталог бібліятэкі {0} ужо існуе.\nЦі жадаеце вы перазапісаць яе?",
"needsMultipleDependencies": "Бібліятэцы <b>{0}:{1}</b> патрэбныя некаторыя іншыя залежнасці, якія ў бягучы час не ўсталяваныя:",
"needsOneDependency": "Бібліятэцы <b>{0}:{1}</b> патрабуецца іншая залежнасць, якая ў бягучы час не ўсталяваная:",
"overwriteExistingLibrary": "Ці жадаеце вы перазапісаць існуючую бібліятэку?",
"successfullyInstalledZipLibrary": "Бібліятэка з архіва {0} паспяхова ўсталяваная",
"title": "Кіраванне бібліятэкай",
"uninstalledSuccessfully": "Бібліятэка {0}:{1} паспяхова выдаленая",
"zipLibrary": "Бібліятэка"
},
"librarySearchProperty": {
"topic": "Тэма"
},
"libraryTopic": {
"communication": "Зносіны",
"dataProcessing": "Апрацоўка дадзеных",
"dataStorage": "Сховішча дадзеных",
"deviceControl": "Кіраванне прыладай",
"display": "Дысплей",
"other": "Іншае",
"sensors": "Датчыкі",
"signalInputOutput": "Сігналы ўводу/вываду",
"timing": "Сінхранізацыя",
"uncategorized": "Без рубрыкі"
},
"libraryType": {
"installed": "Усталяваная"
},
"menu": {
"advanced": "Пашыраны",
"sketch": "Сцэнар",
"tools": "Інструменты"
},
"monitor": {
"alreadyConnectedError": "Не атрымалася злучыцца з портам {0} {1}.\nУжо злучаны.",
"baudRate": "{0} бод",
"connectionFailedError": "Не атрымалася злучыцца з портам {0} {1}",
"connectionFailedErrorWithDetails": "{0} не атрымалася злучыцца з портам {1} {2}.",
"connectionTimeout": "Затрымка.\nIDE не атрымалася паведамленне 'success' ад манітора паслядоўнага злучэння",
"missingConfigurationError": "Не атрымалася злучыцца з портам {0} {1}.\nКанфігурацыя манітора адсутнічае.",
"notConnectedError": "Не злучаны з портам {0} {1}.",
"unableToCloseWebSocket": "Не атрымалася зачыніць вэб-сокет",
"unableToConnectToWebSocket": "Не атрымалася злучыцца з вэб-сокетам"
},
"newCloudSketch": {
"newSketchTitle": "Назва новага сцэнара ў воблаку"
},
"portProtocol": {
"network": "Сетка",
"serial": "Паслядоўны порт"
},
"preferences": {
"additionalManagerURLs": "Адрасы URL кіраўніка дадатковых плат",
"auth.audience": "Аўдыторыя OAuth2.",
"auth.clientID": "Ідэнтыфікатар кліенту OAuth2.",
"auth.domain": "Дамен OAuth2.",
"auth.registerUri": "URI, які ўжываецца пры рэгістрацыі новага карыстальніка.",
"automatic": "Аўтаматычна",
"board.certificates": "Спіс сертыфікатаў, якія могуць быць загружаныя на плату",
"browse": "Праглядзець",
"checkForUpdate": "Атрымліваць апавяшчэнні аб даступных абнаўленнях для IDE, плат і бібліятэк.\nПатрабуецца запусціць IDE нанова пасля ўнясення змяненняў.\nПершапачаткова true.",
"choose": "Выбраць",
"cli.daemonDebug": "Уключыць вядзенне часопісу адладкі выклікаў gRPC ў Arduino CLI.\nКаб уступіла ў сілу гэтая налада, патрабуецца запусціць IDE нанова.\nПершапачаткова false.",
"cloud.enabled": "Калі true, функцыі сінхранізацыі сцэнару ўключаныя.\nПершапачаткова true.",
"cloud.pull.warn": "Калі true, карыстальнікі павінны быць папярэджаныя перад стварэннем сцэнара ў воблаку.\nПершапачаткова true.",
"cloud.push.warn": "Калі true, карыстальнікі павінны быць папярэджаныя перад запускам сцэнара ў воблаку.\nПершапачаткова true.",
"cloud.pushpublic.warn": "Калі true, карыстальнікі павінны быць папярэджаныя перад адпраўкай агульнадаступнага сцэнара ў воблака.\nПершапачаткова true.",
"cloud.sharedSpaceId": "Ідэнтыфікатар агульнай прасторы воблака Arduino, з якога можна загрузіць альбом сцэнараў.\nКалі пустое, абрана вашая асабістая прастора.",
"cloud.sketchSyncEndpoint": "Канчатковая кропка, якая ўжываецца для адпраўкі і выцягвання сцэнара з сервернай часткі.\nПершапачаткова яна паказвае на API воблака Arduino.",
"compile": "кампіляваць",
"compile.experimental": "Калі true, асяроддзе IDE павінна апрацоўваць некалькі памылак кампілятара.\nПершапачаткова false",
"compile.revealRange": "Наладжвае спосаб адлюстравання памылак кампілятара ў сродку праўкі пасля няўдалай праверкі/загрузкі.\nМагчымыя значэнні:\n'auto': пракруціць па вертыкалі па меры неабходнасці і адлюстраваць радок.\n'center': пракруціць па вертыкалі па меры неабходнасці і адлюстраваць радок па цэнтры па вертыкалі.\n'top': пракруціць па вертыкалі па меры неабходнасці і паказаць лінію блізка да верхняй частцы вобласці прагляду, аптымізаваную для прагляду вызначэння кода.\n'centerIfOutsideViewport': пракруціць па вертыкалі па меры неабходнасці і паказаць лінію, цэнтраваць па вертыкалі, толькі калі яна знаходзіцца за межамі вобласці прагляду.\nПершапачаткова - '{0}'.",
"compile.verbose": "Калі true, каб быў падрабязны вывад кампілятарам.\nПершапачаткова false",
"compile.warnings": "Паказвае gcc, які ўжываць узровень папярэджанняў.\nПершапачаткова 'None'",
"compilerWarnings": "Папярэджанні кампілятара",
"editorFontSize": "Памер шрыфту ў сродку праўкі",
"editorQuickSuggestions": "Хуткія падказкі ў сродку праўкі",
"enterAdditionalURLs": "Увядзіце дадатковыя адрасы URL, па адным на кожным радку",
"files.inside.sketches": "Адлюстраваць файлы ўнутры сцэнара",
"ide.updateBaseUrl": "Асноўны адрас URL, з якога можна спампаваць абнаўленні.\nПершапачаткова 'https://downloads.arduino.cc/arduino-ide'",
"ide.updateChannel": "Канал выпуску, з якога можна атрымліваць абнаўленні.\n'stable' - гэта стабільны выпуск, 'nightly' - апошняя зборка для распрацоўшчыкаў.",
"interfaceScale": "Маштабаванне інтэрфейсу",
"invalid.editorFontSize": "Хібны памер шрыфту сродку праўкі.\nПавінны быць станоўчы цэлы лік.",
"invalid.sketchbook.location": "Хібнае размяшчэнне альбому з сцэнарамі: {0}",
"invalid.theme": "Хібная тэма.",
"language.asyncWorkers": "Колькасць асінхронных працоўных працэсаў, якія ўжываюцца моўным серверам Arduino (clangd).\nФонавы індэкс таксама ўжывае дадзеную колькасць працоўных працэсаў.\nНайменшае значэнне 0, а найбольшае - 8.\nКалі 0, моўны сервер ужывае ўсе даступныя ядры.\nПершапачаткова 0.",
"language.log": "Калі true, моўны сервер Arduino павінен ствараць файлы часопісу ў каталог з сцэнарам.\nУ адваротным выпадку false.\nПершапачаткова false.",
"language.realTimeDiagnostics": "Калі true, моўны сервер забяспечвае дыягностыку пры ўводзе тэксту ў сродку праўкі ў рэальным часе.\nПершапачаткова false.",
"manualProxy": "Ручная налада проксі-сервера",
"monitor": {
"dockPanel": "Вобласць асяроддзя праграмы, дзе будзе знаходзіцца віджэт _{0}_.\nГэта \"bottom\" ці \"right\".\nПершапачаткова \"{1}\"."
},
"network": "Сетка",
"newSketchbookLocation": "Абраць новае месцазнаходжанне альбому з сцэнарамі",
"noCliConfig": "Не атрымалася загрузіць канфігурацыю CLI",
"noProxy": "Без проксі-сервера",
"proxySettings": {
"hostname": "Назва вузла",
"password": "Пароль",
"port": "Нумар порта",
"username": "Імя карыстальніка"
},
"showVerbose": "Паказаць падрабязныя выходныя дадзеныя падчас",
"sketch": {
"inoBlueprint": "Абсалютны шлях файлавай сістэмы да першапачатковага файла схемы `.ino`.\nКалі паказана, змест файлу схемы будзе ўжывацца для кожнага новага сцэнара, які створаны ў IDE.\nСцэнары будуць створаныя з ужываннем першапачатковага зместу Arduino, калі не пазначана.\nНедаступныя файлы схемы ігнаруюцца.\nКаб гэты параметр уступіў сілу, **патрабуецца запуск IDE нанова**."
},
"sketchbook.location": "Месцазнаходжанне альбому з сцэнарамі",
"sketchbook.showAllFiles": "Калі true, адлюстроўваюцца ўсе файлы сцэнараў унутры сцэнара.\nПершапачаткова false.",
"survey.notification": "Калі true, карыстальнікі павінны атрымліваць апавяшчэнні аб даступнасці апытання.\nПершапачаткова true.",
"unofficialBoardSupport": "Пстрыкніце, каб праглядзець спіс адрасоў URL падтрымкі неафіцыйных плат",
"upload": "выгрузіць",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "Калі true, каб быў падрабязны вывад пры загрузцы.\nПершапачаткова false.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Праверыць код пасля выгрузкі",
"window.autoScale": "Калі true, карыстальніцкі інтэрфейс аўтаматычна маштабуецца ў адпаведнасці з памерам шрыфту.",
"window.zoomLevel": {
"deprecationMessage": "Састарэлы.\nЗамест гэтага ўжывайце 'window.zoomLevel'."
}
},
"renameCloudSketch": {
"renameSketchTitle": "Новая назва сцэнара ў воблаку"
},
"replaceMsg": "Ці замяніць існуючую версію {0}?",
"selectZip": "Абярыце файл zip, які змяшчае бібліятэку, якую вы жадаеце дадаць",
"serial": {
"autoscroll": "Аўтаматычная пракрутка",
"carriageReturn": "CR - вяртанне карэткі",
"connecting": "Злучэнне з '{0}' на '{1}'…",
"message": "Паведамленне (увядзіце, каб адправіць паведамленне '{0}' на '{1}')",
"newLine": "NL - новы радок",
"newLineCarriageReturn": "NL & CR - новы радок і вяртанне карэткі",
"noLineEndings": "Без канца радка",
"notConnected": "Не злучаны.\nАбярыце плату і порт для аўтаматычнага злучэння.",
"openSerialPlotter": "Паслядоўны плотэр",
"timestamp": "Адзнака часу",
"toggleTimestamp": "Пераключыць адзнаку часу"
},
"sketch": {
"archiveSketch": "Архіваваць сцэнар",
"cantOpen": "Каталог \"{0}\" ужо існуе.\nНе атрымалася адчыніць сцэнар.",
"compile": "Кампіляцыя сцэнара…",
"configureAndUpload": "Наладзіць і выгрузіць",
"createdArchive": "Створаны архіў '{0}'.",
"doneCompiling": "Кампіляцыя скончана.",
"doneUploading": "Выгрузка скончана.",
"editInvalidSketchFolderLocationQuestion": "Ці жадаеце вы паспрабаваць захаваць сцэнар у іншым месцы?",
"editInvalidSketchFolderQuestion": "Ці жадаеце вы паспрабаваць захаваць сцэнар пад іншай назвай?",
"exportBinary": "Экспартаваць скампіляваны двайковы файл",
"invalidCloudSketchName": "Назва павінна пачынацца з літары, лічбы ці знака падкрэсляння, за якім ідуць літары, лічбы, працяжнікі, кропкі і знакі падкрэсляння.\nНайбольшая даўжыня - 36 знакаў.",
"invalidSketchFolderLocationDetails": "Вы не можаце захаваць сцэнар у каталогу ўнутры самога сабе.",
"invalidSketchFolderLocationMessage": "Хібнае размяшчэнне каталогу з сцэнарам: '{0}'",
"invalidSketchFolderNameMessage": "Хібнае імя каталогу з сцэнарам: '{0}'",
"invalidSketchName": "Назва павінна пачынацца з літары, лічбы ці знака падкрэсляння, за якім ідуць літары, лічбы, працяжнікі, кропкі і знакі падкрэсляння.\nНайбольшая даўжыня - 63 знакі.",
"moving": "Які рухаецца",
"movingMsg": "Файл \"{0}\" павінен знаходзіцца ў каталогу з сцэнарам \"{1}\".\nЦі стварыць каталог, перамясціць файл, і працягнуць?",
"new": "Новы сцэнар",
"noTrailingPeriod": "Імя файла не можа заканчвацца кропкай",
"openFolder": "Адчыніць каталог",
"openRecent": "Адчыніць нядаўні",
"openSketchInNewWindow": "Адчыніць сцэнар у новым акне",
"reservedFilename": "'{0}' - зарэзерваванае імя файла.",
"saveFolderAs": "Захаваць каталог з сцэнарам як…",
"saveSketch": "Захаваць сцэнар, каб адчыніць яго пазней.",
"saveSketchAs": "Захаваць каталог з сцэнарам як…",
"showFolder": "Адлюстраваць каталог з сцэнарам",
"sketch": "Сцэнар",
"sketchAlreadyContainsThisFileError": "Сцэнар ужо ўтрымлівае файл з іменем '{0}'",
"sketchAlreadyContainsThisFileMessage": "Не атрымалася захаваць сцэнар \"{0}\" як \"{1}\".\n{2}",
"sketchbook": "Альбом з сцэнарам",
"titleLocalSketchbook": "Лакальны альбом з сцэнарам",
"titleSketchbook": "Альбом з сцэнарам",
"upload": "Выгрузіць",
"uploadUsingProgrammer": "Выгрузіць з дапамогай сродку праграмавання",
"uploading": "Выгрузка…",
"userFieldsNotFoundError": "Не атрымалася знайсці карыстальніцкія палі для злучанай платы",
"verify": "Праверыць",
"verifyOrCompile": "Праверыць/Кампіляваць"
},
"sketchbook": {
"newCloudSketch": "Новы сцэнар у воблаку",
"newSketch": "Новы сцэнар"
},
"survey": {
"answerSurvey": "Апытанне з адказамі",
"dismissSurvey": "Болей не адлюстроўваць",
"surveyMessage": "Калі ласка, дапамажыце нам стаць лепш, адказаўшы на гэтае звышкароткае апытанне.\nМы цэнім нашу супольнасць і хацелі б даведацца нашых прыхільнікаў трохі лепш."
},
"theme": {
"currentThemeNotFound": "Не атрымалася знайсці абраную ў дадзены момант тэму: {0}.\nArduino IDE абрала ўбудаваную тэму, якая сумяшчальная з адсутнай.",
"dark": "Цёмная",
"deprecated": "{0} (састарэлая)",
"hc": "Цёмная высокакантрасная",
"hcLight": "Светлая высокакантрасная",
"light": "Светлая",
"user": "{0} (карыстальніцкая)"
},
"title": {
"cloud": "Воблака"
},
"updateIndexes": {
"updateIndexes": "Абнавіць індэксы",
"updateLibraryIndex": "Абнавіць індэксы бібліятэкі",
"updatePackageIndex": "Абнавіць індэксы пакетаў"
},
"upload": {
"error": "{0} памылка: {1}"
},
"userFields": {
"cancel": "Адмяніць",
"enterField": "Увясці {0}",
"upload": "Выгрузіць"
},
"validateSketch": {
"abortFixMessage": "Сцэнар па-ранейшаму хібны.\nЦі жадаеце вы ліквідаваць пакінутыя праблемы?\nНацісніце '{0}', адчыніцца новы сцэнар.",
"abortFixTitle": "Хібны сцэнар",
"renameSketchFileMessage": "Файл сцэнара '{0}' не можа быць ужыты.\n{1} Ці жадаеце вы пераназваць файл сцэнара прама зараз?",
"renameSketchFileTitle": "Хібнае імя файлу сцэнара",
"renameSketchFolderMessage": "Сцэнар '{0}' не можа быць ужыты.\n{1} Каб пазбавіцца ад гэтага паведамлення, пераназавіце сцэнар.\nЦі жадаеце вы пераназваць сцэнар?",
"renameSketchFolderTitle": "Хібная назва сцэнара"
},
"workspace": {
"alreadyExists": "{0}' ужо існуе."
}
},
"theia": {
"core": {
"cannotConnectBackend": "Не атрымалася злучыцца з сервернай часткай.",
"cannotConnectDaemon": "Не атрымалася злучыцца з дэманам CLI.",
"couldNotSave": "Не атрымалася захаваць сцэнар.\nКалі ласка, скапіруйце вашую незахаваную працу ў ваш любімы тэкставы сродак праўкі, і запусціце асяроддзе IDE нанова.",
"daemonOffline": "Дэман CLI у аўтаномным рэжыме",
"offline": "Аўтаномны",
"offlineText": "Не ў сетцы",
"quitTitle": "Ці ўпэўненыя вы, што жадаеце выйсці?"
},
"editor": {
"unsavedTitle": "Незахаваны {0}"
},
"messages": {
"collapse": "Згарнуць",
"expand": "Разгарнуць"
},
"workspace": {
"deleteCloudSketch": "Сцэнар у воблаку '{0}' будзе незваротна выдалены з сервераў Arduino і лакальных кэшаў.\nГэтае дзеянне незваротнае.\nЦі жадаеце вы выдаліць бягучы сцэнар?",
"deleteCurrentSketch": "Сцэнар '{0}' будзе незваротна выдалены.\nГэтае дзеянне незваротнае.\nЦі жадаеце вы выдаліць бягучы сцэнар?",
"fileNewName": "Імя для новага файла",
"invalidExtension": ".{0} не з'яўляецца дапушчальным пашырэннем",
"newFileName": "Новае імя для файла"
}
}
}

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Платка{0}",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Информация за платка",
"boards": "boards",
"configDialog1": "Изберете както платка, така и порт, ако искате да качите скица.",
@@ -31,10 +32,12 @@
"port": "Порт{0}",
"ports": "ports",
"programmer": "Програматор",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Изберете отново по-късно",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Изберете платка",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Моля, изберете порт, за да получите информация за платката.",
"showAllAvailablePorts": "Показва всички налични портове, когато е активиран",
"showAllPorts": "Show all ports",
@@ -152,7 +155,8 @@
"serialMonitor": "Сериен Монитор",
"type": "Type",
"unknown": "Неизвестно",
"updateable": "Updatable"
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Грешка при компилация: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "Отстраняването на грешки не се поддържа от „{0}“",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Платформата не е инсталирана за „{0}“",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Оптимизиране за отстраняване на грешки",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "True е, ако потребителите трябва да бъдат предупредени, преди да се изтегли скица от облака. По подразбиране е true.",
"cloud.push.warn": "True, ако потребителите трябва да бъдат предупредени, преди да бъде пусната скица в облака. По подразбиране е true.",
"cloud.pushpublic.warn": "True, ако потребителите трябва да бъдат предупредени, преди да бъде изпратена публична скица в облака. По подразбиране е true.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "Крайната точка, използвана за изпращане и изтегляне на скици от бекенда. По подразбиране той сочи към Arduino Cloud API.",
"compile": "компилиране",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +415,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Щракнете за списък с неофициално поддържаните URL адреси на платки",
"upload": "качване",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True за подробен изход за качване. False по подразбиране.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Потвърдете кода след качване",
"window.autoScale": "True , ако потребителският интерфейс автоматично се мащабира с размера на шрифта.",
"window.zoomLevel": {

View File

@@ -13,12 +13,13 @@
"board": {
"board": "Placa {0}",
"boardConfigDialogTitle": "Selecciona una altra placa i port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Informació de la placa",
"boards": "plaques",
"configDialog1": "Selecciona una placa i un port si vols carregar un programa.",
"configDialog2": "Si només selecciones una placa, podràs compilar, però no carregar un programa.",
"couldNotFindPreviouslySelected": "No s'ha trobat la placa \"{0}\" seleccionada anteriorment en la plataforma instal·lada \"{1}\". Torna a seleccionar manualment la placa que vols utilitzar. Vols tornar-la a seleccionar ara?",
"editBoardsConfig": "Edit Board and Port...",
"editBoardsConfig": "Selecciona placa i port...",
"getBoardInfo": "Obtín informació de la placa",
"inSketchbook": "(al quadern de programes)",
"installNow": "El nucli de \"{0} {1}\" s'ha d'instal·lar en la placa \"{2}\" seleccionada actualment. Vols instal·lar-lo ara?",
@@ -31,17 +32,19 @@
"port": "Port {0}",
"ports": "ports",
"programmer": "Programador",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Torna a triar més tard",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"revertBoardsConfig": "Fes servir ' {0} ' descobert a ' {1} '",
"searchBoard": "Busca una placa",
"selectBoard": "Tria una placa",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Tria un port per obtenir informació de la placa.",
"showAllAvailablePorts": "Mostra tots els ports disponibles habilitats",
"showAllPorts": "Mostra tots els ports",
"succesfullyInstalledPlatform": "Plataforma instal·lada correctament {0}:{1}",
"succesfullyUninstalledPlatform": "Plataforma desinstal·lada correctament {0}:{1}",
"typeOfPorts": "{0} ports",
"unconfirmedBoard": "Unconfirmed board",
"unconfirmedBoard": "Placa no confirmada",
"unknownBoard": "Placa desconeguda"
},
"boardsManager": "Gestor de plaques",
@@ -139,7 +142,7 @@
"installManually": "Instal·la manualment",
"later": "Més tard",
"noBoardSelected": "No s'ha seleccionat cap placa",
"noSketchOpened": "No sketch opened",
"noSketchOpened": "Cap sketch obert",
"notConnected": "[no connectat]",
"offlineIndicator": "Sembla que estàs fora de línia. Sense connexió a Internet, és possible que l'Arduino CLI no pugui descarregar els recursos necessaris i podria provocar un mal funcionament. Connecteu-vos a Internet i reinicieu l'aplicació.",
"oldFormat": "El \"{0}\" encara utilitza l'antic format \".pde\". Voleu canviar a la nova extensió \".ino\"?",
@@ -147,12 +150,13 @@
"processing": "Processant",
"recommended": "Recomanat",
"retired": "Retirat",
"selectManually": "Select Manually",
"selectManually": "Selecciona manualment",
"selectedOn": "sobre {0}",
"serialMonitor": "Monitor sèrie",
"type": "Tipus",
"unknown": "Desconegut",
"updateable": "Actualitzable"
"updateable": "Actualitzable",
"userAbort": "Abortar per l'usuari"
},
"compile": {
"error": "Error de compilació: {0}"
@@ -211,15 +215,14 @@
"debug": {
"debugWithMessage": "Depuració - {0}",
"debuggingNotSupported": "La depuració no és compatible amb '{0}'",
"getDebugInfo": "Getting debug info...",
"getDebugInfo": "Recopilant info depuració",
"noPlatformInstalledFor": "La plataforma no està instal·lada per a '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Optimitzar per a la depuració",
"sketchIsNotCompiled": "El programa \"{0}\" s'ha de comprovar abans de començar la depuració. Per favor, verifica el programa i comença a depurar de nou. Vols verificar el programa ara?"
},
"developer": {
"clearBoardList": "Clear the Board List History",
"clearBoardsConfig": "Clear the Board and Port Selection",
"clearBoardList": "Esborra historial del llistat de plaques",
"clearBoardsConfig": "Esborra la selecció de placa i port",
"dumpBoardList": "Dump the Board List"
},
"dialog": {
@@ -254,7 +257,7 @@
"selectBoard": "Selecciona una placa",
"selectVersion": "Selecciona la versió de l'entorn",
"successfullyInstalled": "L'entorn s'ha instal·lat correctament.",
"updater": "Firmware Updater"
"updater": "Actualitzador de l'entorn WiFi101 / WiFiNINA"
},
"help": {
"environment": "Entorn",
@@ -286,8 +289,8 @@
"versionDownloaded": "L'IDE d'Arduino {0} s'ha descarregat"
},
"installable": {
"libraryInstallFailed": "Failed to install library: '{0}{1}'.",
"platformInstallFailed": "Failed to install platform: '{0}{1}'."
"libraryInstallFailed": "Instal.lació de llibrería fallida '{0}{1}'.",
"platformInstallFailed": "Instal.lació fallida de plataforma '{0}{1}'."
},
"library": {
"addZip": "Afegeix llibreria .ZIP...",
@@ -368,6 +371,7 @@
"cloud.pull.warn": "És cert si s'ha d'avisar als usuaris abans de baixar un programa del núvol. Per defecte està activat.",
"cloud.push.warn": "És cert si s'ha d'avisar als usuaris abans d'enviar un programa del núvol. Per defecte està activat.",
"cloud.pushpublic.warn": "És cert si s'ha d'avisar als usuaris abans d'enviar un programa públic al núvol. Per defecte està activat.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "El punt final s'utilitza per a enviar i descarregar programes des d'un administrador. Per defecte apunta a l'API d'Arduino Cloud.",
"compile": "compila",
"compile.experimental": "És cert si l'IDE gestiona múltiples errors de compilació. Per defecte està desactivat.",
@@ -411,7 +415,9 @@
"survey.notification": "Si està activat els usuaris seran notificats si hi ha una enquesta disponible. Per defecte està activat.",
"unofficialBoardSupport": "Fes clic per obtenir una llista d'URLs de suport de plaques no oficials",
"upload": "carrega",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "Si està activat es mostrarà l'eixida detallada de la càrrega. Per defecte està desactivat.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verifica el codi després de pujar-lo",
"window.autoScale": "Si està activat la interfície s'escalarà automàticament amb la mida de la lletra.",
"window.zoomLevel": {
@@ -465,8 +471,8 @@
"saveSketchAs": "Desa la carpeta del programa com a...",
"showFolder": "Mostra la carpeta del programa",
"sketch": "Programa",
"sketchAlreadyContainsThisFileError": "The sketch already contains a file named '{0}'",
"sketchAlreadyContainsThisFileMessage": "Failed to save sketch \"{0}\" as \"{1}\". {2}",
"sketchAlreadyContainsThisFileError": "L' sketch ja conté un arxiu anomenat '{0}'",
"sketchAlreadyContainsThisFileMessage": "No s'ha pogut desar l' sketch \"{0}\" com a \"{1}\". {2}",
"sketchbook": "Quadern de programes",
"titleLocalSketchbook": "Quadern de programes local",
"titleSketchbook": "Quadern de programes",
@@ -490,8 +496,8 @@
"currentThemeNotFound": "No s'ha trobat el nom seleccionat: {0}. L'IDE d'Arduino ha agafat un tema compatible amb el que falta.",
"dark": "Fosc",
"deprecated": "{0} (obsolet)",
"hc": "Dark High Contrast",
"hcLight": "Light High Contrast",
"hc": "Fosc alt contrast",
"hcLight": "Clar alt contrast",
"light": "Clar",
"user": "{0} (usuari)"
},

View File

@@ -5,43 +5,46 @@
"label": "O {0}"
},
"account": {
"goToCloudEditor": "Go to Cloud Editor",
"goToCloudEditor": "Otevřít v cloudovém editoru",
"goToIoTCloud": "Go to IoT Cloud",
"goToProfile": "Go to Profile",
"goToProfile": "Jdi do profilu",
"menuTitle": "Arduino Cloud"
},
"board": {
"board": "Deska {0}",
"boardConfigDialogTitle": "Zvolit jinou Desku a Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Info o desce",
"boards": "Desky",
"configDialog1": "Pokud chcete nahrát sketch, musíte zvolit jak desku tak i port.",
"configDialog2": "Pokud zvolíte jen desku, budete schopni kompilovat sketch, ale nebudete ji moci nahrát do desky.",
"couldNotFindPreviouslySelected": "Dříve zvolená deska '{0}' v instalované platformě '{1}' nebyla nalezena. Zvolte prosím manuálně desku kterou chcete použít. Chcete tuto desku zvolit nyní? ",
"editBoardsConfig": "Edit Board and Port...",
"editBoardsConfig": "Editovat Desku a Port",
"getBoardInfo": "Získat info o desce.",
"inSketchbook": "(v projektech)",
"installNow": "\"{0}{1}\" jádro musí být instalováno pro aktuálně zvolenou \"{2}\" desku. Chcete ho nyní nainstalovat?",
"noBoardsFound": "Nenalezeny žádné desky pro \"{0}\"",
"noNativeSerialPort": "Native serial port, can't obtain info.",
"noNativeSerialPort": "Fyzický sériový port, nemohu získat informace.",
"noPortsDiscovered": "Nenalezeny žádné porty",
"nonSerialPort": "Non-serial port, can't obtain info.",
"nonSerialPort": "Nemohu získat informace, tohle není sériový port.",
"openBoardsConfig": "Zvolte jinou desku a port...",
"pleasePickBoard": "Vyberte prosím desku která je připojená k zvolenému portu. ",
"port": "Port {0}",
"ports": "porty",
"programmer": "Programátor",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Zvolit později",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"revertBoardsConfig": "Použij '{0}' objeven na '{1}'",
"searchBoard": "Vyhledat desku",
"selectBoard": "Zvolit desku",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Prosím zvolte port pro získání informací o desce.",
"showAllAvailablePorts": "Zobrazit všechny dostupné porty (pokud je zaškrtnuto)",
"showAllPorts": "Ukázat všechny porty",
"succesfullyInstalledPlatform": "Platforma {0}:{1} byla úspěšně nainstalována.",
"succesfullyUninstalledPlatform": "Platforma {0}:{1} byla úspěšně odinstalována.",
"typeOfPorts": "{0}porty",
"unconfirmedBoard": "Unconfirmed board",
"unconfirmedBoard": "Nepotvrzená deska",
"unknownBoard": "Neznámá deska"
},
"boardsManager": "Manažér desek",
@@ -84,7 +87,7 @@
},
"cli-error-parser": {
"keyboardError": "'Keyboard' nebylo nalezeno. Obsahuje váš projekt řádek '#include <Keyboard.h>'?",
"mouseError": "'Mouse' not found. Does your sketch include the line '#include <Mouse.h>'?"
"mouseError": "'Myš' nebyla nalezena. Obsahuje váš projekt řádek '#include <Mouse.h>'?"
},
"cloud": {
"chooseSketchVisibility": "Zvolte viditelnost sketche:",
@@ -152,7 +155,8 @@
"serialMonitor": "Seriový monitor",
"type": "typ",
"unknown": "Neznámý",
"updateable": "Updatable"
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Chyba kompilace: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "Debugging není podporován s '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Platforma není nainstalována pro '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "optimalizovat pro Debugging",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "Ano pokud by měl být uživatel varován před stahováním cloud sketche. Ano je výchozí hodnota. ",
"cloud.push.warn": "Ano pokud by měl být uživatel varován před odesláním cloud sketche. Ano je výchozí hodnota. ",
"cloud.pushpublic.warn": "Ano pokud by měl být uživatel varován před odesláním veřejné sketche do cloudu. Ano je výchozí hodnota. ",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "Endpoint použitý pro stahování a odesílání sketchí z backendu. Ve výchozím stavu je toto směrováno na Arduino Cloud API.",
"compile": "kompilovat",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +415,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Zde klikněte pro seznam adres neoficiálně podporovaných desek",
"upload": "nahrát",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "Ano pro podrobný výstup při nahrávání. Ne je výchozí hodnota. ",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Kontrolovat kód po nahrání",
"window.autoScale": "Ano pokud se měřítko uživatelského prostředí automaticky mění s velikostí písma. ",
"window.zoomLevel": {

557
i18n/da.json Normal file
View File

@@ -0,0 +1,557 @@
{
"arduino": {
"about": {
"detail": "Version: {0}\nDate: {1}{2}\nCLI Version: {3}\n\n{4}",
"label": "About {0}"
},
"account": {
"goToCloudEditor": "Go to Cloud Editor",
"goToIoTCloud": "Go to IoT Cloud",
"goToProfile": "Go to Profile",
"menuTitle": "Arduino Cloud"
},
"board": {
"board": "Board{0}",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Board Info",
"boards": "boards",
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
"configDialog2": "If you only select a Board you will be able to compile, but not to upload your sketch.",
"couldNotFindPreviouslySelected": "Could not find previously selected board '{0}' in installed platform '{1}'. Please manually reselect the board you want to use. Do you want to reselect it now?",
"editBoardsConfig": "Edit Board and Port...",
"getBoardInfo": "Get Board Info",
"inSketchbook": " (in Sketchbook)",
"installNow": "The \"{0} {1}\" core has to be installed for the currently selected \"{2}\" board. Do you want to install it now?",
"noBoardsFound": "No boards found for \"{0}\"",
"noNativeSerialPort": "Native serial port, can't obtain info.",
"noPortsDiscovered": "No ports discovered",
"nonSerialPort": "Non-serial port, can't obtain info.",
"openBoardsConfig": "Select other board and port…",
"pleasePickBoard": "Please pick a board connected to the port you have selected.",
"port": "Port{0}",
"ports": "ports",
"programmer": "Programmer",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Reselect later",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Select Board",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Please select a port to obtain board info.",
"showAllAvailablePorts": "Shows all available ports when enabled",
"showAllPorts": "Show all ports",
"succesfullyInstalledPlatform": "Successfully installed platform {0}:{1}",
"succesfullyUninstalledPlatform": "Successfully uninstalled platform {0}:{1}",
"typeOfPorts": "{0} ports",
"unconfirmedBoard": "Unconfirmed board",
"unknownBoard": "Unknown board"
},
"boardsManager": "Boards Manager",
"boardsType": {
"arduinoCertified": "Arduino Certified"
},
"bootloader": {
"burnBootloader": "Burn Bootloader",
"burningBootloader": "Burning bootloader...",
"doneBurningBootloader": "Done burning bootloader."
},
"burnBootloader": {
"error": "Error while burning the bootloader: {0}"
},
"certificate": {
"addNew": "Add New",
"addURL": "Add URL to fetch SSL certificate",
"boardAtPort": "{0} at {1}",
"certificatesUploaded": "Certificates uploaded.",
"enterURL": "Enter URL",
"noSupportedBoardConnected": "No supported board connected",
"openContext": "Open context",
"remove": "Remove",
"selectBoard": "Select a board...",
"selectCertificateToUpload": "1. Select certificate to upload",
"selectDestinationBoardToUpload": "2. Select destination board and upload certificate",
"upload": "Upload",
"uploadFailed": "Upload failed. Please try again.",
"uploadRootCertificates": "Upload SSL Root Certificates",
"uploadingCertificates": "Uploading certificates."
},
"checkForUpdates": {
"checkForUpdates": "Check for Arduino Updates",
"installAll": "Install All",
"noUpdates": "There are no recent updates available.",
"promptUpdateBoards": "Updates are available for some of your boards.",
"promptUpdateLibraries": "Updates are available for some of your libraries.",
"updatingBoards": "Updating boards...",
"updatingLibraries": "Updating libraries..."
},
"cli-error-parser": {
"keyboardError": "'Keyboard' not found. Does your sketch include the line '#include <Keyboard.h>'?",
"mouseError": "'Mouse' not found. Does your sketch include the line '#include <Mouse.h>'?"
},
"cloud": {
"chooseSketchVisibility": "Choose visibility of your Sketch:",
"cloudSketchbook": "Cloud Sketchbook",
"connected": "Connected",
"continue": "Continue",
"donePulling": "Done pulling '{0}'.",
"donePushing": "Done pushing '{0}'.",
"embed": "Embed:",
"emptySketchbook": "Your Sketchbook is empty",
"goToCloud": "Go to Cloud",
"learnMore": "Learn more",
"link": "Link:",
"notYetPulled": "Cannot push to Cloud. It is not yet pulled.",
"offline": "Offline",
"openInCloudEditor": "Open in Cloud Editor",
"options": "Options...",
"privateVisibility": "Private. Only you can view the Sketch.",
"profilePicture": "Profile picture",
"publicVisibility": "Public. Anyone with the link can view the Sketch.",
"pull": "Pull",
"pullFirst": "You have to pull first to be able to push to the Cloud.",
"pullSketch": "Pull Sketch",
"pullSketchMsg": "Pulling this Sketch from the Cloud will overwrite its local version. Are you sure you want to continue?",
"push": "Push",
"pushSketch": "Push Sketch",
"pushSketchMsg": "This is a Public Sketch. Before pushing, make sure any sensitive information is defined in arduino_secrets.h files. You can make a Sketch private from the Share panel.",
"remote": "Remote",
"share": "Share...",
"shareSketch": "Share Sketch",
"showHideSketchbook": "Show/Hide Cloud Sketchbook",
"signIn": "SIGN IN",
"signInToCloud": "Sign in to Arduino Cloud",
"signOut": "Sign Out",
"sync": "Sync",
"syncEditSketches": "Sync and edit your Arduino Cloud Sketches",
"visitArduinoCloud": "Visit Arduino Cloud to create Cloud Sketches."
},
"cloudSketch": {
"alreadyExists": "Cloud sketch '{0}' already exists.",
"creating": "Creating cloud sketch '{0}'...",
"new": "New Cloud Sketch",
"notFound": "Could not pull the cloud sketch '{0}'. It does not exist.",
"pulling": "Synchronizing sketchbook, pulling '{0}'...",
"pushing": "Synchronizing sketchbook, pushing '{0}'...",
"renaming": "Renaming cloud sketch from '{0}' to '{1}'...",
"synchronizingSketchbook": "Synchronizing sketchbook..."
},
"common": {
"all": "All",
"contributed": "Contributed",
"installManually": "Install Manually",
"later": "Later",
"noBoardSelected": "No board selected",
"noSketchOpened": "No sketch opened",
"notConnected": "[not connected]",
"offlineIndicator": "You appear to be offline. Without an Internet connection, the Arduino CLI might not be able to download the required resources and could cause malfunction. Please connect to the Internet and restart the application.",
"oldFormat": "The '{0}' still uses the old `.pde` format. Do you want to switch to the new `.ino` extension?",
"partner": "Partner",
"processing": "Processing",
"recommended": "Recommended",
"retired": "Retired",
"selectManually": "Select Manually",
"selectedOn": "on {0}",
"serialMonitor": "Serial Monitor",
"type": "Type",
"unknown": "Unknown",
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Compilation error: {0}"
},
"component": {
"boardsIncluded": "Boards included in this package:",
"by": "by",
"clickToOpen": "Click to open in browser: {0}",
"filterSearch": "Filter your search...",
"install": "Install",
"installLatest": "Install Latest",
"installVersion": "Install {0}",
"installed": "{0} installed",
"moreInfo": "More info",
"otherVersions": "Other Versions",
"remove": "Remove",
"title": "{0} by {1}",
"uninstall": "Uninstall",
"uninstallMsg": "Do you want to uninstall {0}?",
"update": "Update"
},
"configuration": {
"cli": {
"inaccessibleDirectory": "Could not access the sketchbook location at '{0}': {1}"
}
},
"connectionStatus": {
"connectionLost": "Connection lost. Cloud sketch actions and updates won't be available."
},
"contributions": {
"addFile": "Add File",
"fileAdded": "One file added to the sketch.",
"plotter": {
"couldNotOpen": "Couldn't open serial plotter"
},
"replaceTitle": "Replace"
},
"core": {
"compilerWarnings": {
"all": "All",
"default": "Default",
"more": "More",
"none": "None"
}
},
"coreContribution": {
"copyError": "Copy error messages",
"noBoardSelected": "No board selected. Please select your Arduino board from the Tools > Board menu."
},
"createCloudCopy": "Push Sketch to Cloud",
"daemon": {
"restart": "Restart Daemon",
"start": "Start Daemon",
"stop": "Stop Daemon"
},
"debug": {
"debugWithMessage": "Debug - {0}",
"debuggingNotSupported": "Debugging is not supported by '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Platform is not installed for '{0}'",
"optimizeForDebugging": "Optimize for Debugging",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
"developer": {
"clearBoardList": "Clear the Board List History",
"clearBoardsConfig": "Clear the Board and Port Selection",
"dumpBoardList": "Dump the Board List"
},
"dialog": {
"dontAskAgain": "Don't ask again"
},
"editor": {
"autoFormat": "Auto Format",
"commentUncomment": "Comment/Uncomment",
"copyForForum": "Copy for Forum (Markdown)",
"decreaseFontSize": "Decrease Font Size",
"decreaseIndent": "Decrease Indent",
"increaseFontSize": "Increase Font Size",
"increaseIndent": "Increase Indent",
"nextError": "Next Error",
"previousError": "Previous Error",
"revealError": "Reveal Error"
},
"examples": {
"builtInExamples": "Built-in examples",
"couldNotInitializeExamples": "Could not initialize built-in examples.",
"customLibrary": "Examples from Custom Libraries",
"for": "Examples for {0}",
"forAny": "Examples for any board",
"menu": "Examples"
},
"firmware": {
"checkUpdates": "Check Updates",
"failedInstall": "Installation failed. Please try again.",
"install": "Install",
"installingFirmware": "Installing firmware.",
"overwriteSketch": "Installation will overwrite the Sketch on the board.",
"selectBoard": "Select Board",
"selectVersion": "Select firmware version",
"successfullyInstalled": "Firmware successfully installed.",
"updater": "Firmware Updater"
},
"help": {
"environment": "Environment",
"faq": "Frequently Asked Questions",
"findInReference": "Find in Reference",
"gettingStarted": "Getting Started",
"keyword": "Type a keyword",
"privacyPolicy": "Privacy Policy",
"reference": "Reference",
"search": "Search on Arduino.cc",
"troubleshooting": "Troubleshooting",
"visit": "Visit Arduino.cc"
},
"ide-updater": {
"checkForUpdates": "Check for Arduino IDE Updates",
"closeAndInstallButton": "Close and Install",
"closeToInstallNotice": "Close the software and install the update on your machine.",
"downloadButton": "Download",
"downloadingNotice": "Downloading the latest version of the Arduino IDE.",
"errorCheckingForUpdates": "Error while checking for Arduino IDE updates.\n{0}",
"goToDownloadButton": "Go To Download",
"goToDownloadPage": "An update for the Arduino IDE is available, but we're not able to download and install it automatically. Please go to the download page and download the latest version from there.",
"ideUpdaterDialog": "Software Update",
"newVersionAvailable": "A new version of Arduino IDE ({0}) is available for download.",
"noUpdatesAvailable": "There are no recent updates available for the Arduino IDE",
"notNowButton": "Not now",
"skipVersionButton": "Skip Version",
"updateAvailable": "Update Available",
"versionDownloaded": "Arduino IDE {0} has been downloaded."
},
"installable": {
"libraryInstallFailed": "Failed to install library: '{0}{1}'.",
"platformInstallFailed": "Failed to install platform: '{0}{1}'."
},
"library": {
"addZip": "Add .ZIP Library...",
"arduinoLibraries": "Arduino libraries",
"contributedLibraries": "Contributed libraries",
"include": "Include Library",
"installAll": "Install All",
"installLibraryDependencies": "Install library dependencies",
"installMissingDependencies": "Would you like to install all the missing dependencies?",
"installOneMissingDependency": "Would you like to install the missing dependency?",
"installWithoutDependencies": "Install without dependencies",
"installedSuccessfully": "Successfully installed library {0}:{1}",
"libraryAlreadyExists": "A library already exists. Do you want to overwrite it?",
"manageLibraries": "Manage Libraries...",
"namedLibraryAlreadyExists": "A library folder named {0} already exists. Do you want to overwrite it?",
"needsMultipleDependencies": "The library <b>{0}:{1}</b> needs some other dependencies currently not installed:",
"needsOneDependency": "The library <b>{0}:{1}</b> needs another dependency currently not installed:",
"overwriteExistingLibrary": "Do you want to overwrite the existing library?",
"successfullyInstalledZipLibrary": "Successfully installed library from {0} archive",
"title": "Library Manager",
"uninstalledSuccessfully": "Successfully uninstalled library {0}:{1}",
"zipLibrary": "Library"
},
"librarySearchProperty": {
"topic": "Topic"
},
"libraryTopic": {
"communication": "Communication",
"dataProcessing": "Data Processing",
"dataStorage": "Data Storage",
"deviceControl": "Device Control",
"display": "Display",
"other": "Other",
"sensors": "Sensors",
"signalInputOutput": "Signal Input/Output",
"timing": "Timing",
"uncategorized": "Uncategorized"
},
"libraryType": {
"installed": "Installed"
},
"menu": {
"advanced": "Advanced",
"sketch": "Sketch",
"tools": "Tools"
},
"monitor": {
"alreadyConnectedError": "Could not connect to {0} {1} port. Already connected.",
"baudRate": "{0} baud",
"connectionFailedError": "Could not connect to {0} {1} port.",
"connectionFailedErrorWithDetails": "{0} Could not connect to {1} {2} port.",
"connectionTimeout": "Timeout. The IDE has not received the 'success' message from the monitor after successfully connecting to it",
"missingConfigurationError": "Could not connect to {0} {1} port. The monitor configuration is missing.",
"notConnectedError": "Not connected to {0} {1} port.",
"unableToCloseWebSocket": "Unable to close websocket",
"unableToConnectToWebSocket": "Unable to connect to websocket"
},
"newCloudSketch": {
"newSketchTitle": "Name of the new Cloud Sketch"
},
"portProtocol": {
"network": "Network",
"serial": "Serial"
},
"preferences": {
"additionalManagerURLs": "Additional Boards Manager URLs",
"auth.audience": "The OAuth2 audience.",
"auth.clientID": "The OAuth2 client ID.",
"auth.domain": "The OAuth2 domain.",
"auth.registerUri": "The URI used to register a new user.",
"automatic": "Automatic",
"board.certificates": "List of certificates that can be uploaded to boards",
"browse": "Browse",
"checkForUpdate": "Receive notifications of available updates for the IDE, boards, and libraries. Requires an IDE restart after change. It's true by default.",
"choose": "Choose",
"cli.daemonDebug": "Enable debug logging of the gRPC calls to the Arduino CLI. A restart of the IDE is needed for this setting to take effect. It's false by default.",
"cloud.enabled": "True if the sketch sync functions are enabled. Defaults to true.",
"cloud.pull.warn": "True if users should be warned before pulling a cloud sketch. Defaults to true.",
"cloud.push.warn": "True if users should be warned before pushing a cloud sketch. Defaults to true.",
"cloud.pushpublic.warn": "True if users should be warned before pushing a public sketch to the cloud. Defaults to true.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "The endpoint used to push and pull sketches from a backend. By default it points to Arduino Cloud API.",
"compile": "compile",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
"compile.revealRange": "Adjusts how compiler errors are revealed in the editor after a failed verify/upload. Possible values: 'auto': Scroll vertically as necessary and reveal a line. 'center': Scroll vertically as necessary and reveal a line centered vertically. 'top': Scroll vertically as necessary and reveal a line close to the top of the viewport, optimized for viewing a code definition. 'centerIfOutsideViewport': Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport. The default value is '{0}'.",
"compile.verbose": "True for verbose compile output. False by default",
"compile.warnings": "Tells gcc which warning level to use. It's 'None' by default",
"compilerWarnings": "Compiler warnings",
"editorFontSize": "Editor font size",
"editorQuickSuggestions": "Editor Quick Suggestions",
"enterAdditionalURLs": "Enter additional URLs, one for each row",
"files.inside.sketches": "Show files inside Sketches",
"ide.updateBaseUrl": "The base URL where to download updates from. Defaults to 'https://downloads.arduino.cc/arduino-ide'",
"ide.updateChannel": "Release channel to get updated from. 'stable' is the stable release, 'nightly' is the latest development build.",
"interfaceScale": "Interface scale",
"invalid.editorFontSize": "Invalid editor font size. It must be a positive integer.",
"invalid.sketchbook.location": "Invalid sketchbook location: {0}",
"invalid.theme": "Invalid theme.",
"language.asyncWorkers": "Number of async workers used by the Arduino Language Server (clangd). Background index also uses this many workers. The minimum value is 0, and the maximum is 8. When it is 0, the language server uses all available cores. The default value is 0.",
"language.log": "True if the Arduino Language Server should generate log files into the sketch folder. Otherwise, false. It's false by default.",
"language.realTimeDiagnostics": "If true, the language server provides real-time diagnostics when typing in the editor. It's false by default.",
"manualProxy": "Manual proxy configuration",
"monitor": {
"dockPanel": "The area of the application shell where the _{0}_ widget will reside. It is either \"bottom\" or \"right\". It defaults to \"{1}\"."
},
"network": "Network",
"newSketchbookLocation": "Select new sketchbook location",
"noCliConfig": "Could not load the CLI configuration",
"noProxy": "No proxy",
"proxySettings": {
"hostname": "Host name",
"password": "Password",
"port": "Port number",
"username": "Username"
},
"showVerbose": "Show verbose output during",
"sketch": {
"inoBlueprint": "Absolute filesystem path to the default `.ino` blueprint file. If specified, the content of the blueprint file will be used for every new sketch created by the IDE. The sketches will be generated with the default Arduino content if not specified. Unaccessible blueprint files are ignored. **A restart of the IDE is needed** for this setting to take effect."
},
"sketchbook.location": "Sketchbook location",
"sketchbook.showAllFiles": "True to show all sketch files inside the sketch. It is false by default.",
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
"upload": "upload",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True for verbose upload output. False by default.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verify code after upload",
"window.autoScale": "True if the user interface automatically scales with the font size.",
"window.zoomLevel": {
"deprecationMessage": "Deprecated. Use 'window.zoomLevel' instead."
}
},
"renameCloudSketch": {
"renameSketchTitle": "New name of the Cloud Sketch"
},
"replaceMsg": "Replace the existing version of {0}?",
"selectZip": "Select a zip file containing the library you'd like to add",
"serial": {
"autoscroll": "Autoscroll",
"carriageReturn": "Carriage Return",
"connecting": "Connecting to '{0}' on '{1}'...",
"message": "Message (Enter to send message to '{0}' on '{1}')",
"newLine": "New Line",
"newLineCarriageReturn": "Both NL & CR",
"noLineEndings": "No Line Ending",
"notConnected": "Not connected. Select a board and a port to connect automatically.",
"openSerialPlotter": "Serial Plotter",
"timestamp": "Timestamp",
"toggleTimestamp": "Toggle Timestamp"
},
"sketch": {
"archiveSketch": "Archive Sketch",
"cantOpen": "A folder named \"{0}\" already exists. Can't open sketch.",
"compile": "Compiling sketch...",
"configureAndUpload": "Configure and Upload",
"createdArchive": "Created archive '{0}'.",
"doneCompiling": "Done compiling.",
"doneUploading": "Done uploading.",
"editInvalidSketchFolderLocationQuestion": "Do you want to try saving the sketch to a different location?",
"editInvalidSketchFolderQuestion": "Do you want to try saving the sketch with a different name?",
"exportBinary": "Export Compiled Binary",
"invalidCloudSketchName": "The name must start with a letter, number, or underscore, followed by letters, numbers, dashes, dots and underscores. Maximum length is 36 characters.",
"invalidSketchFolderLocationDetails": "You cannot save a sketch into a folder inside itself.",
"invalidSketchFolderLocationMessage": "Invalid sketch folder location: '{0}'",
"invalidSketchFolderNameMessage": "Invalid sketch folder name: '{0}'",
"invalidSketchName": "The name must start with a letter, number, or underscore, followed by letters, numbers, dashes, dots and underscores. Maximum length is 63 characters.",
"moving": "Moving",
"movingMsg": "The file \"{0}\" needs to be inside a sketch folder named \"{1}\".\nCreate this folder, move the file, and continue?",
"new": "New Sketch",
"noTrailingPeriod": "A filename cannot end with a dot",
"openFolder": "Open Folder",
"openRecent": "Open Recent",
"openSketchInNewWindow": "Open Sketch in New Window",
"reservedFilename": "'{0}' is a reserved filename.",
"saveFolderAs": "Save sketch folder as...",
"saveSketch": "Save your sketch to open it again later.",
"saveSketchAs": "Save sketch folder as...",
"showFolder": "Show Sketch Folder",
"sketch": "Sketch",
"sketchAlreadyContainsThisFileError": "The sketch already contains a file named '{0}'",
"sketchAlreadyContainsThisFileMessage": "Failed to save sketch \"{0}\" as \"{1}\". {2}",
"sketchbook": "Sketchbook",
"titleLocalSketchbook": "Local Sketchbook",
"titleSketchbook": "Sketchbook",
"upload": "Upload",
"uploadUsingProgrammer": "Upload Using Programmer",
"uploading": "Uploading...",
"userFieldsNotFoundError": "Can't find user fields for connected board",
"verify": "Verify",
"verifyOrCompile": "Verify/Compile"
},
"sketchbook": {
"newCloudSketch": "New Cloud Sketch",
"newSketch": "New Sketch"
},
"survey": {
"answerSurvey": "Answer survey",
"dismissSurvey": "Don't show again",
"surveyMessage": "Please help us improve by answering this super short survey. We value our community and would like to get to know our supporters a little better."
},
"theme": {
"currentThemeNotFound": "Could not find the currently selected theme: {0}. Arduino IDE has picked a built-in theme compatible with the missing one.",
"dark": "Dark",
"deprecated": "{0} (deprecated)",
"hc": "Dark High Contrast",
"hcLight": "Light High Contrast",
"light": "Light",
"user": "{0} (user)"
},
"title": {
"cloud": "Cloud"
},
"updateIndexes": {
"updateIndexes": "Update Indexes",
"updateLibraryIndex": "Update Library Index",
"updatePackageIndex": "Update Package Index"
},
"upload": {
"error": "{0} error: {1}"
},
"userFields": {
"cancel": "Cancel",
"enterField": "Enter {0}",
"upload": "Upload"
},
"validateSketch": {
"abortFixMessage": "The sketch is still invalid. Do you want to fix the remaining problems? By clicking '{0}', a new sketch will open.",
"abortFixTitle": "Invalid sketch",
"renameSketchFileMessage": "The sketch file '{0}' cannot be used. {1} Do you want to rename the sketch file now?",
"renameSketchFileTitle": "Invalid sketch filename",
"renameSketchFolderMessage": "The sketch '{0}' cannot be used. {1} To get rid of this message, rename the sketch. Do you want to rename the sketch now?",
"renameSketchFolderTitle": "Invalid sketch name"
},
"workspace": {
"alreadyExists": "'{0}' already exists."
}
},
"theia": {
"core": {
"cannotConnectBackend": "Cannot connect to the backend.",
"cannotConnectDaemon": "Cannot connect to the CLI daemon.",
"couldNotSave": "Could not save the sketch. Please copy your unsaved work into your favorite text editor, and restart the IDE.",
"daemonOffline": "CLI Daemon Offline",
"offline": "Offline",
"offlineText": "Offline",
"quitTitle": "Are you sure you want to quit?"
},
"editor": {
"unsavedTitle": "Unsaved {0}"
},
"messages": {
"collapse": "Collapse",
"expand": "Expand"
},
"workspace": {
"deleteCloudSketch": "The cloud sketch '{0}' will be permanently deleted from the Arduino servers and the local caches. This action is irreversible. Do you want to delete the current sketch?",
"deleteCurrentSketch": "The sketch '{0}' will be permanently deleted. This action is irreversible. Do you want to delete the current sketch?",
"fileNewName": "Name for new file",
"invalidExtension": ".{0} is not a valid extension",
"newFileName": "New name for file"
}
}
}

View File

@@ -1,47 +1,50 @@
{
"arduino": {
"about": {
"detail": "Version: {0}\nDatum: {1}{2}\nCLI Version: {3}{4} [{5}]\n\n{6}",
"detail": "Version: {0}\nDatum: {1}{2}\nCLI Version: {3}\n\n{4}",
"label": "Über {0}"
},
"account": {
"goToCloudEditor": "Zum Cloud-Editor gehen",
"goToIoTCloud": "Zur IoT-Cloud gehen",
"goToCloudEditor": "Zum Cloud-Editor",
"goToIoTCloud": "Zur IoT-Cloud",
"goToProfile": "Profil aufrufen",
"menuTitle": "Arduino-Cloud"
},
"board": {
"board": "Board{0}",
"boardConfigDialogTitle": "Andere Boards und Ports wählen",
"boardConfigDialogTitle": " Anderes Board und anderen Ports wählen",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Board-Informationen",
"boards": "Boards",
"configDialog1": "Wählen Sie ein Board und einen Port, wenn Sie den Sketch hochladen möchten.",
"configDialog1": " Wähle ein Board und einen Port, wenn du den Sketch hochladen möchtest.",
"configDialog2": "Wenn Sie nur ein Board auswählen, werden Sie den Sketch nur kompilieren können, jedoch nicht hochladen.",
"couldNotFindPreviouslySelected": "Zuvor gewähltes Board '{0}' wurde nicht in der installierten Plattform '{1}' gefunden. Bitte Board erneut auswählen. Jetzt auswählen?",
"couldNotFindPreviouslySelected": " Das vorher gewählte Board '{0}' gehört nicht zur installierten Plattform '{1}'. Möchtest du das Board neu auswählen?",
"editBoardsConfig": "Board und Port ändern...",
"getBoardInfo": "Board-Informationen abrufen",
"getBoardInfo": "Board-Infos abrufen",
"inSketchbook": "(im Sketchbook)",
"installNow": "Der \"{0} {1}\" Core muss für das ausgewählte \"{2}\" Board installiert werden. Jetzt installieren?",
"installNow": " Der Core \"{0}{1}\" muss für das ausgewählte Board \"{2}\" installiert werden. Möchtest du jetzt installieren?",
"noBoardsFound": "Für \"{0}\" wurden keine Boards gefunden.",
"noNativeSerialPort": "Nativer serieller Port, keine Informationen verfügbar.",
"noNativeSerialPort": " Nativer serieller Port, keine Infos verfügbar.",
"noPortsDiscovered": "Keine Ports gefunden",
"nonSerialPort": "Nicht-serieller Port, keine Informationen verfügbar.",
"openBoardsConfig": "Wähle einen anderes Board und einen anderen Port...",
"pleasePickBoard": "Bitte wählen Sie das Board, welches am ausgewählten Port angeschlossen ist.",
"nonSerialPort": " Nicht-serieller Port, keine Infos verfügbar.",
"openBoardsConfig": " Wähle ein anderes Board und einen anderen Port ...",
"pleasePickBoard": " Wähle bitte ein Board, das am angegebenen Port angeschlossen ist.",
"port": "Port{0}",
"ports": "Ports",
"programmer": "Programmer",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Später auswählen",
"revertBoardsConfig": "Verwende {0} an {1}",
"revertBoardsConfig": "'{0}' an '{1}' verwenden",
"searchBoard": "Board suchen",
"selectBoard": "Board wählen",
"selectPortForInfo": "Wähle ein Port, um Informationen über das Board zu erhalten.",
"showAllAvailablePorts": "Zeige alle verfügbaren Ports, wenn aktiviert.",
"showAllPorts": "Zeige alle Ports",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": " Wähle einen Port, um Infos über das Board zu erhalten.",
"showAllAvailablePorts": " Alle verfügbaren Ports anzeigen, wenn aktiviert.",
"showAllPorts": "Alle Ports anzeigen",
"succesfullyInstalledPlatform": "Plattform erfolgreich installiert {0}:{1}",
"succesfullyUninstalledPlatform": "Plattform erfolgreich deinstalliert {0}:{1}",
"typeOfPorts": "{0} Ports",
"unconfirmedBoard": "Board nicht bestätigt",
"unconfirmedBoard": "Unbestätigtes Board",
"unknownBoard": "Unbekanntes Board"
},
"boardsManager": "Board-Verwaltung",
@@ -50,41 +53,41 @@
},
"bootloader": {
"burnBootloader": "Bootloader brennen",
"burningBootloader": "Bootloader überschreiben ...",
"burningBootloader": "Bootloader wird gebrannt ...",
"doneBurningBootloader": "Bootloader erfolgreich gebrannt."
},
"burnBootloader": {
"error": "Fehler beim Überschreiben des Bootloaders: {0}"
"error": " Fehler beim Brennen des Bootloaders: {0}"
},
"certificate": {
"addNew": "Neu hinzufügen",
"addURL": "URL hinzufügen, um das SSL-Zertifikat abzurufen",
"boardAtPort": "{0} bei {1}",
"certificatesUploaded": "Die Zertifikate wurden erfolgreich hochgeladen.",
"certificatesUploaded": "Zertifikate erfolgreich hochgeladen.",
"enterURL": "URL eingeben",
"noSupportedBoardConnected": "Kein unterstütztes Board angeschlossen",
"openContext": "Kontext öffnen",
"remove": "Entfernen",
"selectBoard": "Wähle ein Board...",
"selectCertificateToUpload": "1. Zertifikat zum hochladen auswählen",
"selectCertificateToUpload": "1. Zertifikat zum Hochladen auswählen",
"selectDestinationBoardToUpload": "2. Zielboard wählen und Zertifikat hochladen",
"upload": "Hochladen",
"uploadFailed": "Hochladen fehlgeschlagen. Bitte versuchen Sie es erneut.",
"uploadFailed": "Hochladen fehlgeschlagen. Versuche es bitte noch einmal.",
"uploadRootCertificates": "SSL Root Zertifikat hochladen",
"uploadingCertificates": "Zertifikate hochladen..."
},
"checkForUpdates": {
"checkForUpdates": "Nach Arduino Updates suchen",
"checkForUpdates": "Arduino-Updates suchen",
"installAll": "Alle installieren",
"noUpdates": "Es sind keine aktuellen Updates verfügbar.",
"promptUpdateBoards": "Es sind Updates für einige Ihrer Boards verfügbar.",
"promptUpdateLibraries": "Es sind Updates für einige Ihrer Blibliotheken verfügbar.",
"noUpdates": " Es sind keine neuen Updates verfügbar.",
"promptUpdateBoards": " Es sind Updates für einige deiner Boards verfügbar.",
"promptUpdateLibraries": " Es sind Updates für einige deiner Bibliotheken verfügbar.",
"updatingBoards": "Boards werden aktualisiert ...",
"updatingLibraries": "Bibliotheken werden aktualisiert ..."
},
"cli-error-parser": {
"keyboardError": "'Keyboard' nicht gefunden. Enthält ihr Sketch die Zeile '#include <Keyboard.h>'?",
"mouseError": "'Mouse' nicht gefunden. Enthält ihr Sketch die Zeile '#include <Mouse.h>'?"
"keyboardError": " 'Keyboard' nicht gefunden. Enthält dein Sketch die Zeile '#include <Keyboard.h>'?",
"mouseError": " 'Mouse' nicht gefunden. Enthält dein Sketch die Zeile '#include <Mouse.h>'?"
},
"cloud": {
"chooseSketchVisibility": "Wähle die Sichtbarkeit deines Sketches:",
@@ -104,34 +107,34 @@
"options": "Optionen ...",
"privateVisibility": "Privat. Nur du siehst diesen Sketch.",
"profilePicture": "Profilbild",
"publicVisibility": "Öffentlich - Jeder kann mit diesen Link den Sketch sehen.",
"publicVisibility": " Öffentlich. Jeder mit diesen Link kann den Sketch sehen.",
"pull": "Pull",
"pullFirst": "Du musst zuerst herunterladen, damit du in die Cloud schieben kannst.",
"pullSketch": "Pull Sketch",
"pullSketchMsg": "Wenn du diesen Sketch aus der Cloud lädst, wird die lokale Version überschrieben. Möchtest du fortfahren?",
"push": "Push",
"pushSketch": "Push Sketch",
"pushSketchMsg": "Das ist ein öffentlicher Sketch. Vor dem Pushen solltest du überprüfen, ob alle sensiblen Informationen in arduino_secrets.h definiert sind. Du kannst einen Sketch mit dem Teilen-Feld als privat definieren.",
"pushSketchMsg": " Der Sketch ist öffentlich. Prüfe vor dem Pushen, dass alle sensiblen Infos in arduino_secrets.h definiert sind. Du kannst einen Sketch beim Teilen als privat definieren.",
"remote": "Remote",
"share": "Teilen....",
"share": "Teilen ...",
"shareSketch": "Sketch teilen",
"showHideSketchbook": "Zeige/Verstecke Cloud Sketchbook",
"showHideSketchbook": "Zeige/verstecke Cloud Sketchbook",
"signIn": "Anmelden",
"signInToCloud": "Anmelden zur Arduino Cloud",
"signOut": "Abmelden",
"sync": "Synchronisiere",
"sync": "Synchronisieren",
"syncEditSketches": "Synchronisiere und editiere deine Arduino Cloud Sketches.",
"visitArduinoCloud": "Besuche Arduino Cloud um Cloud Sketche zu erstellen."
"visitArduinoCloud": "Arduino Cloud besuchen, um Cloud Sketches zu erstellen."
},
"cloudSketch": {
"alreadyExists": "Cloud-Sketch '{0}' existiert bereits.",
"creating": "Cloud-Sketch '{0}' wird erstellt...",
"new": "Neuer Cloud-Sketch",
"notFound": "Cloud-Sketch '{0}' konnte nicht heruntergeladen werden. Er existiert nicht.",
"pulling": "Synchronisiere Sketchbook, lade '{0}' runter...",
"pushing": "Synchronisiere Sketchbook, lade '{0}' hoch...",
"pulling": "Sketchbook synchronisieren und '{0}' herunterladen ...",
"pushing": "Sketchbook synchronisieren und '{0}' hochladen ...",
"renaming": "Cloud-Sketch wird von '{0}' nach '{1}' umbenannt ...",
"synchronizingSketchbook": "Synchronisiere Sketchbook..."
"synchronizingSketchbook": "Sketchbook wird synchronisiert ..."
},
"common": {
"all": "Alle",
@@ -139,54 +142,55 @@
"installManually": "Manuell installieren",
"later": "später",
"noBoardSelected": "Kein Board ausgewählt",
"noSketchOpened": "No sketch opened",
"noSketchOpened": "Kein Sketch geöffnet",
"notConnected": "[keine Verbindung]",
"offlineIndicator": "Anscheinend bist du offline. Ohne eine aktive Internetverbindung kann das Arduino CLI nicht die nötigen Ressourcen herunterladen, was zu Problemen führen kann. Bitte überprüfe deine Internetverbindung und starte das Programm neu. ",
"oldFormat": "Der Sketch '{0}' verwendet noch das alte '.pde' Format. Möchtest du auf die neuere '.ino' Endung wechseln?",
"oldFormat": " Der Sketch '{0}' verwendet das alte Format '.pde'. Möchtest du auf die neue Endung '.ino' wechseln?",
"partner": "Partner",
"processing": "Verarbeiten",
"recommended": "Empfohlen",
"retired": "Zurückgezogen",
"selectManually": "Select Manually",
"selectManually": "Manuell auswählen",
"selectedOn": "an {0}",
"serialMonitor": "Serieller Monitor",
"type": "Typ",
"unknown": "unbekannt",
"updateable": "Aktualisierbar"
"updateable": "Aktualisierbar",
"userAbort": "Nutzerabbruch"
},
"compile": {
"error": "Fehler beim kompilieren: {0}"
},
"component": {
"boardsIncluded": "In diesem Paket enthaltene Boards:",
"boardsIncluded": "Im Paket enthaltene Boards:",
"by": "von",
"clickToOpen": "Klicken, um im Browser zu öffnen: {0}",
"filterSearch": "Filtern Sie Ihre Suche ...",
"clickToOpen": " Klicke, um im Browser zu öffnen: {0}",
"filterSearch": "Filtere deine Suche ...",
"install": "Installieren",
"installLatest": "Neueste installieren",
"installVersion": "Installiere {0}",
"installVersion": "{0} installieren",
"installed": "{0} installiert",
"moreInfo": "Mehr Information",
"otherVersions": "Andere Versionen",
"remove": "Entfernen",
"title": "{0} durch {1}",
"title": "{0} von {1}",
"uninstall": "Deinstallieren",
"uninstallMsg": "Möchten Sie {0} deinstallieren?",
"uninstallMsg": "Möchtest du {0} deinstallieren?",
"update": "Aktualisieren"
},
"configuration": {
"cli": {
"inaccessibleDirectory": "Kein Zugriff möglich auf Sketchbook-Ort bei '{0}': {1}"
"inaccessibleDirectory": "Kein Zugriff möglich auf Sketchbook-Pfad bei '{0}': {1}"
}
},
"connectionStatus": {
"connectionLost": "Verbindung verloren. Cloud-Sketch Aktionen und Updates werden nicht verfügbar sein."
"connectionLost": "Keine Verbindung. Aktionen und Updates für Cloud-Sketches sind nicht möglich."
},
"contributions": {
"addFile": "Datei hinzufügen...",
"addFile": " Datei hinzufügen",
"fileAdded": "Eine Datei wurde zum Sketch hinzugefügt.",
"plotter": {
"couldNotOpen": "Konnte den seriellen Plotter nicht öffnen"
"couldNotOpen": " Der serielle Plotter konnte nicht geöffnet werden."
},
"replaceTitle": "Ersetzen"
},
@@ -195,30 +199,29 @@
"all": "Alle",
"default": "Standard",
"more": "Mehr",
"none": "Kein/e/r"
"none": "Keine"
}
},
"coreContribution": {
"copyError": "Fehlermeldungen kopieren",
"noBoardSelected": "Kein Board ausgewählt. Bitte Arduino Board im Menü wählen mit Werkzeuge > Board"
"noBoardSelected": "Kein Board ausgewählt. Wähle dein Arduino-Board im Menü 'Werkzeuge > Board'."
},
"createCloudCopy": "Sketch in Cloud hochladen",
"createCloudCopy": "Sketch in die Cloud hochladen",
"daemon": {
"restart": "Daemon neustarten",
"start": "Daemon starten",
"stop": "Stoppe Daemon"
"stop": "Daemon stoppen"
},
"debug": {
"debugWithMessage": "Debug - {0}",
"debuggingNotSupported": "'{0}' unterstützt kein Debuggen",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Die Platform für '{0}' ist nicht instaliert.",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"debuggingNotSupported": "Debugging wird von '{0}' nicht unterstützt.",
"getDebugInfo": "Debug-Infos holen ...",
"noPlatformInstalledFor": "Plattform ist für \"{0}\" nicht installiert.",
"optimizeForDebugging": "Für Debugging optimieren",
"sketchIsNotCompiled": "Der Sketch '{0}' muss vor dem Starten einer Debugging-Sitzung überprüft werden. Bitte überprüfe den Sketch und starte das Debugging erneut. Möchtest du den Sketch jetzt überprüfen?"
"sketchIsNotCompiled": "Der Sketch '{0}' muss vor dem Debugging überprüft werden. Überprüfe den Sketch und starte das Debugging erneut. Möchtest du den Sketch jetzt überprüfen?"
},
"developer": {
"clearBoardList": "Board-Tabellen-Historie leeren",
"clearBoardList": "Board-Tabellen-Verlauf löschen",
"clearBoardsConfig": "Board- und Portauswahl aufheben",
"dumpBoardList": "Board-Tabelle löschen"
},
@@ -226,12 +229,12 @@
"dontAskAgain": "Nicht noch einmal fragen"
},
"editor": {
"autoFormat": "automatisch Formatieren",
"autoFormat": "Automatisch formatieren",
"commentUncomment": "Kommentieren/Kommentar aufheben",
"copyForForum": "Für Forum kopieren (Markdown)",
"decreaseFontSize": "Schrift verkleinern",
"decreaseIndent": "Einrückung verringern ",
"increaseFontSize": "Schriftgröße vergrößern ",
"increaseFontSize": "Schrift vergrößern",
"increaseIndent": "Einrückung erweitern",
"nextError": "Nächster Fehler",
"previousError": "Vorheriger Fehler",
@@ -239,8 +242,8 @@
},
"examples": {
"builtInExamples": "Mitgelieferte Beispiele",
"couldNotInitializeExamples": "Mitgelieferte Beispiele konnten nicht initialisiert werden",
"customLibrary": "Beispiele aus eigenen Bibliotheken",
"couldNotInitializeExamples": "Die integrierten Beispiele konnten nicht initialisiert werden.",
"customLibrary": "Beispiele aus angepassten Bibliotheken",
"for": "Beispiele für {0}",
"forAny": "Beispiele für jedes Board",
"menu": "Beispiele"
@@ -250,17 +253,17 @@
"failedInstall": "Installation fehlgeschlagen. Bitte versuche es erneut ",
"install": "Installieren",
"installingFirmware": "Firmware wird installiert.",
"overwriteSketch": "Die Installation wird den Sketch auf dem Board überschreiben.",
"overwriteSketch": "Die Installation überschreibt den Sketch auf dem Board.",
"selectBoard": "Board auswählen",
"selectVersion": "Firmware Version wählen",
"successfullyInstalled": "Firmware wurde erfolgreich installiert.",
"updater": "Firmware Updater"
"selectVersion": "Firmware-Version wählen",
"successfullyInstalled": "Die Firmware wurde erfolgreich installiert.",
"updater": "Firmware-Updater"
},
"help": {
"environment": "Umgebung",
"faq": "Häufig gestellte Fragen",
"findInReference": "Referenzsuche",
"gettingStarted": "Loslegen...",
"gettingStarted": "Loslegen ...",
"keyword": "Schlagwort eingeben",
"privacyPolicy": "Datenschutzbestimmungen",
"reference": "Referenz",
@@ -269,17 +272,17 @@
"visit": "Besuche Arduino.cc"
},
"ide-updater": {
"checkForUpdates": "Nach Arduino IDE Updates suchen",
"checkForUpdates": "Arduino IDE Updates suchen",
"closeAndInstallButton": "Schließen und Installieren",
"closeToInstallNotice": "Beende die Software und installiere das Update auf deinem Computer",
"closeToInstallNotice": "Software beenden und Update auf deinem Computer installieren",
"downloadButton": "Download",
"downloadingNotice": "Die neueste Version der Arduino IDE wird heruntergeladen",
"downloadingNotice": "Die neueste Version der Arduino IDE wird heruntergeladen.",
"errorCheckingForUpdates": "Fehler bei der Suche nach IDE Updates{0}",
"goToDownloadButton": "Zum Download wechseln",
"goToDownloadPage": "Ein Update für die Arduino IDE ist verfügbar, konnte aber nicht automatisch heruntergeladen und installiert werden. Bitte gehen sie zur Download-Seite und laden sie dort die neueste Version herunter ",
"ideUpdaterDialog": "Software Update",
"newVersionAvailable": "Eine neue Version der Arduino IDE ({0}) ist zum Download verfügbar",
"noUpdatesAvailable": "Es gibt keine neuen Updates für die Arduino IDE",
"goToDownloadPage": "Ein Update für die Arduino IDE ist verfügbar, konnte aber nicht automatisch installiert werden. Gehe zur Download-Seite und lade dort die neueste Version herunter. ",
"ideUpdaterDialog": "Software-Update",
"newVersionAvailable": "Eine neue Version der Arduino IDE ({0}) ist zum Download verfügbar.",
"noUpdatesAvailable": "Es gibt keine neuen Updates für die Arduino IDE.",
"notNowButton": "Später",
"skipVersionButton": "Version überspringen",
"updateAvailable": "Update verfügbar",
@@ -291,22 +294,22 @@
},
"library": {
"addZip": ".ZIP-Bibliothek hinzufügen...",
"arduinoLibraries": "Arduino Bibliotheken",
"contributedLibraries": "Bibliotheken, zu denen beigetragen wurde",
"arduinoLibraries": "Arduino-Bibliotheken",
"contributedLibraries": "Beigesteuerte Bibliotheken",
"include": "Bibliothek einbinden",
"installAll": "Alle installieren",
"installLibraryDependencies": "Bibliotheksabhängigkeiten installieren",
"installMissingDependencies": "Möchtest Du die fehlenden Abhängigkeiten installieren?",
"installOneMissingDependency": "Möchtest Du die fehlende Abhängigkeit installieren?",
"installMissingDependencies": "Möchtest du die fehlenden Abhängigkeiten installieren?",
"installOneMissingDependency": "Möchtest du die fehlende Abhängigkeit installieren?",
"installWithoutDependencies": "Ohne Abhängigkeiten installieren",
"installedSuccessfully": "Bibliothek {0}:{1} erfolgreich installiert",
"libraryAlreadyExists": "Eine Bibliothek existiert bereits. Möchten sie diese überschreiben?",
"libraryAlreadyExists": "Die Bibliothek existiert bereits. Möchtest du sie überschreiben?",
"manageLibraries": "Bibliotheken verwalten ...",
"namedLibraryAlreadyExists": "Der Bibliothek-Ordner '{0}' existiert bereits. Überschreiben?",
"needsMultipleDependencies": "Die Bibliothek <b>{0}:{1}</b> benötigt ein paar andere Abhängigkeiten, die derzeit nicht installiert sind:",
"needsOneDependency": "Die Bibliothek <b>{0}:{1}</b> benötigt eine andere Abhängigkeit, welche derzeit nicht installiert ist:",
"namedLibraryAlreadyExists": "Der Bibliothek-Ordner '{0}' existiert bereits. Möchtest du ihn überschreiben?",
"needsMultipleDependencies": "Die Bibliothek <b>{0}:{1}</b> benötigt ein paar weitere Abhängigkeiten, die derzeit nicht installiert sind:",
"needsOneDependency": "Die Bibliothek <b>{0}:{1}</b> benötigt eine weitere Abhängigkeit, die derzeit nicht installiert ist:",
"overwriteExistingLibrary": "Möchtest du die existierende Bibliothek überschreiben?",
"successfullyInstalledZipLibrary": "Bibliothek erfolgreich vom {0} Archiv installiert",
"successfullyInstalledZipLibrary": "Bibliothek erfolgreich vom Archiv {0} installiert",
"title": "Bibliotheksverwalter",
"uninstalledSuccessfully": "Bibliothek {0}:{1} erfolgreich deinstalliert",
"zipLibrary": "Bibliothek"
@@ -320,7 +323,7 @@
"dataStorage": "Datenspeicher",
"deviceControl": "Gerätesteuerung",
"display": "Anzeige",
"other": "Andere/s",
"other": "Weitere",
"sensors": "Sensoren",
"signalInputOutput": "Signal Ein-/Ausgang",
"timing": "Timing",
@@ -339,7 +342,7 @@
"baudRate": "{0} Baud",
"connectionFailedError": "Konnte nicht mit {0} {1} Port verbinden.",
"connectionFailedErrorWithDetails": "{0} Konnte nicht mit {1} {2} Port verbinden.",
"connectionTimeout": "Zeitüberschreitung. Die IDE hat die 'success'-Nachricht nach erfolgreicher Verbindung nicht vom Monitor erhalten.",
"connectionTimeout": "Timeout. Die IDE hat keine 'Success'-Nachricht erhalten, nachdem der Monitor erfolgreich verbunden wurde.",
"missingConfigurationError": "Konnte nicht mit {0} {1} Port verbinden. Monitor-Konfiguration fehlt.",
"notConnectedError": "Nicht mit {0} {1} Port verbunden.",
"unableToCloseWebSocket": "Websocket wurde nicht geschlossen",
@@ -354,84 +357,87 @@
},
"preferences": {
"additionalManagerURLs": "Zusätzliche Boardverwalter-URLs",
"auth.audience": "Die OAuth2 Audience",
"auth.clientID": "Die OAuth2 client ID.",
"auth.domain": "Die OAuth2 Domain.",
"auth.registerUri": "Das URI hat einen neuen Benutzer registriert.",
"auth.audience": "OAuth2-Audience",
"auth.clientID": "OAuth2-ClientID",
"auth.domain": "OAuth2-Domain",
"auth.registerUri": "Das URI hat einen neuen Nutzer registriert.",
"automatic": "Automatisch",
"board.certificates": "Liste der Zertifikate, welche zu den Boards hochgeladen werden können.",
"board.certificates": "Liste der Zertifikate, die zu den Boards hochgeladen werden können.",
"browse": "Durchsuchen",
"checkForUpdate": "Erhalte Benachrichtigungen bei verfügbaren Updates für die IDE, die Boards und Bibliotheken. Nach Änderung ist ein Neustart der IDE notwendig. Standardmäßig eingeschaltet.",
"checkForUpdate": "Benachrichtigungen bei verfügbaren Updates für IDE, Boards und Bibliotheken erhalten. Nach einer Änderung ist ein Neustart der IDE notwendig. Standardmäßig eingeschaltet.",
"choose": "Wähle",
"cli.daemonDebug": "Aktivieren Sie die Debug-Protokollierung der gRPC-Aufrufe an das Arduino CLI. Ein Neustart der IDE ist erforderlich, damit diese Einstellung wirksam wird. Standardmäßig ist sie deaktiviert.",
"cloud.enabled": "Wahr, wenn die Sketch-Syncfunctionen aktiv sind. Standardeinstellung ist wahr.",
"cloud.pull.warn": "Wahr, wenn Benutzer vor dem Herunterladen eines Sketches aus der Cloud gewarnt werden sollen. Standardmäßig Wahr.",
"cloud.push.warn": "Wahr, wenn Benutzer vor dem Hochladen eines Cloud-Sketches gewarnt werden sollen. Standardmäßig Wahr.",
"cloud.pushpublic.warn": "Wahr, wenn Benutzer vor dem Hochladen eines öffentlichen Sketches in die Cloud gewarnt werden sollen. Standardmäßig Wahr.",
"cloud.sketchSyncEndpoint": "Der Endpunkt, um Sketches zu/von einem Backend zu laden. Standardeinstellung ist die Arduino Cloud API.",
"cli.daemonDebug": "Debug-Protokoll von gRPC-Aufrufe an das Arduino CLI aktivieren. Nach der Änderung ist ein Neustart der IDE notwendig. Standardmäßig deaktiviert.",
"cloud.enabled": "Wenn diese Option aktiviert ist, sind die Sketch-Syncfunktionen aktiv. Standardmäßig aktiviert.",
"cloud.pull.warn": "Wenn diese Option aktiviert ist, werden Nutzer vor dem Herunterladen eines Sketches aus der Cloud gewarnt. Standardmäßig aktiviert.",
"cloud.push.warn": "Wenn diese Option aktiviert ist, werden Nutzer vor dem Hochladen eines Sketches in die Cloud gewarnt. Standardmäßig aktiviert. ",
"cloud.pushpublic.warn": "Wenn diese Option aktiviert ist, werden Nutzer vor dem Hochladen eines öffentlichen Sketches in die Cloud gewarnt. Standardmäßig aktiviert. ",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "Endpunkt, um Sketches zu/von einem Backend zu laden. Standardeinstellung ist die Arduino Cloud API.",
"compile": "Kompilieren",
"compile.experimental": "Aktivieren, wenn die IDE mehrere Fehler des Compiler behandeln soll. Standardmäßig ausgeschaltet.",
"compile.revealRange": "Legt fest, wie Compilerfehler im Editor nach einer fehlgeschlagenen Überprüfung/einem fehlgeschlagenen Upload angezeigt werden. Mögliche Werte: 'auto': bei Bedarf vertikal scrollen, um die Zeile anzuzeigen. 'center': bei Bedarf vertikal scrollen und die Zeile zentriert anzeigen. 'top': bei Bedarf vertikal scrollen und die Zeile nahe am oberen Ende des Darstellungsbereichs anzeigen. Optimiert für das Betrachten einer Codedefinition. 'centerIfOutsideViewport': bei Bedarf vertikal scrollen und die Zeile nur anzeigen, wenn sie außerhalb des Anzeigebereichs liegt. Der Standardwert ist '{0}'.",
"compile.verbose": "Aktivieren Sie diese Option, wenn ausführliche Compiler-Meldungen angezeigt werden sollen. Standardgemäß deaktiviert.",
"compile.warnings": "Einstellung der Compiler-Warnungen für den GCC. Standardeinstellung ist 'Keine'. ",
"compile.experimental": "Wenn diese Option aktiviert, werden mehrere Compiler-Fehler in der IDE gleichzeitig behandelt. Standardmäßig deaktiviert.",
"compile.revealRange": "Diese Option steuert, wie Compiler-Fehler im Editor angezeigt werden. Mögliche Werte sind: \n'auto': bei Bedarf vertikal scrollen, um die Zeile anzuzeigen. 'center': bei Bedarf vertikal scrollen und die Zeile zentriert anzeigen. 'top': bei Bedarf vertikal scrollen und die Zeile oben im Textbereich anzeigen, optimiert für das Betrachten einer Codedefinition. 'centerIfOutsideViewport': bei Bedarf vertikal scrollen und die Zeile nur anzeigen, wenn sie außerhalb des Anzeigebereichs liegt. Der Standardwert ist '{0}'.",
"compile.verbose": "Wenn diese Option aktiviert ist, werden ausführliche Compiler-Meldungen angezeigt. Standardgemäß deaktiviert.",
"compile.warnings": "Einstellung der Compiler-Warnungen für den GCC. Standardmäßig 'Keine'. ",
"compilerWarnings": "Compiler-Meldungen",
"editorFontSize": "Editor Schriftgröße",
"editorQuickSuggestions": "Schnelle Editor Vorschläge",
"enterAdditionalURLs": "Füge zusätzliche URLs hinzu, jede Reihe einzeln",
"editorFontSize": "Schriftgröße im Editor",
"editorQuickSuggestions": "Schnelle Editor-Vorschläge",
"enterAdditionalURLs": "Zusätzliche URLs hinzufügen, jeweils eine pro Zeile.",
"files.inside.sketches": "Dateien im Sketch zeigen",
"ide.updateBaseUrl": "URL für den Download von Updates. Standard-URL: \"https://downloads.arduino.cc/arduino-ide\"",
"ide.updateBaseUrl": "URL für den Download von Updates. Standardmäßig 'https://downloads.arduino.cc/arduino-ide'",
"ide.updateChannel": "Release-Channel, von dem Updates bezogen werden sollen. 'stable' für stabile und getestete Updates. 'nightly' für allerneuste Updates, welche jedoch noch nicht ausreichend getestet wurden.",
"interfaceScale": "Größe der Benutzeroberfläche",
"invalid.editorFontSize": "Ungültige Editor-Schriftgröße. Wert muss eine Ganzzahl größer 0 (Null) sein.",
"invalid.sketchbook.location": "Ungültiger Sketchbook Speicherort: {0}",
"invalid.theme": "Ungültiges Erscheinungsbild",
"language.asyncWorkers": "Number of async workers used by the Arduino Language Server (clangd). Background index also uses this many workers. The minimum value is 0, and the maximum is 8. When it is 0, the language server uses all available cores. The default value is 0.",
"language.log": "Wenn aktivert, werden Arduino-Sprach-Server-Logdateien in den Sketch-Ordner geschrieben. Standardmäßig deaktivert. ",
"language.realTimeDiagnostics": "Wenn aktiviert, bietet der Sprachserver bei der Eingabe im Editor eine Echtzeitdiagnose. Ist standardmäßig deaktiviert.",
"manualProxy": "Manuelle Proxy Einstellung",
"interfaceScale": "Skalierung der Darstellung",
"invalid.editorFontSize": "Ungültige Schriftgröße. Der Wert muss eine positie ganze Zahl sein.",
"invalid.sketchbook.location": "Ungültiger Sketchbook-Pfad: {0}",
"invalid.theme": "Ungültiges Design",
"language.asyncWorkers": "Anzahl der asynchronen Worker, die vom Arduino-Sprachserver (clangd) verwendet werden. Der Hintergrundindex verwendet diese Anzahl an Workern ebenfalls. Der Mindestwert ist 0 und der Höchstwert ist 8. Wenn der Wert 0 ist, verwendet der Sprachserver alle verfügbaren Kerne. Der Standardwert ist 0.",
"language.log": "Wenn diese Option aktiviert ist, schreibt der Arduino-Sprachserver seine Logdateien in den Sketch-Ordner. Standardmäßig deaktivert. ",
"language.realTimeDiagnostics": "Wenn diese Option aktiviert ist, wird bei der Eingabe im Editor eine Echtzeitdiagnose angeboten. Standardmäßig deaktiviert.",
"manualProxy": "Manuelle Proxy-Einstellung",
"monitor": {
"dockPanel": "Der Bereich der Applikations-Shell wo das {0}-Widget angezeigt werden soll. Entweder \"unten\" oder \"rechts\". Standardmäßig \"{1}\"."
},
"network": "Netzwerk",
"newSketchbookLocation": "Wähle einen neuen Ort für das Sketchbook ",
"noCliConfig": "CLI-Konfiguration konnte nicht geladen werden",
"noCliConfig": "CLI-Konfiguration konnte nicht geladen werden.",
"noProxy": "Kein Proxy",
"proxySettings": {
"hostname": "Hostname",
"password": "Passwort",
"port": "Portnummer",
"username": "Benutzername"
"password": "Kennwort",
"port": "Port",
"username": "Nutzername"
},
"showVerbose": "Compiler-Meldungen anzeigen beim",
"sketch": {
"inoBlueprint": "Absoluter Dateipfad zur Standard-'.ino'-Dateivorlage. Wenn angegeben, wird der Inhalt der Dateivorlage für jeden, mit der IDE erstellten, Sketch verwendet. Wenn nicht angegeben, werden die Sketches mit dem Standard-Arduino-Inhalt erstellt. Unauffindbare Dateivorlagen werden ignoriert. **Ein Neustarten der IDE ist erforderlich**, um diese Einstellung zu übernehmen."
"inoBlueprint": "Dateipfad zur Standardvorlage '.ino'. Wenn eine Vorlage angegeben ist, wird deren Inhalt für alle mit der IDE erstellten Sketches verwendet. Wenn keine Vorlage angegeben ist, werden Sketches mit dem Standard-Arduino-Inhalt erstellt. Nichtauffindbare Vorlagen werden ignoriert. **Ein Neustart der IDE ist erforderlich**, um diese Einstellung zu übernehmen."
},
"sketchbook.location": "Dateipfad des Sketchbooks",
"sketchbook.showAllFiles": "Wenn aktiviert, werden alle Sketch-Dateien innerhalb des Sketch angezeigt. Standardmäßig deaktiviert. ",
"survey.notification": "Wenn aktiviert, werden Nutzer benachrichtigt, wenn eine Umfrage verfügbar ist. Standardmäßig aktiviert.",
"unofficialBoardSupport": "Klicke hier für eine Liste von inoffiziell unterstützten Boards",
"sketchbook.location": "Pfad für Sketchbook",
"sketchbook.showAllFiles": "Wenn diese Option aktiviert ist, werden alle Sketch-Dateien innerhalb des Sketches angezeigt. Standardmäßig deaktiviert. ",
"survey.notification": "Wenn diese Option aktiviert ist, werden Nutzer über eine verfügbare Umfrage informiert. Standardmäßig aktiviert.",
"unofficialBoardSupport": "Klicke hier, um eine URL-Liste von inoffiziell unterstützten Boards anzuzeigen.",
"upload": "Hochladen",
"upload.verbose": "Wenn aktiviert, werden ausführliche Compiler-Meldungen angezeigt. Standardmäßig deaktiviert.",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "Wenn die Option aktiviert ist, werden ausführliche Compiler-Meldungen angezeigt. Standardmäßig deaktiviert.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Code nach Hochladen überprüfen ",
"window.autoScale": "Wenn aktiviert: Benutzeroberfläche soll mit Schriftgröße skalieren.",
"window.autoScale": "Wenn die Option aktiviert ist, skaliert die Nutzeroberfläche automatisch mit der Schriftgröße.",
"window.zoomLevel": {
"deprecationMessage": "Veraltet. Bitte 'window.zoomLevel' stattdessen benutzen."
"deprecationMessage": "Veraltet. Verwende stattdessen 'window.zoomLevel'."
}
},
"renameCloudSketch": {
"renameSketchTitle": "Neuer Name des Cloud-Sketches"
},
"replaceMsg": "Existierende Version von {0} ersetzen?",
"selectZip": "Wähle die ZIP-Datei, welche die hinzuzufügende Bibliothek enthält",
"selectZip": "Wähle die ZIP-Datei mit der Bibliothek, die du hinzufügen möchtest.",
"serial": {
"autoscroll": "Automatisch scrollen",
"carriageReturn": "Zeilenumbruch",
"carriageReturn": "Zeilenumbruch (CR)",
"connecting": "Verbindung zu '{0}' auf '{1}'...",
"message": "Nachicht (Enter um Nachricht für '{0}' auf '{1}' zu senden)",
"message": "Nachicht (drücke Enter zum Senden für '{0}' auf '{1}')",
"newLine": "Neue Zeile",
"newLineCarriageReturn": "Sowohl NL als auch CR",
"newLineCarriageReturn": "Beides CR/LF",
"noLineEndings": "Kein Zeilenende",
"notConnected": "Nicht verbunden. Wählen Sie ein Board und einen Port, um automatisch zu verbinden.",
"notConnected": "Keine Verbindung. Wähle ein Board und einen Port, um automatisch zu verbinden.",
"openSerialPlotter": "Serieller Plotter",
"timestamp": "Zeitstempel",
"toggleTimestamp": "Zeitstempel an/aus"
@@ -442,13 +448,13 @@
"compile": "Kompiliere Sketch ...",
"configureAndUpload": "Konfigurieren und Hochladen",
"createdArchive": "Archiv '{0}' erstellt.",
"doneCompiling": "Kompilieren erfolgreich!",
"doneUploading": "Hochladen erfolgreich! ",
"editInvalidSketchFolderLocationQuestion": "Wollen Sie versuchen, den Sketch an einer anderen Stelle abzuspeichern?",
"editInvalidSketchFolderQuestion": "Wollen Sie versuchen, den Sketch mit einem anderen Namen abzuspeichern?",
"doneCompiling": "Kompilieren erfolgreich.",
"doneUploading": "Hochladen erfolgreich.",
"editInvalidSketchFolderLocationQuestion": "Möchtest du versuchen, den Sketch an einer anderen Stelle abzuspeichern?",
"editInvalidSketchFolderQuestion": "Möchtest du versuchen, den Sketch mit einem anderen Namen abzuspeichern?",
"exportBinary": "Kompilierte Binärdatei exportieren",
"invalidCloudSketchName": "Der Name muss mit einem Buchstaben, einer Ziffer oder einem Unterstrich beginnen und darf Buchstaben, Ziffern, Bindestriche, Punkte und Unterstriche enthalten. Die maximale Länge ist 36 Zeichen.",
"invalidSketchFolderLocationDetails": "Ein Sketch kann nicht innerhalb einem seiner Ordner gespeichert werden.",
"invalidCloudSketchName": "Der Name muss mit einem Buchstaben, einer Ziffer oder einem Unterstrich beginnen. Der Name darf nur Buchstaben, Ziffern, Bindestriche, Punkte und Unterstriche enthalten. Die maximale Länge ist 36 Zeichen.",
"invalidSketchFolderLocationDetails": "Ein Sketch kann nicht innerhalb eines seiner Ordner gespeichert werden.",
"invalidSketchFolderLocationMessage": "Ungültiger Ort für Sketch-Ordner: '{0}'",
"invalidSketchFolderNameMessage": "Ungültiger Name für einen Sketch-Ordner: '{0}'",
"invalidSketchName": "Der Name muss mit einem Buchstaben, einer Ziffer oder einem Unterstrich beginnen und darf Buchstaben, Ziffern, Bindestriche, Punkte und Unterstriche enthalten. Die maximale Länge ist 63 Zeichen.",
@@ -465,15 +471,15 @@
"saveSketchAs": "Sketch Ordner speichern als...",
"showFolder": "Zeige Sketch Ordner",
"sketch": "Sketch",
"sketchAlreadyContainsThisFileError": "The sketch already contains a file named '{0}'",
"sketchAlreadyContainsThisFileMessage": "Failed to save sketch \"{0}\" as \"{1}\". {2}",
"sketchAlreadyContainsThisFileError": "Der Sketch enthält bereits eine Datei \"{0}\".",
"sketchAlreadyContainsThisFileMessage": "Fehler beim Speichern von \"{0}\" als \"{1}\". {2}",
"sketchbook": "Sketchbook",
"titleLocalSketchbook": "Lokales Sketchbook",
"titleSketchbook": "Sketchbook",
"upload": "Hochladen",
"uploadUsingProgrammer": "Mit Programmer hochladen",
"uploading": "Hochladen ...",
"userFieldsNotFoundError": "User Fields für das angeschlossene Board nicht gefunden",
"userFieldsNotFoundError": "Nutzerfelder für das angeschlossene Board nicht gefunden",
"verify": "Überprüfen",
"verifyOrCompile": "Überprüfen/Kompilieren"
},
@@ -512,11 +518,11 @@
"upload": "Hochladen"
},
"validateSketch": {
"abortFixMessage": "Der Sketch ist noch immer ungültig. Sollen die verbliebenen Probleme behoben werden? Durch Klicken auf '{0}' wird ein neuer Sketch geöffnet.",
"abortFixMessage": "Der Sketch ist noch immer ungültig. Möchtest du die verbliebenen Probleme beheben? Beim Klicken auf '{0}' wird ein neuer Sketch geöffnet.",
"abortFixTitle": "Ungültiger Sketch",
"renameSketchFileMessage": "Die Sketch-Datei '{0}' kann nicht verwendet werden. {1} Soll die Sketch-Datei jetzt umbenannt werden?",
"renameSketchFileTitle": "Ungültiger Sketch-Dateiname",
"renameSketchFolderMessage": "Der Sketch '{0}' kann nicht verwendet werden. {1} Um diese Meldung loszuwerden, muss der Sketch umbenannt werden. Wollen Sie den Sketch jetzt umbenennen?",
"renameSketchFolderMessage": "Der Sketch '{0}' kann nicht verwendet werden. {1} Um diese Meldung loszuwerden, muss der Sketch umbenannt werden. Möchtest du den Sketch jetzt umbenennen?",
"renameSketchFolderTitle": "Ungültiger Sketch-Name"
},
"workspace": {
@@ -541,8 +547,8 @@
"expand": "Ausklappen"
},
"workspace": {
"deleteCloudSketch": "Der Cloud-Sketch '{0}' wird dauerhaft von den Arduino-Servern und den lokalen Caches gelöscht. Diese Aktion ist nicht umkehrbar. Möchtest Du den aktuellen Sketch löschen?",
"deleteCurrentSketch": "Der Sketch {0} wird dauerhaft gelöscht. Diese Aktion ist nicht umkehrbar. Möchtest Du den aktuellen Sketch löschen?",
"deleteCloudSketch": " Der Cloud-Sketch '{0}' wird dauerhaft von den Arduino-Servern und den lokalen Caches gelöscht. Diese Aktion ist nicht umkehrbar. Möchtest du den aktuellen Sketch wirklich löschen?",
"deleteCurrentSketch": " Der Sketch '{0}' wird dauerhaft gelöscht. Diese Aktion ist nicht umkehrbar. Möchtest du den aktuellen Sketch wirklich löschen?",
"fileNewName": "Name für die neue Datei",
"invalidExtension": "\".{0}\" ist keine gültige Dateierweiterung.",
"newFileName": "Neuer Name für die Datei"

View File

@@ -13,9 +13,10 @@
"board": {
"board": "Πλακέτα{0}",
"boardConfigDialogTitle": "Επιλέξτε Άλλη Πλακέτα & Θύρα",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Πληροφορίες Πλακέτας",
"boards": "Πίνακες - Πλακέτες",
"configDialog1": "Επίλεξε και Πλακέτα και Θύρα αν θέλεις να ανεβάσεις ένα σχέδιο.",
"configDialog1": "Επίλεξε Πλακέτα και Θύρα αν θέλεις να ανεβάσεις ένα έργο.",
"configDialog2": "Αν επιλέξεις μονο Πλακέτα θα μπορείς να κάνεις μόνο μεταγγλώτιση, αλλά οχι να ανεβάσεις το σχέδιο.",
"couldNotFindPreviouslySelected": "Δεν έγινε εντοπισμός της προηγουμένως επιλεγμένης πλακέτας '{0}' στην εγκατεστημένη πλατφόρμα '{1}'. Παρακαλώ επίλεξε πάλι χειροκίνητα την πλακέτα που θέλεις να χρησιμοποιήσεις. Θέλεις να την επιλέξεις τώρα;",
"editBoardsConfig": "Πλακέτα και θύρα...",
@@ -31,10 +32,12 @@
"port": "Θύρα{0}",
"ports": "Θύρες",
"programmer": "Προγραμματιστής",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Επιλογή αργότερα",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"revertBoardsConfig": "Χρησιμοποιήστε '{0}' που ανακαλύφθηκε στο '{1}'",
"searchBoard": "Αναζήτηση πλακέτας",
"selectBoard": "Επιλογή Πλακέτας",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Παρακαλώ επίλεξε μια θύρα για εμφάνιση πληροφοριών πλακέτας.",
"showAllAvailablePorts": "Εμφανίζει όλες τις διαθέσιμες θύρες όταν είναι ενεργοποιημένο.",
"showAllPorts": "Εμφάνιση όλων των θυρών",
@@ -83,12 +86,12 @@
"updatingLibraries": "Ενημέρωση βιβλιοθηκών..."
},
"cli-error-parser": {
"keyboardError": "Το \"πληκτρολόγιο\" δεν βρέθηκε. Το σχέδιό σας περιλαμβάνει τη γραμμή '#include <Keyboard.h>';",
"mouseError": "Το 'Ποντίκι' δεν βρέθηκε. Περιλαμβάνει το σχέδιό σας τη γραμμή '#include <Mouse.h>'; "
"keyboardError": "Το \"πληκτρολόγιο\" δεν βρέθηκε. Το έργο σας περιλαμβάνει τη γραμμή '#include <Keyboard.h>';",
"mouseError": "Το 'Ποντίκι' δεν βρέθηκε. Περιλαμβάνει το έργο σας τη γραμμή '#include <Mouse.h>'; "
},
"cloud": {
"chooseSketchVisibility": "Επίλεξε την ορατότητα του Σχεδίου σου:",
"cloudSketchbook": "Σχέδια Cloud",
"chooseSketchVisibility": "Επιλέξτε την εμφάνιση του έργου σας:",
"cloudSketchbook": "Cloud Άλμπουμ έργων.",
"connected": "Συνδέθηκε",
"continue": "Συνέχεια",
"donePulling": "Τελείωσε το κατέβασμα '{0}'.",
@@ -109,8 +112,8 @@
"pullFirst": "Πρώτα πρέπει να τραβήξετε για να μπορέσετε να το ανεβάσετε στο Cloud.",
"pullSketch": "Τραβήξτε το σχέδιο",
"pullSketchMsg": "Αν τραβήξετε αυτό το Σχέδιο από το Cloud, θα αντικατασταθεί η τοπική του έκδοση. Είσαι σίγουρος ότι θέλεις να συνεχίσεις;",
"push": "Push",
"pushSketch": "Push Sketch",
"push": "Πιέστε",
"pushSketch": "Τραβήξτε το σχέδιο",
"pushSketchMsg": "Αυτό είναι ένα Δημόσιο Σχέδιο. Βεβαιωθείτε ότι οποιεσδήποτε ευαίσθητες πληροφορίες έχουν οριστεί στο φάκελο arduino_secrets.h. Μπορείτε να κάνετε ένα Σχέδιο ιδιωτικό από τον πίνακα Κοινή χρήση.",
"remote": "Απομακρυνσμένο",
"share": "Κοινοποίηση...",
@@ -126,16 +129,16 @@
"cloudSketch": {
"alreadyExists": "Υπάρχει ήδη το σχέδιο '{0}' στο Cloud ",
"creating": "Δημιουργία σχεδίου στο cloud '{0}'...",
"new": "Νέο σχέδιο Cloud ",
"notFound": "Could not pull the cloud sketch '{0}'. It does not exist.",
"pulling": "Synchronizing sketchbook, pulling '{0}'...",
"new": "Νέο έργο στο Cloud",
"notFound": "Δεν ήταν δυνατή η ανάκτηση του έργου'{0}'. από το could. Δεν υπάρχει.",
"pulling": "Συγχρονισμός βιβλιοθήκη έργων, τραβώντας '{0}'...",
"pushing": "Synchronizing sketchbook, pushing '{0}'...",
"renaming": "Μετονομασία σχεδίου cloud από '{0}' σε '{1}'...",
"renaming": "Μετονομασία έργου could από '{0}' σε '{1}'...",
"synchronizingSketchbook": "Synchronizing sketchbook..."
},
"common": {
"all": "Όλα",
"contributed": "Contributed",
"contributed": "Συνεισέφερε",
"installManually": "Χειροκίνητη Εγκατάσταση",
"later": "Αργότερα",
"noBoardSelected": "Δεν έχει επιλεχθεί πλακέτα",
@@ -143,16 +146,17 @@
"notConnected": "[μη συνδεμένο]",
"offlineIndicator": "Φαίνεται πως είστε εκτός σύνδεσης. Χωρίς σύνδεση στο Internet, το Arduino CLI ίσως να μη μπορεί να κάνει λήψη των απαιτούμενων πόρων και να υπάρξει δυσλειτουργία. Παρακαλώ συνδεθείτε στο Internet και επανεκκινήστε την εφαρμογή.",
"oldFormat": "Το '{0}' χρησιμοποιεί ακόμα το παλιό '.pde' στυλ. Θέλετε να αλλάξετε στην νέα κατάληξη '.ino';",
"partner": "Partner",
"partner": "Συνεργάτης",
"processing": "Επεξεργασία",
"recommended": "Recommended",
"recommended": "Συνιστάται",
"retired": "Παλιό ",
"selectManually": "Επιλέξτε Χειροκίνητα",
"selectedOn": "στο {0}",
"serialMonitor": "Παρακολούθηση Σειριακής",
"type": "Τύπος",
"unknown": "Άγνωστο",
"updateable": "Με δυνατότητα ενημέρωσης"
"updateable": "Με δυνατότητα ενημέρωσης",
"userAbort": "Ακύρωση χρήστη"
},
"compile": {
"error": "Σφάλμα μεταγλώττισης: {0}"
@@ -213,14 +217,13 @@
"debuggingNotSupported": "Δεν υποστιρίζεται αποσφαλμάτωση από '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Δεν έχει εγκατασταθεί πλατφόρμα για '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Βελτιστοποίηση για Αποσφαλμάτωση",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
"sketchIsNotCompiled": "Το έργο '{0}' πρέπει να επαληθευτεί πριν από την έναρξη μιας διαδικασίας αποσφαλμάτωσης. Παρακαλώ επαληθεύστε το σκίτσο και ξεκινήστε ξανά την αποσφαλμάτωση. Θέλετε να επαληθεύσετε το έργο τώρα;"
},
"developer": {
"clearBoardList": "Clear the Board List History",
"clearBoardsConfig": "Διαγράψτε την επιλογή πλακέτας και θύρας",
"dumpBoardList": "Dump the Board List"
"dumpBoardList": "Αδειάστε τη λίστα του Πίνακα"
},
"dialog": {
"dontAskAgain": "Μην με ξαναρωτήσεις"
@@ -250,7 +253,7 @@
"failedInstall": "Η εγκατάσταση απέτυχε. Παρακαλώ προσπαθήστε ξανά.",
"install": "Εγκατάσταση",
"installingFirmware": "Εγκατάσταση λογισμικού.",
"overwriteSketch": "Installation will overwrite the Sketch on the board.",
"overwriteSketch": "Η εγκατάσταση θα αντικαταστήσει το σχέδιο στον πίνακα.",
"selectBoard": "Επιλογή Πλακέτας",
"selectVersion": "Επιλέξτε έκδοση λογισμικού",
"successfullyInstalled": "Το λογισμικό εγκαταστάθηκε με επιτυχία.",
@@ -263,7 +266,7 @@
"gettingStarted": "Ξεκινώντας",
"keyword": "Πληκτρολογήστε μια λέξη-κλειδί",
"privacyPolicy": "Πολιτική Απορρήτου",
"reference": "Reference",
"reference": "Αναφορά",
"search": "Αναζήτηση στο Arduino.cc",
"troubleshooting": "Αντιμετώπιση προβλημάτων",
"visit": "Επίσκεψη Arduino.cc"
@@ -277,17 +280,17 @@
"errorCheckingForUpdates": "Σφάλμα κατά τον έλεγχο για ενημερώσεις του Arduino IDE.\n{0}",
"goToDownloadButton": "Μετάβαση στη λήψη",
"goToDownloadPage": "Υπάρχει διαθέσιμη ενημέρωση για το Arduino IDE, αλλά δεν μπορούμε να το κατεβάσουμε και να το εγκαταστήσουμε αυτόματα. Μεταβείτε στη σελίδα λήψης και κατεβάστε την πιο πρόσφατη έκδοση από εκεί. ",
"ideUpdaterDialog": "Software Update",
"ideUpdaterDialog": "Ενημέρωση λογισμικού",
"newVersionAvailable": "Μια νέα έκδοση του Arduino IDE ({0}) είναι διαθέσιμη για λήψη.",
"noUpdatesAvailable": "Δεν υπάρχουν διαθέσιμες πρόσφατες ενημερώσεις για το Arduino IDE",
"notNowButton": "Όχι τώρα",
"skipVersionButton": "Παράλειψη έκδοσης",
"updateAvailable": "Διαθέσιμη ενημέρωση",
"versionDownloaded": "Arduino IDE {0} has been downloaded."
"versionDownloaded": "Arduino IDE {0} έχει ληφθεί."
},
"installable": {
"libraryInstallFailed": "Failed to install library: '{0}{1}'.",
"platformInstallFailed": "Failed to install platform: '{0}{1}'."
"libraryInstallFailed": "Αποτυχία εγκατάστασης βιβλιοθήκης: '{0}{1}'.",
"platformInstallFailed": "Αποτυχία εγκατάστασης πλατφόρμας: '{0}{1}'."
},
"library": {
"addZip": "Προσθέστε μια βιβλιοθήκη μορφής .ZIP",
@@ -295,9 +298,9 @@
"contributedLibraries": "Συνεισφορά βιβλιοθηκών",
"include": "Συμπεριλάβετε βιβλιοθήκη",
"installAll": "Εγκατάσταση όλων",
"installLibraryDependencies": "Install library dependencies",
"installMissingDependencies": "Would you like to install all the missing dependencies?",
"installOneMissingDependency": "Would you like to install the missing dependency?",
"installLibraryDependencies": "Εγκαταστήστε τα στοιχεία της βιβλιοθήκης.",
"installMissingDependencies": "Θέλετε να εγκαταστήσετε όλα τα στοιχεία που λείπουν;",
"installOneMissingDependency": "Θέλετε να εγκαταστήσετε το στοιχείο που λείπει; ",
"installWithoutDependencies": "Install without dependencies",
"installedSuccessfully": "Επιτυχής εγκατάσταση Βιβλιοθήκης {0} :{1} ",
"libraryAlreadyExists": "Μια βιβλιοθήκη υπάρχει ήδη. Θέλετε να την αντικαταστήσετε;",
@@ -319,7 +322,7 @@
"dataProcessing": "Επεξεργασία δεδομένων",
"dataStorage": "Αποθήκευση δεδομένων",
"deviceControl": "Έλεγχος συσκευής",
"display": "Display",
"display": "Εμφάνιση",
"other": "Άλλα",
"sensors": "Αισθητήρες",
"signalInputOutput": "Είσοδος/Έξοδος Σήματος",
@@ -368,7 +371,8 @@
"cloud.pull.warn": "Αληθές αν οι χρήστες πρέπει προειδοποιηθούν πριν τραβηχτεί ενα σχέδιο σύννεφου. Προεπιλογή ως αληθές.",
"cloud.push.warn": "Αληθές αν οι χρήστες πρέπει προειδοποιηθούν πριν σπρωχθεί ενα σχέδιο σύννεφου. Προεπιλογή ως αληθές. ",
"cloud.pushpublic.warn": "Αληθές αν οι χρήστες πρέπει προειδοποιηθούν πριν σπρωχθεί ενα δημόσιο σχέδιο σύννεφου. Προεπιλογή ως αληθές. ",
"cloud.sketchSyncEndpoint": "The endpoint used to push and pull sketches from a backend. By default it points to Arduino Cloud API.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "Το σημείο που χρησιμοποιείται για την αποστολή και λήψη σκίτσων από ένα πίσω μέρος. Από προεπιλογή δείχνει στο Arduino Cloud API.",
"compile": "μεταγλώττιση",
"compile.experimental": "Σωστό αν το IDE πρέπει να χειρίζεται πολλαπλά σφάλματα μεταγλωττιστή. Λάθος από προεπιλογή",
"compile.revealRange": "Adjusts how compiler errors are revealed in the editor after a failed verify/upload. Possible values: 'auto': Scroll vertically as necessary and reveal a line. 'center': Scroll vertically as necessary and reveal a line centered vertically. 'top': Scroll vertically as necessary and reveal a line close to the top of the viewport, optimized for viewing a code definition. 'centerIfOutsideViewport': Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport. The default value is '{0}'.",
@@ -390,7 +394,7 @@
"language.realTimeDiagnostics": "Εάν ισχύει, ο διακομιστής γλώσσας παρέχει διαγνωστικά σε πραγματικό χρόνο όταν πληκτρολογείτε στον επεξεργαστή. Είναι ψευδές από προεπιλογή.",
"manualProxy": "Μη αυτόματη διαμόρφωση proxy διακομιστή μεσολάβησης",
"monitor": {
"dockPanel": "The area of the application shell where the _{0}_ widget will reside. It is either \"bottom\" or \"right\". It defaults to \"{1}\"."
"dockPanel": "Η περιοχή του περιβλήματος της εφαρμογής όπου θα βρίσκεται το γραφικό στοιχείο _{0}_. Είναι είτε \"κάτω\" είτε \"δεξιά\". Προεπιλέγεται σε \"{1}\"."
},
"network": "Δίκτυο",
"newSketchbookLocation": "Επιλογή νέας τοποθεσίας σχεδίων",
@@ -411,7 +415,9 @@
"survey.notification": "Σωστό εάν οι χρήστες πρέπει να ειδοποιούνται εάν υπάρχει διαθέσιμη έρευνα. Αληθές από προεπιλογή.",
"unofficialBoardSupport": "Κλικ για λίστα Συνδέσμων ανεπίσημης υποστήριξης πλακετών",
"upload": "ανέβασμα",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "Αληθές για λεπτομερή έξοδο ανεβάσματος. Ψευδές απο προεπιλογή.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Επιβεβαίωση κώδικα μετά το ανέβασμα",
"window.autoScale": "Αληθές αν η διεπαφή χρήστη κλιμακλωνεται αυτόματα μαζί με το μέγεθος γραμματοσειράς.",
"window.zoomLevel": {
@@ -454,7 +460,7 @@
"invalidSketchName": "Το όνομα πρέπει να ξεκινά με γράμμα, αριθμό ή κάτω παύλα, ακολουθούμενα από γράμματα, αριθμούς, παύλες, τελείες και κάτω παύλες. Το μέγιστο μήκος είναι 63 χαρακτήρες.",
"moving": "Μετακίνηση",
"movingMsg": "Το αρχείο \"{0}\" πρέπει να βρίσκεται μέσα σε έναν φάκελο σχεδίου με το όνομα \"{1}\". \nΔημιουργία φακέλου, μεταφορά του αρχείου και συνέχεια;",
"new": "Νέο Σχέδιο ",
"new": "Νέο έργο",
"noTrailingPeriod": "Ένα όνομα αρχείου δεν μπορεί να τελειώνει με τελεία",
"openFolder": "Άνοιγμα φακέλου",
"openRecent": "Άνοιγμα πρόσφατου",
@@ -541,8 +547,8 @@
"expand": "Επαναφορά"
},
"workspace": {
"deleteCloudSketch": "Το σχέδιο του cloud '{0}' θα διαγραφεί οριστικά από τους διακομιστές Arduino και τις τοπικές κρυφές μνήμες. Αυτή η ενέργεια είναι μη αναστρέψιμη. Θέλετε να διαγράψετε το τρέχον σχέδιο;",
"deleteCurrentSketch": "Το σχέδιο '{0}' θα διαγραφεί οριστικά. Αυτή η ενέργεια είναι μη αναστρέψιμη. Θέλετε να διαγράψετε το τρέχον σχέδιο; ",
"deleteCloudSketch": "Το έργο του cloud '{0}' θα διαγραφεί οριστικά από τους διακομιστές Arduino και τις τοπικές κρυφές μνήμες. Αυτή η ενέργεια είναι μη αναστρέψιμη. Θέλετε να διαγράψετε το τρέχον έργο;",
"deleteCurrentSketch": "Το έργο '{0}' θα διαγραφεί μόνιμα. Αυτή η ενέργεια είναι ανεπανόρθωτη. Θέλετε να διαγράψετε το τρέχον έργο;",
"fileNewName": "Όνομα για το νεό αρχείο",
"invalidExtension": ". {0}δεν είναι έγκυρη επέκταση",
"newFileName": "Νέο όνομα για το αρχείο"

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Board{0}",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Board Info",
"boards": "boards",
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
@@ -31,10 +32,12 @@
"port": "Port{0}",
"ports": "ports",
"programmer": "Programmer",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Reselect later",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Select Board",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Please select a port to obtain board info.",
"showAllAvailablePorts": "Shows all available ports when enabled",
"showAllPorts": "Show all ports",
@@ -272,6 +275,9 @@
"checkForUpdates": "Check for Arduino IDE Updates",
"closeAndInstallButton": "Close and Install",
"closeToInstallNotice": "Close the software and install the update on your machine.",
"donateLinkIconTitle": "open donation page",
"donateLinkText": "donate to support us",
"donateText": "Open source is love, {0}",
"downloadButton": "Download",
"downloadingNotice": "Downloading the latest version of the Arduino IDE.",
"errorCheckingForUpdates": "Error while checking for Arduino IDE updates.\n{0}",
@@ -368,6 +374,7 @@
"cloud.pull.warn": "True if users should be warned before pulling a cloud sketch. Defaults to true.",
"cloud.push.warn": "True if users should be warned before pushing a cloud sketch. Defaults to true.",
"cloud.pushpublic.warn": "True if users should be warned before pushing a public sketch to the cloud. Defaults to true.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "The endpoint used to push and pull sketches from a backend. By default it points to Arduino Cloud API.",
"compile": "compile",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +418,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
"upload": "upload",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True for verbose upload output. False by default.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verify code after upload",
"window.autoScale": "True if the user interface automatically scales with the font size.",
"window.zoomLevel": {
@@ -455,7 +464,6 @@
"moving": "Moving",
"movingMsg": "The file \"{0}\" needs to be inside a sketch folder named \"{1}\".\nCreate this folder, move the file, and continue?",
"new": "New Sketch",
"newFolder": "New Folder",
"noTrailingPeriod": "A filename cannot end with a dot",
"openFolder": "Open Folder",
"openRecent": "Open Recent",
@@ -520,6 +528,14 @@
"renameSketchFolderMessage": "The sketch '{0}' cannot be used. {1} To get rid of this message, rename the sketch. Do you want to rename the sketch now?",
"renameSketchFolderTitle": "Invalid sketch name"
},
"versionWelcome": {
"cancelButton": "Maybe later",
"donateButton": "Donate now",
"donateMessage": "Arduino is committed to keeping software free and open-source for everyone. Your donation helps us develop new features, improve libraries, and support millions of users worldwide.",
"donateMessage2": "Please consider supporting our work on the free open source Arduino IDE.",
"title": "Welcome to a new version of the Arduino IDE!",
"titleWithVersion": "Welcome to the new Arduino IDE {0}!"
},
"workspace": {
"alreadyExists": "'{0}' already exists."
}
@@ -546,8 +562,7 @@
"deleteCurrentSketch": "The sketch '{0}' will be permanently deleted. This action is irreversible. Do you want to delete the current sketch?",
"fileNewName": "Name for new file",
"invalidExtension": ".{0} is not a valid extension",
"newFileName": "New name for file",
"newFolderPlaceholder": "Folder Name"
"newFileName": "New name for file"
}
}
}

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Placa{0}",
"boardConfigDialogTitle": "Seleccionar Otra Placa y Puerto",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Información de la placa",
"boards": "Placas",
"configDialog1": "Selecciona tanto una placa como un puerto si quieres cargar un sketch.",
@@ -31,10 +32,12 @@
"port": "Puerto {0}",
"ports": "puertos",
"programmer": "Programador",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Vuelve a seleccionar más tarde",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Buscar placa",
"selectBoard": "Seleccionar Placa",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Por favor, seleccione un puerto para obtener información sobre la placa.",
"showAllAvailablePorts": "Muestra todos los puertos disponibles cuando está activado",
"showAllPorts": "Mostrar todos los puertos",
@@ -78,9 +81,9 @@
"installAll": "Instalar todo",
"noUpdates": "No se han encontrado actualizaciones recientes disponibles",
"promptUpdateBoards": "Actualizaciones disponibles para alguna de tus placas",
"promptUpdateLibraries": "Actualizaciones disponibles para algunas de tus librerías",
"promptUpdateLibraries": "Actualizaciones disponibles para algunas de tus bibliotecas.",
"updatingBoards": "Actualizando placas...",
"updatingLibraries": "Actualizando librerías..."
"updatingLibraries": "Actualizando bibliotecas..."
},
"cli-error-parser": {
"keyboardError": "'Keyboard' no encontrado. ¿Tiene tu proyecto incluida la linea '#include <Keyboard.h>'?",
@@ -152,7 +155,8 @@
"serialMonitor": "Monitor Serie",
"type": "Tipo",
"unknown": "Desconocido",
"updateable": "Actualizable"
"updateable": "Actualizable",
"userAbort": "User abort"
},
"compile": {
"error": "Error de compilación: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "La depuración no está soportada por '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "La plataforma no está instalada para '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Optimizar para depuración",
"sketchIsNotCompiled": "El sketch '{0}' debe ser verificado antes de iniciar una sesión de depuración. Por favor, verifique el sketch e inicia la depuración nuevamente. ¿Deseas verificar el sketch ahora?"
},
@@ -361,13 +364,14 @@
"automatic": "Automático",
"board.certificates": "Listado de certificados que pueden ser cargados en las placas",
"browse": "Explorar",
"checkForUpdate": "Recibe notificaciones sobre actualizaciones disponibles del IDE, placas y librerías. Requiere reiniciar el IDE despues de hacer cambios. Por defecto está habilitado.",
"checkForUpdate": "Recibe notificaciones sobre actualizaciones disponibles del IDE, placas y bibliotecas. Requiere reiniciar el IDE despues de hacer cambios. Por defecto está habilitado.",
"choose": "Elija",
"cli.daemonDebug": "Habilitar logueo de depuración de las llamadas gRPC al Arduino CLI. Requiere un reinicio del IDE para tener efecto. Deshabilitado por defecto.",
"cloud.enabled": "Verdadero si las funciones de sincronización del sketch están activadas. Verdadero por defecto.",
"cloud.pull.warn": "Verdadero si se debe advertir a los usuarios antes de sacar un boceto de la nube. El valor predeterminado es verdadero.",
"cloud.push.warn": "Verdadero si se debe advertir a los usuarios antes de enviar un boceto a la nube. El valor predeterminado es verdadero.",
"cloud.pushpublic.warn": "Verdadero si se debe advertir a los usuarios antes de enviar un boceto público a la nube. El valor predeterminado es verdadero.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "El punto final utilizado para empujar y extraer bocetos de un backend. Por defecto, apunta a la API de Arduino Cloud.",
"compile": "Compliar",
"compile.experimental": "True si el IDE debe manejar multiples errores del compilador. False por defecto",
@@ -411,7 +415,9 @@
"survey.notification": "Verdadero si usuarios deberían ser notificados cuando una encuesta esté disponible. Verdadero es predeterminado.",
"unofficialBoardSupport": "Pulsa para listar las URLs de las tarjetas no oficiales",
"upload": "Carga",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "Verdadero para una salida verbosa de la carga. Falso por defecto.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verificar el código después de cargarlo",
"window.autoScale": "Verdadero si la interfaz de usuario se escala automáticamente con el tamaño de la fuente.",
"window.zoomLevel": {
@@ -496,11 +502,11 @@
"user": "{0} (user)"
},
"title": {
"cloud": "Cloud"
"cloud": "Nube"
},
"updateIndexes": {
"updateIndexes": "Actualizar indices",
"updateLibraryIndex": "Actualizar Indice de librerías",
"updateIndexes": "Actualizar índices",
"updateLibraryIndex": "Actualizar índice de bibliotecas",
"updatePackageIndex": "Actualizar índice de paquete"
},
"upload": {

View File

@@ -13,6 +13,7 @@
"board": {
"board": "{0} plaka",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Plakaren informazioa",
"boards": "boards",
"configDialog1": "Hautatu plaka bat eta ataka bat programa bat kargatu nahi baduzu.",
@@ -31,10 +32,12 @@
"port": "{0} ataka",
"ports": "ports",
"programmer": "Programatzailea",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Hautatu berriz geroago",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Hautatu plaka",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Hautatu ataka bat plakaren informazioa eskuratzeko.",
"showAllAvailablePorts": "Gaituta dagoenean erabilgarri dauden ataka guztiak erakusten ditu",
"showAllPorts": "Show all ports",
@@ -152,7 +155,8 @@
"serialMonitor": "Serieko monitorea",
"type": "Type",
"unknown": "Ezezaguna",
"updateable": "Updatable"
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Konpilazio-errorea: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "Ez dauka arazketarako euskarririk: '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Plataforma ez dago instalatuta honentzat: '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Optimizatu arazketarako",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "Egia bada erabiltzaileek abisua jasoko dute programa bat hodeitik kargatu aurretik. Lehenetsia egia da.",
"cloud.push.warn": "Egia bada erabiltzaileek abisua jasoko dute programa bat hodeian gorde aurretik. Lehenetsia egia da.",
"cloud.pushpublic.warn": "Egia bada erabiltzaileek abisua jasoko dute programa publiko bat hodeian gorde aurretik. Lehenetsia egia da.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "Zerbitzari batean programak gorde eta kargatzeko amaiera-puntua. Lehenetsia Arduino Cloud API da.",
"compile": "konpilazioa",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +415,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Egin klik ofizialak ez diren plaken laguntza-URL zerrenda ikusteko",
"upload": "karga",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "Egia kargaren irteera xehatua izateko. Lehenetsia Gezurra.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Egiaztatu kodea kargatu ondoren",
"window.autoScale": "Egia erabiltzaile interfazea letra-tamainarekin automatikoki eskalatzen bada.",
"window.zoomLevel": {

View File

@@ -13,6 +13,7 @@
"board": {
"board": "بورد {0}",
"boardConfigDialogTitle": "انتخاب یک بورد و پورت دیگر",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "مشخصات برد",
"boards": "بردها",
"configDialog1": "اگر می‌خواهید طرحی را آپلود کنید، هم یک تابلو و هم یک پورت انتخاب کنید.",
@@ -31,10 +32,12 @@
"port": "پورت {0}",
"ports": "پورت ها",
"programmer": "Programmer",
"reloadBoardData": "Reload Board Data",
"reselectLater": "بعدا انتخاب کنید",
"revertBoardsConfig": "استفاده از «{0}» پیدا شده در «{1}»",
"searchBoard": "جستجوی بورد",
"selectBoard": "انتخاب برد",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "لطفاً یک پورت را برای به دست آوردن اطلاعات هیئت مدیره انتخاب کنید.",
"showAllAvailablePorts": "نمایش تمام پورت های موجود در صورت فعال بودن",
"showAllPorts": "نمایش تمام پورت ها",
@@ -152,7 +155,8 @@
"serialMonitor": "نمایشگر ترمینال سریال",
"type": "نوع",
"unknown": "نامعلوم",
"updateable": "قابل به روز رسانی"
"updateable": "قابل به روز رسانی",
"userAbort": "User abort"
},
"compile": {
"error": "خطای کامپایل : {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "رفع خطا توسط {0} پشتیبانی نمی شود.",
"getDebugInfo": "در حال دریافت اطلاعات اشکال زدایی...",
"noPlatformInstalledFor": "دستگاه مورد نظر برای {0} نصب نشده است",
"noProgrammerSelectedFor": "برنامه‌نویسی برای \"{0}\" انتخاب نشده است.",
"optimizeForDebugging": "بهینه کردن برای رفع خطا",
"sketchIsNotCompiled": "طرح «{0}» باید قبل از شروع برای اشکال‌زدایی بازبینی شود. لطفاً طرح را بازبینی کنید و دوباره اشکال زدایی را شروع کنید. آیا می خواهید اکنون طرح را تأیید کنید؟"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "اگر هشدار دادن به کاربران قبل از کشیدن یک طرح ابری درست می باشد ، پیش فرض ها صحیح است.",
"cloud.push.warn": "اگر هشدار دادن به کاربران قبل از ارسال یک طرح ابری درست است پیش فرض ها درست می باشد",
"cloud.pushpublic.warn": "اگر هشدار دادن به کاربران قبل از ارسال یک طرح عمومی به فضای درست می باشد پیش فرض ها درست است.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "نقطه ای برای ارسال و دریافت طرح ها استفاده می شود . به طور پیش فرض به رابط ابر آردوینو استفاده می کند.",
"compile": "کامپایل",
"compile.experimental": "درست است اگر IDE باید چندین خطای کامپایلر را مدیریت کند. به طور پیش فرض نادرست است",
@@ -411,7 +415,9 @@
"survey.notification": "درست است اگر در صورت وجود نظرسنجی به کاربران اطلاع داده شود. به طور پیش فرض درست است.",
"unofficialBoardSupport": "برای لیستی از آدرس های اینترنتی پشتیبانی هیئت مدیره غیررسمی کلیک کنید",
"upload": "بارگذاری",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "برای خروجی آپلود پرمخاطب درست است. به طور پیش فرض نادرست است.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "تائید کد بعد از بارگذاری",
"window.autoScale": "اگر رابط کاربری به طور خودکار با اندازه فونت تغییر کند درست است.",
"window.zoomLevel": {

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Board{0}",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Board Info",
"boards": "boards",
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
@@ -31,10 +32,12 @@
"port": "Port{0}",
"ports": "ports",
"programmer": "Programmer",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Reselect later",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Pumili ng board",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Please select a port to obtain board info.",
"showAllAvailablePorts": "Shows all available ports when enabled",
"showAllPorts": "Show all ports",
@@ -152,7 +155,8 @@
"serialMonitor": "Serial Monitor",
"type": "Type",
"unknown": "Hindi alam",
"updateable": "Updatable"
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Compilation error: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "Ang debugging ay hindi suportado ng '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Ang platform ay hindi naka-install para sa '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Pinahusay para sa Debugging",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "True if users should be warned before pulling a cloud sketch. Defaults to true.",
"cloud.push.warn": "True if users should be warned before pushing a cloud sketch. Defaults to true.",
"cloud.pushpublic.warn": "True if users should be warned before pushing a public sketch to the cloud. Defaults to true.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "The endpoint used to push and pull sketches from a backend. By default it points to Arduino Cloud API.",
"compile": "compile",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +415,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
"upload": "upload",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True para sa verbose upload output. Ito ay naka-false by default.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verify code after upload",
"window.autoScale": "True kung nais mong awtomatikong mag-adjust ang scaling ng user interface depende sa laki ng font o letra sa screen.",
"window.zoomLevel": {

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Carte{0}",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Information de la carte",
"boards": "boards",
"configDialog1": "Sélectionnez une carte et un port si vous souhaitez téléverser un croquis.",
@@ -31,10 +32,12 @@
"port": "Port{0}",
"ports": "ports",
"programmer": "Programmeur",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Re-sélectionner plus tard",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Selectionner une carte",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Merci de choisir un port pour obtenir des informations sur la carte.",
"showAllAvailablePorts": "Affiche les ports disponibles quand activer.",
"showAllPorts": "Show all ports",
@@ -152,7 +155,8 @@
"serialMonitor": "Moniteur série",
"type": "Type",
"unknown": "Inconnu",
"updateable": "Updatable"
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Erreur de compilation : {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "Le débogage n'est pas supporté pour '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "La plateforme n'est pas installée pour '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Optimisé pour le déboggage.",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "Vrai si les utilisateurs devrait être averti avant de pull un croquis sur le cloud. Par défaut, la valeur est vrai.",
"cloud.push.warn": "Vrai, si les utilisateurs devrait être averti avant de push un croquis sur le cloud. Par défaut, la valeur est vrai.",
"cloud.pushpublic.warn": "Vrai si les utilisateurs devrait être avertit avant de publier un croquis public sur le cloud. Vrai par défaut.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "L'endpoint est utilisé pour pousser et tirer des croquis à partir du backend. Par défault, il pointe vers l'Arduino Cloud API.",
"compile": "compiler",
"compile.experimental": "Vrai si l'IDE doit gérer les multiples erreurs du compilateur. Faux par défaut",
@@ -411,7 +415,9 @@
"survey.notification": "Vrai si les utilisateurs doivent être avertis si une enquête est disponible. Vrai par défaut.",
"unofficialBoardSupport": "Cliquer pour la liste non-officielle des URLs des support de cartes",
"upload": "téléverser",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "Vrai si le téléchargement en mode verbose. Faux par défaut.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Vérifier le code après le téléversement",
"window.autoScale": "Vrai si l'interface utilisateur s'ajuste avec la taille de la police.",
"window.zoomLevel": {

View File

@@ -13,6 +13,7 @@
"board": {
"board": "לוח{0}",
"boardConfigDialogTitle": "יש לבחור לוח ופורט אחר",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "פרטי הלוח",
"boards": "boards",
"configDialog1": "נא לבחור סוג לוח ופורט כדי להעלות את הסקיצה.",
@@ -31,10 +32,12 @@
"port": "פורט{0}",
"ports": "ports",
"programmer": "תכנת",
"reloadBoardData": "Reload Board Data",
"reselectLater": "בחר מחדש מאוחר יותר",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "חפש לוח",
"selectBoard": "בחר לוח",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "אנא בחר פורט לקבלת מידע אודותיו.",
"showAllAvailablePorts": "הצג את כל הפורטים הזמינים כשמופעל",
"showAllPorts": "Show all ports",
@@ -152,7 +155,8 @@
"serialMonitor": "מוניטור סיריאלי",
"type": "סוג",
"unknown": "לא ידוע",
"updateable": "ניתן לעדכון"
"updateable": "ניתן לעדכון",
"userAbort": "User abort"
},
"compile": {
"error": "שגיאת קומפילציה: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "דיבאג לא נתמך על ידי '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "פלטפורמה אינה מותקנת עבור ׳{0}׳",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "אופטימיזציה לדיבאג",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "True if users should be warned before pulling a cloud sketch. Defaults to true.",
"cloud.push.warn": "True if users should be warned before pushing a cloud sketch. Defaults to true.",
"cloud.pushpublic.warn": "True if users should be warned before pushing a public sketch to the cloud. Defaults to true.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "The endpoint used to push and pull sketches from a backend. By default it points to Arduino Cloud API.",
"compile": "קומפילציה",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +415,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
"upload": "upload",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True for verbose upload output. False by default.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verify code after upload",
"window.autoScale": "True if the user interface automatically scales with the font size.",
"window.zoomLevel": {

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Alaplap {0}",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Alaplapi információk",
"boards": "boards",
"configDialog1": "Válassz ki egy alaplapot és egy portot is - csak ekkor lehetséges a feltöltés. ",
@@ -31,10 +32,12 @@
"port": "Port {0}",
"ports": "ports",
"programmer": "Programozó",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Később újra válaszd ki",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Alaplap választás",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Válassz egy portot az alaplap információinak megtekintéséhez. ",
"showAllAvailablePorts": "Elérhető portok mutatása - ha engedélyezett",
"showAllPorts": "Show all ports",
@@ -152,7 +155,8 @@
"serialMonitor": "Soros monitor",
"type": "Type",
"unknown": "ismeretlen",
"updateable": "Updatable"
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Összeállítási hiba: {0} "
@@ -213,7 +217,6 @@
"debuggingNotSupported": "A hibakeresést a '{0}' nem támogatja ",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "A platform nincs telepítve a következőhöz: „{0}” ",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Optimalizálás hibakereséséhez",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "Kipipálva: figyelmeztetés megjelenítése a vázlat/sketch felhőből letöltése előtt. Alapértelmezés szerint: kipipálva.",
"cloud.push.warn": "Kipipálva: figyelmeztetés megjelenítése a vázlat/sketch felhőből való letöltése előtt. Alapértelmezés: kipipálva. ",
"cloud.pushpublic.warn": "Kipipálva: figyelmeztetés megjelenítése a nyilvános vázlat/sketch felhőbe küldése előtt. Alapértelmezés szerint: kipipálva.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "A végpont/endpoint a vázlatok/sketch-ek háttéből történő letöltésére illetve publikálására szolgál. Alapértelmezés szerint az Arduino Cloud API-ra mutat. ",
"compile": "fordítás",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +415,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Kattints ide a nem hivatalos alaplapok fordítási URL-jeinek listájához ",
"upload": "feltöltés",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "Kipipálva: a részletes feltöltési üzenetek kiírása a képernyőre. Alapértelmezés szerint hamis/nincs kipipálva.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Kód ellenőrzése feltöltés után",
"window.autoScale": "Kipipálva, ha a felhasználói felület automatikusan méreteződik a betűmérettel együtt. ",
"window.zoomLevel": {

557
i18n/hy.json Normal file
View File

@@ -0,0 +1,557 @@
{
"arduino": {
"about": {
"detail": "Version: {0}\nDate: {1}{2}\nCLI Version: {3}\n\n{4}",
"label": "About {0}"
},
"account": {
"goToCloudEditor": "Go to Cloud Editor",
"goToIoTCloud": "Go to IoT Cloud",
"goToProfile": "Go to Profile",
"menuTitle": "Arduino Cloud"
},
"board": {
"board": "Board{0}",
"boardConfigDialogTitle": "Select Other Board and Port",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Board Info",
"boards": "boards",
"configDialog1": "Select both a Board and a Port if you want to upload a sketch.",
"configDialog2": "If you only select a Board you will be able to compile, but not to upload your sketch.",
"couldNotFindPreviouslySelected": "Could not find previously selected board '{0}' in installed platform '{1}'. Please manually reselect the board you want to use. Do you want to reselect it now?",
"editBoardsConfig": "Edit Board and Port...",
"getBoardInfo": "Get Board Info",
"inSketchbook": " (in Sketchbook)",
"installNow": "The \"{0} {1}\" core has to be installed for the currently selected \"{2}\" board. Do you want to install it now?",
"noBoardsFound": "No boards found for \"{0}\"",
"noNativeSerialPort": "Native serial port, can't obtain info.",
"noPortsDiscovered": "No ports discovered",
"nonSerialPort": "Non-serial port, can't obtain info.",
"openBoardsConfig": "Select other board and port…",
"pleasePickBoard": "Please pick a board connected to the port you have selected.",
"port": "Port{0}",
"ports": "ports",
"programmer": "Programmer",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Reselect later",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Search board",
"selectBoard": "Select Board",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Please select a port to obtain board info.",
"showAllAvailablePorts": "Shows all available ports when enabled",
"showAllPorts": "Show all ports",
"succesfullyInstalledPlatform": "Successfully installed platform {0}:{1}",
"succesfullyUninstalledPlatform": "Successfully uninstalled platform {0}:{1}",
"typeOfPorts": "{0} ports",
"unconfirmedBoard": "Unconfirmed board",
"unknownBoard": "Unknown board"
},
"boardsManager": "Boards Manager",
"boardsType": {
"arduinoCertified": "Arduino Certified"
},
"bootloader": {
"burnBootloader": "Burn Bootloader",
"burningBootloader": "Burning bootloader...",
"doneBurningBootloader": "Done burning bootloader."
},
"burnBootloader": {
"error": "Error while burning the bootloader: {0}"
},
"certificate": {
"addNew": "Add New",
"addURL": "Add URL to fetch SSL certificate",
"boardAtPort": "{0} at {1}",
"certificatesUploaded": "Certificates uploaded.",
"enterURL": "Enter URL",
"noSupportedBoardConnected": "No supported board connected",
"openContext": "Open context",
"remove": "Remove",
"selectBoard": "Select a board...",
"selectCertificateToUpload": "1. Select certificate to upload",
"selectDestinationBoardToUpload": "2. Select destination board and upload certificate",
"upload": "Upload",
"uploadFailed": "Upload failed. Please try again.",
"uploadRootCertificates": "Upload SSL Root Certificates",
"uploadingCertificates": "Uploading certificates."
},
"checkForUpdates": {
"checkForUpdates": "Check for Arduino Updates",
"installAll": "Install All",
"noUpdates": "There are no recent updates available.",
"promptUpdateBoards": "Updates are available for some of your boards.",
"promptUpdateLibraries": "Updates are available for some of your libraries.",
"updatingBoards": "Updating boards...",
"updatingLibraries": "Updating libraries..."
},
"cli-error-parser": {
"keyboardError": "'Keyboard' not found. Does your sketch include the line '#include <Keyboard.h>'?",
"mouseError": "'Mouse' not found. Does your sketch include the line '#include <Mouse.h>'?"
},
"cloud": {
"chooseSketchVisibility": "Choose visibility of your Sketch:",
"cloudSketchbook": "Cloud Sketchbook",
"connected": "Connected",
"continue": "Continue",
"donePulling": "Done pulling '{0}'.",
"donePushing": "Done pushing '{0}'.",
"embed": "Embed:",
"emptySketchbook": "Your Sketchbook is empty",
"goToCloud": "Go to Cloud",
"learnMore": "Learn more",
"link": "Link:",
"notYetPulled": "Cannot push to Cloud. It is not yet pulled.",
"offline": "Offline",
"openInCloudEditor": "Open in Cloud Editor",
"options": "Options...",
"privateVisibility": "Private. Only you can view the Sketch.",
"profilePicture": "Profile picture",
"publicVisibility": "Public. Anyone with the link can view the Sketch.",
"pull": "Pull",
"pullFirst": "You have to pull first to be able to push to the Cloud.",
"pullSketch": "Pull Sketch",
"pullSketchMsg": "Pulling this Sketch from the Cloud will overwrite its local version. Are you sure you want to continue?",
"push": "Push",
"pushSketch": "Push Sketch",
"pushSketchMsg": "This is a Public Sketch. Before pushing, make sure any sensitive information is defined in arduino_secrets.h files. You can make a Sketch private from the Share panel.",
"remote": "Remote",
"share": "Share...",
"shareSketch": "Share Sketch",
"showHideSketchbook": "Show/Hide Cloud Sketchbook",
"signIn": "SIGN IN",
"signInToCloud": "Sign in to Arduino Cloud",
"signOut": "Sign Out",
"sync": "Sync",
"syncEditSketches": "Sync and edit your Arduino Cloud Sketches",
"visitArduinoCloud": "Visit Arduino Cloud to create Cloud Sketches."
},
"cloudSketch": {
"alreadyExists": "Cloud sketch '{0}' already exists.",
"creating": "Creating cloud sketch '{0}'...",
"new": "New Cloud Sketch",
"notFound": "Could not pull the cloud sketch '{0}'. It does not exist.",
"pulling": "Synchronizing sketchbook, pulling '{0}'...",
"pushing": "Synchronizing sketchbook, pushing '{0}'...",
"renaming": "Renaming cloud sketch from '{0}' to '{1}'...",
"synchronizingSketchbook": "Synchronizing sketchbook..."
},
"common": {
"all": "All",
"contributed": "Contributed",
"installManually": "Install Manually",
"later": "Later",
"noBoardSelected": "No board selected",
"noSketchOpened": "No sketch opened",
"notConnected": "[not connected]",
"offlineIndicator": "You appear to be offline. Without an Internet connection, the Arduino CLI might not be able to download the required resources and could cause malfunction. Please connect to the Internet and restart the application.",
"oldFormat": "The '{0}' still uses the old `.pde` format. Do you want to switch to the new `.ino` extension?",
"partner": "Partner",
"processing": "Processing",
"recommended": "Recommended",
"retired": "Retired",
"selectManually": "Select Manually",
"selectedOn": "on {0}",
"serialMonitor": "Serial Monitor",
"type": "Type",
"unknown": "Unknown",
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Compilation error: {0}"
},
"component": {
"boardsIncluded": "Boards included in this package:",
"by": "by",
"clickToOpen": "Click to open in browser: {0}",
"filterSearch": "Filter your search...",
"install": "Install",
"installLatest": "Install Latest",
"installVersion": "Install {0}",
"installed": "{0} installed",
"moreInfo": "More info",
"otherVersions": "Other Versions",
"remove": "Remove",
"title": "{0} by {1}",
"uninstall": "Uninstall",
"uninstallMsg": "Do you want to uninstall {0}?",
"update": "Update"
},
"configuration": {
"cli": {
"inaccessibleDirectory": "Could not access the sketchbook location at '{0}': {1}"
}
},
"connectionStatus": {
"connectionLost": "Connection lost. Cloud sketch actions and updates won't be available."
},
"contributions": {
"addFile": "Add File",
"fileAdded": "One file added to the sketch.",
"plotter": {
"couldNotOpen": "Couldn't open serial plotter"
},
"replaceTitle": "Replace"
},
"core": {
"compilerWarnings": {
"all": "All",
"default": "Default",
"more": "More",
"none": "None"
}
},
"coreContribution": {
"copyError": "Copy error messages",
"noBoardSelected": "No board selected. Please select your Arduino board from the Tools > Board menu."
},
"createCloudCopy": "Push Sketch to Cloud",
"daemon": {
"restart": "Restart Daemon",
"start": "Start Daemon",
"stop": "Stop Daemon"
},
"debug": {
"debugWithMessage": "Debug - {0}",
"debuggingNotSupported": "Debugging is not supported by '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Platform is not installed for '{0}'",
"optimizeForDebugging": "Optimize for Debugging",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
"developer": {
"clearBoardList": "Clear the Board List History",
"clearBoardsConfig": "Clear the Board and Port Selection",
"dumpBoardList": "Dump the Board List"
},
"dialog": {
"dontAskAgain": "Don't ask again"
},
"editor": {
"autoFormat": "Auto Format",
"commentUncomment": "Comment/Uncomment",
"copyForForum": "Copy for Forum (Markdown)",
"decreaseFontSize": "Decrease Font Size",
"decreaseIndent": "Decrease Indent",
"increaseFontSize": "Increase Font Size",
"increaseIndent": "Increase Indent",
"nextError": "Next Error",
"previousError": "Previous Error",
"revealError": "Reveal Error"
},
"examples": {
"builtInExamples": "Built-in examples",
"couldNotInitializeExamples": "Could not initialize built-in examples.",
"customLibrary": "Examples from Custom Libraries",
"for": "Examples for {0}",
"forAny": "Examples for any board",
"menu": "Examples"
},
"firmware": {
"checkUpdates": "Check Updates",
"failedInstall": "Installation failed. Please try again.",
"install": "Install",
"installingFirmware": "Installing firmware.",
"overwriteSketch": "Installation will overwrite the Sketch on the board.",
"selectBoard": "Select Board",
"selectVersion": "Select firmware version",
"successfullyInstalled": "Firmware successfully installed.",
"updater": "Firmware Updater"
},
"help": {
"environment": "Environment",
"faq": "Frequently Asked Questions",
"findInReference": "Find in Reference",
"gettingStarted": "Getting Started",
"keyword": "Type a keyword",
"privacyPolicy": "Privacy Policy",
"reference": "Reference",
"search": "Search on Arduino.cc",
"troubleshooting": "Troubleshooting",
"visit": "Visit Arduino.cc"
},
"ide-updater": {
"checkForUpdates": "Check for Arduino IDE Updates",
"closeAndInstallButton": "Close and Install",
"closeToInstallNotice": "Close the software and install the update on your machine.",
"downloadButton": "Download",
"downloadingNotice": "Downloading the latest version of the Arduino IDE.",
"errorCheckingForUpdates": "Error while checking for Arduino IDE updates.\n{0}",
"goToDownloadButton": "Go To Download",
"goToDownloadPage": "An update for the Arduino IDE is available, but we're not able to download and install it automatically. Please go to the download page and download the latest version from there.",
"ideUpdaterDialog": "Software Update",
"newVersionAvailable": "A new version of Arduino IDE ({0}) is available for download.",
"noUpdatesAvailable": "There are no recent updates available for the Arduino IDE",
"notNowButton": "Not now",
"skipVersionButton": "Skip Version",
"updateAvailable": "Update Available",
"versionDownloaded": "Arduino IDE {0} has been downloaded."
},
"installable": {
"libraryInstallFailed": "Failed to install library: '{0}{1}'.",
"platformInstallFailed": "Failed to install platform: '{0}{1}'."
},
"library": {
"addZip": "Add .ZIP Library...",
"arduinoLibraries": "Arduino libraries",
"contributedLibraries": "Contributed libraries",
"include": "Include Library",
"installAll": "Install All",
"installLibraryDependencies": "Install library dependencies",
"installMissingDependencies": "Would you like to install all the missing dependencies?",
"installOneMissingDependency": "Would you like to install the missing dependency?",
"installWithoutDependencies": "Install without dependencies",
"installedSuccessfully": "Successfully installed library {0}:{1}",
"libraryAlreadyExists": "A library already exists. Do you want to overwrite it?",
"manageLibraries": "Manage Libraries...",
"namedLibraryAlreadyExists": "A library folder named {0} already exists. Do you want to overwrite it?",
"needsMultipleDependencies": "The library <b>{0}:{1}</b> needs some other dependencies currently not installed:",
"needsOneDependency": "The library <b>{0}:{1}</b> needs another dependency currently not installed:",
"overwriteExistingLibrary": "Do you want to overwrite the existing library?",
"successfullyInstalledZipLibrary": "Successfully installed library from {0} archive",
"title": "Library Manager",
"uninstalledSuccessfully": "Successfully uninstalled library {0}:{1}",
"zipLibrary": "Library"
},
"librarySearchProperty": {
"topic": "Topic"
},
"libraryTopic": {
"communication": "Communication",
"dataProcessing": "Data Processing",
"dataStorage": "Data Storage",
"deviceControl": "Device Control",
"display": "Display",
"other": "Other",
"sensors": "Sensors",
"signalInputOutput": "Signal Input/Output",
"timing": "Timing",
"uncategorized": "Uncategorized"
},
"libraryType": {
"installed": "Installed"
},
"menu": {
"advanced": "Advanced",
"sketch": "Sketch",
"tools": "Tools"
},
"monitor": {
"alreadyConnectedError": "Could not connect to {0} {1} port. Already connected.",
"baudRate": "{0} baud",
"connectionFailedError": "Could not connect to {0} {1} port.",
"connectionFailedErrorWithDetails": "{0} Could not connect to {1} {2} port.",
"connectionTimeout": "Timeout. The IDE has not received the 'success' message from the monitor after successfully connecting to it",
"missingConfigurationError": "Could not connect to {0} {1} port. The monitor configuration is missing.",
"notConnectedError": "Not connected to {0} {1} port.",
"unableToCloseWebSocket": "Unable to close websocket",
"unableToConnectToWebSocket": "Unable to connect to websocket"
},
"newCloudSketch": {
"newSketchTitle": "Name of the new Cloud Sketch"
},
"portProtocol": {
"network": "Network",
"serial": "Serial"
},
"preferences": {
"additionalManagerURLs": "Additional Boards Manager URLs",
"auth.audience": "The OAuth2 audience.",
"auth.clientID": "The OAuth2 client ID.",
"auth.domain": "The OAuth2 domain.",
"auth.registerUri": "The URI used to register a new user.",
"automatic": "Automatic",
"board.certificates": "List of certificates that can be uploaded to boards",
"browse": "Browse",
"checkForUpdate": "Receive notifications of available updates for the IDE, boards, and libraries. Requires an IDE restart after change. It's true by default.",
"choose": "Choose",
"cli.daemonDebug": "Enable debug logging of the gRPC calls to the Arduino CLI. A restart of the IDE is needed for this setting to take effect. It's false by default.",
"cloud.enabled": "True if the sketch sync functions are enabled. Defaults to true.",
"cloud.pull.warn": "True if users should be warned before pulling a cloud sketch. Defaults to true.",
"cloud.push.warn": "True if users should be warned before pushing a cloud sketch. Defaults to true.",
"cloud.pushpublic.warn": "True if users should be warned before pushing a public sketch to the cloud. Defaults to true.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "The endpoint used to push and pull sketches from a backend. By default it points to Arduino Cloud API.",
"compile": "compile",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
"compile.revealRange": "Adjusts how compiler errors are revealed in the editor after a failed verify/upload. Possible values: 'auto': Scroll vertically as necessary and reveal a line. 'center': Scroll vertically as necessary and reveal a line centered vertically. 'top': Scroll vertically as necessary and reveal a line close to the top of the viewport, optimized for viewing a code definition. 'centerIfOutsideViewport': Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport. The default value is '{0}'.",
"compile.verbose": "True for verbose compile output. False by default",
"compile.warnings": "Tells gcc which warning level to use. It's 'None' by default",
"compilerWarnings": "Compiler warnings",
"editorFontSize": "Editor font size",
"editorQuickSuggestions": "Editor Quick Suggestions",
"enterAdditionalURLs": "Enter additional URLs, one for each row",
"files.inside.sketches": "Show files inside Sketches",
"ide.updateBaseUrl": "The base URL where to download updates from. Defaults to 'https://downloads.arduino.cc/arduino-ide'",
"ide.updateChannel": "Release channel to get updated from. 'stable' is the stable release, 'nightly' is the latest development build.",
"interfaceScale": "Interface scale",
"invalid.editorFontSize": "Invalid editor font size. It must be a positive integer.",
"invalid.sketchbook.location": "Invalid sketchbook location: {0}",
"invalid.theme": "Invalid theme.",
"language.asyncWorkers": "Number of async workers used by the Arduino Language Server (clangd). Background index also uses this many workers. The minimum value is 0, and the maximum is 8. When it is 0, the language server uses all available cores. The default value is 0.",
"language.log": "True if the Arduino Language Server should generate log files into the sketch folder. Otherwise, false. It's false by default.",
"language.realTimeDiagnostics": "If true, the language server provides real-time diagnostics when typing in the editor. It's false by default.",
"manualProxy": "Manual proxy configuration",
"monitor": {
"dockPanel": "The area of the application shell where the _{0}_ widget will reside. It is either \"bottom\" or \"right\". It defaults to \"{1}\"."
},
"network": "Network",
"newSketchbookLocation": "Select new sketchbook location",
"noCliConfig": "Could not load the CLI configuration",
"noProxy": "No proxy",
"proxySettings": {
"hostname": "Host name",
"password": "Password",
"port": "Port number",
"username": "Username"
},
"showVerbose": "Show verbose output during",
"sketch": {
"inoBlueprint": "Absolute filesystem path to the default `.ino` blueprint file. If specified, the content of the blueprint file will be used for every new sketch created by the IDE. The sketches will be generated with the default Arduino content if not specified. Unaccessible blueprint files are ignored. **A restart of the IDE is needed** for this setting to take effect."
},
"sketchbook.location": "Sketchbook location",
"sketchbook.showAllFiles": "True to show all sketch files inside the sketch. It is false by default.",
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
"upload": "upload",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True for verbose upload output. False by default.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verify code after upload",
"window.autoScale": "True if the user interface automatically scales with the font size.",
"window.zoomLevel": {
"deprecationMessage": "Deprecated. Use 'window.zoomLevel' instead."
}
},
"renameCloudSketch": {
"renameSketchTitle": "New name of the Cloud Sketch"
},
"replaceMsg": "Replace the existing version of {0}?",
"selectZip": "Select a zip file containing the library you'd like to add",
"serial": {
"autoscroll": "Autoscroll",
"carriageReturn": "Carriage Return",
"connecting": "Connecting to '{0}' on '{1}'...",
"message": "Message (Enter to send message to '{0}' on '{1}')",
"newLine": "New Line",
"newLineCarriageReturn": "Both NL & CR",
"noLineEndings": "No Line Ending",
"notConnected": "Not connected. Select a board and a port to connect automatically.",
"openSerialPlotter": "Serial Plotter",
"timestamp": "Timestamp",
"toggleTimestamp": "Toggle Timestamp"
},
"sketch": {
"archiveSketch": "Archive Sketch",
"cantOpen": "A folder named \"{0}\" already exists. Can't open sketch.",
"compile": "Compiling sketch...",
"configureAndUpload": "Configure and Upload",
"createdArchive": "Created archive '{0}'.",
"doneCompiling": "Done compiling.",
"doneUploading": "Done uploading.",
"editInvalidSketchFolderLocationQuestion": "Do you want to try saving the sketch to a different location?",
"editInvalidSketchFolderQuestion": "Do you want to try saving the sketch with a different name?",
"exportBinary": "Export Compiled Binary",
"invalidCloudSketchName": "The name must start with a letter, number, or underscore, followed by letters, numbers, dashes, dots and underscores. Maximum length is 36 characters.",
"invalidSketchFolderLocationDetails": "You cannot save a sketch into a folder inside itself.",
"invalidSketchFolderLocationMessage": "Invalid sketch folder location: '{0}'",
"invalidSketchFolderNameMessage": "Invalid sketch folder name: '{0}'",
"invalidSketchName": "The name must start with a letter, number, or underscore, followed by letters, numbers, dashes, dots and underscores. Maximum length is 63 characters.",
"moving": "Moving",
"movingMsg": "The file \"{0}\" needs to be inside a sketch folder named \"{1}\".\nCreate this folder, move the file, and continue?",
"new": "New Sketch",
"noTrailingPeriod": "A filename cannot end with a dot",
"openFolder": "Open Folder",
"openRecent": "Open Recent",
"openSketchInNewWindow": "Open Sketch in New Window",
"reservedFilename": "'{0}' is a reserved filename.",
"saveFolderAs": "Save sketch folder as...",
"saveSketch": "Save your sketch to open it again later.",
"saveSketchAs": "Save sketch folder as...",
"showFolder": "Show Sketch Folder",
"sketch": "Sketch",
"sketchAlreadyContainsThisFileError": "The sketch already contains a file named '{0}'",
"sketchAlreadyContainsThisFileMessage": "Failed to save sketch \"{0}\" as \"{1}\". {2}",
"sketchbook": "Sketchbook",
"titleLocalSketchbook": "Local Sketchbook",
"titleSketchbook": "Sketchbook",
"upload": "Upload",
"uploadUsingProgrammer": "Upload Using Programmer",
"uploading": "Uploading...",
"userFieldsNotFoundError": "Can't find user fields for connected board",
"verify": "Verify",
"verifyOrCompile": "Verify/Compile"
},
"sketchbook": {
"newCloudSketch": "New Cloud Sketch",
"newSketch": "New Sketch"
},
"survey": {
"answerSurvey": "Answer survey",
"dismissSurvey": "Don't show again",
"surveyMessage": "Please help us improve by answering this super short survey. We value our community and would like to get to know our supporters a little better."
},
"theme": {
"currentThemeNotFound": "Could not find the currently selected theme: {0}. Arduino IDE has picked a built-in theme compatible with the missing one.",
"dark": "Dark",
"deprecated": "{0} (deprecated)",
"hc": "Dark High Contrast",
"hcLight": "Light High Contrast",
"light": "Light",
"user": "{0} (user)"
},
"title": {
"cloud": "Cloud"
},
"updateIndexes": {
"updateIndexes": "Update Indexes",
"updateLibraryIndex": "Update Library Index",
"updatePackageIndex": "Update Package Index"
},
"upload": {
"error": "{0} error: {1}"
},
"userFields": {
"cancel": "Cancel",
"enterField": "Enter {0}",
"upload": "Upload"
},
"validateSketch": {
"abortFixMessage": "The sketch is still invalid. Do you want to fix the remaining problems? By clicking '{0}', a new sketch will open.",
"abortFixTitle": "Invalid sketch",
"renameSketchFileMessage": "The sketch file '{0}' cannot be used. {1} Do you want to rename the sketch file now?",
"renameSketchFileTitle": "Invalid sketch filename",
"renameSketchFolderMessage": "The sketch '{0}' cannot be used. {1} To get rid of this message, rename the sketch. Do you want to rename the sketch now?",
"renameSketchFolderTitle": "Invalid sketch name"
},
"workspace": {
"alreadyExists": "'{0}' already exists."
}
},
"theia": {
"core": {
"cannotConnectBackend": "Cannot connect to the backend.",
"cannotConnectDaemon": "Cannot connect to the CLI daemon.",
"couldNotSave": "Could not save the sketch. Please copy your unsaved work into your favorite text editor, and restart the IDE.",
"daemonOffline": "CLI Daemon Offline",
"offline": "Offline",
"offlineText": "Offline",
"quitTitle": "Are you sure you want to quit?"
},
"editor": {
"unsavedTitle": "Unsaved {0}"
},
"messages": {
"collapse": "Collapse",
"expand": "Expand"
},
"workspace": {
"deleteCloudSketch": "The cloud sketch '{0}' will be permanently deleted from the Arduino servers and the local caches. This action is irreversible. Do you want to delete the current sketch?",
"deleteCurrentSketch": "The sketch '{0}' will be permanently deleted. This action is irreversible. Do you want to delete the current sketch?",
"fileNewName": "Name for new file",
"invalidExtension": ".{0} is not a valid extension",
"newFileName": "New name for file"
}
}
}

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Papan{0}",
"boardConfigDialogTitle": "Pilih Papan dan Port Lain",
"boardDataReloaded": "Board data reloaded.",
"boardInfo": "Informasi Papan",
"boards": "papan",
"configDialog1": "Pilih antara Papan dan Port jika kamu ingin mengunggah sebuah sketsa.",
@@ -31,10 +32,12 @@
"port": "Port{0}",
"ports": "port",
"programmer": "Pemrogram",
"reloadBoardData": "Reload Board Data",
"reselectLater": "Pilih ulang nanti",
"revertBoardsConfig": "Use '{0}' discovered on '{1}'",
"searchBoard": "Cari papan",
"selectBoard": "Pilih Papan",
"selectBoardToReload": "Please select a board first.",
"selectPortForInfo": "Mohon pilih port untuk memperoleh informasi papan.",
"showAllAvailablePorts": "Tampilkan semua port yang tersedia saat dinyalakan",
"showAllPorts": "Tampilkan semua port",
@@ -76,8 +79,8 @@
"checkForUpdates": {
"checkForUpdates": "Periksa Pembaruan Arduino",
"installAll": "Pasang Semua",
"noUpdates": "There are no recent updates available.",
"promptUpdateBoards": "Updates are available for some of your boards.",
"noUpdates": "Tidak ada pembaruan terbaru yang tersedia.",
"promptUpdateBoards": "Pembaruan tersedia untuk beberapa papan Anda.",
"promptUpdateLibraries": "Updates are available for some of your libraries.",
"updatingBoards": "Updating boards...",
"updatingLibraries": "Updating libraries..."
@@ -152,7 +155,8 @@
"serialMonitor": "Serial Monitor",
"type": "Type",
"unknown": "Unknown",
"updateable": "Updatable"
"updateable": "Updatable",
"userAbort": "User abort"
},
"compile": {
"error": "Compilation error: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "Debugging is not supported by '{0}'",
"getDebugInfo": "Getting debug info...",
"noPlatformInstalledFor": "Platform is not installed for '{0}'",
"noProgrammerSelectedFor": "No programmer selected for '{0}'",
"optimizeForDebugging": "Optimize for Debugging",
"sketchIsNotCompiled": "Sketch '{0}' must be verified before starting a debug session. Please verify the sketch and start debugging again. Do you want to verify the sketch now?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "True if users should be warned before pulling a cloud sketch. Defaults to true.",
"cloud.push.warn": "True if users should be warned before pushing a cloud sketch. Defaults to true.",
"cloud.pushpublic.warn": "True if users should be warned before pushing a public sketch to the cloud. Defaults to true.",
"cloud.sharedSpaceId": "The ID of the Arduino Cloud shared space to load the sketchbook from. If empty, your private space is selected.",
"cloud.sketchSyncEndpoint": "The endpoint used to push and pull sketches from a backend. By default it points to Arduino Cloud API.",
"compile": "compile",
"compile.experimental": "True if the IDE should handle multiple compiler errors. False by default",
@@ -411,7 +415,9 @@
"survey.notification": "True if users should be notified if a survey is available. True by default.",
"unofficialBoardSupport": "Click for a list of unofficial board support URLs",
"upload": "upload",
"upload.autoVerify": "True if the IDE should automatically verify the code before the upload. True by default. When this value is false, IDE does not recompile the code before uploading the binary to the board. It's highly advised to only set this value to false if you know what you are doing.",
"upload.verbose": "True for verbose upload output. False by default.",
"upload.verify": "After upload, verify that the contents of the memory on the board match the uploaded binary.",
"verifyAfterUpload": "Verify code after upload",
"window.autoScale": "True if the user interface automatically scales with the font size.",
"window.zoomLevel": {

View File

@@ -13,6 +13,7 @@
"board": {
"board": "Scheda{0}",
"boardConfigDialogTitle": "Seleziona un'altra scheda e un'altra porta",
"boardDataReloaded": "Dati della scheda ricaricati.",
"boardInfo": "Informazioni sulla scheda",
"boards": "schede",
"configDialog1": "Seleziona una scheda ed una porta se vuoi caricare uno sketch.",
@@ -31,10 +32,12 @@
"port": "Porta{0}",
"ports": "porte",
"programmer": "Programmatore",
"reloadBoardData": "Ricarica i dati della scheda",
"reselectLater": "Riselezionare più tardi",
"revertBoardsConfig": "Usa '{0}' rilevato su '{1}'",
"searchBoard": "Cerca la scheda",
"selectBoard": "Seleziona la scheda",
"selectBoardToReload": "Seleziona una scheda.",
"selectPortForInfo": "Selezionare la porta per ottenere info sulla scheda.",
"showAllAvailablePorts": "Quando abilitato, mostra tutte le porte disponibili",
"showAllPorts": "Mostra tutte le porte",
@@ -152,7 +155,8 @@
"serialMonitor": "Monitor seriale",
"type": "Tipo",
"unknown": "Sconosciuto",
"updateable": "Aggiornabile"
"updateable": "Aggiornabile",
"userAbort": "Interruzione da parte dell'utente"
},
"compile": {
"error": "Errore di compilazione: {0}"
@@ -213,7 +217,6 @@
"debuggingNotSupported": "Il debug non è supportato da '{0}'",
"getDebugInfo": "Acquisizione delle informazioni di debug in corso...",
"noPlatformInstalledFor": "La piattaforma non è ancora stata installata per '{0}'",
"noProgrammerSelectedFor": "Nessun programmatore selezionato per '{0}'",
"optimizeForDebugging": "Ottimizzato per il Debug.",
"sketchIsNotCompiled": "Lo sketch '{0}' deve essere verificato prima di avviare una sessione di debug. Verificare lo sketch e avviare nuovamente il debug. Si desidera verificare lo sketch adesso?"
},
@@ -368,6 +371,7 @@
"cloud.pull.warn": "Imposta su true se gli utenti devono essere avvisato dopo avere effettuato il pull dello sketch sul cloud. Il valore predefinito è true.",
"cloud.push.warn": "Imposta su True se gli utenti devono essere avvisati prima di eseguire l'invio di uno sketch cloud. Il valore predefinito è true.",
"cloud.pushpublic.warn": "Imposta su true se gli utenti devono essere avvisati prima di eseguire l'invio di uno sketch pubblico nel cloud. Il valore predefinito è true.",
"cloud.sharedSpaceId": "L'ID dello spazio condiviso di Arduino Cloud da cui caricare lo sketchbook. Se vuoto, viene selezionato lo spazio privato.",
"cloud.sketchSyncEndpoint": "La destinazione utilizzata per inviare e richiedere gli schizzi da un back-end. L'impostazione predefinita utilizza Arduino Cloud API.",
"compile": "compilazione",
"compile.experimental": "Imposta su true se l'IDE deve gestire errori multipli del compilatore. Il valore predefinito è false.",
@@ -411,7 +415,9 @@
"survey.notification": "Vero se gli utenti devono essere avvisati quando è disponibile un sondaggio. Vero per impostazione predefinita.",
"unofficialBoardSupport": "Clicca per ottenere la lista di collegamenti per le schede di terze parti, non schede ufficiali.",
"upload": "caricamento",
"upload.autoVerify": "Vero se l'IDE deve verificare automaticamente il codice prima del caricamento. Vero per impostazione predefinita. Quando questo valore è falso, l'IDE non ricompila il codice prima di caricare il binario sulla scheda. Si consiglia di impostare questo valore su false solo se si sa cosa si sta facendo.",
"upload.verbose": "Vero per un rapporto dettagliato durante l'upload. Il valore predefinito è impostato su falso.",
"upload.verify": "Dopo il caricamento, verificare che il contenuto della memoria sulla scheda corrisponda al binario caricato.",
"verifyAfterUpload": "Verifica il codice dopo il caricamento",
"window.autoScale": "Vero se l'interfaccia scala automaticamente in base alla dimensione del font.",
"window.zoomLevel": {
@@ -454,7 +460,7 @@
"invalidSketchName": "Il nome deve iniziare con una lettera, un numero o un trattino basso, seguito da lettere, numeri, trattini, punti e trattini bassi. La lunghezza massima è di 63 caratteri.",
"moving": "Spostando",
"movingMsg": "Il file \"{0}\" deve essere all'interno della cartella \"{1}\".\nCreare questa cartella, spostare il file e continuare?",
"new": "Nuovo Sketch",
"new": "Nuovo sketch",
"noTrailingPeriod": "Il nome di un file non può terminare con un punto",
"openFolder": "Apri Cartella",
"openRecent": "Apri recenti",

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